|  |  |  | @ -16,6 +16,7 @@ using System.Linq; | 
			
		
	
		
			
				
					|  |  |  |  | using SqlSugar; | 
			
		
	
		
			
				
					|  |  |  |  | using Aspose.Cells; | 
			
		
	
		
			
				
					|  |  |  |  | using System.Web; | 
			
		
	
		
			
				
					|  |  |  |  | using System.Web.Http.Results; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | namespace FactorySystemApi.Controllers | 
			
		
	
		
			
				
					|  |  |  |  | { | 
			
		
	
	
		
			
				
					|  |  |  | @ -812,6 +813,7 @@ namespace FactorySystemApi.Controllers | 
			
		
	
		
			
				
					|  |  |  |  |         public ApiResult UploadTeamworkFile() | 
			
		
	
		
			
				
					|  |  |  |  |         { | 
			
		
	
		
			
				
					|  |  |  |  |             ApiResult apiResult = new ApiResult(); | 
			
		
	
		
			
				
					|  |  |  |  |             Dictionary<string, List<string>> result = null; | 
			
		
	
		
			
				
					|  |  |  |  |             string filePath = ""; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             return ExceptionHelper.TryReturnException(() => | 
			
		
	
	
		
			
				
					|  |  |  | @ -835,8 +837,12 @@ namespace FactorySystemApi.Controllers | 
			
		
	
		
			
				
					|  |  |  |  |                         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                         ApiAuthInfo user = Request.Properties["token"] as ApiAuthInfo; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                         result = ReadTeamworkExcel(filePath); | 
			
		
	
		
			
				
					|  |  |  |  |                         //apiResult.Data = CheckUploadFile(fileList, FFuncType, user.FID); | 
			
		
	
		
			
				
					|  |  |  |  |                     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                     apiResult.Data = result; | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             }, apiResult, Request); | 
			
		
	
	
		
			
				
					|  |  |  | @ -845,33 +851,296 @@ namespace FactorySystemApi.Controllers | 
			
		
	
		
			
				
					|  |  |  |  |         /// <summary> | 
			
		
	
		
			
				
					|  |  |  |  |         /// 批量上传协同信息 | 
			
		
	
		
			
				
					|  |  |  |  |         /// </summary> | 
			
		
	
		
			
				
					|  |  |  |  |         public int ReadTeamworkExcel(string file) | 
			
		
	
		
			
				
					|  |  |  |  |         private Dictionary<string, List<string>> ReadTeamworkExcel(string file) | 
			
		
	
		
			
				
					|  |  |  |  |         { | 
			
		
	
		
			
				
					|  |  |  |  |             int teams = 0; | 
			
		
	
		
			
				
					|  |  |  |  |             Workbook wb = new Workbook("file"); | 
			
		
	
		
			
				
					|  |  |  |  |             Dictionary<string, List<string>> result = new Dictionary<string, List<string>>(); | 
			
		
	
		
			
				
					|  |  |  |  |             List<string> okList = new List<string>(); | 
			
		
	
		
			
				
					|  |  |  |  |             List<string> errorList = new List<string>(); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             result.Add("ok", okList); | 
			
		
	
		
			
				
					|  |  |  |  |             result.Add("error", errorList); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             Workbook wb = new Workbook(file); | 
			
		
	
		
			
				
					|  |  |  |  |             Worksheet ws = wb.Worksheets[0]; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             // 遍历工作表中的所有单元格,读取其中的数据 | 
			
		
	
		
			
				
					|  |  |  |  |             for (int row = 1; row <= ws.Cells.MaxDataRow; row++) | 
			
		
	
		
			
				
					|  |  |  |  |             { | 
			
		
	
		
			
				
					|  |  |  |  |                 string okStr = row + ":ok"; | 
			
		
	
		
			
				
					|  |  |  |  |                 string errStr = row + ":"; | 
			
		
	
		
			
				
					|  |  |  |  |                 bool isOk = true; | 
			
		
	
		
			
				
					|  |  |  |  |                 //ws.Cells[row, 0].Value; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                 Dictionary<string, object> inParam = new Dictionary<string, object>(); | 
			
		
	
		
			
				
					|  |  |  |  |                 var saleCode = ws.Cells[row, 0].Value; // 新增销售号 | 
			
		
	
		
			
				
					|  |  |  |  |                 var packCode = ws.Cells[row, 1].Value; // 包规 | 
			
		
	
		
			
				
					|  |  |  |  |                 var factoryName = ws.Cells[row, 2].Value; // 模式 要变化为工厂ID | 
			
		
	
		
			
				
					|  |  |  |  |                 var materialGroup = ws.Cells[row, 3].Value; // 物料组 要变换为物料组ID | 
			
		
	
		
			
				
					|  |  |  |  |                 var weightUnit = ws.Cells[row, 4].Value; // 计量单位 | 
			
		
	
		
			
				
					|  |  |  |  |                 var testCode = ws.Cells[row, 5].Value; // 试验号 要跟版本号一起查询出配方 | 
			
		
	
		
			
				
					|  |  |  |  |                 var versionCode = ws.Cells[row, 6].Value; // 版本号 | 
			
		
	
		
			
				
					|  |  |  |  |                 var state = ws.Cells[row, 7].Value; // 创建方式(新增/暂存) | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                 if (state != null && state.ToString().Equals("新增")) | 
			
		
	
		
			
				
					|  |  |  |  |                 { | 
			
		
	
		
			
				
					|  |  |  |  |                     state = 1; | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |                 else | 
			
		
	
		
			
				
					|  |  |  |  |                 { | 
			
		
	
		
			
				
					|  |  |  |  |                     state = 0; | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                 // 新增时进行非空校验 | 
			
		
	
		
			
				
					|  |  |  |  |                 if (state.ToString().Equals("1")) | 
			
		
	
		
			
				
					|  |  |  |  |                 { | 
			
		
	
		
			
				
					|  |  |  |  |                     if (saleCode == null || string.IsNullOrEmpty(saleCode.ToString())) | 
			
		
	
		
			
				
					|  |  |  |  |                     { | 
			
		
	
		
			
				
					|  |  |  |  |                         errStr = errStr + "新增销售号不能为空;"; | 
			
		
	
		
			
				
					|  |  |  |  |                         isOk = false; | 
			
		
	
		
			
				
					|  |  |  |  |                     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                     if (packCode == null || string.IsNullOrEmpty(packCode.ToString())) | 
			
		
	
		
			
				
					|  |  |  |  |                     { | 
			
		
	
		
			
				
					|  |  |  |  |                         errStr = errStr + "包规不能为空;"; | 
			
		
	
		
			
				
					|  |  |  |  |                         isOk = false; | 
			
		
	
		
			
				
					|  |  |  |  |                     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                     if (factoryName == null || string.IsNullOrEmpty(factoryName.ToString())) | 
			
		
	
		
			
				
					|  |  |  |  |                     { | 
			
		
	
		
			
				
					|  |  |  |  |                         errStr = errStr + "模式不能为空;"; | 
			
		
	
		
			
				
					|  |  |  |  |                         isOk = false; | 
			
		
	
		
			
				
					|  |  |  |  |                     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                     if (materialGroup == null || string.IsNullOrEmpty(materialGroup.ToString())) | 
			
		
	
		
			
				
					|  |  |  |  |                     { | 
			
		
	
		
			
				
					|  |  |  |  |                         errStr = errStr + "物料组不能为空;"; | 
			
		
	
		
			
				
					|  |  |  |  |                         isOk = false; | 
			
		
	
		
			
				
					|  |  |  |  |                     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                     if (weightUnit == null || string.IsNullOrEmpty(weightUnit.ToString())) | 
			
		
	
		
			
				
					|  |  |  |  |                     { | 
			
		
	
		
			
				
					|  |  |  |  |                         errStr = errStr + "计量单位不能为空;"; | 
			
		
	
		
			
				
					|  |  |  |  |                         isOk = false; | 
			
		
	
		
			
				
					|  |  |  |  |                     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                     if (testCode == null || string.IsNullOrEmpty(testCode.ToString())) | 
			
		
	
		
			
				
					|  |  |  |  |                     { | 
			
		
	
		
			
				
					|  |  |  |  |                         errStr = errStr + "试验号不能为空;"; | 
			
		
	
		
			
				
					|  |  |  |  |                         isOk = false; | 
			
		
	
		
			
				
					|  |  |  |  |                     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                     if (versionCode == null || string.IsNullOrEmpty(versionCode.ToString())) | 
			
		
	
		
			
				
					|  |  |  |  |                     { | 
			
		
	
		
			
				
					|  |  |  |  |                         errStr = errStr + "版本号不能为空;"; | 
			
		
	
		
			
				
					|  |  |  |  |                         isOk = false; | 
			
		
	
		
			
				
					|  |  |  |  |                     } | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                 // 校验未通过,继续下一条 | 
			
		
	
		
			
				
					|  |  |  |  |                 if (!isOk) | 
			
		
	
		
			
				
					|  |  |  |  |                 { | 
			
		
	
		
			
				
					|  |  |  |  |                     errorList.Add(errStr); | 
			
		
	
		
			
				
					|  |  |  |  |                     continue; | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                 // 获取需要转换的值 | 
			
		
	
		
			
				
					|  |  |  |  |                 // 获取工厂ID | 
			
		
	
		
			
				
					|  |  |  |  |                 TFS_Factory factory = TeamworkBll.GetFactoryIdByName(factoryName.ToString()); | 
			
		
	
		
			
				
					|  |  |  |  |                 if (factory == null) | 
			
		
	
		
			
				
					|  |  |  |  |                 { | 
			
		
	
		
			
				
					|  |  |  |  |                     errStr = errStr + "模式不正确;"; | 
			
		
	
		
			
				
					|  |  |  |  |                     isOk = false; | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |                 var createFactoryId = factory.FID; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                 // 获取物料组Id | 
			
		
	
		
			
				
					|  |  |  |  |                 if (!materialGroup.ToString().Contains("+")) | 
			
		
	
		
			
				
					|  |  |  |  |                 { | 
			
		
	
		
			
				
					|  |  |  |  |                     errStr = errStr + "物料组不正确;"; | 
			
		
	
		
			
				
					|  |  |  |  |                     isOk = false; | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |                 var materialGroupId = materialGroup.ToString().Split('+')[0]; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                 // 获取配方 | 
			
		
	
		
			
				
					|  |  |  |  |                 TFS_Formula formula = TeamworkBll.GetFormulaByTestCodeAndVersion(testCode.ToString(), versionCode.ToString()); | 
			
		
	
		
			
				
					|  |  |  |  |                 if (formula == null) | 
			
		
	
		
			
				
					|  |  |  |  |                 { | 
			
		
	
		
			
				
					|  |  |  |  |                     errStr = errStr + "试验号或版本号不正确;"; | 
			
		
	
		
			
				
					|  |  |  |  |                     isOk = false; | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |                 var formulaName = formula.FName + "+" + formula.FTestCode + "+" + formula.FVersionCode; | 
			
		
	
		
			
				
					|  |  |  |  |                 var formulaId = formula.FID; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                 // 校验未通过,继续下一条 | 
			
		
	
		
			
				
					|  |  |  |  |                 if (!isOk) | 
			
		
	
		
			
				
					|  |  |  |  |                 { | 
			
		
	
		
			
				
					|  |  |  |  |                     errorList.Add(errStr); | 
			
		
	
		
			
				
					|  |  |  |  |                     continue; | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                 inParam.Add("FMaterialType", "ZMAT"); | 
			
		
	
		
			
				
					|  |  |  |  |                 inParam.Add("FSaleCode", ws.Cells[row, 0].Value); | 
			
		
	
		
			
				
					|  |  |  |  |                 inParam.Add("FPackCode", ws.Cells[row, 1].Value); | 
			
		
	
		
			
				
					|  |  |  |  |                 inParam.Add("FCreateFactoryID", ws.Cells[row, 2].Value); | 
			
		
	
		
			
				
					|  |  |  |  |                 inParam.Add("FMaterialGroup", ws.Cells[row, 3].Value); | 
			
		
	
		
			
				
					|  |  |  |  |                 inParam.Add("FTestCode", ws.Cells[row, 4].Value); | 
			
		
	
		
			
				
					|  |  |  |  |                 inParam.Add("FWeightUnit", ws.Cells[row, 5].Value); | 
			
		
	
		
			
				
					|  |  |  |  |                 inParam.Add("FFormulaName", ws.Cells[row, 6].Value); | 
			
		
	
		
			
				
					|  |  |  |  |                 inParam.Add("FState", ws.Cells[row, 7].Value); | 
			
		
	
		
			
				
					|  |  |  |  |                 inParam.Add("FFormulaID", ""); | 
			
		
	
		
			
				
					|  |  |  |  |                 inParam.Add("FVersionCode", ""); | 
			
		
	
		
			
				
					|  |  |  |  |                 inParam.Add("FFormulaTestCode", ""); | 
			
		
	
		
			
				
					|  |  |  |  |                 inParam.Add("FSaleCode", saleCode); | 
			
		
	
		
			
				
					|  |  |  |  |                 inParam.Add("FPackCode", packCode); | 
			
		
	
		
			
				
					|  |  |  |  |                 inParam.Add("FCreateFactoryID", createFactoryId); | 
			
		
	
		
			
				
					|  |  |  |  |                 inParam.Add("FMaterialGroup", materialGroupId); | 
			
		
	
		
			
				
					|  |  |  |  |                 inParam.Add("FTestCode", testCode); | 
			
		
	
		
			
				
					|  |  |  |  |                 inParam.Add("FWeightUnit", weightUnit); | 
			
		
	
		
			
				
					|  |  |  |  |                 inParam.Add("FFormulaName", formulaName); | 
			
		
	
		
			
				
					|  |  |  |  |                 inParam.Add("FState", state); | 
			
		
	
		
			
				
					|  |  |  |  |                 inParam.Add("FFormulaID", formulaId); | 
			
		
	
		
			
				
					|  |  |  |  |                 inParam.Add("FVersionCode", versionCode); | 
			
		
	
		
			
				
					|  |  |  |  |                 inParam.Add("FFormulaTestCode", testCode); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                 string addTeamResult = AddTeam(inParam); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                 if (!string.IsNullOrEmpty(addTeamResult)) | 
			
		
	
		
			
				
					|  |  |  |  |                 { | 
			
		
	
		
			
				
					|  |  |  |  |                     errStr = errStr + addTeamResult + ";"; | 
			
		
	
		
			
				
					|  |  |  |  |                     errorList.Add(errStr); | 
			
		
	
		
			
				
					|  |  |  |  |                     continue; | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                 okList.Add(okStr); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             return result; | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         private string AddTeam(Dictionary<string, object> inParam) | 
			
		
	
		
			
				
					|  |  |  |  |         { | 
			
		
	
		
			
				
					|  |  |  |  |             string result = ""; | 
			
		
	
		
			
				
					|  |  |  |  |             //对接获取 | 
			
		
	
		
			
				
					|  |  |  |  |             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())) | 
			
		
	
		
			
				
					|  |  |  |  |             { | 
			
		
	
		
			
				
					|  |  |  |  |                 result = "获取MDM失败"; | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |             else if (TeamworkBll.CheckTeamName(inParam["FSaleCode"].ToString())) | 
			
		
	
		
			
				
					|  |  |  |  |             { | 
			
		
	
		
			
				
					|  |  |  |  |                 result = "销售号已存在"; | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |             else | 
			
		
	
		
			
				
					|  |  |  |  |             { | 
			
		
	
		
			
				
					|  |  |  |  |                 inParam.TryGetValue("FState", out object state); | 
			
		
	
		
			
				
					|  |  |  |  |                 if (null == state) | 
			
		
	
		
			
				
					|  |  |  |  |                 { | 
			
		
	
		
			
				
					|  |  |  |  |                     inParam["FState"] = state = 1; | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |                 inParam.Remove("FID"); | 
			
		
	
		
			
				
					|  |  |  |  |                 ApiAuthInfo user = Request.Properties["token"] as ApiAuthInfo; | 
			
		
	
		
			
				
					|  |  |  |  |                 if (inParam.ContainsKey("FAddUser")) | 
			
		
	
		
			
				
					|  |  |  |  |                 { | 
			
		
	
		
			
				
					|  |  |  |  |                     inParam["FAddUser"] = user.FID; | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |                 else | 
			
		
	
		
			
				
					|  |  |  |  |                 { | 
			
		
	
		
			
				
					|  |  |  |  |                     inParam.Add("FAddUser", user.FID); | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |                 if (inParam.ContainsKey("FEditUser")) | 
			
		
	
		
			
				
					|  |  |  |  |                 { | 
			
		
	
		
			
				
					|  |  |  |  |                     inParam["FEditUser"] = user.FID; | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |                 else | 
			
		
	
		
			
				
					|  |  |  |  |                 { | 
			
		
	
		
			
				
					|  |  |  |  |                     inParam.Add("FEditUser", user.FID); | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |                 if (inParam.ContainsKey("FEditDate")) | 
			
		
	
		
			
				
					|  |  |  |  |                 { | 
			
		
	
		
			
				
					|  |  |  |  |                     inParam["FEditDate"] = DateTime.Now; | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |                 else | 
			
		
	
		
			
				
					|  |  |  |  |                 { | 
			
		
	
		
			
				
					|  |  |  |  |                     inParam.Add("FEditDate", DateTime.Now); | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |                 //TUser tUser = BaseBll.GetTempModel<TUser>(user.FID); | 
			
		
	
		
			
				
					|  |  |  |  |                 TFS_Factory factory = BaseBll.GetTempModel<TFS_Factory>(int.Parse(inParam["FCreateFactoryID"].ToString())); | 
			
		
	
		
			
				
					|  |  |  |  |                 if (inParam.ContainsKey("FCreateFactoryID")) | 
			
		
	
		
			
				
					|  |  |  |  |                 { | 
			
		
	
		
			
				
					|  |  |  |  |                     inParam.Remove("FCreateFactoryID"); | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |                 inParam.Add("FCreateFactoryID", factory.FID); | 
			
		
	
		
			
				
					|  |  |  |  |                 inParam.Add("FCreateFactoryCode", factory.FCode); | 
			
		
	
		
			
				
					|  |  |  |  |                 inParam.Add("FCreateFactoryType", factory.FType); | 
			
		
	
		
			
				
					|  |  |  |  |                 if (factory.FType != (int)Constant.FactoryType.单工厂) | 
			
		
	
		
			
				
					|  |  |  |  |                 { | 
			
		
	
		
			
				
					|  |  |  |  |                     factory = BaseBll.GetTempModel<TFS_Factory>(factory.FFactoryID); | 
			
		
	
		
			
				
					|  |  |  |  |                     inParam.Add("FProdFactoryID", factory.FID); | 
			
		
	
		
			
				
					|  |  |  |  |                     inParam.Add("FProdFactoryCode", factory.FCode); | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |                 else | 
			
		
	
		
			
				
					|  |  |  |  |                 { | 
			
		
	
		
			
				
					|  |  |  |  |                     inParam.Add("FProdFactoryID", factory.FID); | 
			
		
	
		
			
				
					|  |  |  |  |                     inParam.Add("FProdFactoryCode", factory.FCode); | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |                 //创建 TFS_FTeamwork  | 
			
		
	
		
			
				
					|  |  |  |  |                 int teamId = BaseBll.InsertDataModel(inParam, "TFS_FTeamwork"); | 
			
		
	
		
			
				
					|  |  |  |  |                 //apiResult.Data = teamId; | 
			
		
	
		
			
				
					|  |  |  |  |                 if (teamId > 0) | 
			
		
	
		
			
				
					|  |  |  |  |                 { | 
			
		
	
		
			
				
					|  |  |  |  |                     inParam.Add("FID", teamId); | 
			
		
	
		
			
				
					|  |  |  |  |                     //创建流程 | 
			
		
	
		
			
				
					|  |  |  |  |                     int resultProcessCreate = TeamworkBll.CreateProcessData(teamId, user.FID); | 
			
		
	
		
			
				
					|  |  |  |  |                     if (resultProcessCreate > 0) | 
			
		
	
		
			
				
					|  |  |  |  |                     { | 
			
		
	
		
			
				
					|  |  |  |  |                         //直接走下一步 | 
			
		
	
		
			
				
					|  |  |  |  |                         if (state.ToString().Contains("1")) | 
			
		
	
		
			
				
					|  |  |  |  |                         { | 
			
		
	
		
			
				
					|  |  |  |  |                             TFS_FTeamwork teamwork = BaseBll.GetTempModel<TFS_FTeamwork>(teamId); | 
			
		
	
		
			
				
					|  |  |  |  |                             List<TFS_Material> materialList = TeamworkBll.CheckMaterialListByTest(teamwork.FFormulaTestCode, teamwork.FVersionCode); | 
			
		
	
		
			
				
					|  |  |  |  |                             if (materialList.Count == 0) | 
			
		
	
		
			
				
					|  |  |  |  |                             { | 
			
		
	
		
			
				
					|  |  |  |  |                                 TeamworkBll.CreateProductView(teamwork, null, user.FID); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                                 // 20230726 不论新增或暂存,都在创建协同时生成成品事项 | 
			
		
	
		
			
				
					|  |  |  |  |                                 BaseBll.CreateTaskData(teamwork.FID, user.FID, "3", teamwork.FCreateFactoryID + "," + teamwork.FProdFactoryID); | 
			
		
	
		
			
				
					|  |  |  |  |                                 BaseBll.UpdateTeamProcess(teamwork.FID, (int)Constant.ProcessType.成品视图, 2, 1); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                                 //开始BOM下载 | 
			
		
	
		
			
				
					|  |  |  |  |                                 DockGetBomData(teamwork.FID, user.FID); | 
			
		
	
		
			
				
					|  |  |  |  |                             } | 
			
		
	
		
			
				
					|  |  |  |  |                             else | 
			
		
	
		
			
				
					|  |  |  |  |                             { | 
			
		
	
		
			
				
					|  |  |  |  |                                 TeamworkBll.CreateProductView(teamwork, materialList, user.FID); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                                 // 20230726 不论新增或暂存,都在创建协同时生成成品事项 | 
			
		
	
		
			
				
					|  |  |  |  |                                 BaseBll.CreateTaskData(teamwork.FID, user.FID, "3", teamwork.FCreateFactoryID + "," + teamwork.FProdFactoryID); | 
			
		
	
		
			
				
					|  |  |  |  |                                 BaseBll.UpdateTeamProcess(teamwork.FID, (int)Constant.ProcessType.成品视图, 2, 1); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                                 TeamworkBll.HasMaterialTestCode(teamwork); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             return teams; | 
			
		
	
		
			
				
					|  |  |  |  |                                 /** | 
			
		
	
		
			
				
					|  |  |  |  |                                 * 20230414 需求变更 | 
			
		
	
		
			
				
					|  |  |  |  |                                 * 在创建各类事项前,先创建物料分类事项 | 
			
		
	
		
			
				
					|  |  |  |  |                                 * 此处创建各类事项流程中断,转移至物料分类事项提交后进行 | 
			
		
	
		
			
				
					|  |  |  |  |                                 * **/ | 
			
		
	
		
			
				
					|  |  |  |  |                                 BaseBll.CreateTaskData(teamwork.FID, user.FID, "15"); //新增物料分类事项 | 
			
		
	
		
			
				
					|  |  |  |  |                                 BaseBll.UpdateTeamProcess(teamId, (int)Constant.ProcessType.物料分类, 2, 1); // 更新物料分类流程 | 
			
		
	
		
			
				
					|  |  |  |  |                             } | 
			
		
	
		
			
				
					|  |  |  |  |                         } | 
			
		
	
		
			
				
					|  |  |  |  |                         else | 
			
		
	
		
			
				
					|  |  |  |  |                         { | 
			
		
	
		
			
				
					|  |  |  |  |                             // 20230726 不论新增或暂存,都在创建协同时生成成品事项 | 
			
		
	
		
			
				
					|  |  |  |  |                             TFS_FTeamwork teamwork = BaseBll.GetTempModel<TFS_FTeamwork>(teamId); | 
			
		
	
		
			
				
					|  |  |  |  |                             TeamworkBll.CreateProductView(teamwork, null, user.FID); | 
			
		
	
		
			
				
					|  |  |  |  |                             BaseBll.CreateTaskData(teamwork.FID, user.FID, "3", teamwork.FCreateFactoryID + "," + teamwork.FProdFactoryID); | 
			
		
	
		
			
				
					|  |  |  |  |                             BaseBll.UpdateTeamProcess(teamwork.FID, (int)Constant.ProcessType.成品视图, 2, 1); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                             BaseBll.CreateTaskData(teamId, user.FID, ((int)Constant.TaskType.配方选择).ToString()); | 
			
		
	
		
			
				
					|  |  |  |  |                             BaseBll.UpdateTeamProcess(teamId, (int)Constant.ProcessType.协同发起, 1, 1); | 
			
		
	
		
			
				
					|  |  |  |  |                         } | 
			
		
	
		
			
				
					|  |  |  |  |                     } | 
			
		
	
		
			
				
					|  |  |  |  |                     else | 
			
		
	
		
			
				
					|  |  |  |  |                     { | 
			
		
	
		
			
				
					|  |  |  |  |                         BaseBll.DeleteDataById(teamId, "TFS_FTeamwork", true); | 
			
		
	
		
			
				
					|  |  |  |  |                         result = "流程创建失败,请稍后重试"; | 
			
		
	
		
			
				
					|  |  |  |  |                     } | 
			
		
	
		
			
				
					|  |  |  |  |                     TeamworkBll.ChangeTeamProcess(teamId); | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             return result; | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         #endregion | 
			
		
	
	
		
			
				
					|  |  |  | 
 |