commit by yzf

master
Yang 3 years ago
parent 45e7782eeb
commit b9d3142cdc

@ -33,6 +33,20 @@ namespace FactorySystemApi.Controllers
UpdateField = ""; UpdateField = "";
} }
/// <summary>
/// 更具试验号获取配方视图
/// </summary>
/// <param name="data"></param>
/// <returns></returns>
[HttpPost]
public ApiResult GetFormulaByFTestCode(Dictionary<string,object> data)
{
ApiResult apiResult = new ApiResult();
return ExceptionHelper.TryReturnException(() =>
{
apiResult.Data = FormulaBll.GetFormulaByFTestCode(data["code"].ToString());
}, apiResult, Request);
}
/// <summary> /// <summary>
/// 获取配方集合 /// 获取配方集合
/// </summary> /// </summary>

@ -149,8 +149,8 @@ namespace FactorySystemApi.Controllers
//创建 TFS_FTeamwork //创建 TFS_FTeamwork
int teamId = BaseBll.InsertDataModel(inParam, "TFS_HalfMaterialFTeamwork"); int teamId = BaseBll.InsertDataModel(inParam, "TFS_HalfMaterialFTeamwork");
ids = MaterialTeamworkBll.UpdateFormula(inParam["FTestCode"].ToString(), inParam["FNewTestCode"].ToString()); List<TFS_Material> editMaterialList = MaterialTeamworkBll.UpdateFormula(inParam["FTestCode"].ToString(), inParam["FNewTestCode"].ToString(), teamId);
ids = editMaterialList.Select(m => m.FID).Distinct().ToList();
apiResult.Data = teamId; apiResult.Data = teamId;
if (teamId > 0) if (teamId > 0)
@ -164,43 +164,15 @@ namespace FactorySystemApi.Controllers
if (state.ToString().Contains("1")) if (state.ToString().Contains("1"))
{ {
TFS_HalfMaterialFTeamwork teamwork = BaseBll.GetTempModel<TFS_HalfMaterialFTeamwork>(teamId); TFS_HalfMaterialFTeamwork teamwork = BaseBll.GetTempModel<TFS_HalfMaterialFTeamwork>(teamId);
List<TFS_Material> materialList = MaterialTeamworkBll.CheckMaterialListByTest2(teamwork.FNewTestCode, teamwork.FCreateFactoryID);
if (materialList.Count == 0)
{
MaterialTeamworkBll.CreateProductView(teamwork, null, user.FID);
//开始BOM下载
DockGetBomData(teamwork.FID, user.FID);
}
else
{
MaterialTeamworkBll.CreateProductView(teamwork, materialList, user.FID);
MaterialTeamworkBll.HasMaterialTestCode(teamwork);
/** MaterialTeamworkBll.CreateProductView(teamwork, editMaterialList, user.FID);
* 20230414 //开始BOM下载
* DockGetBomData(teamwork.FID, user.FID);
* MaterialTeamworkBll.HasMaterialTestCode(teamwork);
* **/
BaseBll.CreateTaskData2(teamwork.FID, user.FID, "1"); //新增物料分类事项
BaseBll.UpdateTeamProcess2(teamId, (int)Constant.HalfMaterialProcessType., 2, 1); // 更新物料分类流程
////补充包材规格 BaseBll.CreateTaskData2(teamwork.FID, user.FID, "1"); //新增物料分类事项
//BaseBll.CreateTaskData(teamId, user.FID, "14"); BaseBll.UpdateTeamProcess2(teamId, (int)Constant.HalfMaterialProcessType., 2, 1); // 更新物料分类流程
////成品视图
//BaseBll.CreateTaskData(teamwork.FID, user.FID, "3", teamwork.FCreateFactoryID + "," + teamwork.FProdFactoryID);
////成品视图物料组复核,有权限的所有
//BaseBll.CreateTaskData(teamwork.FID, user.FID, "12");
//teamwork = BaseBll.GetTempModel<TFS_FTeamwork>(teamId);
//if (teamwork.FPackID == -1) {
// //新增新包材事项
// BaseBll.CreateTaskData(teamId, user.FID, "9");
// BaseBll.UpdateTeamProcess(teamId, (int)Constant.ProcessType.组装BOM包含新包材, 2, 1);
//} else {
// 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);
}
} }
else else
{ {
@ -219,7 +191,7 @@ namespace FactorySystemApi.Controllers
catch (Exception ex) catch (Exception ex)
{ {
//失败则把修改的更新回去 //失败则把修改的更新回去
ids = MaterialTeamworkBll.UpdateFormula(inParam["FTestCode"].ToString(), inParam["FNewTestCode"].ToString(),string.Join(",",ids)); MaterialTeamworkBll.UpdateFormula(inParam["FTestCode"].ToString(), inParam["FNewTestCode"].ToString(),0,string.Join(",",ids));
throw; throw;
} }
@ -326,7 +298,7 @@ namespace FactorySystemApi.Controllers
{ {
inParam.TryGetValue("FViewType", out object objType); inParam.TryGetValue("FViewType", out object objType);
int intType = null == objType ? (int)Constant.TeamViewType. : int.Parse(objType.ToString()); int intType = null == objType ? (int)Constant.TeamViewType. : int.Parse(objType.ToString());
string selectSql = "", joinSql = "", whereSql = string.Format("TFS_FTeamwork.FID={0} ", inParam["FTeamID"]); string selectSql = "", joinSql = "", whereSql = string.Format("TFS_HalfMaterialFTeamwork.FID={0} ", inParam["FTeamID"]);
string basePath = AppDomain.CurrentDomain.BaseDirectory.Trim('\\'); string basePath = AppDomain.CurrentDomain.BaseDirectory.Trim('\\');
string savePath = basePath + string.Format("\\File\\Temp\\{0}_{1}\\", inParam["FTeamID"], intType); string savePath = basePath + string.Format("\\File\\Temp\\{0}_{1}\\", inParam["FTeamID"], intType);
if (!Directory.Exists(savePath)) Directory.CreateDirectory(savePath); if (!Directory.Exists(savePath)) Directory.CreateDirectory(savePath);
@ -337,11 +309,11 @@ namespace FactorySystemApi.Controllers
case (int)Constant.TeamViewType.: case (int)Constant.TeamViewType.:
savePath += Constant.TeamViewType..ToString(); savePath += Constant.TeamViewType..ToString();
//原始配方 //原始配方
whereSql = string.Format(@"dbo.StrExistInStr(TFS_ViewMaterial.FMaterialID,(select FMaterialFormulaIDs from TFS_FTeamwork where FID={0}))>0 whereSql = string.Format(@"dbo.StrExistInStr(TFS_ViewMaterial.FMaterialID,(select FMaterialFormulaIDs from TFS_HalfMaterialFTeamwork where FID={0}))>0
and TFS_ViewMaterial.FFactoryID=(select FProdFactoryID from TFS_FTeamwork where FID={0})", inParam["FTeamID"]); and TFS_ViewMaterial.FFactoryID=(select FProdFactoryID from TFS_HalfMaterialFTeamwork where FID={0})", inParam["FTeamID"]);
//生产、计划配方 //生产、计划配方
joinSql = string.Format(@"(dbo.StrExistInStr(TFS_ViewMaterial.FMaterialID,(select FMaterialFormulaIDs from TFS_FTeamwork where FID={0}))>0 joinSql = string.Format(@"(dbo.StrExistInStr(TFS_ViewMaterial.FMaterialID,(select FMaterialFormulaIDs from TFS_HalfMaterialFTeamwork where FID={0}))>0
and TFS_Material.FSuccedaneumID<1)and TFS_ViewMaterial.FFactoryID=(select FProdFactoryID from TFS_FTeamwork where FID={0})", and TFS_Material.FSuccedaneumID<1)and TFS_ViewMaterial.FFactoryID=(select FProdFactoryID from TFS_HalfMaterialFTeamwork where FID={0})",
inParam["FTeamID"]); inParam["FTeamID"]);
break; break;
case (int)Constant.TeamViewType.线: case (int)Constant.TeamViewType.线:
@ -375,12 +347,12 @@ namespace FactorySystemApi.Controllers
case (int)Constant.TeamViewType.BOM: case (int)Constant.TeamViewType.BOM:
savePath += Constant.TeamViewType.BOM.ToString(); savePath += Constant.TeamViewType.BOM.ToString();
//一级半成品、包材→无替代料的 //一级半成品、包材→无替代料的
whereSql = string.Format(@"(dbo.StrExistInStr(TFS_ViewMaterial.FMaterialID,(select FMaterialHalfIDs from TFS_FTeamwork where FID={0}))>0 or whereSql = string.Format(@"(dbo.StrExistInStr(TFS_ViewMaterial.FMaterialID,(select FMaterialHalfIDs from TFS_HalfMaterialFTeamwork where FID={0}))>0 or
TFS_ViewMaterial.FMaterialID in(select FMaterialID from TFS_PackageChild where FTeamID={0} or TFS_ViewMaterial.FMaterialID in(select FMaterialID from TFS_PackageChild where FTeamID={0} or
FPackageID=(select FPackID from TFS_FTeamwork where FID={0}))) FPackageID=(select FPackID from TFS_HalfMaterialFTeamwork where FID={0})))
", inParam["FTeamID"]); ", inParam["FTeamID"]);
//只要生产工厂 //只要生产工厂
whereSql += string.Format(" and TFS_ViewMaterial.FFactoryID=(select FProdFactoryID from TFS_FTeamwork where FID={0})", inParam["FTeamID"]); whereSql += string.Format(" and TFS_ViewMaterial.FFactoryID=(select FProdFactoryID from TFS_HalfMaterialFTeamwork where FID={0})", inParam["FTeamID"]);
break; break;
case (int)Constant.TeamViewType.: case (int)Constant.TeamViewType.:
default: default:
@ -572,9 +544,9 @@ namespace FactorySystemApi.Controllers
TFS_HalfMaterialFTeamwork teamwork = BaseBll.GetTempModel<TFS_HalfMaterialFTeamwork>(teamId); TFS_HalfMaterialFTeamwork teamwork = BaseBll.GetTempModel<TFS_HalfMaterialFTeamwork>(teamId);
try try
{ {
TFS_Formula formula = BaseBll.GetTempModel<TFS_Formula>(teamwork.FFormulaID); TFS_Formula formula = BaseBll.GetTempModel<TFS_Formula>(string.Format("FTestCode='{0}'", teamwork.FNewTestCode));
OAService oAService = new OAService(); OAService oAService = new OAService();
specifList[0].Code = formula.FTestCode; specifList[0].Code = teamwork.FTestCode;
specifList[0].Version = formula.FVersionCode; specifList[0].Version = formula.FVersionCode;
RestResult restResult = oAService.GetSpecificationsList(specifList.ToArray()); RestResult restResult = oAService.GetSpecificationsList(specifList.ToArray());
string bomStr = restResult.data == null ? "[]" : restResult.data.ToString(); string bomStr = restResult.data == null ? "[]" : restResult.data.ToString();
@ -818,15 +790,27 @@ namespace FactorySystemApi.Controllers
private void CreateExeclFile(int intType, string savePath, string selectSql, string whereSql, string joinSql, string teamId, string halfId) private void CreateExeclFile(int intType, string savePath, string selectSql, string whereSql, string joinSql, string teamId, string halfId)
{ {
List<TFS_ViewFieldInfo> filedList = MaterialTeamworkBll.GetTeamworkViewField(intType); List<TFS_ViewFieldInfo> filedList = MaterialTeamworkBll.GetTeamworkViewField(intType);
List<string> fieldLists = new List<string> { "父项编码", "父项描述", "基本数量" };
foreach (TFS_ViewFieldInfo field in filedList) foreach (TFS_ViewFieldInfo field in filedList)
{ {
if (string.IsNullOrEmpty(field.FField)) if (string.IsNullOrEmpty(field.FField))
{ {
selectSql += string.Format("'{0}' as '{1}'", string.IsNullOrEmpty(field.FDefault) ? "" : field.FDefault, field.FName); string str = field.FDefault;
if (fieldLists.Contains(field.FName))
{
str=field.FDefault.Replace("a.FTeamID", "a.FHalfMaterialTeamID");
}
selectSql += string.Format("'{0}' as '{1}'", string.IsNullOrEmpty(field.FDefault) ? "" : str, field.FName);
} }
else else
{ {
selectSql += string.Format("isnull({0},'') as '{1}'", field.FField, field.FName); string str = field.FField;
if (fieldLists.Contains(field.FName))
{
str = field.FField.Replace("a.FTeamID", "a.FHalfMaterialTeamID");
}
selectSql += string.Format("isnull({0},'') as '{1}'", str, field.FName);
} }
selectSql += ","; selectSql += ",";
} }
@ -887,7 +871,7 @@ namespace FactorySystemApi.Controllers
{ {
//原始配方 //原始配方
DataTable dataList1 = MaterialTeamworkBll.GetTeamworkViewData2(selectSql.Trim(','), whereSql); DataTable dataList1 = MaterialTeamworkBll.GetTeamworkViewData2(selectSql.Trim(','), whereSql);
TFS_FTeamwork teamwork = BaseBll.GetTempModel<TFS_FTeamwork>("FID=" + teamId); TFS_HalfMaterialFTeamwork teamwork = BaseBll.GetTempModel<TFS_HalfMaterialFTeamwork>("FID=" + teamId);
List<BomFormulaDto> bfList = JsonConvert.DeserializeObject<List<BomFormulaDto>>(teamwork.FBomFormula); List<BomFormulaDto> bfList = JsonConvert.DeserializeObject<List<BomFormulaDto>>(teamwork.FBomFormula);
//SetBFData(null, bfList, dataList1); //SetBFData(null, bfList, dataList1);
List<string> forIdList = teamwork.FMaterialFormulaIDs.Split(',').ToList(); List<string> forIdList = teamwork.FMaterialFormulaIDs.Split(',').ToList();

@ -59,6 +59,34 @@ namespace FactorySystemApi.Controllers
}, apiResult, Request); }, apiResult, Request);
} }
/// <summary>
/// 根据替换试验号TeamID获取物料视图
/// </summary>
[HttpPost]
public ApiResult GetListByHalfMaterialTeamId(Dictionary<string, object> inParam)
{
var apiResult = new ApiResult();
return ExceptionHelper.TryReturnException(() =>
{
if (Request.Properties["token"] is ApiAuthInfo user)
{
int teamId = int.Parse(inParam["teamId"].ToString());
apiResult.Data = new
{
columns = _viewBll.GetColumns(),
rows = _viewBll.GetListByHalfMaterialTeamId(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()
};
}
}, apiResult, Request);
}
/// <summary> /// <summary>
/// 根据物料路线ID获取物料视图 /// 根据物料路线ID获取物料视图
/// </summary> /// </summary>

@ -29,6 +29,12 @@ namespace FactorySystemBll
return AppSettingsHelper.GetSqlSugar().Queryable<TFS_Formula>().Where(s => s.FDeleted != isDelete).Distinct().ToList(); return AppSettingsHelper.GetSqlSugar().Queryable<TFS_Formula>().Where(s => s.FDeleted != isDelete).Distinct().ToList();
} }
public object GetFormulaByFTestCode(string code)
{
int isDelete = (int)Constant.DeleteCode.;
return AppSettingsHelper.GetSqlSugar().Queryable<TFS_Formula>().Where(s => s.FDeleted != isDelete&&s.FTestCode==code).First();
}
public List<FormulaRow> GetList(FormulaQuery tr, out int totalNumber) public List<FormulaRow> GetList(FormulaQuery tr, out int totalNumber)
{ {

@ -162,7 +162,7 @@ namespace FactorySystemBll
//} //}
SqlSugarClient db = AppSettingsHelper.GetSqlSugar(); SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
string searchKey = string.Format(@"a.FID AS 'FID',a.FTestCode AS 'FTestCode',b.FVersionCode AS 'FVersionCode',a.FNewTestCode AS 'NewFTestCode',c.FVersionCode AS 'NewFVersionCode',c.FType,a.FAddDate,d.FName,a.FDeleted AS 'FDeleted'"); string searchKey = string.Format(@"a.FID AS 'FID',a.FTestCode AS 'FTestCode',b.FVersionCode AS 'FVersionCode',a.FNewTestCode AS 'NewFTestCode',c.FVersionCode AS 'NewFVersionCode',c.FType,a.FAddDate,d.FName,a.FDeleted AS 'FDeleted',b.FDesc,c.FDesc AS 'NewFDesc',a.FMaterialHalfIDs");
var temp =db.Queryable<TFS_HalfMaterialFTeamwork, TFS_Formula, TFS_Formula, TUser>((a, b, c, d) => new JoinQueryInfos(JoinType.Left, a.FTestCode == b.FTestCode, JoinType.Left, a.FNewTestCode == c.FTestCode, JoinType.Left, a.FAddUser == d.FID)).Select<object>(searchKey); var temp =db.Queryable<TFS_HalfMaterialFTeamwork, TFS_Formula, TFS_Formula, TUser>((a, b, c, d) => new JoinQueryInfos(JoinType.Left, a.FTestCode == b.FTestCode, JoinType.Left, a.FNewTestCode == c.FTestCode, JoinType.Left, a.FAddUser == d.FID)).Select<object>(searchKey);
List<object> result = db.Queryable(temp).Where(string.Join(" and ", paramName), paramVal) List<object> result = db.Queryable(temp).Where(string.Join(" and ", paramName), paramVal)
@ -374,7 +374,7 @@ namespace FactorySystemBll
{ {
if (factory == null) if (factory == null)
{ {
string tempSql = @"select * from TFS_Factory where FID=(SELECT FCreateFactoryID FROM TFS_MaterialFTeamwork WHERE FID={0})"; string tempSql = @"select * from TFS_Factory where FID=(SELECT FCreateFactoryID FROM TFS_HalfMaterialFTeamwork WHERE FID={0})";
factory = db.SqlQueryable<TFS_Factory>(string.Format(tempSql, teamId)).First(); factory = db.SqlQueryable<TFS_Factory>(string.Format(tempSql, teamId)).First();
} }
if (factory != null) if (factory != null)
@ -403,7 +403,7 @@ namespace FactorySystemBll
hasCreate = isAddFormula = true; hasCreate = isAddFormula = true;
vItem.FFactoryID = teamInfo.FCreateFactoryID; vItem.FFactoryID = teamInfo.FCreateFactoryID;
vItem.FFactoryCode = teamInfo.FCreateFactoryCode; vItem.FFactoryCode = teamInfo.FCreateFactoryCode;
vItem.FTeamID = teamInfo.FID; vItem.FHalfMaterialTeamID = teamInfo.FID;
vItem.FMaterialID = mItem.FID; vItem.FMaterialID = mItem.FID;
vItem.FBaseMaterialGroup = mItem.FMaterialGroup; vItem.FBaseMaterialGroup = mItem.FMaterialGroup;
vItem.FBaseBasicMeter = mItem.FBaseUnit; vItem.FBaseBasicMeter = mItem.FBaseUnit;
@ -418,7 +418,7 @@ namespace FactorySystemBll
isAddFormula = true; isAddFormula = true;
vItem.FFactoryID = teamInfo.FProdFactoryID; vItem.FFactoryID = teamInfo.FProdFactoryID;
vItem.FFactoryCode = teamInfo.FProdFactoryCode; vItem.FFactoryCode = teamInfo.FProdFactoryCode;
vItem.FTeamID = teamInfo.FID; vItem.FHalfMaterialTeamID = teamInfo.FID;
vItem.FMaterialID = mItem.FID; vItem.FMaterialID = mItem.FID;
vItem.FBaseMaterialGroup = mItem.FMaterialGroup; vItem.FBaseMaterialGroup = mItem.FMaterialGroup;
vItem.FBaseBasicMeter = mItem.FBaseUnit; vItem.FBaseBasicMeter = mItem.FBaseUnit;
@ -780,7 +780,7 @@ namespace FactorySystemBll
/// <param name="testCode">原配方</param> /// <param name="testCode">原配方</param>
/// <param name="testCode2">新配方</param> /// <param name="testCode2">新配方</param>
/// <returns></returns> /// <returns></returns>
public List<int> UpdateFormula(string testCode, string testCode2,int temId, string idList="") public List<TFS_Material> UpdateFormula(string testCode, string testCode2,int temId, string idList="")
{ {
SqlSugarClient db = AppSettingsHelper.GetSqlSugar(); SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
@ -801,7 +801,7 @@ namespace FactorySystemBll
db.Ado.ExecuteCommand(sql); db.Ado.ExecuteCommand(sql);
return ids; return materialList;
} }
} }
} }

@ -197,6 +197,70 @@ namespace FactorySystemBll
} }
/// <summary>
/// 根据替换物料TeamID获取物料视图
/// </summary>
public List<Dictionary<string, object>> GetListByHalfMaterialTeamId(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.FHalfMaterialTeamID == 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>

Loading…
Cancel
Save