|
|
|
|
@ -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,36 +129,47 @@ namespace FactorySystemApi.Controllers
|
|
|
|
|
|
|
|
|
|
inParam.Add("FTeamworkType", 1);
|
|
|
|
|
|
|
|
|
|
int teamId = BaseBll.InsertDataModel(inParam, "TFS_FMaterialTeamwork");
|
|
|
|
|
result.Add("TeamId", teamId);
|
|
|
|
|
// 获取具备相应权限的用户
|
|
|
|
|
List<TUser> users = MaterialTaskBll.GetTaskUsers(0, "10", factory.FID);
|
|
|
|
|
|
|
|
|
|
if (teamId > 0)
|
|
|
|
|
// 如果没有获取到用户,则不创建路线、任务、物料和视图
|
|
|
|
|
if (users != null && users.Count > 0)
|
|
|
|
|
{
|
|
|
|
|
inParam.Add("FID", teamId);
|
|
|
|
|
int teamId = BaseBll.InsertDataModel(inParam, "TFS_FMaterialTeamwork");
|
|
|
|
|
result.Add("TeamId", teamId);
|
|
|
|
|
|
|
|
|
|
if (state.ToString().Contains("1"))
|
|
|
|
|
if (teamId > 0)
|
|
|
|
|
{
|
|
|
|
|
TFS_FMaterialTeamwork teamwork = BaseBll.GetTempModel<TFS_FMaterialTeamwork>(teamId);
|
|
|
|
|
inParam.Add("FID", teamId);
|
|
|
|
|
|
|
|
|
|
// 创建物料和物料视图
|
|
|
|
|
Dictionary<string, object> materialInfo = CreateMaterialData(inParam, factory, teamwork);
|
|
|
|
|
|
|
|
|
|
if (materialInfo.ContainsKey("FMaterialCode") && !string.IsNullOrEmpty(materialInfo["FMaterialCode"].ToString()))
|
|
|
|
|
if (state.ToString().Contains("1"))
|
|
|
|
|
{
|
|
|
|
|
teamwork.FMaterialCode = materialInfo["FMaterialCode"].ToString();
|
|
|
|
|
MaterialTeamworkBll.UpdateMaterialTeamwork(teamwork);
|
|
|
|
|
}
|
|
|
|
|
TFS_FMaterialTeamwork teamwork = BaseBll.GetTempModel<TFS_FMaterialTeamwork>(teamId);
|
|
|
|
|
|
|
|
|
|
foreach(string key in materialInfo.Keys)
|
|
|
|
|
{
|
|
|
|
|
result.Add(key, materialInfo[key]);
|
|
|
|
|
}
|
|
|
|
|
// 创建物料和物料视图
|
|
|
|
|
Dictionary<string, object> materialInfo = CreateMaterialData(inParam, factory, teamwork);
|
|
|
|
|
|
|
|
|
|
// 创建物料分类任务
|
|
|
|
|
int taskId = MaterialTaskBll.CreateMaterialTask(teamId, 1, user.FID, 0, factory.FID);
|
|
|
|
|
result.Add("TaskId", taskId);
|
|
|
|
|
if (materialInfo.ContainsKey("FMaterialCode") && !string.IsNullOrEmpty(materialInfo["FMaterialCode"].ToString()))
|
|
|
|
|
{
|
|
|
|
|
teamwork.FMaterialCode = materialInfo["FMaterialCode"].ToString();
|
|
|
|
|
MaterialTeamworkBll.UpdateMaterialTeamwork(teamwork);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
foreach (string key in materialInfo.Keys)
|
|
|
|
|
{
|
|
|
|
|
result.Add(key, materialInfo[key]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 创建物料分类任务
|
|
|
|
|
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);
|
|
|
|
|
// 更新物料
|
|
|
|
|
@ -252,55 +267,43 @@ namespace FactorySystemApi.Controllers
|
|
|
|
|
}
|
|
|
|
|
else if((task = tasks.FindLast(t => t.FType == 1)) != null)
|
|
|
|
|
{
|
|
|
|
|
// 结束物料编辑任务
|
|
|
|
|
MaterialTaskBll.CloseMaterialTask(teamId, user.FID, 1);
|
|
|
|
|
// 创建物料确认任务
|
|
|
|
|
int taskId = MaterialTaskBll.CreateMaterialTask(teamId, teamworkType, user.FID, 2, task.FFactoryID);
|
|
|
|
|
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, users);
|
|
|
|
|
result.Add("TaskId", taskId);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
result.Add("TaskId", -9);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
else if ((task = tasks.FindLast(t => t.FType == 0)) != null)
|
|
|
|
|
{
|
|
|
|
|
// 结束物料分类任务
|
|
|
|
|
MaterialTaskBll.CloseMaterialTask(teamId, user.FID, 0);
|
|
|
|
|
// 创建物料编辑任务
|
|
|
|
|
int taskId = MaterialTaskBll.CreateMaterialTask(teamId, teamworkType, user.FID, 1, task.FFactoryID);
|
|
|
|
|
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, users);
|
|
|
|
|
result.Add("TaskId", taskId);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
result.Add("TaskId", -9);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//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;
|
|
|
|
|
result.Add("TeamId", teamId);
|
|
|
|
|
apiResult.Data = result;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}, apiResult, Request, inParam);
|
|
|
|
|
@ -432,70 +435,79 @@ namespace FactorySystemApi.Controllers
|
|
|
|
|
result.Add("ViewId", vmId);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 设置物料修改路线
|
|
|
|
|
teamworkParam.Add("FTeamworkType", 2); // 路线类型-修改
|
|
|
|
|
teamworkParam.Add("FState", 1); // 路线状态-进行中
|
|
|
|
|
teamworkParam.Add("FMaterialCode", material.FCode); // 物料编号
|
|
|
|
|
teamworkParam.Add("FMaterialName", material.FName); // 物料描述
|
|
|
|
|
teamworkParam.Add("FTestCode", material.FTestCode); // 试验号
|
|
|
|
|
teamworkParam.Add("FMaterialType", material.FType); // 物料类型(产品分类):TBasicCode.FType=32
|
|
|
|
|
teamworkParam.Add("FMaterialGroup", material.FMaterialGroup); // 物料组:TDataCode.FType=2
|
|
|
|
|
teamworkParam.Add("FWeightUnit", material.FBaseUnit); // 计量单位
|
|
|
|
|
teamworkParam.Add("FAddUser", user.FID); // 创建用户
|
|
|
|
|
teamworkParam.Add("FAddDate", DateTime.Now); // 创建时间
|
|
|
|
|
teamworkParam.Add("FEditUser", user.FID); // 修改用户
|
|
|
|
|
teamworkParam.Add("FEditDate", DateTime.Now); // 修改时间
|
|
|
|
|
teamworkParam.Add("FCreateFactoryID", factory.FID); // 工厂ID
|
|
|
|
|
teamworkParam.Add("FCreateFactoryCode", factory.FCode); // 工厂Code
|
|
|
|
|
teamworkParam.Add("FCreateFactoryType", factory.FType); // 工厂类型
|
|
|
|
|
|
|
|
|
|
// 如果当前模式是委托,获取委托工厂
|
|
|
|
|
if (factory.FType == 1)
|
|
|
|
|
{
|
|
|
|
|
int prodFactoryId = factory.FFactoryID;
|
|
|
|
|
prodFactory = BaseBll.GetTempModel<TFS_Factory>(prodFactoryId);
|
|
|
|
|
|
|
|
|
|
teamworkParam.Add("FProdFactoryID", prodFactory.FID); // 委托工厂ID
|
|
|
|
|
teamworkParam.Add("FProdFactoryCode", prodFactory.FCode); // 委托工厂Code
|
|
|
|
|
|
|
|
|
|
prodView = MaterialTeamworkBll.GetMaterialViewsByFactoryAndMaterial(prodFactoryId, materialId);
|
|
|
|
|
|
|
|
|
|
// 新增委托工厂视图
|
|
|
|
|
if (prodView == null)
|
|
|
|
|
List<TUser> users = MaterialTaskBll.GetTaskUsers(0, view.FMRP1ProductType, factory.FID);
|
|
|
|
|
|
|
|
|
|
if (users == null || users.Count > 0)
|
|
|
|
|
{
|
|
|
|
|
// 设置物料修改路线
|
|
|
|
|
teamworkParam.Add("FTeamworkType", 2); // 路线类型-修改
|
|
|
|
|
teamworkParam.Add("FState", 1); // 路线状态-进行中
|
|
|
|
|
teamworkParam.Add("FMaterialCode", material.FCode); // 物料编号
|
|
|
|
|
teamworkParam.Add("FMaterialName", material.FName); // 物料描述
|
|
|
|
|
teamworkParam.Add("FTestCode", material.FTestCode); // 试验号
|
|
|
|
|
teamworkParam.Add("FMaterialType", material.FType); // 物料类型(产品分类):TBasicCode.FType=32
|
|
|
|
|
teamworkParam.Add("FMaterialGroup", material.FMaterialGroup); // 物料组:TDataCode.FType=2
|
|
|
|
|
teamworkParam.Add("FWeightUnit", material.FBaseUnit); // 计量单位
|
|
|
|
|
teamworkParam.Add("FAddUser", user.FID); // 创建用户
|
|
|
|
|
teamworkParam.Add("FAddDate", DateTime.Now); // 创建时间
|
|
|
|
|
teamworkParam.Add("FEditUser", user.FID); // 修改用户
|
|
|
|
|
teamworkParam.Add("FEditDate", DateTime.Now); // 修改时间
|
|
|
|
|
teamworkParam.Add("FCreateFactoryID", factory.FID); // 工厂ID
|
|
|
|
|
teamworkParam.Add("FCreateFactoryCode", factory.FCode); // 工厂Code
|
|
|
|
|
teamworkParam.Add("FCreateFactoryType", factory.FType); // 工厂类型
|
|
|
|
|
|
|
|
|
|
// 如果当前模式是委托,获取委托工厂
|
|
|
|
|
if (factory.FType == 1)
|
|
|
|
|
{
|
|
|
|
|
prodView = Clone(view);
|
|
|
|
|
prodView.FFactoryID = prodFactoryId;
|
|
|
|
|
prodView.FFactoryCode = prodFactory.FCode;
|
|
|
|
|
prodView.FAddDate = DateTime.Now;
|
|
|
|
|
int prodFactoryId = factory.FFactoryID;
|
|
|
|
|
prodFactory = BaseBll.GetTempModel<TFS_Factory>(prodFactoryId);
|
|
|
|
|
|
|
|
|
|
teamworkParam.Add("FProdFactoryID", prodFactory.FID); // 委托工厂ID
|
|
|
|
|
teamworkParam.Add("FProdFactoryCode", prodFactory.FCode); // 委托工厂Code
|
|
|
|
|
|
|
|
|
|
prodView = MaterialTeamworkBll.GetMaterialViewsByFactoryAndMaterial(prodFactoryId, materialId);
|
|
|
|
|
|
|
|
|
|
// 新增委托工厂视图
|
|
|
|
|
if (prodView == null)
|
|
|
|
|
{
|
|
|
|
|
prodView = Clone(view);
|
|
|
|
|
prodView.FFactoryID = prodFactoryId;
|
|
|
|
|
prodView.FFactoryCode = prodFactory.FCode;
|
|
|
|
|
prodView.FAddDate = DateTime.Now;
|
|
|
|
|
|
|
|
|
|
// 插入视图
|
|
|
|
|
int prodVmId = MaterialTeamworkBll.InsertMaterialView(prodView);
|
|
|
|
|
prodView.FID = prodVmId;
|
|
|
|
|
// 插入视图
|
|
|
|
|
int prodVmId = MaterialTeamworkBll.InsertMaterialView(prodView);
|
|
|
|
|
prodView.FID = prodVmId;
|
|
|
|
|
|
|
|
|
|
result.Add("ProdViewId", prodVmId);
|
|
|
|
|
result.Add("ProdViewId", prodVmId);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 创建物料修改路线
|
|
|
|
|
int teamId = BaseBll.InsertDataModel(teamworkParam, "TFS_FMaterialTeamwork");
|
|
|
|
|
result.Add("TeamId", teamId);
|
|
|
|
|
// 创建物料修改路线
|
|
|
|
|
int teamId = BaseBll.InsertDataModel(teamworkParam, "TFS_FMaterialTeamwork");
|
|
|
|
|
result.Add("TeamId", teamId);
|
|
|
|
|
|
|
|
|
|
// 更新视图
|
|
|
|
|
view.FMdfMaterialTeamID = teamId;
|
|
|
|
|
view.FTeamType = 1;
|
|
|
|
|
MaterialTeamworkBll.UpdateMaterialView(view);
|
|
|
|
|
|
|
|
|
|
// 更新视图
|
|
|
|
|
view.FMdfMaterialTeamID = teamId;
|
|
|
|
|
view.FTeamType = 1;
|
|
|
|
|
MaterialTeamworkBll.UpdateMaterialView(view);
|
|
|
|
|
if (prodView != null)
|
|
|
|
|
{
|
|
|
|
|
prodView.FMdfMaterialTeamID = teamId;
|
|
|
|
|
prodView.FTeamType = 1;
|
|
|
|
|
MaterialTeamworkBll.UpdateMaterialView(prodView);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (prodView != null)
|
|
|
|
|
// 创建物料修改事项
|
|
|
|
|
int taskId = MaterialTaskBll.CreateMaterialTask(teamId, 2, user.FID, 1, factory.FID, users);
|
|
|
|
|
result.Add("TaskId", taskId);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
prodView.FMdfMaterialTeamID = teamId;
|
|
|
|
|
prodView.FTeamType = 1;
|
|
|
|
|
MaterialTeamworkBll.UpdateMaterialView(prodView);
|
|
|
|
|
result.Add("TaskId", -9);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 创建物料修改事项
|
|
|
|
|
int taskId = MaterialTaskBll.CreateMaterialTask(teamId, 2, user.FID, 1, factory.FID);
|
|
|
|
|
result.Add("TaskId", taskId);
|
|
|
|
|
|
|
|
|
|
apiResult.Data = result;
|
|
|
|
|
|
|
|
|
|
}, apiResult, Request);
|
|
|
|
|
@ -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
|
|
|
|
|
|