/******************************************************************************* * Copyright(c) 2019 DongkeSoft All rights reserved. / Confidential * 类的信息: * 1.程序名称:PDAModuleService.cs * 2.功能描述:PDA模块WCF服务 * 编辑履历: * 作者 日期 版本 修改内容 * 徐伟 2019/10/23 1.00 新建 *******************************************************************************/ using System; using System.Reflection; using System.Collections.Generic; using System.Data; using System.IO; using System.ServiceModel; using System.ServiceModel.Activation; using Dongke.IBOSS.PRD.Basics.BaseResources; using Dongke.IBOSS.PRD.Basics.DataAccess; using Dongke.IBOSS.PRD.Basics.Library; using Dongke.IBOSS.PRD.Service.BarcodePrintService; using Dongke.IBOSS.PRD.Service.CommonModuleLogic; using Dongke.IBOSS.PRD.Service.DataModels; using Dongke.IBOSS.PRD.Service.DKIBOSSPRDLogic; using Dongke.IBOSS.PRD.Service.HRModuleLogic; using Dongke.IBOSS.PRD.Service.PCModuleLogic; using Dongke.IBOSS.PRD.Service.PDAModuleLogic; using Dongke.IBOSS.PRD.Service.PMModuleLogic; using Dongke.IBOSS.PRD.Service.PublicModuleService; using Dongke.IBOSS.PRD.Service.ReportModuleLogic; using Dongke.IBOSS.PRD.Service.SmartDeviceService; using Dongke.IBOSS.PRD.Service.SystemModuleLogic; using Dongke.IBOSS.PRD.WCF.Contracts; using Dongke.IBOSS.PRD.WCF.DataModels; using Dongke.IBOSS.PRD.WCF.DataModels.ConfigModule; using Dongke.IBOSS.PRD.WCF.DataModels.HRModule; using Dongke.IBOSS.PRD.WCF.DataModels.PCModule; using Dongke.IBOSS.PRD.WCF.DataModels.PMModule; namespace Dongke.IBOSS.PRD.WCF.Services { public partial class PDAModuleService : IPDAModule { #region 三车间接口 //xuwei add 2019-10-28 //=================================================== public ServiceResultEntity CallLogicResult(string classMethodName, params object[] methodPara) { //类名称 string className = classMethodName.Substring(0, classMethodName.LastIndexOf(".")); //程序集名称 string dllName = classMethodName.Substring(0, classMethodName.IndexOf(".")); //方法名称 string methodName = classMethodName.Substring(classMethodName.LastIndexOf(".") + 1); //定义业务逻辑方法 string logicClassName = $"Dongke.IBOSS.PRD.Service.{className},{dllName}"; var logicClass = Type.GetType(logicClassName); //object logicInstance = Activator.CreateInstance(logicClass); MethodInfo logicMethod = logicClass.GetMethod(methodName); //调用业务逻辑方法 return (ServiceResultEntity)logicMethod.Invoke(null, methodPara); } public ActionResult CallActionResult(string methodName, params object[] methodPara) { //获取参数 string accountCode = methodPara[0].ToString(); string userCode = methodPara[1].ToString(); string userPassword = methodPara[2].ToString(); string sessionKey = methodPara[3].ToString(); //拼合业务逻辑调用参数 去除前4个参数 加入参数 sUserInfo object[] logicPara = new object[methodPara.Length - 3]; for (int i = 4; i < methodPara.Length; i++) { logicPara[i - 4] = methodPara[i]; } ActionResult action = this.DoPDACheck(accountCode, userCode, userPassword, sessionKey); //追加最后一个参数 sUserInfo logicPara[logicPara.Length - 1] = sUserInfo; try { // 验证请求头信息 if (action.Status != (int)Constant.PDAResult.Success) return action; ServiceResultEntity sre = CallLogicResult(methodName,logicPara); action.Result = JsonHelper.ToJson(sre.Data); action.Status = sre.Status == Constant.ServiceResultStatus.Success ? (int)Constant.PDAResult.Success : (int)Constant.PDAResult.Fail; action.Message = sre.Message; } catch (Exception ex) { OutputLog.TraceLog(LogPriority.Error, this.ToString(), System.Reflection.MethodBase.GetCurrentMethod().Name, ex.ToString(), LocalPath.LogExePath); action.Status = (int)Constant.PDAResult.Exception; action.Message = Constant.PDA_RESULT_EXCEPTION; } return action; } //=================================================== public ActionResult GetGroutingLineUserCode(string accountCode, string userCode, string userPassword, string sessionKey, string groutingLineCode) { return CallActionResult("PDAModuleLogic.PDAModuleLogic.GetGroutingLineUserCode", accountCode, userCode, userPassword, sessionKey, groutingLineCode ); } public ActionResult SetGroutingLineUserCode(string accountCode, string userCode, string userPassword, string sessionKey, string groutingLineCode) { return CallActionResult("PDAModuleLogic.PDAModuleLogic.SetGroutingLineUserCode", accountCode, userCode, userPassword, sessionKey, groutingLineCode ); } public ActionResult GetGroutingLineInfo(string accountCode, string userCode, string userPassword, string sessionKey, string groutingLineCode, string groutingDay) { return CallActionResult("PDAModuleLogic.PDAModuleLogic.GetGroutingLineInfo", accountCode, userCode, userPassword, sessionKey, groutingLineCode, groutingDay ); } public ActionResult GetGroutingLineDetail(string accountCode, string userCode, string userPassword, string sessionKey, string groutingLineCode, string groutingDay) { return CallActionResult("PDAModuleLogic.PDAModuleLogic.GetGroutingLineDetail", accountCode, userCode, userPassword, sessionKey, groutingLineCode, groutingDay ); } public ActionResult SetGroutingLineDetail(string accountCode, string userCode, string userPassword, string sessionKey, string groutingData) { return CallActionResult("PDAModuleLogic.PDAModuleLogic.SetGroutingLineDetail", accountCode, userCode, userPassword, sessionKey, groutingData ); } public ActionResult GetGroutingLineGrouting(string accountCode, string userCode, string userPassword, string sessionKey, string groutingLineCode, string groutingDay, string groutingBatchNo) { return CallActionResult("PDAModuleLogic.PDAModuleLogic.GetGroutingLineGrouting", accountCode, userCode, userPassword, sessionKey, groutingLineCode, groutingDay, groutingBatchNo ); } public ActionResult SetGroutingLineGrouting(string accountCode, string userCode, string userPassword, string sessionKey,string groutingData) { return CallActionResult("PDAModuleLogic.PDAModuleLogic.SetGroutingLineGrouting", accountCode, userCode, userPassword, sessionKey, groutingData ); } public ActionResult GetGroutingLineBatchNo(string accountCode, string userCode, string userPassword, string sessionKey, string groutingLineCode, string groutingDay) { return CallActionResult("PDAModuleLogic.PDAModuleLogic.GetGroutingLineBatchNo", accountCode, userCode, userPassword, sessionKey, groutingLineCode, groutingDay ); } public ActionResult GetGroutingNoGroutingReason(string accountCode, string userCode, string userPassword, string sessionKey) { return CallActionResult("PDAModuleLogic.PDAModuleLogic.GetGroutingNoGroutingReason", accountCode, userCode, userPassword, sessionKey ); } public ActionResult GetGroutingMouldBatchNo(string accountCode, string userCode, string userPassword, string sessionKey, string groutingMouldCode, string groutingDay) { return CallActionResult("PDAModuleLogic.PDAModuleLogic.GetGroutingMouldBatchNo", accountCode, userCode, userPassword, sessionKey, groutingMouldCode, groutingDay ); } public ActionResult GetGroutingMouldGrouting(string accountCode, string userCode, string userPassword, string sessionKey, string groutingMouldCode, string groutingDay, string groutingBatchNo) { return CallActionResult("PDAModuleLogic.PDAModuleLogic.GetGroutingMouldGrouting", accountCode, userCode, userPassword, sessionKey, groutingMouldCode, groutingDay, groutingBatchNo ); } public ActionResult GetGroutingMouldGroutingNext(string accountCode, string userCode, string userPassword, string sessionKey, string groutingMouldCode, string groutingDay, string groutingBatchNo) { return CallActionResult("PDAModuleLogic.PDAModuleLogic.GetGroutingMouldGroutingNext", accountCode, userCode, userPassword, sessionKey, groutingMouldCode, groutingDay, groutingBatchNo ); } public ActionResult BindGroutingBarCode(string accountCode, string userCode, string userPassword, string sessionKey, string groutingDailyDetailId, string barCode) { return CallActionResult("PDAModuleLogic.PDAModuleLogic.BindGroutingBarCode", accountCode, userCode, userPassword, sessionKey, groutingDailyDetailId, barCode ); } public ActionResult UnBindGroutingBarCode(string accountCode, string userCode, string userPassword, string sessionKey, string groutingDailyDetailId, string barCode) { return CallActionResult("PDAModuleLogic.PDAModuleLogic.UnBindGroutingBarCode", accountCode, userCode, userPassword, sessionKey, groutingDailyDetailId, barCode ); } public ActionResult UnBindGroutingLineBarCode(string accountCode, string userCode, string userPassword, string sessionKey, string groutingLineCode, string groutingDay, string groutingBatchNo) { return CallActionResult("PDAModuleLogic.PDAModuleLogic.UnBindGroutingLineBarCode", accountCode, userCode, userPassword, sessionKey, groutingLineCode, groutingDay, groutingBatchNo ); } public ActionResult SetGroutingScrap(string accountCode, string userCode, string userPassword, string sessionKey, string groutingDailyDetailId, string scrapFlag) { return CallActionResult("PDAModuleLogic.PDAModuleLogic.SetGroutingScrap", accountCode, userCode, userPassword, sessionKey, groutingDailyDetailId, scrapFlag ); } public ActionResult GetGroutingDailyDetail(string accountCode, string userCode, string userPassword, string sessionKey, string barCode) { return CallActionResult("PDAModuleLogic.PDAModuleLogic.GetGroutingDailyDetail", accountCode, userCode, userPassword, sessionKey, barCode ); } //xuwei end #endregion } }