leo 3 years ago
commit a677c0a171

@ -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);
}
/// <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 对接相关
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>
/// 对接获取Bom数据
/// </summary>
@ -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;
}
/// <summary>
/// 递归梳理BOM
/// </summary>

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

@ -13,7 +13,7 @@ namespace FactorySystemApi.Controllers
/// 视图接口
/// </summary>
[UserLoginFilter]
public class View2Controller : BaseController<TFS_MaterialInfo>
public class ViewController : BaseController<TFS_MaterialInfo>
{
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<int> 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<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);
}

@ -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<TUser>().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);
}
/// <summary>
/// BOM梳理结果数据处理
/// </summary>
@ -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<TFS_Factory>(string.Format(tempSql, userId)).First();
string tempSql = @"select * from TFS_Factory where FID=(SELECT FCreateFactoryID FROM TFS_FTeamwork WHERE FID={0})";
factory = db.SqlQueryable<TFS_Factory>(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();
}
//成品视图

@ -68,6 +68,71 @@ namespace FactorySystemBll
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>

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

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

Loading…
Cancel
Save