修改协同流程

master
Leo 2 years ago
parent f182a95ae1
commit 741bea9ffe

@ -14,6 +14,8 @@ using Newtonsoft.Json.Linq;
using FactorySystemApi.Plm_Formula;
using System.Linq;
using SqlSugar;
using Aspose.Cells;
using System.Web;
namespace FactorySystemApi.Controllers
{
@ -145,18 +147,18 @@ namespace FactorySystemApi.Controllers
TeamworkBll.CreateProductView(teamwork, null, user.FID);
// 20230726 不论新增或暂存,都在创建协同时生成成品事项
//BaseBll.CreateTaskData(teamwork.FID, user.FID, "3", teamwork.FCreateFactoryID + "," + teamwork.FProdFactoryID);
//BaseBll.UpdateTeamProcess(teamwork.FID, (int)Constant.ProcessType.成品视图, 2, 1);
BaseBll.CreateTaskData(teamwork.FID, user.FID, "3", teamwork.FCreateFactoryID + "," + teamwork.FProdFactoryID);
BaseBll.UpdateTeamProcess(teamwork.FID, (int)Constant.ProcessType., 2, 1);
//开始BOM下载
DockGetBomData(teamwork.FID, user.FID);
}
else {
TeamworkBll.CreateProductView(teamwork, materialList, user.FID);
// 20230726 不论新增或暂存,都在创建协同时生成成品事项
//BaseBll.CreateTaskData(teamwork.FID, user.FID, "3", teamwork.FCreateFactoryID + "," + teamwork.FProdFactoryID);
//BaseBll.UpdateTeamProcess(teamwork.FID, (int)Constant.ProcessType.成品视图, 2, 1);
BaseBll.CreateTaskData(teamwork.FID, user.FID, "3", teamwork.FCreateFactoryID + "," + teamwork.FProdFactoryID);
BaseBll.UpdateTeamProcess(teamwork.FID, (int)Constant.ProcessType., 2, 1);
TeamworkBll.HasMaterialTestCode(teamwork);
@ -189,10 +191,10 @@ namespace FactorySystemApi.Controllers
else
{
// 20230726 不论新增或暂存,都在创建协同时生成成品事项
//TFS_FTeamwork teamwork = BaseBll.GetTempModel<TFS_FTeamwork>(teamId);
//TeamworkBll.CreateProductView(teamwork, null, user.FID);
//BaseBll.CreateTaskData(teamwork.FID, user.FID, "3", teamwork.FCreateFactoryID + "," + teamwork.FProdFactoryID);
//BaseBll.UpdateTeamProcess(teamwork.FID, (int)Constant.ProcessType.成品视图, 2, 1);
TFS_FTeamwork teamwork = BaseBll.GetTempModel<TFS_FTeamwork>(teamId);
TeamworkBll.CreateProductView(teamwork, null, user.FID);
BaseBll.CreateTaskData(teamwork.FID, user.FID, "3", teamwork.FCreateFactoryID + "," + teamwork.FProdFactoryID);
BaseBll.UpdateTeamProcess(teamwork.FID, (int)Constant.ProcessType., 2, 1);
BaseBll.CreateTaskData(teamId, user.FID, ((int)Constant.TaskType.).ToString());
BaseBll.UpdateTeamProcess(teamId, (int)Constant.ProcessType., 1, 1);
@ -236,13 +238,20 @@ namespace FactorySystemApi.Controllers
List<TFS_Material> materialList = TeamworkBll.CheckMaterialListByTest(teamwork.FTestCode, teamwork.FVersionCode);
if (materialList.Count == 0)
{
TeamworkBll.CreateProductView(teamwork, null, user.FID);
if (!TeamworkBll.UpdateProductView(teamwork, user.FID))
{
TeamworkBll.CreateProductView(teamwork, null, user.FID);
}
//开始BOM下载
DockGetBomData(teamwork.FID, user.FID);
}
else
{
TeamworkBll.CreateProductView(teamwork, materialList, user.FID);
if (!TeamworkBll.UpdateProductView(teamwork, user.FID))
{
TeamworkBll.CreateProductView(teamwork, materialList, user.FID);
}
TeamworkBll.HasMaterialTestCode(teamwork);
/**
@ -267,6 +276,7 @@ namespace FactorySystemApi.Controllers
//BaseBll.UpdateTeamProcess(teamId, (int)Constant.ProcessType.成品视图, 2, 1);
}
TeamworkBll.ChangeTeamProcess(teamId);
TeamworkBll.CloseUpdateTeamTask(teamId);
}
}
apiResult.Data = inParam["FID"];
@ -795,6 +805,75 @@ namespace FactorySystemApi.Controllers
return "";
}
/// <summary>
/// 获取JObject值
/// </summary>
[HttpPost]
public ApiResult UploadTeamworkFile()
{
ApiResult apiResult = new ApiResult();
string filePath = "";
return ExceptionHelper.TryReturnException(() =>
{
var files = HttpContext.Current.Request.Files;
if (files != null && files.Count > 0)
{
ApiAuthInfo authInfo = Request.Properties["token"] as ApiAuthInfo;
string[] exts = ".xlsx,.xls".Split(',');
string saveBase = string.Format("/Upload/{0}/" + authInfo.FID + "/", "Teamwork");
saveBase = System.Web.Hosting.HostingEnvironment.MapPath(saveBase);
if (!Directory.Exists(saveBase)) Directory.CreateDirectory(saveBase);
for (int i = 0; i < files.Count; i++)
{
string ext = Path.GetExtension(files[i].FileName).ToLower();
if (Array.IndexOf(exts, ext) != -1)
{
filePath = saveBase + DateTime.Now.ToString("yyyyMMddHHmmssfff") + "_" + i + ext;
files[i].SaveAs(filePath);
}
ApiAuthInfo user = Request.Properties["token"] as ApiAuthInfo;
//apiResult.Data = CheckUploadFile(fileList, FFuncType, user.FID);
}
}
}, apiResult, Request);
}
/// <summary>
/// 批量上传协同信息
/// </summary>
public int ReadTeamworkExcel(string file)
{
int teams = 0;
Workbook wb = new Workbook("file");
Worksheet ws = wb.Worksheets[0];
// 遍历工作表中的所有单元格,读取其中的数据
for (int row = 1; row <= ws.Cells.MaxDataRow; row++)
{
//ws.Cells[row, 0].Value;
Dictionary<string, object> inParam = new Dictionary<string, object>();
inParam.Add("FMaterialType", "ZMAT");
inParam.Add("FSaleCode", ws.Cells[row, 0].Value);
inParam.Add("FPackCode", ws.Cells[row, 1].Value);
inParam.Add("FCreateFactoryID", ws.Cells[row, 2].Value);
inParam.Add("FMaterialGroup", ws.Cells[row, 3].Value);
inParam.Add("FTestCode", ws.Cells[row, 4].Value);
inParam.Add("FWeightUnit", ws.Cells[row, 5].Value);
inParam.Add("FFormulaName", ws.Cells[row, 6].Value);
inParam.Add("FState", ws.Cells[row, 7].Value);
inParam.Add("FFormulaID", "");
inParam.Add("FVersionCode", "");
inParam.Add("FFormulaTestCode", "");
}
return teams;
}
#endregion
#region 内部方法

@ -125,8 +125,6 @@ namespace FactorySystemApi.Controllers
{
var apiResult = new ApiResult();
return ExceptionHelper.TryReturnException(() => {
if (!string.IsNullOrWhiteSpace(inParam["tempId"].ToString()))
{
@ -220,7 +218,8 @@ namespace FactorySystemApi.Controllers
//补充包材规格
BaseBll.CreateTaskData(teamId, user.FID, "14");
//成品视图
BaseBll.CreateTaskData(teamwork.FID, user.FID, "3", teamwork.FCreateFactoryID + "," + teamwork.FProdFactoryID);
// 20230726 成品事项新增改到新增协同时创建
//BaseBll.CreateTaskData(teamwork.FID, user.FID, "3", teamwork.FCreateFactoryID + "," + teamwork.FProdFactoryID);
//成品视图物料组复核,有权限的所有
BaseBll.CreateTaskData(teamwork.FID, user.FID, "12");
teamwork = BaseBll.GetTempModel<TFS_FTeamwork>(teamId);
@ -235,7 +234,8 @@ namespace FactorySystemApi.Controllers
BaseBll.UpdateTeamProcess(teamId, (int)Constant.ProcessType.BOM, 3, 2);
}
BaseBll.UpdateTeamProcess(teamwork.FID, (int)Constant.ProcessType., 3, 2);
BaseBll.UpdateTeamProcess(teamwork.FID, (int)Constant.ProcessType., 2, 1);
// 20230726 成品事项新增改到新增协同时创建
// BaseBll.UpdateTeamProcess(teamwork.FID, (int)Constant.ProcessType.成品视图, 2, 1);
SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
//List<TFS_Material> TFS_Materials= db.Queryable<TFS_Material>().Where(m => m.FTestCode == teamwork.FTestCode).ToList();

@ -700,6 +700,93 @@ namespace FactorySystemBll
return true;
}
// 20230728 确认暂存的协同时,根据修改的协同信息,更新已存在的成品视图
public bool UpdateProductView(TFS_FTeamwork teamwork, int userId)
{
bool isProductViewExist = false;
SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
TFS_PackageMain package = db.Queryable<TFS_PackageMain>().Where(s => s.FCode == teamwork.FPackCode).OrderBy(s => s.FID, OrderByType.Desc).First();
List<TFS_ViewMaterial> viewList = db.Queryable<TFS_ViewMaterial>()
.Where(v => v.FTeamID == teamwork.FID)
.Where(v => v.FTeamType == 0)
.Where(v => v.FViewType == 1).ToList();
if (viewList != null && viewList.Count > 0)
{
isProductViewExist = true;
foreach (TFS_ViewMaterial view in viewList)
{
view.FViewType = (int)Constant.ViewType.;
view.FEditUser = userId;
view.FBaseTestCode = teamwork.FTestCode;
view.FBaseMaterialDesc = teamwork.FSaleCode;
view.FBaseMaterialGroup = teamwork.FMaterialGroup;
view.FOrganizeMaterialType = teamwork.FMaterialType;
if (package != null)
{
view.FBaseSpecification = package != null ? package.FSpecs : "";
view.FBaseGrossWeight = package != null ? package.FGrossWeight : "";
view.FBaseNetWeight = package != null ? package.FNetWeight : "";
}
db.Updateable(view).IgnoreColumns(true).WhereColumns("FID").ExecuteCommand();
}
// 如果确认协同时,把单工厂改成了委托工厂,则新增一条成品视图
if (teamwork.FCreateFactoryID != teamwork.FProdFactoryID && viewList.Count == 1)
{
TFS_ViewMaterial view = viewList[0];
// 如果已经存在的视图的工厂是CreateFactory则新建一条ProdFactory否则新建一条CreateFactory
if (view.FFactoryID == teamwork.FCreateFactoryID)
{
view.FFactoryID = teamwork.FProdFactoryID;
view.FFactoryCode = teamwork.FProdFactoryCode;
}
else
{
view.FFactoryID = teamwork.FCreateFactoryID;
view.FFactoryCode = teamwork.FCreateFactoryCode;
}
db.Insertable(view).IgnoreColumns(true).ExecuteReturnIdentity();
}
// 如果确认协同时把委托工厂改成了单工厂则删除一条委托成品视图把协同id改成负值
if (teamwork.FCreateFactoryID == teamwork.FProdFactoryID && viewList.Count == 2)
{
foreach(TFS_ViewMaterial view in viewList)
{
if (view.FFactoryID != teamwork.FCreateFactoryID)
{
view.FTeamID = view.FTeamID * -1;
db.Updateable(view).IgnoreColumns(true).WhereColumns("FID").ExecuteCommand();
}
}
}
}
return isProductViewExist;
}
public void CloseUpdateTeamTask(int teamId)
{
SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
TFS_Task task = db.Queryable<TFS_Task>().Where(t => t.FTeamID == teamId).Where(t => t.FType == 1).First();
if (task != null)
{
task.FState = 2;
task.FCanEdit = 0;
db.Updateable(task).IgnoreColumns(true).WhereColumns("FID").ExecuteCommand();
}
}
/// <summary>
/// 判断物料表里有这个实验号的数量
/// </summary>

Loading…
Cancel
Save