/// <summary> /// TrackoutPackageNo /// </summary> /// <param name="obj">批次对象。</param> /// <param name="model">包装模型对象。</param> /// <returns>返回结果。</returns> private MethodReturnResult TrackOutPackageNo(ZPVMLotPackageViewModel model) { MethodReturnResult result = new MethodReturnResult(); //进行批次包装作业。 PackageParameter p = new PackageParameter() { Creator = User.Identity.Name, EquipmentCode = model.EquipmentCode, IsFinishPackage = model.IsFinishPackage, IsLastestPackage = model.IsLastestPackage, LineCode = model.LineCode, LotNumbers = new List <string>(), OperateComputer = Request.UserHostAddress, Operator = User.Identity.Name, PackageNo = model.PackageNo.ToUpper(), Remark = model.Description, RouteOperationName = model.RouteOperationName }; using (LotPackageServiceClient client = new LotPackageServiceClient()) { result = client.TrackOutPackage(p); if (result.Code == 0) { result.Message = string.Format("包装号 {0} 过账成功。" , model.PackageNo); } } return(result); }
public ActionResult UnPackage(string packageNo, int itemNo, string lotNumber) { MethodReturnResult result = new MethodReturnResult(); //进行批次包装作业。 PackageParameter p = new PackageParameter() { Creator = User.Identity.Name, LotNumbers = new List<string>(), OperateComputer = Request.UserHostAddress, Operator = User.Identity.Name, PackageNo = packageNo.ToUpper(), }; p.LotNumbers.Add(lotNumber.ToUpper()); try { //获取包装记录 using (PackageQueryServiceClient client = new PackageQueryServiceClient()) { MethodReturnResult<Package> rst1 = client.Get(packageNo); if (rst1.Code > 0 || rst1.Data == null) { return Json(rst1); } //判断包装记录目前是否处于包装中状态。 //if (rst1.Data.PackageState != EnumPackageState.Packaging) //{ // result.Code = 1001; // result.Message = string.Format("包装{0}为非{1}状态,不能删除。" // , packageNo // , EnumPackageState.Packaging.GetDisplayName()); // return Json(result); //} } using (LotPackageServiceClient client = new LotPackageServiceClient()) { result = client.UnPackage(p); if (result.Code == 0 ) { result.Message = string.Format("拆包({1})成功。" , p.PackageNo); } } return Json(result); } catch (Exception ex) { result.Code = 1000; result.Message = ex.Message; result.Detail = ex.ToString(); } // 如果我们进行到这一步时某个地方出错,则重新显示表单 return Json(result); }
private MethodReturnResult Package(ZPVMLotPackageViewModel model) { MethodReturnResult result = new MethodReturnResult(); //进行批次包装作业。 PackageParameter p = new PackageParameter() { Creator = User.Identity.Name, EquipmentCode = model.EquipmentCode, IsFinishPackage = model.IsFinishPackage, IsLastestPackage = model.IsLastestPackage, LineCode = model.LineCode, LotNumbers = new List <string>(), OperateComputer = Request.UserHostAddress, Operator = User.Identity.Name, Remark = model.Description, RouteOperationName = model.RouteOperationName }; if (model.PackageNo != null && model.PackageNo != "") { p.PackageNo = model.PackageNo.ToUpper().Trim(); } else { p.PackageNo = model.PackageNo.ToUpper(); } if (model.IsFinishPackage == false) { p.LotNumbers.Add(model.LotNumber.ToUpper()); } if (p.IsFinishPackage == false && model.CurrentQuantity == model.FullQuantity) { p.IsFinishPackage = true; model.IsFinishPackage = true; } using (LotPackageServiceClient client = new LotPackageServiceClient()) { result = client.Package(p); if (result.Code == 0 && model.IsFinishPackage == false) { result.Message = string.Format("批次 {0} 成功包装到({1})。" , model.LotNumber , model.PackageNo.ToUpper().Trim()); } else if (result.Code == 0 && model.IsFinishPackage == true) { result.Message = string.Format("包 {0} 已完成。" , model.PackageNo.ToUpper().Trim()); } } return(result); }
public void AddParameter(string Name, DBType Type, ParamDirection Direction, Int16 Size, object Value) { if ((short)Direction < 0 || (short)Direction > 3) { throw new Exception("Tipo ParamDirection incorrecto"); } if (Direction == ParamDirection.ParamInput && Value == null) { throw new Exception("Valor incorrecto cuando ParamDirection es Input"); } if ((short)Type < 1 || (short)Type > 13) { throw new Exception("Tipo DBType incorrecto"); } if (Type == DBType.dbCursor && Direction == ParamDirection.ParamInput) { throw new Exception("Tipo DBType.dbCursor incorrecto cuando ParamDirection es Input"); } PackageParameter iParameter = new PackageParameter(); iParameter.Name = Name; iParameter.Direction = (short)Direction; iParameter.Type = (short)Type; iParameter.Size = Size; iParameter.Flag = true; if (Type == DBType.dbCursor) { iParameter.Value = null; } else { iParameter.Value = Value.ToString(); } _Transaction.Parameters.Add(iParameter); }
internal static bool ParseParameters(string[] args, out string packagePath, out string targetDirectory, out int phase, out string[] parameters, out string logFilePath, out LogLevel logLevel, out bool help, out bool schema, out bool wait) { packagePath = null; targetDirectory = null; phase = -1; logFilePath = null; wait = false; help = false; schema = false; logLevel = LogLevel.Default; var prms = new List <string>(); var argIndex = -1; foreach (var arg in args) { argIndex++; if (arg.StartsWith("-")) { var verb = arg.Substring(1).ToUpper(); switch (verb) { case "?": help = true; break; case "HELP": help = true; break; case "SCHEMA": schema = true; break; case "WAIT": wait = true; break; } } else if (arg.StartsWith("PHASE:", StringComparison.OrdinalIgnoreCase)) { phase = int.Parse(arg.Substring(6)); } else if (arg.StartsWith("LOG:", StringComparison.OrdinalIgnoreCase)) { logFilePath = arg.Substring(4); } else if (arg.StartsWith("LOGLEVEL:", StringComparison.OrdinalIgnoreCase)) { logLevel = (LogLevel)Enum.Parse(typeof(LogLevel), arg.Substring(9)); } else if (arg.StartsWith("TARGETDIRECTORY:", StringComparison.OrdinalIgnoreCase)) { targetDirectory = arg.Substring(16).Trim('"'); } else if (PackageParameter.IsValidParameter(arg) && argIndex > 0) { // Recognise this as a 'parameter' only if it is not the first one // (which must be the package path without a param name prefix). prms.Add(arg); } else if (packagePath == null) { packagePath = arg; } } if (targetDirectory == null) { targetDirectory = Disk.SearchTargetDirectory(); } parameters = prms.ToArray(); return(true); }
public IList <AParameter> ConvertParameters( IList <ParameterNode> parameters, string resourcePrefix = "" ) { var resultList = new List <AParameter>(); if ((parameters == null) || !parameters.Any()) { return(resultList); } // convert all parameters var index = 0; foreach (var parameter in parameters) { ++index; var parameterName = parameter.Name ?? $"[{index}]"; AParameter result = null; var parameterFullName = resourcePrefix + parameter.Name; AtLocation(parameterName, () => { if (parameter.Secret != null) { // encrypted value AtLocation("Secret", () => { result = new SecretParameter { Name = parameter.Name, Description = parameter.Description, Secret = parameter.Secret, Export = parameter.Export, EncryptionContext = parameter.EncryptionContext }; }); } else if (parameter.Values != null) { // list of values AtLocation("Values", () => { result = new StringListParameter { Name = parameter.Name, Description = parameter.Description, Values = parameter.Values, Export = parameter.Export }; }); // TODO (2018-08-19, bjorg): this implementation creates unnecessary parameters if (parameter.Resource != null) { AtLocation("Resource", () => { // enumerate individual values with resource definition for each parameter.Parameters = new List <ParameterNode>(); for (var i = 1; i <= parameter.Values.Count; ++i) { parameter.Parameters.Add(new ParameterNode { Name = $"Index{i}", Value = parameter.Values[i - 1], Resource = parameter.Resource }); } }); } } else if (parameter.Package != null) { // package value result = new PackageParameter { Name = parameter.Name, Description = parameter.Description, DestinationBucketParameterName = parameter.Package.Bucket, DestinationKeyPrefix = parameter.Package.Prefix ?? "", PackagePath = parameter.Package.PackagePath }; } else if (parameter.Value != null) { if (parameter.Resource != null) { AtLocation("Resource", () => { // existing resource var resource = ConvertResource((string)parameter.Value, parameter.Resource); result = new ReferencedResourceParameter { Name = parameter.Name, Description = parameter.Description, Resource = resource }; }); } else if (parameter.Value is string text) { // plaintext value result = new StringParameter { Name = parameter.Name, Description = parameter.Description, Value = text }; } else { // plaintext value result = new ExpressionParameter { Name = parameter.Name, Description = parameter.Description, Expression = parameter.Value }; } } else if (parameter.Resource != null) { // managed resource AtLocation("Resource", () => { result = new CloudFormationResourceParameter { Name = parameter.Name, Description = parameter.Description, Resource = ConvertResource(null, parameter.Resource) }; }); } }); // check if there are nested parameters if (parameter.Parameters != null) { AtLocation("Parameters", () => { var nestedParameters = ConvertParameters( parameter.Parameters, parameterFullName ); // keep nested parameters only if they have values if (nestedParameters.Any()) { // create empty string parameter if collection has no value result = result ?? new StringParameter { Name = parameter.Name, Value = "", Description = parameter.Description, Export = parameter.Export }; result.Parameters = nestedParameters; } }); } // add parameter if (result != null) { result.FullName = parameterFullName; result.Export = parameter.Export; resultList.Add(result); } } return(resultList); }
public ActionResult Save(ZPVMLotPackageViewModel model) { MethodReturnResult result = new MethodReturnResult(); try { PackageParameter p = new PackageParameter() { LineCode = model.LineCode, RouteOperationName = model.RouteOperationName, EquipmentCode = model.EquipmentCode, LotNumbers = new List <string>(), IsLastestPackage = model.IsLastestPackage, Operator = User.Identity.Name, OperateComputer = Request.UserHostAddress }; if (model.PackageNo != null && model.PackageNo != "") { p.PackageNo = model.PackageNo.ToUpper().Trim(); } else { p.PackageNo = model.PackageNo; } p.LotNumbers.Add(model.LotNumber.ToString().Trim().ToUpper()); using (LotPackageServiceClient client = new LotPackageServiceClient()) { result = client.Package(p); if (result.Code == 0) { if (result.Detail == "1") { model.PackageNo = ""; } else { model.PackageNo = result.ObjectNo; } MethodReturnResult <ZPVMLotPackageViewModel> rstFinal = new MethodReturnResult <ZPVMLotPackageViewModel>() { Code = result.Code, Data = model, Message = string.Format("批次[{0}]包装到托[{1}]。" , model.LotNumber , result.ObjectNo) }; return(Json(rstFinal)); } } } catch (Exception ex) { result.Code = 1000; result.Message = ex.Message; result.Detail = ex.ToString(); } return(Json(result)); #region 注释 //model.LotNumber = model.LotNumber.ToUpper(); //if (!string.IsNullOrEmpty(model.PackageNo)) //{ // model.PackageNo = model.PackageNo.ToUpper(); //} ////获取批次数据。 //string lotNumber = model.LotNumber; //result = GetLot(lotNumber); //if (result.Code > 0) //{ // return Json(result); //} //MethodReturnResult<Lot> rst = result as MethodReturnResult<Lot>; //Lot obj = rst.Data; ////如果包装号为空。生成包装号。 //if (string.IsNullOrEmpty(model.PackageNo)) //{ // using (LotPackageServiceClient client = new LotPackageServiceClient()) // { // MethodReturnResult<string> rst1 = client.Generate(model.LotNumber, model.IsLastestPackage); // if (rst1.Code > 0) // { // return Json(rst1); // } // else // { // model.PackageNo = rst1.Data; // } // } //} //if (model.PackageNo.Length < 12 || model.PackageNo.Length > 13) //{ // result.Code = 1001; // result.Message = string.Format("包装托号{0}系统生成异常,请联系IT。" // , model.PackageNo.ToUpper()); // return Json(result); //} ////重新获取当前数量。 //using (PackageQueryServiceClient client = new PackageQueryServiceClient()) //{ // MethodReturnResult<Package> rst2 = client.Get(model.PackageNo); // if (rst2.Code == 1000) // { // return Json(rst2); // } // //检查包装状态 // if (rst2.Data != null && rst2.Data.PackageState != EnumPackageState.Packaging) // { // result.Code = 1001; // result.Message = string.Format("包 {0} 非 [{1}] 状态,不能包装。" // , model.PackageNo.ToUpper() // , EnumPackageState.Packaging.GetDisplayName()); // return Json(result); // } // //设置当前数量。 // if (rst2.Code <= 0 && rst2.Data != null) // { // model.CurrentQuantity = rst2.Data.Quantity; // } //} ////如果满包数量为空,获取满包数量 //if (model.FullQuantity == 0) //{ // using (WorkOrderRuleServiceClient client = new WorkOrderRuleServiceClient()) // { // MethodReturnResult<WorkOrderRule> rst1 = client.Get(new WorkOrderRuleKey() // { // OrderNumber = obj.OrderNumber, // MaterialCode = obj.MaterialCode // }); // if (rst1.Code == 0 // && rst1.Data != null) // { // model.FullQuantity = rst1.Data.FullPackageQty; // } // } //} //double newCurrentQuantity = model.CurrentQuantity + obj.Quantity; ////当前数量超过满包数量,不能继续包装。 //if (newCurrentQuantity > model.FullQuantity) //{ // result.Code = 1; // result.Message = string.Format("包({0}) 当前数量({1})加上批次({2})数量({3}),超过满包数量。" // , model.PackageNo.ToUpper() // , model.CurrentQuantity // , obj.Key // , obj.Quantity); // return Json(result); //} //model.CurrentQuantity = newCurrentQuantity; ////判断批次工序是否在当前工序。 //if (obj.RouteStepName != model.RouteOperationName) //{ // result.Code = 2; // result.Message = string.Format("批次({0})当前所在工序({1}),不能在({2})工序上操作。" // , obj.Key // , obj.RouteStepName // , model.RouteOperationName); // return Json(result); //} ////判断批次所在车间和当前线所在车间是否匹配。 ////获取线别车间。 //string locationName = string.Empty; //using (ProductionLineServiceClient client = new ProductionLineServiceClient()) //{ // MethodReturnResult<ProductionLine> r = client.Get(model.LineCode); // if (r.Code <= 0) // { // locationName = r.Data.LocationName; // } //} //if (!string.IsNullOrEmpty(locationName)) //{ // using (LocationServiceClient client = new LocationServiceClient()) // { // MethodReturnResult<Location> r = client.Get(locationName); // if (r.Code <= 0) // { // locationName = r.Data.ParentLocationName; // } // } //} ////检查批次车间和线别车间是否匹配。 //if (obj.LocationName != locationName) //{ // result.Code = 3; // result.Message = string.Format("批次({0})属于({1})车间,不能在({2})车间线别上操作。" // , lotNumber.ToUpper() // , obj.LocationName // , locationName); // return Json(result); //} // result = Package(model); // model.PackageNo = result.ObjectNo; // //返回包装结果。 // if (result.Code <= 0) // { // MethodReturnResult<ZPVMLotPackageViewModel> rstFinal = new MethodReturnResult<ZPVMLotPackageViewModel>() // { // Code = result.Code, // Data = model, // Detail = result.Detail, // HelpLink = result.HelpLink, // Message = result.Message // }; // return Json(rstFinal); // } //} //catch (Exception ex) //{ // result.Code = 1000; // result.Message = ex.Message; // result.Detail = ex.ToString(); //} //// 如果我们进行到这一步时某个地方出错,则重新显示表单 //return Json(result); #endregion }