using Dapper;
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 NPOI.HSSF.UserModel;
using System.Collections;
using System.Text.Json;
/***************************************************************************************************
*
* 更新人:sitong.dong
* 描述:总成/原材料零件号管理
* 修改时间:2022.06.22
* 修改日志:系统迭代升级
*
**************************************************************************************************/
namespace Estsh.Core.Web.Controllers
{
public class PartMasterController : BaseController
{
private IPartMasterService service;
public PartMasterController(IPartMasterService _service)
{
service = _service;
}
//
// GET: /PartMaster/
public ActionResult Index()
{
//ViewData.Add("partType", partType);
return View();
}
///
/// 获取总成/原材料零件号管理列表数据
///
/// 菜单名称
/// 分页
/// 排序方式
/// 排序列
///
public ActionResult getPartMasterListByPage(String partType, String partNo, String partSpec, Pager pager, String direction, String sort, string enabled = "Y")
{
int factoryId = CurrentEmp.FactoryId;
Hashtable result = new Hashtable();
result.Add("pager.page_no", pager.pageNo);
Hashtable dataHt = this.service.getPartMasterListByPage(partType, 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);
}
///
/// 获取下拉列表数据
///
///
public ActionResult getSelectPartMaster()
{
Hashtable result = new Hashtable();
List PartMasterList = this.service.getSelectPartMaster();
result.Add("list", PartMasterList);
return Json(result);
}
#region 编辑数据,已注释
///
/// 保存数据
///
///
//public ActionResult savePartMaster(string partType)
//{
// Hashtable result = new Hashtable();
// if (string.IsNullOrEmpty(partType) || partType == "null")
// {
// partType = "0";
// }
// String editType = Request.Form["editType"].ToString();
// String partId = Request.Form["partId"].ToString();
// //标签一
// String partSpec = Request.Form["partSpec"].ToString();
// String partNo = Request.Form["partNo"].ToString();
// // String partType = partType;
// String isExemption= Request.Form["isExemption"].ToString();
// String partLocation = Request.Form["enumValue"].ToString();
// String modelId = Request.Form["modelId"].ToString();
// String version = Request.Form["version"].ToString();
// String custPartNo = Request.Form["custPartNo"].ToString();
// String mfgerPartNo = Request.Form["mfgerPartNo"].ToString();
// String vendorPartNo = Request.Form["vendorPartNo"].ToString();
// String erpPartNo = Request.Form["erpPartNo"].ToString();
// String unit = Request.Form["unit"].ToString();
// String partClass = Request.Form["partClass"].ToString();
// String partNo3c = Request.Form["partNo3c"].ToString();
// String enabled = Request.Form["enabled"].ToString();
// //标签二
// String labelFile = Request.Form["labelFile"].ToString();
// String labelType = Request.Form["labelType"].ToString();
// String locateId = Request.Form["locateId"].ToString();
// String defaultBoxQty = "0";
// if (string.IsNullOrEmpty(Request.Form["defaultBoxQty"].ToString()))
// {
// defaultBoxQty = "0";
// }
// else
// {
// defaultBoxQty = Request.Form["defaultBoxQty"].ToString();
// }
// String defaultReelQty = "0";
// if (string.IsNullOrEmpty(Request.Form["defaultReelQty"].ToString()))
// {
// defaultReelQty = "0";
// }
// else
// {
// defaultReelQty = Request.Form["defaultReelQty"].ToString();
// }
// String defaultSetQty = "0";
// if (string.IsNullOrEmpty(Request.Form["defaultSetQty"].ToString()))
// {
// defaultSetQty = "0";
// }
// else
// {
// defaultSetQty = Request.Form["defaultSetQty"].ToString();
// }
// String minPackQty = "0";
// if (string.IsNullOrEmpty(Request.Form["minPackQty"].ToString()))
// {
// minPackQty = "0";
// }
// else
// {
// minPackQty = Request.Form["minPackQty"].ToString();
// }
// String minStockQty = "0";
// if (string.IsNullOrEmpty(Request.Form["minStockQty"].ToString()))
// {
// minStockQty = "0";
// }
// else
// {
// minStockQty = Request.Form["minStockQty"].ToString();
// }
// String maxStockQty = "0";
// if (string.IsNullOrEmpty(Request.Form["maxStockQty"].ToString()))
// {
// maxStockQty = "0";
// }
// else
// {
// maxStockQty = Request.Form["maxStockQty"].ToString();
// }
// String indate = Request.Form["indate"].ToString();
// String sortSeq = "0";
// if (string.IsNullOrEmpty(Request.Form["sortSeq"].ToString()))
// {
// sortSeq = "0";
// }
// else
// {
// sortSeq = Request.Form["sortSeq"].ToString();
// }
// String isSort = "0";
// if (string.IsNullOrEmpty(Request.Form["isSort"].ToString()))
// {
// isSort = "0";
// }
// else
// {
// isSort = Request.Form["isSort"].ToString();
// }
// String sortQty = "0";
// if (string.IsNullOrEmpty(Request.Form["sortQty"].ToString()))
// {
// sortQty = "0";
// }
// else
// {
// sortQty = Request.Form["sortQty"].ToString();
// }
// String sortType = Request.Form["sortType"].ToString();
// String batchControl = Request.Form["batchControl"].ToString();
// String splitFlag = Request.Form["splitFlag"].ToString();
// String overRequest = Request.Form["overRequest"].ToString();
// String indateFlag = Request.Form["indateFlag"].ToString();
// //标签三
// String burninTime = Request.Form["burninTime"].ToString();
// String subboardQty = "0";
// if (string.IsNullOrEmpty(Request.Form["subboardQty"].ToString()))
// {
// subboardQty = "0";
// }
// else
// {
// subboardQty = Request.Form["subboardQty"].ToString();
// }
// String UPCCode = Request.Form["UPCCode"].ToString();
// String UCCCode = Request.Form["UCCCode"].ToString();
// String EANCode = Request.Form["EANCode"].ToString();
// SysPart model = new SysPart();
// //标签一
// model.PartSpec = partSpec;
// model.PartNo = partNo;
// model.PartType = partType;
// model.PartLocation = partLocation;
// model.IsExemption = isExemption;
// model.ModelId = modelId == "" ? null : Convert.ToInt32( modelId);
// model.Version = version;
// model.Unit= unit == "" ? "EA" : unit;
// model.PartClass = partClass;
// model.Enabled = enabled;
// //标签二
// model.LabelFile = labelFile;
// model.LabelType = labelType;
// model.LocateId = locateId==""?null: Convert.ToInt32(locateId);
// model.DefaultBoxQty = defaultBoxQty == "" ? null : Convert.ToDecimal(defaultBoxQty);
// model.DefaultReelQty = defaultReelQty == "" ? null : Convert.ToDecimal(defaultReelQty);
// model.DefaultSetQty = defaultSetQty == "" ? null : Convert.ToDecimal(defaultSetQty);
// model.MinPackQty = minPackQty == "" ? null : Convert.ToDecimal(minPackQty);
// model.MinStockQty = minStockQty == "" ? null : Convert.ToDecimal(minStockQty);
// model.MaxStockQty = maxStockQty == "" ? null : Convert.ToDecimal(maxStockQty);
// model.Indate = indate == "" ? null : Convert.ToInt32(indate);
// model.SortSeq = sortSeq == "" ? null : Convert.ToInt32( sortSeq);
// model.IsSort = isSort == "" ? null : Convert.ToInt32(isSort);
// model.SortQty = sortQty == "" ? null : Convert.ToInt32(sortQty);
// model.SortType = sortType;
// model.BatchControl = batchControl;
// model.SplitFlag = splitFlag;
// model.OverRequest = overRequest;
// model.IndateFlag = indateFlag;
// //标签三
// model.BurninTime = burninTime == "" ? null : Convert.ToInt32(burninTime);
// model.SubboardQty = subboardQty == "" ? null : Convert.ToInt32(subboardQty);
// model.UpcCode = UPCCode;
// model.UccCode = UCCCode;
// model.EanCode = EANCode;
// model.FactoryId = CurrentEmp.FactoryId;
// model.FactoryCode = CurrentEmp.FactoryCode;
// String message = "";
// if (labelType.Equals("1"))
// {
// if (!vendorPartNo.Trim().Equals("") && vendorPartNo != null && !mfgerPartNo.Trim().Equals("") && mfgerPartNo!=null)
// {
// if (editType != null && editType.Trim().Equals("edit"))
// {
// try
// {
// model.UpdateUserId = CurrentEmp.EmpId;
// model.PartId = Convert.ToInt32(partId);
// this.service.updatePartMaster(model);
// message = "修改成功";
// }
// catch (Exception e)
// {
// message = "修改失败!";
// }
// }
// else
// {
// try
// {
// model.CreateUserId = CurrentEmp.EmpId;
// this.service.savePartMaster(model);
// message = "添加成功";
// }
// catch (Exception e)
// {
// message = "添加失败!";
// }
// }
// }else{
// message = "操作失败,对焊接总成进行操作需要填写供应商零件号和制造商零件号";
// }
// }
// else
// {
// if (editType != null && editType.Trim().Equals("edit"))
// {
// try
// {
// model.UpdateUserId = CurrentEmp.EmpId;
// model.PartId = Convert.ToInt32(partId);
// this.service.updatePartMaster(model);
// message = "修改成功";
// }
// catch (Exception e)
// {
// message = "修改失败!";
// }
// }
// else
// {
// try
// {
// model.CreateUserId = CurrentEmp.EmpId;
// this.service.savePartMaster(model);
// message = "添加成功";
// }
// catch (Exception e)
// {
// message = "添加失败!";
// }
// }
// }
// result.Add("message", message);
// return Json(result);
//}
/////
///// 编辑
/////
/////
/////
//public ActionResult editPartMaster(String partId)
//{
// List PartMasterInfo = this.service.getPartMaster(partId);
// //Hashtable PartMasterInfo[0] = (Hashtable)PartMasterInfo[0];
// ViewData.Add("editType", "edit");
// ViewData.Add("partId", partId);
// ViewData.Add("partSpec", PartMasterInfo[0].PartSpec);
// ViewData.Add("partNo", PartMasterInfo[0].PartNo);
// ViewData.Add("partType", PartMasterInfo[0].PartType);
// ViewData.Add("isExemption", PartMasterInfo[0].IsExemption);
// ViewData.Add("enumValue", PartMasterInfo[0].PartLocation);
// ViewData.Add("modelId", PartMasterInfo[0].ModelId);
// ViewData.Add("version", PartMasterInfo[0].Version);
// ViewData.Add("unit", PartMasterInfo[0].Unit);
// ViewData.Add("labelFile", PartMasterInfo[0].LabelFile);
// ViewData.Add("labelType", PartMasterInfo[0].LabelType);
// ViewData.Add("locateId", PartMasterInfo[0].LocateId);
// ViewData.Add("defaultBoxQty", PartMasterInfo[0].DefaultBoxQty);
// ViewData.Add("defaultReelQty", PartMasterInfo[0].DefaultReelQty);
// ViewData.Add("defaultSetQty", PartMasterInfo[0].DefaultSetQty);
// ViewData.Add("minPackQty", PartMasterInfo[0].MinPackQty);
// ViewData.Add("minStockQty", PartMasterInfo[0].MinStockQty);
// ViewData.Add("maxStockQty", PartMasterInfo[0].MaxStockQty);
// ViewData.Add("indate", PartMasterInfo[0].Indate);
// ViewData.Add("sortSeq", PartMasterInfo[0].SortSeq);
// ViewData.Add("isSort", PartMasterInfo[0].IsSort);
// ViewData.Add("sortQty", PartMasterInfo[0].SortQty);
// ViewData.Add("sortType", PartMasterInfo[0].SortType);
// ViewData.Add("batchControl", PartMasterInfo[0].BatchControl);
// ViewData.Add("splitFlag", PartMasterInfo[0].SplitFlag);
// ViewData.Add("overRequest", PartMasterInfo[0].OverRequest);
// ViewData.Add("indateFlag", PartMasterInfo[0].IndateFlag);
// ViewData.Add("rule_set", PartMasterInfo[0].RuleSet);
// ViewData.Add("route_id", PartMasterInfo[0].RouteId);
// ViewData.Add("burninTime", PartMasterInfo[0].BurninTime);
// ViewData.Add("subboardQty", PartMasterInfo[0].SubboardQty);
// ViewData.Add("UPCCode", PartMasterInfo[0].UpcCode);
// ViewData.Add("UCCCode", PartMasterInfo[0].UccCode);
// ViewData.Add("EANCode", PartMasterInfo[0].EanCode);
// ViewData.Add("partClass", PartMasterInfo[0].PartClass);
// //ViewData.Add("partNo3c", PartMasterInfo[0].PartNo3c);
// ViewData.Add("enabled", PartMasterInfo[0].Enabled);
// return View("EditPartMaster");
//}
#endregion
public ActionResult savePartMaster(string partType)
{
Hashtable result = new Hashtable();
if (string.IsNullOrEmpty(partType) || partType == "null")
{
partType = "0";
}
String editType = Request.Form["editType"].ToString();
String partId = Request.Form["partId"].ToString();
String partNo = Request.Form["partNo"].ToString();
String partSpec = Request.Form["partSpec"].ToString();
String partSpec2 = Request.Form["partSpec2"].ToString();
String unit = Request.Form["unit"].ToString();
String defaultBoxQty = "0";
if (string.IsNullOrEmpty(Request.Form["defaultBoxQty"].ToString()))
{
defaultBoxQty = "0";
}
else
{
defaultBoxQty = Request.Form["defaultBoxQty"].ToString();
}
String partGroup = Request.Form["partGroup"].ToString();
String partAbc = Request.Form["partAbc"].ToString();
int factoryId = CurrentEmp.FactoryId;
String factoryCode = CurrentEmp.FactoryCode;
String enabled = Request.Form["enabled"].ToString();
SysPart model = new SysPart();
model.PartNo = partNo;
model.PartSpec = partSpec;
model.PartSpec2 = partSpec2;
model.PartType = partType;
model.Unit = unit == "" ? "件" : unit;
model.DefaultBoxQty = Convert.ToDecimal(defaultBoxQty);
model.PartGroup = partGroup;
model.PartAbc = partAbc;
model.FactoryId = factoryId;
model.FactoryCode = factoryCode;
model.Enabled = enabled;
String message = "";
if (editType != null && editType.Trim().Equals("edit"))
{
try
{
model.UpdateUserId = CurrentEmp.EmpId;
model.PartId = Convert.ToInt32(partId);
this.service.updatePartMaster(model);
message = "修改成功";
}
catch (Exception e)
{
message = "修改失败!";
}
}
else
{
try
{
if (this.service.getPartByExistName(partNo) != null)
{
message = "零件号已存在,请检查!";
}
else if (this.service.getPartByExistSpec(partSpec) != null)
{
message = "零件简码已存在,请检查!";
}
else
{
model.CreateUserId = CurrentEmp.EmpId;
if (this.service.savePartMaster(model) > 0)
{
message = "添加成功";
}
else
{
message = "添加失败";
}
}
}
catch (Exception e)
{
message = "添加失败!";
}
}
result.Add("message", message);
return Json(result);
}
///
/// 编辑
///
///
///
public ActionResult editPartMaster(String partId, String partType)
{
if (!string.IsNullOrEmpty(partId))
{
List PartMasterInfo = this.service.getPartMaster(partId);
ViewData.Add("editType", "edit");
ViewData.Add("partId", partId);
ViewData.Add("partNo", PartMasterInfo[0].PartNo);
ViewData.Add("partSpec", PartMasterInfo[0].PartSpec);
ViewData.Add("partSpec2", PartMasterInfo[0].PartSpec2);
ViewData.Add("partType", PartMasterInfo[0].PartType);
ViewData.Add("unit", PartMasterInfo[0].Unit);
ViewData.Add("defaultBoxQty", PartMasterInfo[0].DefaultBoxQty);
ViewData.Add("partGroup", PartMasterInfo[0].PartGroup);
ViewData.Add("partAbc", PartMasterInfo[0].PartAbc);
ViewData.Add("enabled", PartMasterInfo[0].Enabled);
}
else
{
ViewData.Add("partType", partType);
}
return View("EditPartMaster");
}
///
/// 删除
///
///
///
public ActionResult deletePartMaster(String ids)
{
string partId = ids.Substring(0, ids.Length - 1);
int delCount = 0;
try
{
delCount = this.service.deletePartMaster(partId);
}
catch (Exception e)
{
delCount = -1;
}
Hashtable result = new Hashtable();
result.Add("status", delCount);
return Json(result);
}
///
/// 获取车型数据
///
///
public ActionResult getSelectPartMaster_Model_name()
{
Hashtable result = new Hashtable();
List PartMasterList = this.service.getSelectPartMaster_Model_name();
result.Add("list", PartMasterList);
return Json(result);
}
///
/// 座椅位置
///
///
public ActionResult getSelectPartLocation()
{
Hashtable result = new Hashtable();
List PartLocation = this.service.getSelectPartLocation();
result.Add("list", PartLocation);
return Json(result);
}
///
/// 获取单位数据
///
///
public ActionResult getSelectPartMaster_Enum()
{
Hashtable result = new Hashtable();
List PartMasterList = this.service.getSelectPartMaster_Enum();
result.Add("list", PartMasterList);
return Json(result);
}
///
/// 获取默认库位数据
///
///
public ActionResult getSelectPartMaster_Locate()
{
Hashtable result = new Hashtable();
List PartMasterList = this.service.getSelectPartMaster_Locate();
result.Add("list", PartMasterList);
return Json(result);
}
///
/// 获取条码规则数据
///
///
public ActionResult getSelectPartMaster_TMGZ()
{
Hashtable result = new Hashtable();
List PartMasterList = this.service.getSelectPartMaster_TMGZ();
result.Add("list", PartMasterList);
return Json(result);
}
///
/// 获取工艺流程数据
///
///
public ActionResult getSelectPartMaster_Route()
{
Hashtable result = new Hashtable();
List PartMasterList = this.service.getSelectPartMaster_Route();
result.Add("list", PartMasterList);
return Json(result);
}
///
/// 启用
///
///
///
public ActionResult onEnable(String ids)
{
int delCount = 0;
try
{
delCount = this.service.EnablePartMaster(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.DisablePartMaster(ids);
}
catch (Exception e)
{
delCount = -1;
}
Hashtable result = new Hashtable();
result.Add("status", delCount);
return Json(result);
}
///
/// 导出数据到Excel
/// BY NOAH
///
public ActionResult exportData(String partType, String partNo, String partSpec, string enabled = "Y")
{
string excelName = "";
string dateTime = DateTime.Now.ToString("yyyyMMddHHmmss");
if (partType == "1")
{
excelName = "总成零件号数据" + dateTime;
}
else
{
excelName = "原材料零件数据" + dateTime;
}
List listHt = this.service.getExportList(partType, partNo, partSpec, enabled, CurrentEmp.FactoryId);
var memoryStream = ExcelHelper.ToExcel(listHt);
return File(memoryStream.ToArray(), "application/ms-excel", excelName + ".xls");
}
}
}