You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

495 lines
16 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using Estsh.Core.Controllers;
using Estsh.Core.Model.ExcelModel;
using Estsh.Core.Model.Result;
using Estsh.Core.Models;
using Estsh.Core.Services.IServices;
using Estsh.Core.Util;
using Microsoft.AspNetCore.Mvc;
using System.Collections;
/***************************************************************************************************
*
* 更新人sitong.dong
* 描述:推荐入库管理,推荐逻辑表
* 修改时间2022.06.22
* 修改日志:系统迭代升级
*
**************************************************************************************************/
namespace Estsh.Core.Web.Controllers
{
public class ZonePartController : BaseController
{
private IZonePartService service;
public ZonePartController(IZonePartService _service)
{
service = _service;
}
//
// GET: /Menu/
public ActionResult Index()
{
return View();
}
/// <summary>
/// 获取库位零件管理列表数据
/// </summary>
/// <param name="menuName"></param>
/// <param name="pager"></param>
/// <param name="direction"></param>
/// <param name="sort"></param>
/// <returns></returns>
public ActionResult getZoneListByPage(String zoneName, String zoneDesc, string partNo, string partSpec, Pager pager, String direction, String sort, string enabled = "Y")
{
int factoryId = CurrentEmp.FactoryId;
Hashtable result = new Hashtable();
result.Add("pager.pageNo", pager.pageNo);
Hashtable dataHt = this.service.getZoneListByPage(zoneName, zoneDesc, partNo, partSpec, enabled, factoryId, pager, direction, sort);
result.Add("rows", dataHt["dataList"]);
result.Add("pager.totalRows", dataHt["totalCount"]);
result.Add("sort", sort);
result.Add("direction", direction);
return Json(result);
}
#region 过滤供应商
public ActionResult GetVendorCode(string q)
{
List<string> list = fileVendorCode(q);
return writeResult(list);
}
/// <summary>
/// 过滤供应商
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
public List<string> fileVendorCode(string key)
{
Hashtable autoComplateList = GetItemVendorName(key);
List<String> result = new List<string>();
foreach (System.Collections.DictionaryEntry item in autoComplateList)
{
if (item.Value.ToString().ToUpper().StartsWith(key.ToUpper()))
{
result.Add(item.Value.ToString());
}
}
return result;
}
/// <summary>
/// 查询供应商
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
public Hashtable GetItemVendorName(string key)
{
List<String> autoComplateList = new List<string>();
Hashtable result = new Hashtable();
try
{
List<SysVendor> dt = service.GetVendorInfo(key);
for (int i = 0; i < dt.Count; i++)
{
result.Add(dt[i].VendorId.ToString(), dt[i].VendorCode.ToString());
}
}
catch (Exception e)
{
result = new Hashtable();
}
return result;
}
#endregion
#region 过滤库区
public ActionResult GetZoneName(string q)
{
List<string> list = fileZoneName(q);
return writeResult(list);
}
/// <summary>
/// 过滤库区
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
public List<string> fileZoneName(string key)
{
Hashtable autoComplateList = GetItemZoneName(key);
List<String> result = new List<string>();
foreach (System.Collections.DictionaryEntry item in autoComplateList)
{
if (item.Value.ToString().ToUpper().StartsWith(key.ToUpper()))
{
result.Add(item.Value.ToString());
}
}
return result;
}
/// <summary>
/// 查询库区
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
public Hashtable GetItemZoneName(string key)
{
List<String> autoComplateList = new List<string>();
Hashtable result = new Hashtable();
try
{
List<SysZone> dt = service.GetZoneInfo(key);
for (int i = 0; i < dt.Count; i++)
{
result.Add(dt[i].ZoneId.ToString(), dt[i].ZoneName.ToString());
}
}
catch (Exception e)
{
result = new Hashtable();
}
return result;
}
#endregion
#region 过滤零件号
public ActionResult GetPart_no(string q)
{
List<string> list = filePart(q);
return writeResult(list);
}
/// <summary>
/// 过滤零件号
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
public List<string> filePart(string key)
{
Hashtable autoComplateList = GetItemPart(key);
List<String> result = new List<string>();
foreach (System.Collections.DictionaryEntry item in autoComplateList)
{
if (item.Value.ToString().ToUpper().StartsWith(key.ToUpper()))
{
result.Add(item.Value.ToString());
}
}
return result;
}
/// <summary>
/// 查询零件号
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
public Hashtable GetItemPart(string key)
{
List<String> autoComplateList = new List<string>();
Hashtable result = new Hashtable();
try
{
List<SysPart> dt = service.GetPartInfo(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;
}
#endregion
private ActionResult writeResult(List<string> list)
{
Hashtable result = new Hashtable();
result.Add("list", list);
return Json(result);
}
/// <summary>
/// 获取父节点菜单下拉列表数据
/// </summary>
/// <rehuoturns></returns>
public ActionResult getSelectZone(string WarehouseId)
{
Hashtable result = new Hashtable();
List<KeyValueResult> menuList = this.service.getSelectZone(WarehouseId);
result.Add("list", menuList);
return Json(result);
}
public ActionResult GetpartInfo()
{
Hashtable result = new Hashtable();
List<KeyValueResult> menuList = this.service.GetpartInfo();
result.Add("list", menuList);
return Json(result);
}
/// <summary>
/// 保存菜单数据
/// </summary>
/// <returns></returns>
public ActionResult saveZonePart()
{
String message = ""; String flag = "";
String editType = Request.Form["editType"].ToString();
String ruid = Request.Form["ruid"].ToString();
String zoneName = Request.Form["zoneName"].ToString();
String vendorCode = Request.Form["vendorCode"].ToString();
String partNo = Request.Form["partNo"].ToString();
int priority = string.IsNullOrEmpty(Request.Form["priority"]) ? 0 : Convert.ToInt32(Request.Form["priority"].ToString());
String enabled = Request.Form["enabled"].ToString();
List<SysZone> sysZones = service.getSelectZoneInfo(zoneName);
if (sysZones.Count == 0)
{
Hashtable resultMsg = new Hashtable();
resultMsg.Add("flag", "false");
resultMsg.Add("message", "库位代码不存在,请重新输入");
return Json(resultMsg);
}
int zoneId = sysZones[0].ZoneId;
List<SysVendor> sysVendors = service.getSelectVendorInfo(vendorCode);
int vendorId = 0;
if (sysVendors.Count > 0)
{
vendorId = sysVendors[0].VendorId;
}
List<SysPart> partInfo = service.GetPartInfo(partNo);
if (partInfo.Count == 0)
{
Hashtable resultMsg = new Hashtable();
resultMsg.Add("flag", "false");
resultMsg.Add("message", "零件号不存在,请重新输入");
return Json(resultMsg);
}
int partId = partInfo[0].PartId;
string partSpec = partInfo[0].PartSpec;
SysZonePart sysZonePart = new SysZonePart();
sysZonePart.ZoneId = zoneId;
sysZonePart.ZoneName = zoneName;
sysZonePart.VendorId = vendorId;
sysZonePart.VendorCode = vendorCode;
sysZonePart.PartId = partId;
sysZonePart.PartNo = partNo;
sysZonePart.PartSpec = partSpec;
sysZonePart.Priority = priority;
sysZonePart.Enabled = enabled;
sysZonePart.FactoryId = CurrentEmp.FactoryId;
sysZonePart.FactoryCode = CurrentEmp.FactoryCode;
try
{
if (editType != null && editType.Trim().Equals("edit"))
{
sysZonePart.Ruid = Convert.ToInt32(ruid == null ? 0 : ruid);
sysZonePart.UpdateUserId = CurrentEmp.EmpId;
int num = this.service.updateZonePart(sysZonePart);
if (num > 0)
{
flag = "true";
message = "修改成功";
}
else
{
flag = "false";
message = "修改失败!";
}
}
else
{
List<SysZonePart> sysZoneParts = service.getSelectZonePartInfo(zoneName, partNo);
if (sysZoneParts.Count > 0)
{
Hashtable resultMsg = new Hashtable();
resultMsg.Add("flag", "false");
resultMsg.Add("message", "库位和零件号关系已维护");
return Json(resultMsg);
}
sysZonePart.CreateUserId = CurrentEmp.EmpId;
sysZonePart.Guid = Guid.NewGuid().ToString();
int num = this.service.saveZonePart(sysZonePart);
if (num > 0)
{
flag = "true";
message = "添加成功";
}
else
{
flag = "false";
message = "添加失败!";
}
}
}
catch (Exception e)
{
flag = "false";
message = "添加失败!" + e.Message;
}
Hashtable result = new Hashtable();
result.Add("flag", flag);
result.Add("message", message);
return Json(result);
}
/// <summary>
/// 编辑菜单
/// </summary>
/// <param name="ruid"></param>
/// <returns></returns>
public ActionResult editZonePart(String ruid)
{
if (!string.IsNullOrEmpty(ruid))
{
Hashtable ht = this.service.getZoneDetail(ruid);
ViewData.Add("editType", "edit");
ViewData.Add("zoneId", ht["zoneId"]);
ViewData.Add("zoneName", ht["zoneName"]);
ViewData.Add("partId", ht["partId"]);
ViewData.Add("partNo", ht["partNo"]);
ViewData.Add("partSpec", ht["partSpec"]);
ViewData.Add("priority", ht["priority"]);
ViewData.Add("factoryId", ht["factoryId"]);
ViewData.Add("factoryCode", ht["factoryCode"]);
ViewData.Add("enabled", ht["enabled"]);
ViewData.Add("ruid", ht["ruid"]);
}
else
{
ViewData.Add("editType", "new");
}
return View("EditZonePart");
}
/// <summary>
/// 删除菜单
/// </summary>
/// <param name="ids"></param>
/// <returns></returns>
public ActionResult deleteZonePart(String ruid)
{
int delCount = 0;
try
{
delCount = this.service.deleteZonePart(ruid);
}
catch (Exception e)
{
delCount = -1;
}
Hashtable result = new Hashtable();
result.Add("status", delCount);
return Json(result);
}
/// <summary>
/// 启用
/// </summary>
/// <param name="ids"></param>
/// <returns></returns>
public ActionResult onEnable(String ruid)
{
int delCount = 0;
try
{
delCount = this.service.EnableLocatePart(ruid);
}
catch (Exception e)
{
delCount = -1;
}
Hashtable result = new Hashtable();
result.Add("status", delCount);
return Json(result);
}
/// <summary>
/// 禁用
/// </summary>
/// <param name="ids"></param>
/// <returns></returns>
public ActionResult onDisable(String ruid)
{
int delCount = 0;
try
{
delCount = this.service.DisableLocatePart(ruid);
}
catch (Exception e)
{
delCount = -1;
}
Hashtable result = new Hashtable();
result.Add("status", delCount);
return Json(result);
}
/// <summary>
/// 导入
/// </summary>
/// <returns></returns>
public ActionResult importFile()
{
int factoryId = CurrentEmp.FactoryId;
string factoryCode = CurrentEmp.FactoryCode;
Hashtable result = new Hashtable();
IFormFile file = Request.Form.Files[0];
List<ZonePart> data = ExcelHelper.GetList<ZonePart>(file, 0);
result = service.ImportExcel(data, factoryId, factoryCode, CurrentEmp.EmpId);
return Json(result);
}
public ActionResult uploadFile()
{
return View("uploadFile");
}
/// <summary>
/// 导出数据到Excel
/// BY NOAH
/// </summary>
/// <returns></returns>
public ActionResult exportData(String zoneName, String zoneDesc, string partNo, string partSpec, string enabled = "Y")
{
List<ZonePart> listHt = this.service.getExportList(zoneName, zoneDesc, partNo, partSpec, enabled, CurrentEmp.FactoryId);
var memoryStream = ExcelHelper.ToExcel(listHt);
string dateTime = DateTime.Now.ToString("yyyyMMddHHmmss");
return File(memoryStream.ToArray(), "application/ms-excel", "推荐入库管理" + dateTime + ".xls");
}
/// <summary>
/// 下载模板
/// </summary>
/// <returns></returns>
public ActionResult downLoadExcel()
{
List<ZonePart> listHt = new List<ZonePart>();//导出空数据模板
var memoryStream = ExcelHelper.ToExcel(listHt);
string dateTime = DateTime.Now.ToString("yyyyMMddHHmmss");
return File(memoryStream.ToArray(), "application/ms-excel", "推荐入库管理" + dateTime + ".xls");
}
}
}