|  |  |  | @ -41,5 +41,114 @@ namespace FactorySystemApi.Controllers | 
			
		
	
		
			
				
					|  |  |  |  |             }, apiResult, Request); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         /// <summary> | 
			
		
	
		
			
				
					|  |  |  |  |         /// 组编号申请 | 
			
		
	
		
			
				
					|  |  |  |  |         /// </summary> | 
			
		
	
		
			
				
					|  |  |  |  |         [HttpPost] | 
			
		
	
		
			
				
					|  |  |  |  |         public ApiResult DockMaterialGroup(Dictionary<string, object> inParam) | 
			
		
	
		
			
				
					|  |  |  |  |         { | 
			
		
	
		
			
				
					|  |  |  |  |             ApiResult apiResult = new ApiResult(); | 
			
		
	
		
			
				
					|  |  |  |  |             return ExceptionHelper.TryReturnException(() => | 
			
		
	
		
			
				
					|  |  |  |  |             { | 
			
		
	
		
			
				
					|  |  |  |  |                 apiResult.Data = 0; | 
			
		
	
		
			
				
					|  |  |  |  |                 List<TFS_ViewMaterial> viewList = _taskBll.GetDockGroupView(inParam); | 
			
		
	
		
			
				
					|  |  |  |  |                 if (viewList.Count > 0) | 
			
		
	
		
			
				
					|  |  |  |  |                 { | 
			
		
	
		
			
				
					|  |  |  |  |                     ApiAuthInfo user = Request.Properties["token"] as ApiAuthInfo; | 
			
		
	
		
			
				
					|  |  |  |  |                     try | 
			
		
	
		
			
				
					|  |  |  |  |                     { | 
			
		
	
		
			
				
					|  |  |  |  |                         List<Sap_Group.dt_pp071_reqHEAD> itemList = new List<Sap_Group.dt_pp071_reqHEAD>(); | 
			
		
	
		
			
				
					|  |  |  |  |                         foreach (TFS_ViewMaterial view in viewList) | 
			
		
	
		
			
				
					|  |  |  |  |                         { | 
			
		
	
		
			
				
					|  |  |  |  |                             TFS_Material material = BaseBll.GetTempModel<TFS_Material>(view.FMaterialID); | 
			
		
	
		
			
				
					|  |  |  |  |                             Sap_Group.dt_pp071_reqHEAD reqHead = new Sap_Group.dt_pp071_reqHEAD | 
			
		
	
		
			
				
					|  |  |  |  |                             { | 
			
		
	
		
			
				
					|  |  |  |  |                                 WERKS = view.FFactoryCode,//工厂 | 
			
		
	
		
			
				
					|  |  |  |  |                                 DATUV = "20210101",//生效日期 | 
			
		
	
		
			
				
					|  |  |  |  |                                 MATNR = string.IsNullOrEmpty(view.FBaseMaterialCode) ? material.FCode : view.FBaseMaterialCode,//物料 | 
			
		
	
		
			
				
					|  |  |  |  |                                 PLNAL = "1",//组计数器 | 
			
		
	
		
			
				
					|  |  |  |  |                                 VERWE = "1",//用途 | 
			
		
	
		
			
				
					|  |  |  |  |                                 STATU = "4",//状态 | 
			
		
	
		
			
				
					|  |  |  |  |                                 LOSVN = "0",//从批量 | 
			
		
	
		
			
				
					|  |  |  |  |                                 LOSBS = "99999999",//到批量 | 
			
		
	
		
			
				
					|  |  |  |  |                                 KTEXT = material.FCraftPathDesc,//工艺路线描述   | 
			
		
	
		
			
				
					|  |  |  |  |                                 ITEM = new Sap_Group.dt_pp071_reqHEADITEM[1] | 
			
		
	
		
			
				
					|  |  |  |  |                             }; | 
			
		
	
		
			
				
					|  |  |  |  |                             bool is4 = view.FViewType == (int)Constant.ViewType.香基视图; | 
			
		
	
		
			
				
					|  |  |  |  |                             reqHead.ITEM[0] = new Sap_Group.dt_pp071_reqHEADITEM() | 
			
		
	
		
			
				
					|  |  |  |  |                             { | 
			
		
	
		
			
				
					|  |  |  |  |                                 BMSCH = view.FViewType == (int)Constant.ViewType.成品视图 ? "100" : "100000", //基本数量 | 
			
		
	
		
			
				
					|  |  |  |  |                                 PLNME = view.FViewType == (int)Constant.ViewType.成品视图 ? "KG" : "G", //工序单位 | 
			
		
	
		
			
				
					|  |  |  |  |                                 VORNR = "0010", //工序编号 | 
			
		
	
		
			
				
					|  |  |  |  |                                 ARBPL = material.FWorkCenter, //工作中心 | 
			
		
	
		
			
				
					|  |  |  |  |                                 STEUS = "ZP01", //控制码 | 
			
		
	
		
			
				
					|  |  |  |  |                                 LTXA1 = material.FCraftDesc, //工序描述 | 
			
		
	
		
			
				
					|  |  |  |  |                                 VGW01 = is4 ? "0.01" : "1", //人工(直接) | 
			
		
	
		
			
				
					|  |  |  |  |                                 VGE01 = "H", //人工直接工时单位 | 
			
		
	
		
			
				
					|  |  |  |  |                                 VGW02 = "", // 人工(间接)? | 
			
		
	
		
			
				
					|  |  |  |  |                                 VGE02 = "", //人工间接工时单位? | 
			
		
	
		
			
				
					|  |  |  |  |                                 VGW03 = "", //机器工时 | 
			
		
	
		
			
				
					|  |  |  |  |                                 VGE03 = "H", //机器工时单位 | 
			
		
	
		
			
				
					|  |  |  |  |                                 VGW04 = is4 ? "0.01" : "100", //电 | 
			
		
	
		
			
				
					|  |  |  |  |                                 VGE04 = "KWH", //电单位 | 
			
		
	
		
			
				
					|  |  |  |  |                                 VGW05 = "", //水? | 
			
		
	
		
			
				
					|  |  |  |  |                                 VGE05 = "", //水单位? | 
			
		
	
		
			
				
					|  |  |  |  |                                 VGW06 = is4 ? "0.01" : "100", //蒸汽 | 
			
		
	
		
			
				
					|  |  |  |  |                                 VGE06 = "TO", //蒸汽单位 | 
			
		
	
		
			
				
					|  |  |  |  |                                 VGW07 = is4 ? "0.01" : "100", //物耗仓储运输 | 
			
		
	
		
			
				
					|  |  |  |  |                                 VGE07 = "H", //物耗仓储运输单位 | 
			
		
	
		
			
				
					|  |  |  |  |                                 VGW08 = is4 ? "0.01" : "100", //其他 | 
			
		
	
		
			
				
					|  |  |  |  |                                 VGE08 = "H", //其他单位 | 
			
		
	
		
			
				
					|  |  |  |  |                                 VGW09 = "", //环保支出? | 
			
		
	
		
			
				
					|  |  |  |  |                                 VGE09 = "", //环保支出单位? | 
			
		
	
		
			
				
					|  |  |  |  |                             }; | 
			
		
	
		
			
				
					|  |  |  |  |                             itemList.Add(reqHead); | 
			
		
	
		
			
				
					|  |  |  |  |                         } | 
			
		
	
		
			
				
					|  |  |  |  |                         Sap_Group.si_pp071_mcs_senderService sapService = new Sap_Group.si_pp071_mcs_senderService() | 
			
		
	
		
			
				
					|  |  |  |  |                         { | 
			
		
	
		
			
				
					|  |  |  |  |                             Credentials = new System.Net.NetworkCredential() | 
			
		
	
		
			
				
					|  |  |  |  |                             { | 
			
		
	
		
			
				
					|  |  |  |  |                                 UserName = AppSettingsHelper.GetAppSettingVal("Sap_UserName"), | 
			
		
	
		
			
				
					|  |  |  |  |                                 Password = AppSettingsHelper.GetAppSettingVal("Sap_Password") | 
			
		
	
		
			
				
					|  |  |  |  |                             } | 
			
		
	
		
			
				
					|  |  |  |  |                         }; | 
			
		
	
		
			
				
					|  |  |  |  |                         Sap_Group.dt_pp071_req reqDatas = new Sap_Group.dt_pp071_req() | 
			
		
	
		
			
				
					|  |  |  |  |                         { | 
			
		
	
		
			
				
					|  |  |  |  |                             SOURCESYS = "MCS", | 
			
		
	
		
			
				
					|  |  |  |  |                             TARGETSYS = "SAP", | 
			
		
	
		
			
				
					|  |  |  |  |                             UPDATETIME = DateTime.Now.ToString("yyyyMMddHHmmss"), | 
			
		
	
		
			
				
					|  |  |  |  |                             HEAD = itemList.ToArray() | 
			
		
	
		
			
				
					|  |  |  |  |                         }; | 
			
		
	
		
			
				
					|  |  |  |  |                         Sap_Group.dt_pp071_resDATA[] resData = sapService.si_pp071_mcs_sender(reqDatas); | 
			
		
	
		
			
				
					|  |  |  |  |                         ExceptionHelper.AddSystemJournal(Request, reqDatas, resData); | 
			
		
	
		
			
				
					|  |  |  |  |                         for (int i = 0; i < viewList.Count; i++) | 
			
		
	
		
			
				
					|  |  |  |  |                         { | 
			
		
	
		
			
				
					|  |  |  |  |                             viewList[i].FGroupCode = (string.IsNullOrEmpty(resData[i].PLNNR) || resData[i].PLNNR == "null") ? "" : resData[i].PLNNR; | 
			
		
	
		
			
				
					|  |  |  |  |                         } | 
			
		
	
		
			
				
					|  |  |  |  |                         if (viewList.Find(s => string.IsNullOrEmpty(s.FGroupCode)) == null) | 
			
		
	
		
			
				
					|  |  |  |  |                         { | 
			
		
	
		
			
				
					|  |  |  |  |                             OperateLogBll.Add(2, viewList[0].FHalfMaterialTeamID, (int)Constant.TaskType.组编号申请, "组编号申请对接成功", user.FID); | 
			
		
	
		
			
				
					|  |  |  |  |                             apiResult.Data = _taskBll.DockMaterialGroup(viewList, user.FID); | 
			
		
	
		
			
				
					|  |  |  |  |                         } | 
			
		
	
		
			
				
					|  |  |  |  |                         else | 
			
		
	
		
			
				
					|  |  |  |  |                         { | 
			
		
	
		
			
				
					|  |  |  |  |                             string errorMsg = ""; | 
			
		
	
		
			
				
					|  |  |  |  |                             foreach (dt_pp071_resDATA res in resData) | 
			
		
	
		
			
				
					|  |  |  |  |                             { | 
			
		
	
		
			
				
					|  |  |  |  |                                 errorMsg += res.MATNR + " :" + res.MSGTX; | 
			
		
	
		
			
				
					|  |  |  |  |                             } | 
			
		
	
		
			
				
					|  |  |  |  |                             OperateLogBll.Add(2, viewList[0].FHalfMaterialTeamID, (int)Constant.TaskType.组编号申请, "组编号申请对接失败:" + errorMsg + "。", user.FID); | 
			
		
	
		
			
				
					|  |  |  |  |                             apiResult.Data = 0; | 
			
		
	
		
			
				
					|  |  |  |  |                         } | 
			
		
	
		
			
				
					|  |  |  |  |                     } | 
			
		
	
		
			
				
					|  |  |  |  |                     catch (Exception ex) | 
			
		
	
		
			
				
					|  |  |  |  |                     { | 
			
		
	
		
			
				
					|  |  |  |  |                         ExceptionHelper.WriteMessage("组编号申请对接失败:" + ex.Message, 1); | 
			
		
	
		
			
				
					|  |  |  |  |                         OperateLogBll.Add(2, viewList[0].FTeamID, (int)Constant.TaskType.组编号申请, "组编号申请对接失败:" + ex.Message, user.FID); | 
			
		
	
		
			
				
					|  |  |  |  |                     } | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |             }, apiResult, Request, inParam); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
	
		
			
				
					|  |  |  | 
 |