commit by yzf

master
Yang 3 years ago
parent 45e7782eeb
commit b9d3142cdc

@ -33,6 +33,20 @@ namespace FactorySystemApi.Controllers
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>

@ -149,8 +149,8 @@ namespace FactorySystemApi.Controllers
//创建 TFS_FTeamwork
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;
if (teamId > 0)
@ -164,43 +164,15 @@ namespace FactorySystemApi.Controllers
if (state.ToString().Contains("1"))
{
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);
MaterialTeamworkBll.CreateProductView(teamwork, editMaterialList, user.FID);
//开始BOM下载
DockGetBomData(teamwork.FID, user.FID);
}
else
{
MaterialTeamworkBll.CreateProductView(teamwork, materialList, user.FID);
MaterialTeamworkBll.HasMaterialTestCode(teamwork);
/**
* 20230414
*
*
* **/
BaseBll.CreateTaskData2(teamwork.FID, user.FID, "1"); //新增物料分类事项
BaseBll.UpdateTeamProcess2(teamId, (int)Constant.HalfMaterialProcessType., 2, 1); // 更新物料分类流程
////补充包材规格
//BaseBll.CreateTaskData(teamId, user.FID, "14");
////成品视图
//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
{
@ -219,7 +191,7 @@ namespace FactorySystemApi.Controllers
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;
}
@ -326,7 +298,7 @@ namespace FactorySystemApi.Controllers
{
inParam.TryGetValue("FViewType", out object objType);
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 savePath = basePath + string.Format("\\File\\Temp\\{0}_{1}\\", inParam["FTeamID"], intType);
if (!Directory.Exists(savePath)) Directory.CreateDirectory(savePath);
@ -337,11 +309,11 @@ namespace FactorySystemApi.Controllers
case (int)Constant.TeamViewType.:
savePath += Constant.TeamViewType..ToString();
//原始配方
whereSql = string.Format(@"dbo.StrExistInStr(TFS_ViewMaterial.FMaterialID,(select FMaterialFormulaIDs from TFS_FTeamwork where FID={0}))>0
and TFS_ViewMaterial.FFactoryID=(select FProdFactoryID from TFS_FTeamwork where FID={0})", inParam["FTeamID"]);
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_HalfMaterialFTeamwork where FID={0})", inParam["FTeamID"]);
//生产、计划配方
joinSql = string.Format(@"(dbo.StrExistInStr(TFS_ViewMaterial.FMaterialID,(select FMaterialFormulaIDs from TFS_FTeamwork where FID={0}))>0
and TFS_Material.FSuccedaneumID<1)and TFS_ViewMaterial.FFactoryID=(select FProdFactoryID from TFS_FTeamwork where FID={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_HalfMaterialFTeamwork where FID={0})",
inParam["FTeamID"]);
break;
case (int)Constant.TeamViewType.线:
@ -375,12 +347,12 @@ namespace FactorySystemApi.Controllers
case (int)Constant.TeamViewType.BOM:
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
FPackageID=(select FPackID from TFS_FTeamwork where FID={0})))
FPackageID=(select FPackID from TFS_HalfMaterialFTeamwork where FID={0})))
", 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;
case (int)Constant.TeamViewType.:
default:
@ -572,9 +544,9 @@ namespace FactorySystemApi.Controllers
TFS_HalfMaterialFTeamwork teamwork = BaseBll.GetTempModel<TFS_HalfMaterialFTeamwork>(teamId);
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();
specifList[0].Code = formula.FTestCode;
specifList[0].Code = teamwork.FTestCode;
specifList[0].Version = formula.FVersionCode;
RestResult restResult = oAService.GetSpecificationsList(specifList.ToArray());
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)
{
List<TFS_ViewFieldInfo> filedList = MaterialTeamworkBll.GetTeamworkViewField(intType);
List<string> fieldLists = new List<string> { "父项编码", "父项描述", "基本数量" };
foreach (TFS_ViewFieldInfo field in filedList)
{
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
{
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 += ",";
}
@ -887,7 +871,7 @@ namespace FactorySystemApi.Controllers
{
//原始配方
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);
//SetBFData(null, bfList, dataList1);
List<string> forIdList = teamwork.FMaterialFormulaIDs.Split(',').ToList();

@ -59,6 +59,34 @@ namespace FactorySystemApi.Controllers
}, 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>
/// 根据物料路线ID获取物料视图
/// </summary>

@ -29,6 +29,12 @@ namespace FactorySystemBll
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)
{

@ -162,7 +162,7 @@ namespace FactorySystemBll
//}
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);
List<object> result = db.Queryable(temp).Where(string.Join(" and ", paramName), paramVal)
@ -374,7 +374,7 @@ namespace FactorySystemBll
{
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();
}
if (factory != null)
@ -403,7 +403,7 @@ namespace FactorySystemBll
hasCreate = isAddFormula = true;
vItem.FFactoryID = teamInfo.FCreateFactoryID;
vItem.FFactoryCode = teamInfo.FCreateFactoryCode;
vItem.FTeamID = teamInfo.FID;
vItem.FHalfMaterialTeamID = teamInfo.FID;
vItem.FMaterialID = mItem.FID;
vItem.FBaseMaterialGroup = mItem.FMaterialGroup;
vItem.FBaseBasicMeter = mItem.FBaseUnit;
@ -418,7 +418,7 @@ namespace FactorySystemBll
isAddFormula = true;
vItem.FFactoryID = teamInfo.FProdFactoryID;
vItem.FFactoryCode = teamInfo.FProdFactoryCode;
vItem.FTeamID = teamInfo.FID;
vItem.FHalfMaterialTeamID = teamInfo.FID;
vItem.FMaterialID = mItem.FID;
vItem.FBaseMaterialGroup = mItem.FMaterialGroup;
vItem.FBaseBasicMeter = mItem.FBaseUnit;
@ -780,7 +780,7 @@ namespace FactorySystemBll
/// <param name="testCode">原配方</param>
/// <param name="testCode2">新配方</param>
/// <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();
@ -801,7 +801,7 @@ namespace FactorySystemBll
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>

Loading…
Cancel
Save