public ActionResult GetOrderNumbers() { IList <WorkOrder> lstWorkOrder = new List <WorkOrder>(); using (WorkOrderServiceClient client = new WorkOrderServiceClient()) { PagingConfig cfg = new PagingConfig() { IsPaging = false, Where = string.Format(@"CloseType='{0}' " , Convert.ToInt32(EnumCloseType.None)) }; MethodReturnResult <IList <WorkOrder> > result = client.Get(ref cfg); if (result.Code <= 0) { lstWorkOrder = result.Data; } } return(Json(from item in lstWorkOrder select new { Text = item.Key, Value = item.Key }, JsonRequestBehavior.AllowGet)); }
//获取工单号 public ActionResult GetOrderNumber(string q) { IList <WorkOrder> lstDetail = new List <WorkOrder>(); using (WorkOrderServiceClient client = new WorkOrderServiceClient()) { PagingConfig cfg = new PagingConfig() { IsPaging = false, Where = string.Format(@"Key LIKE '{0}%' AND OrderState='0' AND CloseType=0" , q), OrderBy = "Key" }; MethodReturnResult <IList <WorkOrder> > result = client.Get(ref cfg); if (result.Code <= 0 && result.Data != null) { lstDetail = result.Data; } } var lnq = from item in lstDetail select item.Key; return(Json(from item in lstDetail select new { @label = item.Key + "-" + item.MaterialCode, @value = item.Key, @ProductCode = item.MaterialCode }, JsonRequestBehavior.AllowGet)); }
public IEnumerable <SelectListItem> GetOrderNumbers() { using (WorkOrderServiceClient client = new WorkOrderServiceClient()) { PagingConfig cfg = new PagingConfig() { IsPaging = false, Where = string.Format(@"CloseType='{0}' " , Convert.ToInt32(EnumCloseType.None)) }; MethodReturnResult <IList <WorkOrder> > result = client.Get(ref cfg); if (result.Code == 0) { IEnumerable <SelectListItem> lst = from item in result.Data select new SelectListItem() { Text = item.Key, Value = item.Key }; return(lst); } return(new List <SelectListItem>()); } }
public ActionResult GetOrderNumber(string q) { using (WorkOrderServiceClient client = new WorkOrderServiceClient()) { PagingConfig cfg = new PagingConfig() { IsPaging = false, Where = string.Format("Key LIKE '{0}%' AND CloseType='{1}'" , q , Convert.ToInt32(EnumWorkOrderCloseType.None)) }; MethodReturnResult <IList <WorkOrder> > result = client.Get(ref cfg); if (result.Code <= 0) { return(Json(from item in result.Data select new { @label = item.Key, @value = item.Key }, JsonRequestBehavior.AllowGet)); } } return(Json(null, JsonRequestBehavior.AllowGet)); }
public async Task <ActionResult> Query(WorkOrderQueryViewModel model) { if (ModelState.IsValid) { using (WorkOrderServiceClient client = new WorkOrderServiceClient()) { await Task.Run(() => { StringBuilder where = new StringBuilder(); if (model != null) { if (!string.IsNullOrEmpty(model.OrderNumber)) { where.AppendFormat(" {0} Key LIKE '{1}%'" , where.Length > 0 ? "AND" : string.Empty , model.OrderNumber); } } PagingConfig cfg = new PagingConfig() { OrderBy = "Key", Where = where.ToString() }; MethodReturnResult <IList <WorkOrder> > result = client.Get(ref cfg); if (result.Code == 0) { ViewBag.PagingConfig = cfg; ViewBag.List = result.Data; } }); } } return(PartialView("_ListPartial")); }
/// <summary> 初始化查询界面 </summary> /// <returns></returns> public async Task <ActionResult> Index() { using (WorkOrderServiceClient client = new WorkOrderServiceClient()) { await Task.Run(() => { PagingConfig cfg = new PagingConfig() { Where = string.Format(" OrderState = '{0}'" , EnumWorkOrderState.Open.GetHashCode()), OrderBy = "EditTime DESC" }; MethodReturnResult <IList <WorkOrder> > result = client.Get(ref cfg); if (result.Code == 0) { ViewBag.PagingConfig = cfg; ViewBag.List = result.Data; } }); } return(View(new WorkOrderQueryViewModel())); }
public IEnumerable <SelectListItem> GetOrderNumberList() { IList <WorkOrder> lstValues = new List <WorkOrder>(); using (WorkOrderServiceClient client = new WorkOrderServiceClient()) { PagingConfig cfg = new PagingConfig() { IsPaging = false, Where = string.Format("CloseType='{0}'", Convert.ToInt32(EnumWorkOrderCloseType.None)), OrderBy = "Key" }; MethodReturnResult <IList <WorkOrder> > result = client.Get(ref cfg); if (result.Code <= 0 && result.Data != null) { lstValues = result.Data; } } return(from item in lstValues select new SelectListItem() { Text = item.Key, Value = item.Key }); }
public ActionResult GetProductNumber(string orderNumber) { using (WorkOrderServiceClient client = new WorkOrderServiceClient()) { MethodReturnResult <WorkOrder> result = client.Get(orderNumber); if (result.Code <= 0) { return(Json(result.Data.MaterialCode, JsonRequestBehavior.AllowGet)); } } return(Json(string.Empty, JsonRequestBehavior.AllowGet)); }
public ActionResult GetLineStoreNames(string orderNumber) { string locationName = string.Empty; using (WorkOrderServiceClient client = new WorkOrderServiceClient()) { MethodReturnResult <WorkOrder> result = client.Get(orderNumber); if (result.Code <= 0 && result.Data != null) { locationName = result.Data.LocationName; } } IList <LineStore> lstLineStore = new List <LineStore>(); using (LineStoreServiceClient client = new LineStoreServiceClient()) { PagingConfig cfg = new PagingConfig() { IsPaging = false, Where = string.Format("LocationName='{0}' AND Type='{1}' AND Status='{2}'" , locationName , Convert.ToInt32(EnumLineStoreType.Material) , Convert.ToInt32(EnumObjectStatus.Available)) }; MethodReturnResult <IList <LineStore> > result = client.Get(ref cfg); if (result.Code <= 0 && result.Data != null) { lstLineStore = result.Data; } } IList <Resource> lstResource = new List <Resource>(); using (UserAuthenticateServiceClient client = new UserAuthenticateServiceClient()) { MethodReturnResult <IList <Resource> > result = client.GetResourceList(User.Identity.Name, ResourceType.LineStore); if (result.Code <= 0 && result.Data != null) { lstResource = result.Data; } } var lnq = from item in lstLineStore where lstResource.Any(m => m.Data == item.Key) select new { Key = item.Key }; return(Json(lnq, JsonRequestBehavior.AllowGet)); }
//获取工单明细 public WorkOrder GetWorkOrder(string orderNumber) { WorkOrder workOrder = new WorkOrder(); using (WorkOrderServiceClient client = new WorkOrderServiceClient()) { MethodReturnResult <WorkOrder> result = client.Get(orderNumber); if (result.Code <= 0) { workOrder = result.Data; } } return(workOrder); }
public ActionResult GetOrderNumber(string q, string lineCode) { string where = string.Format(@"Key LIKE '{0}%' AND CloseType = '{1}' AND OrderState = '{2}'" , q , Convert.ToInt32(EnumWorkOrderCloseType.None) , EnumWorkOrderState.Open.GetHashCode()); if (lineCode != null && lineCode != "") { where += string.Format(@" AND EXISTS(FROM Location as loca WHERE loca.ParentLocationName = self.LocationName AND EXISTS(FROM ProductionLine as line WHERE line.LocationName = loca.Key AND line.Key = '{0}'))", lineCode); } //ProductionLine pl = new ProductionLine(); //Location l = new Location(); using (WorkOrderServiceClient client = new WorkOrderServiceClient()) { PagingConfig cfg = new PagingConfig() { IsPaging = false, Where = where, OrderBy = "EditTime DESC" }; MethodReturnResult <IList <WorkOrder> > result = client.Get(ref cfg); if (result.Code <= 0) { return(Json(from item in result.Data select new { @label = item.Key + " " + item.Description, @value = item.Key }, JsonRequestBehavior.AllowGet)); } } return(Json(null, JsonRequestBehavior.AllowGet)); }
//根据工单号获取工单产品编码 public ActionResult GetMaterialCodes(string orderNumber) { List <string> lstMaterial = new List <string>(); using (WorkOrderServiceClient client = new WorkOrderServiceClient()) { MethodReturnResult <WorkOrder> result = client.Get(orderNumber); if (result.Code <= 0 && result.Data != null) { string materialCode = result.Data.MaterialCode; lstMaterial.Add(materialCode); } } var lnq = from item in lstMaterial select item; return(Json(lnq.Distinct(), JsonRequestBehavior.AllowGet)); }
public WorkOrder GetWorkOrder(string workOrder) { using (WorkOrderServiceClient client = new WorkOrderServiceClient()) { PagingConfig cfg = new PagingConfig() { PageNo = 0, PageSize = 1, Where = string.Format("Key='{0}'", workOrder) }; MethodReturnResult <IList <WorkOrder> > result = client.Get(ref cfg); if (result.Code == 0 && result.Data != null & result.Data.Count > 0) { return(result.Data[0]); } } return(null); }
// // GET: /PPM/WorkOrder/ public async Task <ActionResult> Index() { using (WorkOrderServiceClient client = new WorkOrderServiceClient()) { await Task.Run(() => { PagingConfig cfg = new PagingConfig() { OrderBy = "Key" }; MethodReturnResult <IList <WorkOrder> > result = client.Get(ref cfg); if (result.Code == 0) { ViewBag.PagingConfig = cfg; ViewBag.List = result.Data; } }); } return(View(new WorkOrderQueryViewModel())); }
public async Task <ActionResult> PagingQuery(string where, string orderBy, int?currentPageNo, int?currentPageSize) { if (ModelState.IsValid) { int pageNo = currentPageNo ?? 0; int pageSize = currentPageSize ?? 20; if (Request["PageNo"] != null) { pageNo = Convert.ToInt32(Request["PageNo"]); } if (Request["PageSize"] != null) { pageSize = Convert.ToInt32(Request["PageSize"]); } using (WorkOrderServiceClient client = new WorkOrderServiceClient()) { await Task.Run(() => { PagingConfig cfg = new PagingConfig() { PageNo = pageNo, PageSize = pageSize, Where = where ?? string.Empty, OrderBy = orderBy ?? string.Empty }; MethodReturnResult <IList <WorkOrder> > result = client.Get(ref cfg); if (result.Code == 0) { ViewBag.PagingConfig = cfg; ViewBag.List = result.Data; } }); } } WorkOrderViewModel model = new WorkOrderViewModel(); return(PartialView("_ListPartial", model)); }
public ActionResult GetWorkOrderNo() { string prefix = string.Format("1MO-{0:yyMM}", DateTime.Now); int itemNo = 0; using (WorkOrderServiceClient client = new WorkOrderServiceClient()) { PagingConfig cfg = new PagingConfig() { PageNo = 0, PageSize = 1, Where = string.Format("Key LIKE '{0}%'", prefix), OrderBy = "Key Desc" }; MethodReturnResult <IList <WorkOrder> > result = client.Get(ref cfg); if (result.Code <= 0 && result.Data != null && result.Data.Count > 0) { string sItemNo = result.Data[0].Key.Replace(prefix, ""); int.TryParse(sItemNo, out itemNo); } } return(Json(prefix + (itemNo + 1).ToString("0000"), JsonRequestBehavior.AllowGet)); }
public IEnumerable <SelectListItem> GetOrderNumberList() { IList <WorkOrder> lst = new List <WorkOrder>(); PagingConfig cfg = new PagingConfig() { IsPaging = false, Where = " OrderState = 0" }; using (WorkOrderServiceClient client = new WorkOrderServiceClient()) { MethodReturnResult <IList <WorkOrder> > result = client.Get(ref cfg); if (result.Code <= 0 && result.Data != null) { lst = result.Data; } } return(from item in lst select new SelectListItem() { Text = item.Key, Value = item.Key }); }
public async Task <ActionResult> Save(SupplierToManufacturerViewModel model) { DateTime now = DateTime.Now; MethodReturnResult rst = new MethodReturnResult(); #region 界面录入信息合规性检查 using (MaterialServiceClient client = new MaterialServiceClient()) { MethodReturnResult <Material> result = client.Get(model.MaterialCode); if (result.Code != 0) { rst.Code = 1001; rst.Message = String.Format("MES中不存在物料编码:{0}", model.MaterialCode); return(Json(rst)); } else { if (model.OrderNumber != "*") { using (WorkOrderServiceClient clientOfWorkOrder = new WorkOrderServiceClient()) { MethodReturnResult <WorkOrder> resultOfOrder = clientOfWorkOrder.Get(model.OrderNumber); if (resultOfOrder.Code != 0) { rst.Code = 1001; rst.Message = String.Format("MES中不存在工单:{0}", model.OrderNumber); return(Json(rst)); } } } } } #endregion using (ERPClient erpClient = new ERPClient()) { MethodReturnResult <DataSet> ds_supplier = erpClient.GetERPSupplier(model.SupplierCode); MethodReturnResult <DataSet> ds_manufacturer = erpClient.GetByCodeERPManufacturer(model.ManufacturerCode); if (ds_supplier == null || ds_supplier.Data.Tables[0].Rows.Count == 0) { rst.Code = 1001; rst.Message = String.Format("ERP中不存在供应商:{0}", model.SupplierCode); return(Json(rst)); } if (ds_manufacturer == null || ds_manufacturer.Data.Tables[0].Rows.Count == 0) { rst.Code = 1001; rst.Message = String.Format("ERP中不存在生产厂商:{0}", model.ManufacturerCode); return(Json(rst)); } //新增转换供应商 using (SupplierServiceClient supplierClient = new SupplierServiceClient()) { MethodReturnResult <Supplier> result = await supplierClient.GetAsync(model.SupplierCode); if (result.Code != 0) { Supplier supplier = new Supplier() { Key = ds_supplier.Data.Tables[0].Rows[0]["CUSCODE"].ToString(), Name = ds_supplier.Data.Tables[0].Rows[0]["CUSNAME"].ToString(), NickName = " ", CreateTime = now, EditTime = now, Creator = User.Identity.Name, Editor = User.Identity.Name, Description = "" }; rst = await supplierClient.AddAsync(supplier); if (rst.Code != 0) { return(Json(rst)); } } } //新增转换生产厂商 using (ManufacturerServiceClient manufacturerClient = new ManufacturerServiceClient()) { MethodReturnResult <Manufacturer> result = await manufacturerClient.GetAsync(model.ManufacturerCode); if (result.Code != 0) { Manufacturer manufacturer = new Manufacturer() { Key = ds_manufacturer.Data.Tables[0].Rows[0]["CSCODE"].ToString(), Name = ds_manufacturer.Data.Tables[0].Rows[0]["CSNAME"].ToString(), NickName = " ", CreateTime = now, EditTime = now, Creator = User.Identity.Name, Editor = User.Identity.Name, Description = "" }; rst = await manufacturerClient.AddAsync(manufacturer); if (rst.Code != 0) { return(Json(rst)); } } } //新增转换规则 using (SupplierToManufacturerServiceClient client = new SupplierToManufacturerServiceClient()) { SupplierToManufacturer obj = new SupplierToManufacturer() { Key = new SupplierToManufacturerKey() { MaterialCode = model.MaterialCode.ToString().Trim().ToUpper(), OrderNumber = model.OrderNumber.ToString().Trim().ToUpper(), SupplierCode = model.SupplierCode.ToString().Trim().ToUpper() }, ManufacturerCode = model.ManufacturerCode.ToString().Trim().ToUpper(), CreateTime = now, EditTime = now, Creator = User.Identity.Name, Editor = User.Identity.Name }; rst = await client.AddAsync(obj); if (rst.Code == 0) { rst.Message = string.Format(ZPVMResources.StringResource.SupplierToManufacturer_Save_Success); } return(Json(rst)); } } }
public async Task <ActionResult> Save(MaterialReplaceViewModel model) { DateTime now = DateTime.Now; MethodReturnResult rst = new MethodReturnResult(); #region 界面录入信息合规性检查 using (MaterialServiceClient client = new MaterialServiceClient()) { MethodReturnResult <Material> result = client.Get(model.ProductCode); if (result.Code != 0) { rst.Code = 1001; rst.Message = String.Format("MES中不存在产品编码:{0}", model.ProductCode); return(Json(rst)); } else { if (result.Data.IsProduct != true) { rst.Code = 1001; rst.Message = String.Format("物料编码[{0}]非产品!", model.ProductCode); return(Json(rst)); } if (model.OrderNumber != "*") { using (WorkOrderServiceClient clientOfWorkOrder = new WorkOrderServiceClient()) { MethodReturnResult <WorkOrder> resultOfOrder = clientOfWorkOrder.Get(model.OrderNumber); if (resultOfOrder.Code != 0) { rst.Code = 1001; rst.Message = String.Format("MES中不存在工单:{0}", model.OrderNumber); return(Json(rst)); } else { if (resultOfOrder.Data.MaterialCode != model.ProductCode) { rst.Code = 1001; rst.Message = String.Format("产品编码{0}与工单{1}不匹配!", model.ProductCode, model.OrderNumber); return(Json(rst)); } } } } } } #endregion using (ERPClient erpClient = new ERPClient()) { MethodReturnResult <DataSet> ds_supplier = erpClient.GetERPSupplier(model.OldMaterialSupplier); MethodReturnResult <DataSet> ds_supplier1 = erpClient.GetERPSupplier(model.NewMaterialSupplier); if (model.OldMaterialSupplier != "*") { if (ds_supplier.Data == null || ds_supplier.Data.Tables[0].Rows.Count == 0) { rst.Code = 1001; rst.Message = String.Format("ERP中不存在供应商:{0}", model.OldMaterialSupplier); return(Json(rst)); } if (ds_supplier.Data != null || ds_supplier.Data.Tables[0].Rows.Count > 0) { //新增替换前供应商 using (SupplierServiceClient supplierClient = new SupplierServiceClient()) { MethodReturnResult <Supplier> result = await supplierClient.GetAsync(model.OldMaterialSupplier); if (result.Code != 0) { Supplier supplier = new Supplier() { Key = ds_supplier.Data.Tables[0].Rows[0]["CUSCODE"].ToString(), Name = ds_supplier.Data.Tables[0].Rows[0]["CUSNAME"].ToString(), NickName = " ", CreateTime = now, EditTime = now, Creator = User.Identity.Name, Editor = User.Identity.Name, Description = "" }; rst = await supplierClient.AddAsync(supplier); if (rst.Code != 0) { return(Json(rst)); } } } } } if (model.NewMaterialSupplier != "000000") { if (ds_supplier1.Data == null || ds_supplier1.Data.Tables[0].Rows.Count == 0) { rst.Code = 1001; rst.Message = String.Format("ERP中不存在供应商:{0}", model.NewMaterialSupplier); return(Json(rst)); } //新增替换后供应商 using (SupplierServiceClient supplierClient1 = new SupplierServiceClient()) { MethodReturnResult <Supplier> result = await supplierClient1.GetAsync(model.NewMaterialSupplier); if (result.Code != 0) { Supplier supplier = new Supplier() { Key = ds_supplier1.Data.Tables[0].Rows[0]["CUSCODE"].ToString(), Name = ds_supplier1.Data.Tables[0].Rows[0]["CUSNAME"].ToString(), NickName = " ", CreateTime = now, EditTime = now, Creator = User.Identity.Name, Editor = User.Identity.Name, Description = "" }; rst = await supplierClient1.AddAsync(supplier); if (rst.Code != 0) { return(Json(rst)); } } } } //新增替换规则 using (MaterialReplaceServiceClient client = new MaterialReplaceServiceClient()) { MaterialReplace obj = new MaterialReplace() { Key = new MaterialReplaceKey() { ProductCode = model.ProductCode.ToString().Trim().ToUpper(), OrderNumber = model.OrderNumber.ToString().Trim().ToUpper(), OldMaterialCode = model.OldMaterialCode.ToString().Trim().ToUpper(), OldMaterialSupplier = model.OldMaterialSupplier.ToString().Trim().ToUpper() }, NewMaterialCode = model.NewMaterialCode.ToString().Trim().ToUpper(), NewMaterialSupplier = model.NewMaterialSupplier.ToString().Trim().ToUpper(), Creator = User.Identity.Name, Editor = User.Identity.Name, CreateTime = DateTime.Now, EditTime = DateTime.Now, Description = model.Description }; rst = await client.AddAsync(obj); if (rst.Code == 0) { rst.Message = string.Format(ZPVMResources.StringResource.MaterialReplace_Save_Success); } return(Json(rst)); } } }
public ActionResult Finish(LotPackageViewModel model) { MethodReturnResult result = new MethodReturnResult(); try { //如果包装号为空。 if (string.IsNullOrEmpty(model.PackageNo)) { result.Code = 1001; result.Message = string.Format("包装号不能为空。"); return(Json(result)); } Package obj = null; //如果当前数量为空,获取当前数量 using (PackageQueryServiceClient client = new PackageQueryServiceClient()) { MethodReturnResult <Package> rst2 = client.Get(model.PackageNo); if (rst2.Code > 0) { return(Json(rst2)); } //检查包装状态 if (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) { obj = rst2.Data; model.CurrentQuantity = rst2.Data.Quantity; } } //如果满包数量为空,获取满包数量 if (model.FullQuantity == 0) { using (WorkOrderAttributeServiceClient client = new WorkOrderAttributeServiceClient()) { MethodReturnResult <WorkOrderAttribute> rst1 = client.Get(new WorkOrderAttributeKey() { OrderNumber = obj.OrderNumber, AttributeName = "FullPackageQuantity" }); double fullQuantity = 25; if (rst1.Code == 1000) { return(Json(rst1)); } if (rst1.Data != null && !string.IsNullOrEmpty(rst1.Data.AttributeValue)) { double.TryParse(rst1.Data.AttributeValue, out fullQuantity); } model.FullQuantity = fullQuantity; } } //非尾包,不能完成包装并过站 if (model.IsFinishPackage == true && model.IsLastestPackage == false && model.CurrentQuantity != model.FullQuantity) { result.Code = 1; result.Message = string.Format("包({0})非尾包,包装数量未达到满包数量,不能完成包装。" , model.PackageNo); 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; } } } //获取包装号所在车间。 string currentLocationName = string.Empty; using (WorkOrderServiceClient client = new WorkOrderServiceClient()) { MethodReturnResult <WorkOrder> rst1 = client.Get(obj.OrderNumber); if (rst1.Code <= 0 && rst1.Data != null) { currentLocationName = rst1.Data.LocationName; } } //检查包所在车间和线别车间是否匹配。 if (currentLocationName != locationName) { result.Code = 3; result.Message = string.Format("包({0})属于({1})车间,不能在({2})车间线别上操作。" , obj.Key , currentLocationName , locationName); return(Json(result)); } result = Package(model); //返回包装结果。 if (result.Code <= 0) { MethodReturnResult <LotPackageViewModel> rstFinal = new MethodReturnResult <LotPackageViewModel>() { 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)); }
public async Task <ActionResult> Save(WorkOrderGroupDetailViewModel model) { DateTime now = DateTime.Now; MethodReturnResult rst = new MethodReturnResult(); if (model.WorkOrderGroupNo == "" || model.WorkOrderGroupNo == null) { rst.Code = 1000; rst.Message = "混工单组号不可为空!"; return(Json(rst)); } if (model.OrderNumber == "" || model.OrderNumber == null) { rst.Code = 1000; rst.Message = "工单不可为空!"; return(Json(rst)); } if (model.ProductCode == "" || model.ProductCode == null) { rst.Code = 1000; rst.Message = "产品编码不可为空!"; return(Json(rst)); } using (WorkOrderServiceClient client0 = new WorkOrderServiceClient()) { PagingConfig cfg0 = new PagingConfig() { IsPaging = false, Where = string.Format(@"Key LIKE '{0}%' AND OrderState='0' AND CloseType=0" , model.OrderNumber.Trim().ToUpper()), OrderBy = "Key" }; MethodReturnResult <IList <WorkOrder> > result0 = client0.Get(ref cfg0); if (result0.Code <= 0 && result0.Data != null) { if (model.ProductCode.Trim().ToUpper() == result0.Data[0].MaterialCode.ToString()) { #region 新增规则 using (WorkOrderGroupDetailServiceClient client = new WorkOrderGroupDetailServiceClient()) { //获取混工单组规则中该组的最大序列号 StringBuilder where = new StringBuilder(); if (model != null) { if (!string.IsNullOrEmpty(model.WorkOrderGroupNo)) { where.AppendFormat(" {0} Key.WorkOrderGroupNo LIKE '{1}%'" , where.Length > 0 ? "AND" : string.Empty , model.WorkOrderGroupNo.ToString().Trim().ToUpper()); } } PagingConfig cfg = new PagingConfig() { OrderBy = "ItemNo Desc", Where = where.ToString() }; MethodReturnResult <IList <WorkOrderGroupDetail> > result = client.Gets(ref cfg); if (result != null && result.Data.Count > 0) { //判断新增工单是否已存在至混工单组 StringBuilder where1 = new StringBuilder(); if (model != null) { if (!string.IsNullOrEmpty(model.WorkOrderGroupNo)) { where1.AppendFormat(" {0} Key.OrderNumber = '{1}'" , where1.Length > 0 ? "AND" : string.Empty , model.OrderNumber.ToString().Trim().ToUpper()); } } PagingConfig cfg1 = new PagingConfig() { //OrderBy = "ItemNo Desc", Where = where1.ToString() }; MethodReturnResult <IList <WorkOrderGroupDetail> > result1 = client.Gets(ref cfg1); if (result1 != null && result1.Data.Count > 0) { rst.Code = 1000; rst.Message = string.Format("新增工单{0}已存在至混工单组{1}中!" , model.OrderNumber.Trim().ToUpper() , result1.Data[0].Key.WorkOrderGroupNo.ToString()); return(Json(rst)); } if (model.ProductCode.Trim().ToUpper() == result.Data[0].Key.ProductCode.ToString()) { int i = 1; if (result.Code == 0 && result.Data.Count > 0) { i = Convert.ToInt32(result.Data[0].ItemNo.ToString()) + 1; } string n = model.WorkOrderGroupNo.ToString().Trim().ToUpper(); WorkOrderGroupDetail obj = new WorkOrderGroupDetail() { Key = new WorkOrderGroupDetailKey() { WorkOrderGroupNo = model.WorkOrderGroupNo.ToString().Trim().ToUpper(), OrderNumber = model.OrderNumber.ToString().Trim().ToUpper(), ProductCode = model.ProductCode.ToString().Trim().ToUpper() }, Nums = Convert.ToInt32(n.Substring(5, n.Length - 5)), ItemNo = i, CreateTime = DateTime.Now, Creator = User.Identity.Name, Editor = User.Identity.Name, EditTime = DateTime.Now, Description = result.Data[0].Description }; rst = await client.AddAsync(obj); if (rst.Code == 0) { rst.Message = string.Format(PPMResources.StringResource.WorkOrderGroupDetail_Save_Success, obj.Key.ToString()); } return(Json(rst)); } else { rst.Code = 1000; rst.Message = string.Format("新增工单{0}的产品编码{1}与混工单组的产品编码{2}不一致!" , model.OrderNumber.Trim().ToUpper() , model.ProductCode.Trim().ToUpper() , result.Data[0].Key.ProductCode.ToString()); return(Json(rst)); } } else { //获取混工单组规则中该组的最大序列号 StringBuilder where1 = new StringBuilder(); if (model != null) { if (!string.IsNullOrEmpty(model.WorkOrderGroupNo)) { where1.AppendFormat(" {0} Key.OrderNumber = '{1}'" , where1.Length > 0 ? "AND" : string.Empty , model.OrderNumber.ToString().Trim().ToUpper()); } } PagingConfig cfg1 = new PagingConfig() { //OrderBy = "ItemNo Desc", Where = where1.ToString() }; MethodReturnResult <IList <WorkOrderGroupDetail> > result1 = client.Gets(ref cfg1); if (result1 != null && result1.Data.Count > 0) { rst.Code = 1000; rst.Message = string.Format("新增工单{0}已存在至混工单组{1}中!" , model.OrderNumber.Trim().ToUpper() , result1.Data[0].Key.WorkOrderGroupNo.ToString()); return(Json(rst)); } else { int i = 1; string n = model.WorkOrderGroupNo.ToString().Trim().ToUpper(); WorkOrderGroupDetail obj = new WorkOrderGroupDetail() { Key = new WorkOrderGroupDetailKey() { WorkOrderGroupNo = model.WorkOrderGroupNo.ToString().Trim().ToUpper(), OrderNumber = model.OrderNumber.ToString().Trim().ToUpper(), ProductCode = model.ProductCode.ToString().Trim().ToUpper() }, Nums = Convert.ToInt32(n.Substring(5, n.Length - 5)), ItemNo = i, CreateTime = DateTime.Now, Creator = User.Identity.Name, Editor = User.Identity.Name, EditTime = DateTime.Now, Description = model.Description, }; rst = await client.AddAsync(obj); if (rst.Code == 0) { rst.Message = string.Format(PPMResources.StringResource.WorkOrderGroupDetail_Save_Success, obj.Key.ToString()); } return(Json(rst)); } } } #endregion } else { rst.Code = 1000; rst.Message = string.Format("工单号{0}对应的产品编码{1}与界面上的产品编码{2}不一致!" , model.OrderNumber.Trim().ToUpper() , result0.Data[0].MaterialCode.ToString() , model.ProductCode.Trim().ToUpper()); return(Json(rst)); } } else { rst.Code = 1000; rst.Message = string.Format("工单号{0}不存在或已关闭!", model.OrderNumber.Trim().ToUpper()); return(Json(rst)); } } }
// // POST: /WIP/LotCreate/Detail public ActionResult Detail(LotCreateMainViewModel model) { LotCreateDetailViewModel viewModel = new LotCreateDetailViewModel() { LineStoreName = model.LineStoreName, MaterialLot = model.MaterialLot, MaterialCode = model.MaterialCode, LotType = model.LotType, OrderNumber = model.OrderNumber, Count = model.Count, Description = string.Empty, MaterialQty = 0, ProductCode = string.Empty, Quantity = 0, RawQuantity = 0, RouteEnterpriseName = string.Empty, RouteName = string.Empty, RouteStepName = string.Empty, SupplierCode = string.Empty }; if (string.IsNullOrEmpty(model.MaterialLot)) { return(View(viewModel)); } //获取工单信息。 using (WorkOrderServiceClient client = new WorkOrderServiceClient()) { MethodReturnResult <WorkOrder> result = client.Get(model.OrderNumber); if (result.Code <= 0 && result.Data != null) { result.Code = 1000; result.Message = "工单号错误!"; return(Json(result)); //viewModel.ProductCode = result.Data.MaterialCode; } } //获取工单工艺信息。 using (WorkOrderRouteServiceClient client = new WorkOrderRouteServiceClient()) { PagingConfig cfg = new PagingConfig() { PageNo = 0, PageSize = 1, Where = string.Format("Key.OrderNumber='{0}'", model.OrderNumber), OrderBy = "Key.ItemNo" }; if (model.LotType == EnumLotType.Rework) { cfg.Where += " AND IsRework=1"; } else { cfg.Where += " AND IsRework=0"; } MethodReturnResult <IList <WorkOrderRoute> > result = client.Get(ref cfg); if (result.Code <= 0 && result.Data != null && result.Data.Count > 0) { viewModel.RouteEnterpriseName = result.Data[0].RouteEnterpriseName; viewModel.RouteName = result.Data[0].RouteName; viewModel.RouteStepName = result.Data[0].RouteStepName; } } //获取线边仓物料信息 using (LineStoreMaterialServiceClient client = new LineStoreMaterialServiceClient()) { LineStoreMaterialDetailKey key = new LineStoreMaterialDetailKey() { LineStoreName = model.LineStoreName, OrderNumber = model.OrderNumber, MaterialCode = model.MaterialCode, MaterialLot = model.MaterialLot }; MethodReturnResult <LineStoreMaterialDetail> result = client.GetDetail(key); if (result.Code <= 0 && result.Data != null) { viewModel.MaterialQty = result.Data.CurrentQty; viewModel.SupplierCode = result.Data.SupplierCode; } } //根据物料获取每批原材料建议数量和每批产品建议数量。 using (MaterialServiceClient client = new MaterialServiceClient()) { MethodReturnResult <Material> result = client.Get(viewModel.ProductCode); if (result.Code <= 0 && result.Data != null) { viewModel.RawQuantity = result.Data.MainRawQtyPerLot; viewModel.Quantity = result.Data.MainProductQtyPerLot; } } //根据工单号和批次个数生成批次号。 IList <string> lstLot = new List <string>(); using (LotCreateServiceClient client = new LotCreateServiceClient()) { MethodReturnResult <IList <string> > result = client.Generate(model.LotType, model.OrderNumber, model.Count, model.LineCode); if (result.Code <= 0 && result.Data != null && result.Data.Count > 0) { lstLot = result.Data; } } ViewBag.LotList = lstLot; //获取需要录入的批次号自定义特性 IList <BaseAttribute> lstAttribute = new List <BaseAttribute>(); using (BaseAttributeServiceClient client = new BaseAttributeServiceClient()) { PagingConfig cfg = new PagingConfig() { IsPaging = false, Where = string.Format("Key.CategoryName='{0}'", "LotCreateAttribute") }; MethodReturnResult <IList <BaseAttribute> > result = client.Get(ref cfg); if (result.Code <= 0 && result.Data != null && result.Data.Count > 0) { lstAttribute = result.Data; } } ViewBag.AttributeList = lstAttribute; return(View(viewModel)); }