插入配置物料类型任务

master
Yang 3 years ago
parent 042e27d712
commit 1b7b9247a9

@ -13,6 +13,7 @@ using System.IO;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using FactorySystemApi.Plm_Formula; using FactorySystemApi.Plm_Formula;
using System.Linq; using System.Linq;
using SqlSugar;
namespace FactorySystemApi.Controllers namespace FactorySystemApi.Controllers
{ {
@ -77,9 +78,6 @@ namespace FactorySystemApi.Controllers
{ {
//对接获取 //对接获取
//inParam.Add("FMdmCode", GetMdmCode(inParam)); //inParam.Add("FMdmCode", GetMdmCode(inParam));
var ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0); var ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
inParam.Add("FMdmCode", ts.TotalSeconds.ToString("F0")); inParam.Add("FMdmCode", ts.TotalSeconds.ToString("F0"));
if (!inParam.ContainsKey("FMdmCode") || string.IsNullOrEmpty(inParam["FMdmCode"].ToString().Trim())) if (!inParam.ContainsKey("FMdmCode") || string.IsNullOrEmpty(inParam["FMdmCode"].ToString().Trim()))
@ -146,7 +144,8 @@ namespace FactorySystemApi.Controllers
TeamworkBll.CreateProductView(teamwork, null, user.FID); TeamworkBll.CreateProductView(teamwork, null, user.FID);
//开始BOM下载 //开始BOM下载
DockGetBomData(teamwork.FID, user.FID); DockGetBomData(teamwork.FID, user.FID);
} else { }
else {
TeamworkBll.CreateProductView(teamwork, materialList, user.FID); TeamworkBll.CreateProductView(teamwork, materialList, user.FID);
TeamworkBll.HasMaterialTestCode(teamwork); TeamworkBll.HasMaterialTestCode(teamwork);
//补充包材规格 //补充包材规格
@ -389,8 +388,100 @@ namespace FactorySystemApi.Controllers
}, apiResult, Request, inParam); }, apiResult, Request, inParam);
} }
/// <summary>
/// 更新物料分类
/// </summary>
/// <param name="inParam"></param>
/// <returns></returns>
[HttpPost]
public ApiResult EditTypeList(Dictionary<string, object> 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 对接相关 #region 对接相关
private int NextTask(int teamId,int taskId)
{
int result = 0;
List<Specifications> specifList = new List<Specifications>() { new Specifications() };
TFS_FTeamwork teamwork = BaseBll.GetTempModel<TFS_FTeamwork>(teamId);
try
{
ApiAuthInfo user = Request.Properties["token"] as ApiAuthInfo;
TFS_Formula formula = BaseBll.GetTempModel<TFS_Formula>(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<BomModel> bomList = JsonConvert.DeserializeObject<List<BomModel>>(bomStr);
if (bomList != null && bomList.Count > 0)
{
//修改协同主数据
Dictionary<string, object> upParam = new Dictionary<string, object>
{
{ "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;
}
/// <summary> /// <summary>
/// 对接获取Bom数据 /// 对接获取Bom数据
/// </summary> /// </summary>
@ -438,23 +529,28 @@ namespace FactorySystemApi.Controllers
}; };
BaseBll.UpdateDataModel(upParam, "TFS_FTeamwork"); BaseBll.UpdateDataModel(upParam, "TFS_FTeamwork");
//协同发起事项 //协同发起事项
BaseBll.UpdateTeamProcess(teamwork.FID, (int)Constant.ProcessType., 3, 2); //BaseBll.UpdateTeamProcess(teamwork.FID, (int)Constant.ProcessType.协同发起, 3, 2);
BaseBll.UpdateTeamProcess(teamwork.FID, (int)Constant.ProcessType., 2, 1); BaseBll.UpdateTeamProcess(teamwork.FID, (int)Constant.ProcessType., 2, 1);
if (teamwork.FPackID == -1) //改
{ //if (teamwork.FPackID == -1)
BaseBll.CreateTaskData(teamwork.FID, userId, "9");//新增新包材事项 //{
BaseBll.UpdateTeamProcess(teamwork.FID, (int)Constant.ProcessType.BOM, 2, 1); //
}
else // //BaseBll.CreateTaskData(teamwork.FID, userId, "9");//新增新包材事项
{ // //BaseBll.UpdateTeamProcess(teamwork.FID, (int)Constant.ProcessType.组装BOM包含新包材, 2, 1);
BaseBll.UpdateTeamProcess(teamwork.FID, (int)Constant.ProcessType.BOM, 3, 2); //}
} //else
//成品视图 //{
BaseBll.CreateTaskData(teamwork.FID, userId, "3", teamwork.FCreateFactoryID + "," + teamwork.FProdFactoryID); // BaseBll.UpdateTeamProcess(teamwork.FID, (int)Constant.ProcessType.组装BOM包含新包材, 3, 2);
//补充包材规格 //}
BaseBll.CreateTaskData(teamwork.FID, userId, "14"); ///等类型修改结束使用
//成品视图物料组复核,有权限的所有 ////成品视图
BaseBll.CreateTaskData(teamwork.FID, userId, "12"); //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); OperateLogBll.Add(teamwork.FID, 2, "BOM下载成功", userId);
TeamworkBll.ChangeTeamProcess(teamwork.FID); TeamworkBll.ChangeTeamProcess(teamwork.FID);
result = 1; result = 1;
@ -479,6 +575,10 @@ namespace FactorySystemApi.Controllers
return result; return result;
} }
/// <summary> /// <summary>
/// 递归梳理BOM /// 递归梳理BOM
/// </summary> /// </summary>

@ -13,7 +13,7 @@ namespace FactorySystemApi.Controllers
/// 视图接口 /// 视图接口
/// </summary> /// </summary>
[UserLoginFilter] [UserLoginFilter]
public class ViewController : BaseController<TFS_ViewMaterial> public class View2Controller : BaseController<TFS_ViewMaterial>
{ {
private readonly ViewBll _viewBll = new ViewBll(); private readonly ViewBll _viewBll = new ViewBll();

@ -13,7 +13,7 @@ namespace FactorySystemApi.Controllers
/// 视图接口 /// 视图接口
/// </summary> /// </summary>
[UserLoginFilter] [UserLoginFilter]
public class View2Controller : BaseController<TFS_MaterialInfo> public class ViewController : BaseController<TFS_MaterialInfo>
{ {
private readonly ViewBll _viewBll = new ViewBll(); private readonly ViewBll _viewBll = new ViewBll();
@ -29,14 +29,27 @@ namespace FactorySystemApi.Controllers
if (Request.Properties["token"] is ApiAuthInfo user) if (Request.Properties["token"] is ApiAuthInfo user)
{ {
int teamId = int.Parse(inParam["teamId"].ToString()); int teamId = int.Parse(inParam["teamId"].ToString());
int viewType = int.Parse(inParam["viewType"].ToString()); if (string.IsNullOrWhiteSpace(inParam["viewType"].ToString()))
apiResult.Data = new
{ {
columns = _viewBll.GetColumns(), apiResult.Data = new
rows = _viewBll.GetListByTeamId(teamId, viewType, user.FID, out List<int> materialId, out string FGuaranteePeriod, out string FStorageConditions, !inParam.ContainsKey("FAllView")), {
infos = _viewBll.GetMaterialInfoList(materialId, FGuaranteePeriod, FStorageConditions, user.FID), columns = _viewBll.GetColumns(),
types = _viewBll.GetMaterialTypeList() rows = _viewBll.GetListByTeamId2(teamId, user.FID, out List<int> 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<int> materialId, out string FGuaranteePeriod, out string FStorageConditions, !inParam.ContainsKey("FAllView")),
infos = _viewBll.GetMaterialInfoList(materialId, FGuaranteePeriod, FStorageConditions, user.FID),
types = _viewBll.GetMaterialTypeList()
};
}
} }
}, apiResult, Request); }, apiResult, Request);
} }

@ -130,6 +130,7 @@ namespace FactorySystemBll
int proType = int.Parse(item.FValue); int proType = int.Parse(item.FValue);
switch (proType) switch (proType)
{ {
case (int)Constant.ProcessType.:
case (int)Constant.ProcessType.: case (int)Constant.ProcessType.:
string funcIds1 = "1,2,3";//36 string funcIds1 = "1,2,3";//36
users = db.Queryable<TUser>().Where(string.Format(@"FState=1 and FRoleID in(select distinct FRoleID from users = db.Queryable<TUser>().Where(string.Format(@"FState=1 and FRoleID in(select distinct FRoleID from
@ -265,6 +266,12 @@ namespace FactorySystemBll
return db.Ado.GetDataTable(strSql); return db.Ado.GetDataTable(strSql);
} }
public int ExecSql(string sql)
{
SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
return db.Ado.ExecuteCommand(sql);
}
/// <summary> /// <summary>
/// BOM梳理结果数据处理 /// BOM梳理结果数据处理
/// </summary> /// </summary>
@ -295,8 +302,8 @@ namespace FactorySystemBll
{ {
if (factory == null) if (factory == null)
{ {
string tempSql = @"select * from TFS_Factory where FID=(select FFactoryID from TUser where FID={0})"; string tempSql = @"select * from TFS_Factory where FID=(SELECT FCreateFactoryID FROM TFS_FTeamwork WHERE FID={0})";
factory = db.SqlQueryable<TFS_Factory>(string.Format(tempSql, userId)).First(); factory = db.SqlQueryable<TFS_Factory>(string.Format(tempSql, teamId)).First();
} }
if (factory != null) if (factory != null)
{ {
@ -556,8 +563,14 @@ namespace FactorySystemBll
db.Insertable(mainView).IgnoreColumns(true).ExecuteCommand(); db.Insertable(mainView).IgnoreColumns(true).ExecuteCommand();
if (teamInfo.FProdFactoryID != teamInfo.FCreateFactoryID) 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.FFactoryID = teamInfo.FProdFactoryID;
mainView.FFactoryCode = teamInfo.FProdFactoryCode; mainView.FFactoryCode = teamInfo.FProdFactoryCode;
mainView.FMaterialID = mainMater.FID;
db.Insertable(mainView).IgnoreColumns(true).ExecuteCommand(); db.Insertable(mainView).IgnoreColumns(true).ExecuteCommand();
} }
//成品视图 //成品视图

@ -64,6 +64,71 @@ namespace FactorySystemBll
return viewList; return viewList;
} }
/// <summary>
/// 根据协同ID获取物料视图
/// </summary>
public List<Dictionary<string, object>> GetListByTeamId2(int teamId, int currUserId, out List<int> materialId, out string FGuaranteePeriod, out string FStorageConditions, bool byFactory = true)
{
TUser currUser = null;
FGuaranteePeriod = "";
FStorageConditions = "";
//if (byFactory == true) currUser = BaseBll.GetTempModel<TUser>(currUserId, "FFactoryID");
var db = AppSettingsHelper.GetSqlSugar();
List<Dictionary<string, object>> viewList = db.Queryable<TFS_ViewMaterial, TFS_Material>((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<object>("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<Dictionary<string, object>> viewList1 = db.Queryable<TFS_ViewMaterial, TFS_Material>((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<object>("distinct a.*,b.FTypeID1,b.FTypeID2,b.FK3Code,b.FK3Name,b.FK3ShortCode").ToDictionaryList();
List<TFS_MaterialInfo> 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<TFS_FTeamwork>().Where(s => s.FID == teamId).First();
TFS_PackageMain packAge = db.Queryable<TFS_PackageMain>().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;
}
/// <summary> /// <summary>
/// 根据物料获取基本信息 /// 根据物料获取基本信息
/// </summary> /// </summary>

@ -99,7 +99,8 @@ namespace FactorySystemModel.EnumModel
= 11, = 11,
= 12, = 12,
= 13, = 13,
= 14 = 14,
=15
} }
/// <summary> /// <summary>
@ -107,6 +108,7 @@ namespace FactorySystemModel.EnumModel
/// </summary> /// </summary>
public enum ProcessType public enum ProcessType
{ {
=0,
= 1, = 1,
= 2, = 2,
= 3, = 3,

@ -92,7 +92,6 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<None Include="app.config" /> <None Include="app.config" />
<None Include="db\FactorySystem1013.bak" />
<None Include="packages.config" /> <None Include="packages.config" />
</ItemGroup> </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

Loading…
Cancel
Save