diff --git a/FactorySystemApi/Controllers/FormulaController.cs b/FactorySystemApi/Controllers/FormulaController.cs
index 6315c97..16cbd23 100644
--- a/FactorySystemApi/Controllers/FormulaController.cs
+++ b/FactorySystemApi/Controllers/FormulaController.cs
@@ -33,6 +33,20 @@ namespace FactorySystemApi.Controllers
UpdateField = "";
}
+ ///
+ /// 更具试验号获取配方视图
+ ///
+ ///
+ ///
+ [HttpPost]
+ public ApiResult GetFormulaByFTestCode(Dictionary data)
+ {
+ ApiResult apiResult = new ApiResult();
+ return ExceptionHelper.TryReturnException(() =>
+ {
+ apiResult.Data = FormulaBll.GetFormulaByFTestCode(data["code"].ToString());
+ }, apiResult, Request);
+ }
///
/// 获取配方集合
///
diff --git a/FactorySystemApi/Controllers/HalfMaterialTeamworkController.cs b/FactorySystemApi/Controllers/HalfMaterialTeamworkController.cs
index 51531c2..9ae0d3d 100644
--- a/FactorySystemApi/Controllers/HalfMaterialTeamworkController.cs
+++ b/FactorySystemApi/Controllers/HalfMaterialTeamworkController.cs
@@ -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 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(teamId);
- List 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);
- /**
- * 20230414 需求变更
- * 在创建各类事项前,先创建物料分类事项
- * 此处创建各类事项流程中断,转移至物料分类事项提交后进行
- * **/
- BaseBll.CreateTaskData2(teamwork.FID, user.FID, "1"); //新增物料分类事项
- BaseBll.UpdateTeamProcess2(teamId, (int)Constant.HalfMaterialProcessType.物料分类, 2, 1); // 更新物料分类流程
+ MaterialTeamworkBll.CreateProductView(teamwork, editMaterialList, user.FID);
+ //开始BOM下载
+ DockGetBomData(teamwork.FID, user.FID);
+ MaterialTeamworkBll.HasMaterialTestCode(teamwork);
- ////补充包材规格
- //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(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);
- }
+ BaseBll.CreateTaskData2(teamwork.FID, user.FID, "1"); //新增物料分类事项
+ BaseBll.UpdateTeamProcess2(teamId, (int)Constant.HalfMaterialProcessType.物料分类, 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(teamId);
try
{
- TFS_Formula formula = BaseBll.GetTempModel(teamwork.FFormulaID);
+ TFS_Formula formula = BaseBll.GetTempModel(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 filedList = MaterialTeamworkBll.GetTeamworkViewField(intType);
+
+ List fieldLists = new List { "父项编码", "父项描述", "基本数量" };
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("FID=" + teamId);
+ TFS_HalfMaterialFTeamwork teamwork = BaseBll.GetTempModel("FID=" + teamId);
List bfList = JsonConvert.DeserializeObject>(teamwork.FBomFormula);
//SetBFData(null, bfList, dataList1);
List forIdList = teamwork.FMaterialFormulaIDs.Split(',').ToList();
diff --git a/FactorySystemApi/Controllers/ViewController.cs b/FactorySystemApi/Controllers/ViewController.cs
index f0be068..a44660f 100644
--- a/FactorySystemApi/Controllers/ViewController.cs
+++ b/FactorySystemApi/Controllers/ViewController.cs
@@ -59,6 +59,34 @@ namespace FactorySystemApi.Controllers
}, apiResult, Request);
}
+
+
+ ///
+ /// 根据替换试验号TeamID获取物料视图
+ ///
+ [HttpPost]
+ public ApiResult GetListByHalfMaterialTeamId(Dictionary 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 materialId, out string FGuaranteePeriod, out string FStorageConditions, !inParam.ContainsKey("FAllView")),
+ infos = _viewBll.GetMaterialInfoList(materialId, FGuaranteePeriod, FStorageConditions, user.FID),
+ types = _viewBll.GetMaterialTypeList()
+ };
+ }
+ }, apiResult, Request);
+ }
+
+
+
+
///
/// 根据物料路线ID获取物料视图
///
diff --git a/FactorySystemBll/FormulaBll.cs b/FactorySystemBll/FormulaBll.cs
index b9ae9de..fda9107 100644
--- a/FactorySystemBll/FormulaBll.cs
+++ b/FactorySystemBll/FormulaBll.cs
@@ -29,6 +29,12 @@ namespace FactorySystemBll
return AppSettingsHelper.GetSqlSugar().Queryable().Where(s => s.FDeleted != isDelete).Distinct().ToList();
}
+ public object GetFormulaByFTestCode(string code)
+ {
+ int isDelete = (int)Constant.DeleteCode.已删除;
+ return AppSettingsHelper.GetSqlSugar().Queryable().Where(s => s.FDeleted != isDelete&&s.FTestCode==code).First();
+ }
+
public List GetList(FormulaQuery tr, out int totalNumber)
{
diff --git a/FactorySystemBll/HalfMaterialTeamworkBll.cs b/FactorySystemBll/HalfMaterialTeamworkBll.cs
index 5e15f0c..2cbc2de 100644
--- a/FactorySystemBll/HalfMaterialTeamworkBll.cs
+++ b/FactorySystemBll/HalfMaterialTeamworkBll.cs
@@ -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((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