diff --git a/FactorySystemApi/Controllers/TeamworkController.cs b/FactorySystemApi/Controllers/TeamworkController.cs index db01944..a15e962 100644 --- a/FactorySystemApi/Controllers/TeamworkController.cs +++ b/FactorySystemApi/Controllers/TeamworkController.cs @@ -13,6 +13,7 @@ using System.IO; using Newtonsoft.Json.Linq; using FactorySystemApi.Plm_Formula; using System.Linq; +using SqlSugar; namespace FactorySystemApi.Controllers { @@ -77,9 +78,6 @@ namespace FactorySystemApi.Controllers { //对接获取 //inParam.Add("FMdmCode", GetMdmCode(inParam)); - - - var ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0); inParam.Add("FMdmCode", ts.TotalSeconds.ToString("F0")); if (!inParam.ContainsKey("FMdmCode") || string.IsNullOrEmpty(inParam["FMdmCode"].ToString().Trim())) @@ -146,7 +144,8 @@ namespace FactorySystemApi.Controllers TeamworkBll.CreateProductView(teamwork, null, user.FID); //开始BOM下载 DockGetBomData(teamwork.FID, user.FID); - } else { + } + else { TeamworkBll.CreateProductView(teamwork, materialList, user.FID); TeamworkBll.HasMaterialTestCode(teamwork); //补充包材规格 @@ -389,8 +388,100 @@ namespace FactorySystemApi.Controllers }, apiResult, Request, inParam); } + /// + /// 更新物料分类 + /// + /// + /// + [HttpPost] + public ApiResult EditTypeList(Dictionary inParam) + { + ApiResult apiResult = new ApiResult(); + return ExceptionHelper.TryReturnException(() => { + if (inParam["tempId"] != null && inParam["taskId"]!=null) + { + string sql = ""; + JArray item = JArray.Parse(inParam["list"].ToString()); + for (int i = 0; i < item.Count; i++) + { + JObject a = JObject.Parse(item[i].ToString()); + sql += string.Format("update TFS_Material set FTypeID1={0},FTypeID2={1} where FID={2};", a["FTypeID1"].ToString(), a["FTypeID2"].ToString(), a["FMaterialID"].ToString()); + } + int count = TeamworkBll.ExecSql(sql); + apiResult.Data = NextTask(int.Parse(inParam["tempId"].ToString()),int.Parse(inParam["taskId"].ToString())); + } + + + }, apiResult, Request, inParam); + + } + #region 对接相关 + + private int NextTask(int teamId,int taskId) + { + int result = 0; + List specifList = new List() { new Specifications() }; + TFS_FTeamwork teamwork = BaseBll.GetTempModel(teamId); + try + { + ApiAuthInfo user = Request.Properties["token"] as ApiAuthInfo; + TFS_Formula formula = BaseBll.GetTempModel(teamwork.FFormulaID); + OAService oAService = new OAService(); + specifList[0].Code = formula.FTestCode; + specifList[0].Version = formula.FVersionCode; + RestResult restResult = oAService.GetSpecificationsList(specifList.ToArray()); + string bomStr = restResult.data == null ? "[]" : restResult.data.ToString(); + ExceptionHelper.AddSystemJournal(Request, specifList[0], restResult,user.FID, "DockGetBomData"); + List bomList = JsonConvert.DeserializeObject>(bomStr); + + + if (bomList != null && bomList.Count > 0) + { + + //修改协同主数据 + Dictionary upParam = new Dictionary + { + { "FID", teamwork.FID }, + { "FBomState", 1 }, + { "FBomJson", bomStr } + }; + BaseBll.UpdateDataModel(upParam, "TFS_FTeamwork"); + BaseBll.UpdateTeamProcess(teamwork.FID, (int)Constant.ProcessType.视图类型编辑, 2, 2); + int count= TeamworkBll.ExecSql(BaseBll.GetTaskSql(taskId, 2, teamId, (int)Constant.ProcessType.视图类型编辑)); + + BaseBll.UpdateTeamProcess(teamwork.FID, (int)Constant.ProcessType.协同发起, 3, 2); + + if (teamwork.FPackID == -1) + { + BaseBll.CreateTaskData(teamwork.FID, user.FID, "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, user.FID, "3", teamwork.FCreateFactoryID + "," + teamwork.FProdFactoryID); + //补充包材规格 + BaseBll.CreateTaskData(teamwork.FID, user.FID, "14"); + //成品视图物料组复核,有权限的所有 + BaseBll.CreateTaskData(teamwork.FID, user.FID, "12"); + TeamworkBll.ChangeTeamProcess(teamwork.FID); + result = 1; + } + + } + catch (Exception) + { + + throw; + } + return result; + } + /// /// 对接获取Bom数据 /// @@ -438,23 +529,28 @@ namespace FactorySystemApi.Controllers }; BaseBll.UpdateDataModel(upParam, "TFS_FTeamwork"); //协同发起事项 - 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"); + //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"); + BaseBll.CreateTaskData(teamwork.FID, userId, "15");//新增新包材事项 OperateLogBll.Add(teamwork.FID, 2, "BOM下载成功", userId); TeamworkBll.ChangeTeamProcess(teamwork.FID); result = 1; @@ -479,6 +575,10 @@ namespace FactorySystemApi.Controllers return result; } + + + + /// /// 递归梳理BOM /// diff --git a/FactorySystemApi/Controllers/View2Controller.cs b/FactorySystemApi/Controllers/View2Controller.cs index d0e6f02..b16a4a0 100644 --- a/FactorySystemApi/Controllers/View2Controller.cs +++ b/FactorySystemApi/Controllers/View2Controller.cs @@ -13,7 +13,7 @@ namespace FactorySystemApi.Controllers /// 视图接口 /// [UserLoginFilter] - public class ViewController : BaseController + public class View2Controller : BaseController { private readonly ViewBll _viewBll = new ViewBll(); diff --git a/FactorySystemApi/Controllers/ViewController.cs b/FactorySystemApi/Controllers/ViewController.cs index 4910644..d841c93 100644 --- a/FactorySystemApi/Controllers/ViewController.cs +++ b/FactorySystemApi/Controllers/ViewController.cs @@ -13,7 +13,7 @@ namespace FactorySystemApi.Controllers /// 视图接口 /// [UserLoginFilter] - public class View2Controller : BaseController + public class ViewController : BaseController { private readonly ViewBll _viewBll = new ViewBll(); @@ -29,14 +29,27 @@ namespace FactorySystemApi.Controllers if (Request.Properties["token"] is ApiAuthInfo user) { int teamId = int.Parse(inParam["teamId"].ToString()); - int viewType = int.Parse(inParam["viewType"].ToString()); - apiResult.Data = new + if (string.IsNullOrWhiteSpace(inParam["viewType"].ToString())) { - columns = _viewBll.GetColumns(), - rows = _viewBll.GetListByTeamId(teamId, viewType, user.FID, out List materialId, out string FGuaranteePeriod, out string FStorageConditions, !inParam.ContainsKey("FAllView")), - infos = _viewBll.GetMaterialInfoList(materialId, FGuaranteePeriod, FStorageConditions, user.FID), - types = _viewBll.GetMaterialTypeList() - }; + apiResult.Data = new + { + columns = _viewBll.GetColumns(), + rows = _viewBll.GetListByTeamId2(teamId, user.FID, out List materialId, out string FGuaranteePeriod, out string FStorageConditions, !inParam.ContainsKey("FAllView")), + infos = _viewBll.GetMaterialInfoList(materialId, FGuaranteePeriod, FStorageConditions, user.FID), + types = _viewBll.GetMaterialTypeList() + }; + } + else + { + int viewType = int.Parse(inParam["viewType"].ToString()); + apiResult.Data = new + { + columns = _viewBll.GetColumns(), + rows = _viewBll.GetListByTeamId(teamId, viewType, user.FID, out List materialId, out string FGuaranteePeriod, out string FStorageConditions, !inParam.ContainsKey("FAllView")), + infos = _viewBll.GetMaterialInfoList(materialId, FGuaranteePeriod, FStorageConditions, user.FID), + types = _viewBll.GetMaterialTypeList() + }; + } } }, apiResult, Request); } diff --git a/FactorySystemBll/TeamworkBll.cs b/FactorySystemBll/TeamworkBll.cs index 2225ace..3ef0e4c 100644 --- a/FactorySystemBll/TeamworkBll.cs +++ b/FactorySystemBll/TeamworkBll.cs @@ -130,6 +130,7 @@ namespace FactorySystemBll int proType = int.Parse(item.FValue); switch (proType) { + case (int)Constant.ProcessType.视图类型编辑: case (int)Constant.ProcessType.协同发起: string funcIds1 = "1,2,3";//36 users = db.Queryable().Where(string.Format(@"FState=1 and FRoleID in(select distinct FRoleID from @@ -265,6 +266,12 @@ namespace FactorySystemBll return db.Ado.GetDataTable(strSql); } + public int ExecSql(string sql) + { + SqlSugarClient db = AppSettingsHelper.GetSqlSugar(); + return db.Ado.ExecuteCommand(sql); + } + /// /// BOM梳理结果数据处理 /// @@ -295,8 +302,8 @@ namespace FactorySystemBll { if (factory == null) { - string tempSql = @"select * from TFS_Factory where FID=(select FFactoryID from TUser where FID={0})"; - factory = db.SqlQueryable(string.Format(tempSql, userId)).First(); + string tempSql = @"select * from TFS_Factory where FID=(SELECT FCreateFactoryID FROM TFS_FTeamwork WHERE FID={0})"; + factory = db.SqlQueryable(string.Format(tempSql, teamId)).First(); } if (factory != null) { @@ -556,8 +563,14 @@ namespace FactorySystemBll db.Insertable(mainView).IgnoreColumns(true).ExecuteCommand(); if (teamInfo.FProdFactoryID != teamInfo.FCreateFactoryID) { + + mainMater.FFactoryID = teamInfo.FProdFactoryID; + mainMater.FFactoryCode = teamInfo.FProdFactoryCode; + mainMater.FID = db.Insertable(mainMater).IgnoreColumns(true).ExecuteReturnIdentity(); + mainView.FFactoryID = teamInfo.FProdFactoryID; mainView.FFactoryCode = teamInfo.FProdFactoryCode; + mainView.FMaterialID = mainMater.FID; db.Insertable(mainView).IgnoreColumns(true).ExecuteCommand(); } //成品视图 diff --git a/FactorySystemBll/ViewBll.cs b/FactorySystemBll/ViewBll.cs index c229d1d..e352ee5 100644 --- a/FactorySystemBll/ViewBll.cs +++ b/FactorySystemBll/ViewBll.cs @@ -68,6 +68,71 @@ namespace FactorySystemBll return viewList; } + + /// + /// 根据协同ID获取物料视图 + /// + public List> GetListByTeamId2(int teamId, int currUserId, out List materialId, out string FGuaranteePeriod, out string FStorageConditions, bool byFactory = true) + { + TUser currUser = null; + FGuaranteePeriod = ""; + FStorageConditions = ""; + //if (byFactory == true) currUser = BaseBll.GetTempModel(currUserId, "FFactoryID"); + var db = AppSettingsHelper.GetSqlSugar(); + List> viewList = db.Queryable((a, b) => + new JoinQueryInfos(JoinType.Inner, a.FMaterialID == b.FID)) + .Where((a, b) => a.FTeamID == teamId) + //.WhereIF(currUser != null, (a, b) => a.FFactoryID == currUser.FFactoryID) + .Select("distinct a.*,b.FTypeID1,b.FTypeID2,b.FK3Code,b.FK3Name,b.FK3ShortCode").ToDictionaryList(); + + + foreach (var item in viewList) + { + if (item["FViewType"].ToString() == "1") + { + int viewType = int.Parse(item["FViewType"].ToString()); + if (viewType == 1) + { + List> viewList1 = db.Queryable((a, b) => + new JoinQueryInfos(JoinType.Inner, a.FMaterialID == b.FID)) + .Where((a, b) => a.FTeamID == teamId) + .WhereIF(currUser != null, (a, b) => a.FFactoryID == currUser.FFactoryID) + .WhereIF(viewType > 0, (a, b) => a.FViewType == 2) + .Select("distinct a.*,b.FTypeID1,b.FTypeID2,b.FK3Code,b.FK3Name,b.FK3ShortCode").ToDictionaryList(); + List Minfo = GetMaterialInfoList(viewList1.GroupBy(s => s["FMaterialID"]).Select(s => int.Parse(s.Key.ToString())).ToList(), "", "", currUserId); + if (Minfo.Count > 0) + { + FGuaranteePeriod = Minfo[0].FGuaranteePeriod; + FStorageConditions = Minfo[0].FStorageConditions; + } + + TFS_FTeamwork teamWork = db.Queryable().Where(s => s.FID == teamId).First(); + TFS_PackageMain packAge = db.Queryable().Where(s => s.FCode == teamWork.FPackCode).First(); + + if (packAge != null) + { + item.Remove("FBaseGrossWeight"); + item.Add("FBaseGrossWeight", packAge.FGrossWeight); + item.Remove("FBaseNetWeight"); + item.Add("FBaseNetWeight", packAge.FNetWeight); + item.Remove("FBaseSpecification"); + item.Add("FBaseSpecification", packAge.FSpecs); + item.Add("HalfCode", teamWork.FMaterialHalfIDs); + } + var FBaseMaterialDesc = viewList1.GroupBy(s => s["FBaseMaterialDesc"]).Select(s => s.Key).ToList(); + + if (FBaseMaterialDesc.Count > 0) + { + viewList[0].Add("HalfDesc", FBaseMaterialDesc[0]); + } + } + } + } + materialId = viewList.GroupBy(s => s["FMaterialID"]).Select(s => int.Parse(s.Key.ToString())).ToList(); + return viewList; + } + + /// /// 根据物料获取基本信息 /// diff --git a/FactorySystemModel/EnumModel/Constant.cs b/FactorySystemModel/EnumModel/Constant.cs index dd00768..52afdca 100644 --- a/FactorySystemModel/EnumModel/Constant.cs +++ b/FactorySystemModel/EnumModel/Constant.cs @@ -99,7 +99,8 @@ namespace FactorySystemModel.EnumModel 新包材视图 = 11, 成品视图物料组复核 = 12, 流程确认完成 = 13, - 补充包材规格 = 14 + 补充包材规格 = 14, + 视图类型编辑=15 } /// @@ -107,6 +108,7 @@ namespace FactorySystemModel.EnumModel /// public enum ProcessType { + 视图类型编辑=0, 协同发起 = 1, 成品视图 = 2, 新半成品中间品香基 = 3, diff --git a/FactorySystemModel/FactorySystemModel.csproj b/FactorySystemModel/FactorySystemModel.csproj index 29a9ae5..51c5cc9 100644 --- a/FactorySystemModel/FactorySystemModel.csproj +++ b/FactorySystemModel/FactorySystemModel.csproj @@ -92,7 +92,6 @@ -