using Estsh.Core.Controllers;
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 MovementManageController : BaseController
{
private IMovementManageService service;
public MovementManageController(IMovementManageService _service)
{
service = _service;
}
//
// GET: /Menu/
public ActionResult Index()
{
return View();
}
///
/// 获取移动单管理列表数据
///
///
///
///
///
///
public ActionResult getMoveHeaderListByPage(string orderNo, string orderType, string orderStatus, string startTime, string endTime, Pager pager, String direction, String sort, string refOrderNo, string enabled = "Y")
{
int factoryId = CurrentEmp.FactoryId;
Hashtable result = new Hashtable();
result.Add("pager.pageNo", pager.pageNo);
Hashtable dataHt = this.service.getMoveHeaderListByPage(orderNo, orderType, orderStatus, startTime, endTime, enabled, factoryId, pager, direction, sort, refOrderNo);
result.Add("rows", dataHt["dataList"]);
result.Add("pager.totalRows", dataHt["totalCount"]);
result.Add("sort", sort);
result.Add("direction", direction);
return Json(result);
}
///
/// 获取移动单明细管理列表数据
///
///
///
///
///
///
public ActionResult getMoveDetailListByPage(string orderNo, string enabled = "Y")
{
int factoryId = CurrentEmp.FactoryId;
Hashtable result = new Hashtable();
Hashtable dataHt = this.service.getMoveDetailListByPage(orderNo, enabled, factoryId);
result.Add("rows", dataHt["dataList"]);
result.Add("pager.totalRows", dataHt["totalCount"]);
return Json(result);
}
///
/// 获取移动单条码管理列表数据
///
///
///
///
///
///
public ActionResult getMoveSnListByPage(string orderNo, string partNo, string enabled = "Y")
{
int factoryId = CurrentEmp.FactoryId;
Hashtable result = new Hashtable();
Hashtable dataHt = this.service.getMoveSnListByPage(orderNo, partNo, enabled, factoryId);
result.Add("rows", dataHt["dataList"]);
result.Add("pager.totalRows", dataHt["totalCount"]);
return Json(result);
}
///
/// 生成条码
///
///
///
public ActionResult onBarcodeGenerator(String orderNos)
{
Hashtable result = new Hashtable();
try
{
result = this.service.onBarcodeGenerator(orderNos);
}
catch (Exception e)
{
result.Add("message", "生成条码失败,请重查看!");
result.Add("flag", "error");
}
return Json(result);
}
public ActionResult getSelectMoveOrderType()
{
Hashtable result = new Hashtable();
List menuList = this.service.GetMoveOrderType();
result.Add("list", menuList);
return Json(result);
}
public ActionResult getSelectRefOrderNo()
{
Hashtable result = new Hashtable();
List menuList = this.service.getSelectRefOrderNo();
result.Add("list", menuList);
return Json(result);
}
public ActionResult getSelectFedbatchType()
{
Hashtable result = new Hashtable();
List menuList = this.service.GetFedbatchType();
result.Add("list", menuList);
return Json(result);
}
public ActionResult getSelectFedbatchMethods()
{
Hashtable result = new Hashtable();
List menuList = this.service.GetFedbatchMethods();
result.Add("list", menuList);
return Json(result);
}
public ActionResult getSelectMoveOrderStatus()
{
Hashtable result = new Hashtable();
List menuList = this.service.GetMoveOrderStatus();
result.Add("list", menuList);
return Json(result);
}
///
/// 获取父节点菜单下拉列表数据
///
///
public ActionResult getSelectFactory()
{
Hashtable result = new Hashtable();
List menuList = this.service.getSelectFactory();
result.Add("list", menuList);
return Json(result);
}
public ActionResult getSelectWarehouse()
{
Hashtable result = new Hashtable();
List menuList = this.service.getSelectWarehouse();
result.Add("list", menuList);
return Json(result);
}
public ActionResult getSelectZone()
{
Hashtable result = new Hashtable();
List menuList = this.service.getSelectZone();
result.Add("list", menuList);
return Json(result);
}
public ActionResult getSelectVendor()
{
Hashtable result = new Hashtable();
List menuList = this.service.getSelectVendor();
result.Add("list", menuList);
return Json(result);
}
public ActionResult GetPart()
{
Hashtable result = new Hashtable();
List menuList = this.service.GetPart();
result.Add("list", menuList);
return Json(result);
}
///
/// 保存菜单数据
///
///
public ActionResult saveMovementManage()
{
//int fedbatchType = 0;// int.Parse(Request.Form["fedbatchType"]);
//int fedbatchMethods = 0;//int.Parse(Request.Form["fedbatchMethods"]);
int orderType = int.Parse(Request.Form["orderType"]);
int factoryId = CurrentEmp.FactoryId;
String factoryCode = CurrentEmp.FactoryCode;
String enabled = Request.Form["enabled"].ToString();
string vendorId = Request.Form["vendorId"];
string customerId = Request.Form["customerId"];
String planDate = Request.Form["planDate"].ToString();
String planTime = Request.Form["planTime"].ToString();
String destWarehouseId = Request.Form["destWarehouseId"].ToString();
String destZoneId = Request.Form["destZoneId"].ToString();
String destErpWarehouse = Request.Form["destErpWarehouse"].ToString();
String srcWarehouseId = Request.Form["srcWarehouseId"].ToString();
String srcZoneId = Request.Form["srcZoneId"].ToString();
String srcErpWarehouse = Request.Form["srcErpWarehouse"].ToString();
String remarks = Request.Form["remarks"].ToString();
String reforderno = Request.Form["refOrderNo"].ToString();
String destWarehouseName = "";
List destWare = service.getSelectWarehouse(destWarehouseId);
if (destWare.Count > 0)
{
destWarehouseName = destWare[0].WarehouseName;
}
String srcWarehouseName = "";
List srcWare = service.getSelectWarehouse(srcWarehouseId);
if (srcWare.Count > 0)
{
srcWarehouseName = srcWare[0].WarehouseName;
}
String destZoneName = "";
List destZones = service.getSelectZone(destZoneId);
if (destZones.Count > 0)
{
destZoneName = destZones[0].ZoneName;
}
String srcZoneName = "";
List srcZones = service.getSelectZone(srcZoneId);
if (srcZones.Count > 0)
{
srcZoneName = srcZones[0].ZoneName;
}
WmsMoveHeader moveHeader = new WmsMoveHeader();
//moveHeader.prepareMaterial = fedbatchMethods;
//moveHeader.fedbatchType = fedbatchType;
moveHeader.OrderType = orderType;
moveHeader.FactoryId = factoryId;
moveHeader.FactoryCode = factoryCode;
moveHeader.Enabled = enabled;
moveHeader.Remarks = remarks;
moveHeader.RefOrderNo = reforderno;
string detailRow = Request.Form["detailRow"].ToString();
IList moveDetailsList = Newtonsoft.Json.JsonConvert.DeserializeObject>(detailRow);
for (int i = 0; i < moveDetailsList.Count; i++)
{
moveDetailsList[i].ItemNo = (i + 1).ToString();
//purchaseDetailList[i].PartId = Convert.ToInt32(PartId);
string PartNo = string.IsNullOrEmpty(moveDetailsList[i].PartNo.ToString()) ? "0" : moveDetailsList[i].PartNo.ToString();
List parts = service.GetPart(PartNo);
if (parts.Count > 0)
{
moveDetailsList[i].PartId = parts[0].PartId;
moveDetailsList[i].PartSpec = parts[0].PartSpec;
moveDetailsList[i].Unit = parts[0].Unit;
}
else
{
moveDetailsList[i].PartId = 0;
moveDetailsList[i].PartSpec = "";
moveDetailsList[i].Unit = "";
}
//moveDetailsList[i].Qty = string.IsNullOrEmpty(Qty) ? 0 : Convert.ToDecimal(Qty);
moveDetailsList[i].PickQty = 0;
moveDetailsList[i].OutQty = 0;
moveDetailsList[i].RecQty = 0;
moveDetailsList[i].PlanDate = planDate;
moveDetailsList[i].PlanTime = planTime;
moveDetailsList[i].DestWarehouseId = string.IsNullOrEmpty(destWarehouseId) ? 0 : Convert.ToInt32(destWarehouseId);
moveDetailsList[i].DestWarehouseName = destWarehouseName;
moveDetailsList[i].DestZoneId = string.IsNullOrEmpty(destZoneId) ? 0 : Convert.ToInt32(destZoneId);
moveDetailsList[i].DestZoneName = destZoneName;
moveDetailsList[i].DestErpWarehouse = destErpWarehouse;
moveDetailsList[i].SrcWarehouseId = string.IsNullOrEmpty(srcWarehouseId) ? 0 : Convert.ToInt32(srcWarehouseId);
moveDetailsList[i].SrcWarehouseName = srcWarehouseName;
moveDetailsList[i].SrcZoneId = string.IsNullOrEmpty(srcZoneId) ? 0 : Convert.ToInt32(srcZoneId);
moveDetailsList[i].SrcZoneName = srcZoneName;
moveDetailsList[i].SrcErpWarehouse = srcErpWarehouse;
moveDetailsList[i].Enabled = enabled;
moveDetailsList[i].FactoryId = CurrentEmp.FactoryId;
moveDetailsList[i].FactoryCode = CurrentEmp.FactoryCode;
moveDetailsList[i].CreateUserId = CurrentEmp.EmpId;
}
String message = "";
try
{
moveHeader.CreateUserId = CurrentEmp.EmpId;
bool flag = this.service.saveMovementManage(moveHeader, moveDetailsList);
if (flag == true)
{
message = "添加成功";
}
else
{
message = "添加失败!";
}
}
catch (Exception e)
{
message = "添加失败!";
}
Hashtable result = new Hashtable();
result.Add("message", message);
return Json(result);
}
public ActionResult GetErpwarehouse()
{
Hashtable resault = new Hashtable();
List pdlineList = service.GetErpwarehouse();
resault.Add("list", pdlineList);
return Json(resault);
}
#region 过滤零件号
public ActionResult GetPart_No(string q)
{
List list = filePart(q);
return writeResult(list);
}
///
/// 过滤零件号
///
///
///
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 Hashtable GetItemPart(string key)
{
List autoComplateList = new List();
Hashtable result = new Hashtable();
try
{
List dt = service.GetPartNoInfo(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
#region 过滤零件号简码
public ActionResult GetPart_Spec(string q)
{
List list = filePartSpec(q);
return writeResult(list);
}
///
/// 过滤零件号
///
///
///
public List filePartSpec(string key)
{
Hashtable autoComplateList = GetItemPartSpec(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 Hashtable GetItemPartSpec(string key)
{
List autoComplateList = new List();
Hashtable result = new Hashtable();
try
{
List dt = service.GetPartSpecInfo(key);
for (int i = 0; i < dt.Count; i++)
{
result.Add(dt[i].PartId.ToString(), dt[i].PartSpec.ToString());
}
}
catch (Exception e)
{
result = new Hashtable();
}
return result;
}
#endregion
private ActionResult writeResult(List list)
{
Hashtable result = new Hashtable();
result.Add("list", list);
return Json(result);
}
public ActionResult getPartNoInfo(string partNo)
{
Hashtable resault = new Hashtable();
List list = service.GetPartNoInfo(partNo);
return Json(list);
}
public ActionResult getPartNoInfoByPartNo(string partNo)
{
Hashtable resault = new Hashtable();
List list = service.GetPartNoInfoByPartNo(partNo);
return Json(list);
}
public ActionResult getPartSpecInfo(string partSpec)
{
Hashtable resault = new Hashtable();
List list = service.GetPartSpecInfo(partSpec);
return Json(list);
}
public ActionResult getPartSpecInfoByPartSpec(string partSpec)
{
Hashtable resault = new Hashtable();
List list = service.GetPartSpecInfoByPartSpec(partSpec);
return Json(list);
}
#region 关联单号
public ActionResult GetWorkRefOrderNo(string refOrderNo, string orderType)
{
Hashtable resault = new Hashtable();
List list = service.GetWorkRefOrderNo(refOrderNo,orderType);
return Json(list);
}
public ActionResult GetRefOrderNo(string q)
{
List list = fileRefOrderNo(q);
return writeResult(list);
}
///
/// 过滤关联单号
///
///
///
public List fileRefOrderNo(string key)
{
Hashtable autoComplateList = GetItemRefOrderNo(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 Hashtable GetItemRefOrderNo(string refOrderNo)
{
List autoComplateList = new List();
Hashtable result = new Hashtable();
try
{
List dt = service.GetWorkOrderInfo(refOrderNo);
for (int i = 0; i < dt.Count; i++)
{
result.Add(dt[i].Ruid.ToString(), dt[i].OrderNo.ToString());
}
}
catch (Exception e)
{
result = new Hashtable();
}
return result;
}
#endregion
///
/// 编辑菜单
///
///
///
public ActionResult EditMovementManage(String warehouseId)
{
ViewData.Add("editType", "new");
List menuList = this.service.getSelectWarehouse();
if (menuList.Count > 0)
{ //源仓库 目标仓库绑定默认值
ViewData.Add("srcWarehouseId", menuList[0].value);
ViewData.Add("destWarehouseId", menuList[0].value);
}
return View("EditMovementManage");
}
///
/// 关闭
///
///
///
public ActionResult onClose(String orderNos)
{
bool flag = true;
try
{
string empId = CurrentEmp.EmpId.ToString();
flag = this.service.onClose(orderNos, empId);
}
catch (Exception e)
{
flag = false;
}
Hashtable result = new Hashtable();
result.Add("status", flag);
return Json(result);
}
///
/// 启用
///
///
///
public ActionResult onEnable(String orderNos)
{
bool flag = true;
try
{
flag = this.service.EnableData(orderNos);
}
catch (Exception e)
{
flag = false;
}
Hashtable result = new Hashtable();
result.Add("status", flag);
return Json(result);
}
///
/// 禁用
///
///
///
public ActionResult onDisable(String orderNos)
{
bool flag = true;
try
{
flag = this.service.DisableData(orderNos);
}
catch (Exception e)
{
flag = false;
}
Hashtable result = new Hashtable();
result.Add("status", flag);
return Json(result);
}
}
}