using System.Collections; using Microsoft.AspNetCore.Mvc; using Estsh.Core.Services.IServices; using Estsh.Core.Model.Result; using Estsh.Core.Models; using Estsh.Core.Controllers; using System.Data; using Estsh.Core.Util; /*************************************************************************************************** * * 更新人:sitong.dong * 描述:无条码采购收货 * 修改时间:2022.06.22 * 修改日志:系统迭代升级 * **************************************************************************************************/ namespace Estsh.Web.Controllers { public class PurchaseNoBarcodeController : BaseController { private IPurchaseNoBarcodeService service; public PurchaseNoBarcodeController(IPurchaseNoBarcodeService _service) { service = _service; } public ActionResult Index() { return View(); } public ActionResult getQueryByPage( Pager pager, String direction, String sort) { string _where = ""; int totalCount = 0; List dataHt = service.getQueryByPage(_where, pager, direction, sort); Hashtable result = new Hashtable(); result.Add("rows", dataHt); result.Add("pager.totalRows", totalCount); return Json(result); } /// /// 过滤零件号 /// /// /// public List filePart(string key) { Hashtable autoComplateList = GetItemPart(key); List result = new List(); foreach (System.Collections.DictionaryEntry item in autoComplateList) { if (item.Value.ToString().ToUpper().StartsWith(key.ToUpper())) { result.Add(item.Value.ToString()); } } return result; } public ActionResult GetPart_no(string q) { List list = filePart(q); return writeResult(list); } /// /// 查询零件号 /// /// /// public Hashtable GetItemPart(string key) { List autoComplateList = new List(); Hashtable result = new Hashtable(); try { List dt = service.GetPartInfo(0, key); for (int i = 0; i < dt.Count; i++) { result.Add(dt[i].PartId.ToString(), dt[i].PartNo.ToString()); } } catch (Exception e) { result = new Hashtable(); } return result; } public ActionResult OnsureOrder() { Hashtable result = new Hashtable(); string seDate = Request.Form["StartTime"].ToString().Replace("-", "/"); string message = ""; if (string.IsNullOrEmpty(Request.Form["cbTypeName"])) { message = " 请正确选择采购单所属项目! "; result.Add("message", message); return Json(result); } if (string.IsNullOrEmpty(Request.Form["txtVerdorName"])) { message = " 请正确选择采购单所属供应商! "; result.Add("message", message); return Json(result); } string serverDate = service.GetServerDateTime("YMD"); if (seDate.CompareTo(serverDate) < 0) { message = " 预交日期[" + seDate + "]不能小于当前日期! "; result.Add("message", message); return Json(result); } if (string.IsNullOrEmpty(Request.Form["cmbFactory"])) { message = " 请正确选择采购单所属供厂区! "; result.Add("message", message); return Json(result); } if (string.IsNullOrEmpty(Request.Form["txtBuyNo"])) { message = " 请正确选择采购单号! "; result.Add("message", message); return Json(result); } message = service.GetOrderNo("PurchaseNoBarcode", "NR"); result.Add("message", ""); result.Add("msg", message); return Json(result); } /// /// 获取车型 /// /// public ActionResult GetType() { Hashtable resault = new Hashtable(); List list = service.GetModelType(); resault.Add("list", list); return Json(resault); } /// /// 工厂 /// /// public ActionResult GetFactory() { Hashtable resault = new Hashtable(); List list = service.GetFactoryInfo(); resault.Add("list", list); return Json(resault); } /// /// 供应商 /// /// public ActionResult GetVendor(string q) { List list = filterVendor(q); return writeResult(list); } /// /// 采购单 /// /// /// public ActionResult getBuy(string q) { List list = filterBuy(q); return writeResult(list); } /// /// 根据供应商汉字过滤 /// /// /// private List filterVendor(String key) { Hashtable autoComplateList = GetItemVendor(key); List result = new List(); foreach (System.Collections.DictionaryEntry item in autoComplateList) { if (item.Value.ToString().ToUpper().StartsWith(key.ToUpper())) { result.Add(item.Value.ToString()); } } return result; } /// /// 根据采购单汉字过滤 /// /// /// private List filterBuy(String key) { Hashtable autoComplateList = getItemBuy(key); List result = new List(); foreach (System.Collections.DictionaryEntry item in autoComplateList) { if (item.Key.ToString().ToUpper().StartsWith(key.ToUpper())) { result.Add(item.Key.ToString()); } } return result; } /// /// 获取采购单 /// /// /// public Hashtable getItemBuy(string key) { List auto = new List(); Hashtable result = new Hashtable(); try { List dt = service.GetBuyNoInfo(key); for (int i = 0; i < dt.Count; i++) { result.Add(dt[i].xw_po_nbr, dt[i].xw_po_nbr); } } catch (Exception ee) { result = new Hashtable(); } return result; } /// /// 查询供应商 /// /// /// public Hashtable GetItemVendor(string key) { List autoComplateList = new List(); Hashtable result = new Hashtable(); try { List dt = service.GetVendorInfo(key); for (int i = 0; i < dt.Count; i++) { result.Add(dt[i].VendorId, dt[i].VendorName.ToString()); } } catch (Exception e) { result = new Hashtable(); } return result; } private ActionResult writeResult(List list) { Hashtable result = new Hashtable(); result.Add("list", list); return Json(result); } public ActionResult GetpartNo(string q) { List list = filePart(q); return writeResult(list); } /// /// 添加数据 /// /// public ActionResult add(string txtOrderNo, string StartTime, string txtBuyNo) { ViewData["editType"] = "editType"; //ViewData["txtOrderNo"] = Request.Form["txtOrderNo"].ToString(); //ViewData["StartTime"] = Request.Form["StartTime"].ToString(); //ViewData["txtBuyNo"] = Request.Form["txtBuyNo"].ToString(); ViewData["txtOrderNo"] = txtOrderNo; ViewData["StartTime"] = StartTime; ViewData["txtBuyNo"] = txtBuyNo; ViewData["defaultBoxQty"] = "20"; return View("FrmDetail"); } public ActionResult SaveList() { Hashtable result = new Hashtable(); string message = ""; int iDis = 0; string partId = Request.Form["partId"].ToString(); string partSpec = Request.Form["partSpec"].ToString(); string partNo = Request.Form["partNo"].ToString(); List dt = service.GetPartInfo(0, partNo); if (dt.Count > 0) { partId = dt[0].PartId.ToString(); partSpec = dt[0].PartSpec.ToString(); } string buyNumber = Request.Form["buyNumber"].ToString(); string biaoNumber = Request.Form["biaoNumber"].ToString(); string seDate = Request.Form["StartTime"].ToString().Replace("-", ""); if (seDate.Length > 2) { seDate = seDate.Substring(2); } else { message = " [" + seDate + "]:所选择预交日期数据批次转换失败! "; result.Add("message", message); return Json(result); } iDis = Convert.ToInt32(buyNumber.Split('.')[0]) % Convert.ToInt32(biaoNumber.Split('.')[0]); if (iDis == 0) { iDis = Convert.ToInt32(buyNumber.Split('.')[0]) / Convert.ToInt32(biaoNumber.Split('.')[0]); } else { iDis = Convert.ToInt32(buyNumber.Split('.')[0]) / Convert.ToInt32(biaoNumber.Split('.')[0]) + 1; } DataTable data = new DataTable(); data.Columns.Add("partId"); data.Columns.Add("partNo"); data.Columns.Add("partSpec"); data.Columns.Add("qty"); data.Columns.Add("snpQty"); data.Columns.Add("cartonQty"); data.Columns.Add("lotNo"); data.Columns.Add("recQty"); data.Columns.Add("recCartonQty"); //行名 DataRow dr1 = data.NewRow(); dr1["partId"] = partId; dr1["partNo"] = partNo; dr1["partSpec"] = partSpec; dr1["qty"] = buyNumber; dr1["snpQty"] = biaoNumber; dr1["cartonQty"] = iDis; dr1["lotNo"] = seDate; dr1["recQty"] = "0"; dr1["recCartonQty"] = "0"; data.Rows.Add(dr1); //memoryCache.Set("table", data); //Session["table"] = dt; string orderNo = Request.Form["txtOrderNo"].ToString(); string modelId = Request.Form["cbTypeName"].ToString(); string vendorId = string.Empty; seDate = Request.Form["StartTime"].ToString().Replace("-", "/"); string factoryId = Request.Form["cmbFactory"].ToString(); string buyNo = Request.Form["txtBuyNo"].ToString(); List Vendor = service.GetVendorInfo(Request.Form["txtVerdorName"].ToString()); if (Vendor.Count > 0) { vendorId = Vendor[0].VendorId.ToString(); } DataTable dtData = new DataTable(); dtData.TableName = "BuyNoData"; DataColumn dcOrderNo = new DataColumn("order_no", typeof(string)); DataColumn dcWeekOrderNo = new DataColumn("week_order_no", typeof(string)); DataColumn dcTypeId = new DataColumn("type_id", typeof(string)); DataColumn dcBuyNo = new DataColumn("buy_no", typeof(string)); DataColumn dcVendorId = new DataColumn("vendor_id", typeof(string)); DataColumn dcSeDate = new DataColumn("se_date", typeof(string)); DataColumn dcPartId = new DataColumn("part_id", typeof(string)); DataColumn dcPartNo = new DataColumn("part_no", typeof(string)); DataColumn dcLotNo = new DataColumn("lot_no", typeof(string)); DataColumn dcQty = new DataColumn("qty", typeof(string)); DataColumn dcSnpQty = new DataColumn("snp_qty", typeof(string)); DataColumn dcCartonQty = new DataColumn("carton_qty", typeof(string)); DataColumn dcType = new DataColumn("type", typeof(string)); DataColumn dcFactoryId = new DataColumn("factory_id", typeof(string)); dtData.Columns.AddRange(new DataColumn[] { dcOrderNo, dcWeekOrderNo, dcTypeId, dcBuyNo, dcVendorId, dcSeDate, dcPartId,dcPartNo, dcLotNo, dcQty, dcSnpQty, dcCartonQty, dcType, dcFactoryId }); for (int i = 0; i < data.Rows.Count; i++) { DataRow dr = dtData.NewRow(); dr["order_no"] = orderNo; dr["week_order_no"] = orderNo; dr["type_id"] = modelId; dr["buy_no"] = buyNo; dr["vendor_id"] = vendorId; dr["se_date"] = seDate; dr["part_id"] = data.Rows[i]["partId"].ToString(); dr["part_no"] = data.Rows[i]["partNo"].ToString(); dr["lot_no"] = data.Rows[i]["lotNo"].ToString(); dr["qty"] = data.Rows[i]["qty"].ToString(); dr["snp_qty"] = data.Rows[i]["snpQty"].ToString().Split('.')[0]; dr["carton_qty"] = data.Rows[i]["cartonQty"].ToString(); dr["type"] = "1"; dr["factory_id"] = factoryId; dtData.Rows.Add(dr); } Hashtable resault = new Hashtable(); string rMsg = service.DataSaveTransact(dtData, CurrentEmp.EmpId); if (!string.IsNullOrEmpty(rMsg)) { message = " " + rMsg + " "; resault.Add("message", message); return Json(resault); } message = " 无条码采购订单收货数据保存成功! "; resault.Add("message", message); return Json(resault); } /// /// 获取零件信息 /// /// public ActionResult getPart() { Hashtable result = new Hashtable(); string partId = Request.Form["partId"].ToString(); string partSpec = Request.Form["partSpec"].ToString(); string txtBuyNo = Request.Form["txtBuyNo"].ToString(); string biaoNumber = Request.Form["biaoNumber"].ToString(); string partNo = Request.Form["partNo"].ToString(); string message = ""; List dt = service.GetPartInfo(0, partNo); if (dt.Count > 0) { partId = dt[0].PartId.ToString(); biaoNumber = dt[0].DefaultBoxQty.ToString(); partSpec = dt[0].PartSpec.ToString(); if (!service.IsPoPartNo(txtBuyNo, partNo)) { message = " [" + partNo + "]所选择零件与采购单数据不匹配! "; result.Add("message", message); result.Add("status", -1); return Json(result); } if (!service.IsExistLineLocate(partId)) { message = " [" + partNo + "]:不存在此零件对应的线边库位配置信息! "; result.Add("message", message); result.Add("status", -1); return Json(result); } result.Add("partId", partId); result.Add("biaoNumber", biaoNumber); result.Add("partSpec", partSpec); result.Add("status", 1); } return Json(result); } /// /// 删除 /// /// /// public ActionResult delete(string ids) { int delCount = 0; Hashtable result = new Hashtable(); ids = ids.Substring(0, ids.Length - 1); try { delCount = this.service.delete(ids); if (delCount > 0) { result.Add("message", "删除成功!"); } else { result.Add("message", "删除失败!"); } } catch (Exception e) { delCount = -1; } return Json(result); } /// /// 启用 /// /// /// public ActionResult onEnable(String ids) { int delCount = 0; try { delCount = this.service.EnableData(ids); } catch (Exception e) { delCount = -1; } Hashtable result = new Hashtable(); result.Add("status", delCount); return Json(result); } /// /// 禁用 /// /// /// public ActionResult onDisable(String ids) { int delCount = 0; try { delCount = this.service.DisableData(ids); } catch (Exception e) { delCount = -1; } Hashtable result = new Hashtable(); result.Add("status", delCount); return Json(result); } } }