修改物料新增路线的权限

master
leo 3 years ago
parent d3b0e7b80f
commit a603c1d45b

@ -13,6 +13,7 @@ using System.Reflection;
using System.Data;
using System.IO;
using System.Security.Cryptography;
using System.Threading.Tasks;
namespace FactorySystemApi.Controllers
{
@ -128,6 +129,12 @@ namespace FactorySystemApi.Controllers
inParam.Add("FTeamworkType", 1);
// 获取具备相应权限的用户
List<TUser> users = MaterialTaskBll.GetTaskUsers(0, "10", factory.FID);
// 如果没有获取到用户,则不创建路线、任务、物料和视图
if (users != null && users.Count > 0)
{
int teamId = BaseBll.InsertDataModel(inParam, "TFS_FMaterialTeamwork");
result.Add("TeamId", teamId);
@ -148,16 +155,21 @@ namespace FactorySystemApi.Controllers
MaterialTeamworkBll.UpdateMaterialTeamwork(teamwork);
}
foreach(string key in materialInfo.Keys)
foreach (string key in materialInfo.Keys)
{
result.Add(key, materialInfo[key]);
}
// 创建物料分类任务
int taskId = MaterialTaskBll.CreateMaterialTask(teamId, 1, user.FID, 0, factory.FID);
int taskId = MaterialTaskBll.CreateMaterialTask(teamId, 1, user.FID, 0, factory.FID, users);
result.Add("TaskId", taskId);
}
}
}
else
{
result.Add("TaskId", -9);
}
apiResult.Data = result;
}, apiResult, Request, inParam);
@ -219,6 +231,7 @@ namespace FactorySystemApi.Controllers
{
var apiResult = new ApiResult();
int step = -1;
Dictionary<string, object> result = new Dictionary<string, object>();
return ExceptionHelper.TryReturnException(() => {
if (Request.Properties["token"] is ApiAuthInfo user)
@ -232,6 +245,8 @@ namespace FactorySystemApi.Controllers
int teamId = int.Parse(inParam["FTeamID"].ToString());
int teamworkType = int.Parse(inParam["FTeamworkType"].ToString());
string viewType = GetViewType(viewList);
// 更新视图
MaterialTeamworkBll.UpdateMaterialViewById(viewList, user.FID, teamId, teamworkType);
// 更新物料
@ -251,56 +266,44 @@ namespace FactorySystemApi.Controllers
MaterialTeamworkBll.CloseMaterialTeamwork(teamId, user.FID);
}
else if((task = tasks.FindLast(t => t.FType == 1)) != null)
{
List<TUser> users = MaterialTaskBll.GetTaskUsers(0, viewType, task.FFactoryID);
if (users != null && users.Count > 0)
{
// 结束物料编辑任务
MaterialTaskBll.CloseMaterialTask(teamId, user.FID, 1);
// 创建物料确认任务
int taskId = MaterialTaskBll.CreateMaterialTask(teamId, teamworkType, user.FID, 2, task.FFactoryID);
int taskId = MaterialTaskBll.CreateMaterialTask(teamId, teamworkType, user.FID, 2, task.FFactoryID, users);
result.Add("TaskId", taskId);
}
else
{
result.Add("TaskId", -9);
}
}
else if ((task = tasks.FindLast(t => t.FType == 0)) != null)
{
List<TUser> users = MaterialTaskBll.GetTaskUsers(0, viewType, task.FFactoryID);
if (users != null && users.Count > 0)
{
// 结束物料分类任务
MaterialTaskBll.CloseMaterialTask(teamId, user.FID, 0);
// 创建物料编辑任务
int taskId = MaterialTaskBll.CreateMaterialTask(teamId, teamworkType, user.FID, 1, task.FFactoryID);
}
//if (tasks != null && tasks.Count == 1)
//{
// TFS_FMaterialTask task = tasks[0];
// if (task.FType == 0)
// {
// // 结束物料分类任务
// MaterialTaskBll.CloseMaterialTask(teamId, user.FID, 0);
// // 创建物料编辑任务
// int taskId = MaterialTaskBll.CreateMaterialTask(teamId, user.FID, 1, task.FFactoryID);
// }
//}
//else if (tasks.Count == 2)
//{
// TFS_FMaterialTask task = tasks.FindLast(t => t.FType == 1);
// if (task != null)
// {
// // 结束物料编辑任务
// MaterialTaskBll.CloseMaterialTask(teamId, user.FID, 1);
// // 创建物料确认任务
// int taskId = MaterialTaskBll.CreateMaterialTask(teamId, user.FID, 2, task.FFactoryID);
// }
//}
//else if (tasks.Count == 3)
//{
// TFS_FMaterialTask task = tasks.FindLast(t => t.FType == 2);
// if (task != null)
// {
// // 结束物料确认任务
// MaterialTaskBll.CloseMaterialTask(teamId, user.FID, 2);
// MaterialTeamworkBll.CloseMaterialTeamwork(teamId, user.FID);
// }
//}
apiResult.Data = teamId;
int taskId = MaterialTaskBll.CreateMaterialTask(teamId, teamworkType, user.FID, 1, task.FFactoryID, users);
result.Add("TaskId", taskId);
}
else
{
result.Add("TaskId", -9);
}
}
result.Add("TeamId", teamId);
apiResult.Data = result;
}
}, apiResult, Request, inParam);
@ -432,6 +435,10 @@ namespace FactorySystemApi.Controllers
result.Add("ViewId", vmId);
}
List<TUser> users = MaterialTaskBll.GetTaskUsers(0, view.FMRP1ProductType, factory.FID);
if (users == null || users.Count > 0)
{
// 设置物料修改路线
teamworkParam.Add("FTeamworkType", 2); // 路线类型-修改
teamworkParam.Add("FState", 1); // 路线状态-进行中
@ -493,8 +500,13 @@ namespace FactorySystemApi.Controllers
}
// 创建物料修改事项
int taskId = MaterialTaskBll.CreateMaterialTask(teamId, 2, user.FID, 1, factory.FID);
int taskId = MaterialTaskBll.CreateMaterialTask(teamId, 2, user.FID, 1, factory.FID, users);
result.Add("TaskId", taskId);
}
else
{
result.Add("TaskId", -9);
}
apiResult.Data = result;
@ -544,6 +556,44 @@ namespace FactorySystemApi.Controllers
return result;
}
private string GetViewType(List<Dictionary<string, object>> viewList)
{
string vType = null;
if (viewList != null && viewList.Count > 0)
{
Dictionary<string, object> view = viewList[0];
// 成品视图
if (view.ContainsKey("FMRP1ProductType") && "10".Equals(view["FMRP1ProductType"].ToString()))
{
vType = "1";
}
// 半成品视图
else if (view.ContainsKey("FMRP1ProductType") && "20".Equals(view["FMRP1ProductType"].ToString()))
{
vType = "2";
}
// 中间品视图
else if (view.ContainsKey("FMRP1ProductType") && "30".Equals(view["FMRP1ProductType"].ToString()))
{
vType = "3";
// 香基视图
if (view.ContainsKey("FBaseMaterialDesc") && view["FBaseMaterialDesc"].ToString().Contains("香基"))
{
vType = "4";
}
}
// 原料视图
else if (view.ContainsKey("FMRP1ProductType") && "40".Equals(view["FMRP1ProductType"].ToString()))
{
vType = "5";
}
}
return vType;
}
#endregion
public T Clone<T>(T obj) where T : class

@ -48,36 +48,15 @@ namespace FactorySystemBll
/// <summary>
/// 创建物料新增事项
/// </summary>
public int CreateMaterialTask(int teamId, int teamworkType, int userId, int type, int factoryId)
public int CreateMaterialTask(int teamId, int teamworkType, int userId, int type, int factoryId, List<TUser> users)
{
SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
int funcType = (int)Constant.RoleType.;
string tType = type == 0 ? "10" : "11";
int taskId = -1;
try
{
List<string> funcVal = db.Queryable<TBasicCode>().Where(s => s.FType == (int)Constant.BasicCode. && s.F1 == tType && s.FState == 1).Select(s => s.FValue).ToList();
//List<TUser> users = db.Queryable<TUser, TRole_Right, FPower>((a, b, c) => new JoinQueryInfos(JoinType.Left, a.FRoleID == b.FRoleID,
// JoinType.Left, a.FID == int.Parse(c.FUserID)))
// .Where((a, b) => a.FState == 1 && a.FDeleted != 1 && b.FType == funcType && funcVal.Contains(b.FFunctionID.ToString()))
// .Where(factoryId<=0 ? "1=1" : string.Format("c.FFactoryID in({0})", factoryId))
// .GroupBy("a.FID,c.FFactoryID,a.FName,a.FUser").Select<TUser>("a.FID,c.FFactoryID,a.FName,a.FUser").ToList();
List<TUser> users = db.Queryable<FPower, TUser, TRole_Right>((a, b, c) => new JoinQueryInfos(
JoinType.Left, a.FUserID.Equals(b.FID.ToString()),
JoinType.Left, a.FRole.Equals(c.FRoleID.ToString())
))
.Where((a, b, c) => factoryId.ToString().Contains(a.FFactoryID))
.Where((a, b, c) => b.FState == 1 && b.FDeleted != 1)
.Where((a, b, c) => c.FType == funcType && funcVal.Contains(c.FFunctionID.ToString()))
.GroupBy("b.FID, a.FFactoryID, b.FName, b.FUser")
.Select<TUser>("b.FID, cast(a.FFactoryID as int), b.FName, b.FUser")
.ToList();
if (users.Count > 0)
{
TFS_FMaterialTask materialTask = new TFS_FMaterialTask();
materialTask.FMaterialTeamID = teamId;
materialTask.FType = type;
@ -87,6 +66,8 @@ namespace FactorySystemBll
materialTask.FAddDate = DateTime.Now;
materialTask.FState = 1;
materialTask.FTeamworkType = teamworkType;
materialTask.FUserID = string.Join(",", users.GroupBy(ss => ss.FID).Select(sss => sss.Key));
materialTask.FUserName = string.Join("、", users.GroupBy(ss => ss.FName).Select(sss => sss.Key));
if (type == 0)
{
@ -104,9 +85,6 @@ namespace FactorySystemBll
materialTask.FDesc = "物料视图确认";
}
materialTask.FUserID = string.Join(",", users.GroupBy(ss => ss.FID).Select(sss => sss.Key));
materialTask.FUserName = string.Join("、", users.GroupBy(ss => ss.FName).Select(sss => sss.Key));
taskId = db.Insertable(materialTask).IgnoreColumns(true).ExecuteReturnIdentity();
}
}
@ -138,5 +116,44 @@ namespace FactorySystemBll
return result;
}
/**
* 20230505 BUG
* 线
* **/
public List<TUser> GetTaskUsers(int taskType, string viewType, int factoryId)
{
SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
List<TUser> users = null;
string funcType = null;
List<string> funcVal = null;
// 物料分类任务 | 物料编辑任务
if (taskType == 0 || taskType == 1)
{
funcType = "4, 5";
funcVal = db.Queryable<TBasicCode>().Where(s => (s.FType == (int)Constant.BasicCode. || s.FType == (int)Constant.BasicCode.) &&
viewType.Equals(s.F1) && // 视图编辑中的物料分类
s.FState == 1).Select(s => s.FValue).ToList();
}
// 物料确认任务
else if (taskType == 2)
{
funcType = "2";
funcVal = new List<string> { "7" };
}
users = db.Queryable<FPower, TUser, TRole_Right>((a, b, c) => new JoinQueryInfos(
JoinType.Left, a.FUserID.Equals(b.FID.ToString()),
JoinType.Left, a.FRole.Equals(c.FRoleID.ToString())))
.Where((a, b, c) => factoryId.ToString().Contains(a.FFactoryID))
.Where((a, b, c) => b.FState == 1 && b.FDeleted != 1)
.Where((a, b, c) => funcType.Contains(c.FType.ToString()) && funcVal.Contains(c.FFunctionID.ToString()))
.GroupBy("b.FID, a.FFactoryID, b.FName, b.FUser")
.Select<TUser>("b.FID, cast(a.FFactoryID as int), b.FName, b.FUser")
.ToList();
return users;
}
}
}

@ -210,7 +210,7 @@ namespace FactorySystemBll
for (int i = 0; i < viewList.Count; i++)
{
//判断是否等于中间品
if (viewList[i]["FMRP1Type"].ToString() == "30")
if (viewList[i]["FMRP1ProductType"].ToString() == "30")
{
TFS_MaterialType materialType = materialTypeBll.GetMaterialTypeByID(int.Parse(viewList[i]["FTypeID2"].ToString())).LastOrDefault();
if (materialType.FName.Contains("香基"))

@ -171,8 +171,8 @@ namespace FactorySystemBll
factoryID = fTeamwork.FCreateFactoryID;
break;
case 1:
TFS_MaterialFTeamwork materialFTeamwork = BaseBll.GetTempModel<TFS_MaterialFTeamwork>("FID=" + teamId.ToString());
factoryID = materialFTeamwork.FCreateFactoryID;
TFS_FMaterialTeamwork FMaterialTeamwork = BaseBll.GetTempModel<TFS_FMaterialTeamwork>("FID=" + teamId.ToString());
factoryID = FMaterialTeamwork.FCreateFactoryID;
break;
case 2:
TFS_HalfMaterialFTeamwork halfMaterialFTeamwork = BaseBll.GetTempModel<TFS_HalfMaterialFTeamwork>("FID=" + teamId.ToString());

Loading…
Cancel
Save