using HH.AutoBom.Core; using HH.WMS.Common; using HH.WMS.Entitys; using HH.WMS.Entitys.Basic; using HH.WMS.Entitys.Common; using HH.WMS.WebUI.Controllers; using Newtonsoft.Json; using Newtonsoft.Json.Converters; using System; using System.Collections.Generic; using System.Data; using System.IO; using System.Linq; using System.Web; using System.Web.Mvc; namespace HH.WMS.WebUI.Areas.Instock.Controllers { public class IncreaseController : BaseController { #region 入库单相关视图 public ActionResult Index() { return View(); } public ActionResult IncreaseList() { return View(); } public ActionResult Audit() { return View(); } public ActionResult AuditItem(string opNo) { TN_WM_INCREASE_INVENTORY_MSTEntity inMst = new TN_WM_INCREASE_INVENTORY_MSTEntity(); var loginer = FormsAuth.GetUserData(); string dataStr = HttpWMS_Get("api/In/GetIncreaseInventoryMstAndDtl?opNo=" + opNo); IsoDateTimeConverter timeFormat = new IsoDateTimeConverter(); timeFormat.DateTimeFormat = "yyyy-MM-dd HH:mm:ss"; var resultEntity = JsonConvert.DeserializeObject(dataStr, timeFormat); if (resultEntity != null && resultEntity.Success) { inMst = resultEntity.GetData(); } inMst.OperateType = OperateType.Read; //获取驳回记录 string rejectHistory = HttpWMS_Get("api/Reject/GetRejectHistory?opNo=" + opNo); if (!string.IsNullOrEmpty(rejectHistory)) { var rejectResult = JsonConvert.DeserializeObject(rejectHistory); var rejectList = rejectResult.GetData>(); //所有驳回记录 if (rejectList != null) inMst.CN_S_HISTORY_REJECT = string.Join(";", rejectList.Select(p => p.CN_S_OPINION)); } inMst.CN_S_MODIFY = loginer.UserName; inMst.CN_S_MODIFY_BY = loginer.UserCode; return View(inMst); } /// /// 入库单编辑页面加载 /// /// 入库单号 /// 知否查看页面 /// /// [HANHE(XDL)] CREATED BY 2018-11-24 public ActionResult IncreaseEdit(string opNo, bool read = false) { TN_WM_INCREASE_INVENTORY_MSTEntity inMst = new TN_WM_INCREASE_INVENTORY_MSTEntity(); var loginer = FormsAuth.GetUserData(); //新增 if (string.IsNullOrEmpty(opNo)) { string postData = "{\"appCode\":\"AutoWMS\",\"ruleName\":\"" + Constants.Rule_In + "\",\"orgId\":\"" + loginer.ParentOrgCode + "\",\"orgFlag\":\"" + loginer.OrgFlag + "\"}"; string addOpNo = WebApiManager.HttpAutoBom_Post("api/BillRule/GenBillNo", postData); inMst.CN_S_OP_NO = addOpNo; string postLotData = "{\"appCode\":\"AutoWMS\",\"ruleName\":\"" + Constants.BatchNo + "\",\"orgId\":\"" + loginer.ParentOrgCode + "\",\"orgFlag\":\"" + loginer.OrgFlag + "\"}"; string addLotNo = WebApiManager.HttpAutoBom_Post("api/BillRule/GenBillNo", postLotData); inMst.CN_S_LOT_NO = addLotNo; inMst.CN_T_OPERATE = DateTime.Now; inMst.CN_T_CREATE = DateTime.Now; inMst.CN_S_OPERATOR = loginer.UserName; inMst.CN_S_STATE = Constants.State_New; inMst.OperateType = OperateType.Add; } else { inMst.OperateType = OperateType.Edit; string dataStr = HttpWMS_Get("api/In/GetIncreaseInventoryMstAndDtl?opNo=" + opNo); IsoDateTimeConverter timeFormat = new IsoDateTimeConverter(); timeFormat.DateTimeFormat = "yyyy-MM-dd HH:mm:ss"; var resultEntity = JsonConvert.DeserializeObject(dataStr, timeFormat); if (resultEntity != null && resultEntity.Success) { // inMst = resultEntity.GetData(); inMst = JsonConvert.DeserializeObject(resultEntity.Data.ToString()); } inMst.OperateType = OperateType.Edit; if (read) inMst.OperateType = OperateType.Read; inMst.CN_S_MODIFY = loginer.UserName; inMst.CN_S_MODIFY_BY = loginer.UserCode; } return View(inMst); } #endregion #region 入库单保存(新增、编辑) /// /// 入库单保存(新增、编辑) /// /// /// [HANHE(XDL)] CREATED BY 2018-11-20 public string SaveIncrease() { var sr = new StreamReader(Request.InputStream); var stream = sr.ReadToEnd(); TN_WM_INCREASE_INVENTORY_MSTEntity inmst = JsonConvert.DeserializeObject(stream); var loginer = FormsAuth.GetUserData(); inmst.TokenId = loginer.Extend1; inmst.CN_S_STATE = Constants.State_New; //新增 if (inmst.OperateType == OperateType.Add) { return HttpWMS_Post("api/In/AddIncrease", JsonConvert.SerializeObject(inmst)); } else { return HttpWMS_Post("api/In/UpdateIncrease", JsonConvert.SerializeObject(inmst)); } } #endregion #region 入库单提交 /// /// 入库单提交 /// /// 入库单号 /// /// [HANHE(XDL)] CREATED BY 2018-11-21 public string IncreaseSubmit(string opNo) { var loginer = FormsAuth.GetUserData(); List entity = new List(); entity.Add(new TN_WM_B_EXAMINEEntity() { CN_GUID = System.Guid.NewGuid().ToString().ToUpper(), CN_S_OP_FROM = "入库单", CN_S_FROM_NO = opNo, CN_S_EXAMINE_TYPE = "submit", TokenId = loginer.Extend1, CN_S_CREATOR = loginer.UserCode, CN_S_CREATOR_BY = loginer.UserName }); return HttpWMS_Post("api/In/SubmitIncrease", JsonConvert.SerializeObject(entity)); } #endregion #region 入库单删除 /// /// 入库单提交 /// /// 入库单号 /// /// [HANHE(XDL)] CREATED BY 2018-11-21 public string IncreaseDelete(string opNo) { var loginer = FormsAuth.GetUserData(); var tokenId = loginer.Extend1; return HttpWMS_Get("api/In/DeleteIncrease?opNo=" + opNo); } #endregion #region 获取入库单列表 /// /// 获取入库单列表 /// /// 页码 /// 页显示数 /// 入库单号 /// 状态 /// 业务类型 /// 供应商名称 /// 创建日期 /// /// [HANHE(XDL)] CREATED BY 2018-11-19 public string GetIncreaseList(int pageIndex, int pageSize, string CN_S_OP_NO, string CN_S_STATE, string CN_S_OP_TYPE, string CN_S_VENDOR_NAME, string IsHandWork, string valueDate) { var loginer = FormsAuth.GetUserData(); var TokenId = loginer.Extend1;//TokenId string[] date = new string[2]; if (!string.IsNullOrEmpty(valueDate)) date = JsonConvert.DeserializeObject(valueDate); //查询条件 var SearchCondition = new { CN_S_OP_NO = CN_S_OP_NO, CN_S_STATE = CN_S_STATE, CN_S_OP_TYPE = CN_S_OP_TYPE, CN_S_VENDOR_NAME = CN_S_VENDOR_NAME, IsHandWork = IsHandWork, CN_T_START = !string.IsNullOrEmpty(valueDate) ? date[0] : "", CN_T_END = !string.IsNullOrEmpty(valueDate) ? date[1] : "" }; var searchModel = new { pageIndex = pageIndex, pageSize = pageSize, tokenId = TokenId, SearchCondition = SearchCondition }; return HttpWMS_Post("api/In/GetIncreaseList", JsonConvert.SerializeObject(searchModel)); } #endregion #region 入库单审核 /// /// 审核 /// /// 入库单号 /// 审核意见 /// /// [HANHE(XDL)] CREATED BY 2018-11-21 public string IncreaseAudit(string opNo, string idea) { var loginer = FormsAuth.GetUserData(); List entity = new List(); entity.Add(new TN_WM_B_EXAMINEEntity() { CN_GUID = System.Guid.NewGuid().ToString().ToUpper(), CN_S_OP_FROM = "入库单", CN_S_FROM_NO = opNo, CN_S_EXAMINE_TYPE = "audit", TokenId = loginer.Extend1, CN_S_CREATOR = loginer.UserCode, CN_S_CREATOR_BY = loginer.UserName, CN_S_OPINION = idea }); return HttpWMS_Post("api/In/AuditIncrease", JsonConvert.SerializeObject(entity)); } #endregion #region 入库单反审 /// /// 反审 /// /// 入库单号 /// /// [HANHE(XDL)] CREATED BY 2018-11-21 public string IncreaseReAudit(string opNo) { var loginer = FormsAuth.GetUserData(); List entity = new List(); entity.Add(new TN_WM_B_EXAMINEEntity() { CN_GUID = System.Guid.NewGuid().ToString().ToUpper(), CN_S_OP_FROM = "入库单", CN_S_FROM_NO = opNo, CN_S_EXAMINE_TYPE = "reaudit", TokenId = loginer.Extend1, CN_S_CREATOR = loginer.UserCode, CN_S_CREATOR_BY = loginer.UserName }); return HttpWMS_Post("api/In/ReAuditIncrease", JsonConvert.SerializeObject(entity)); } #endregion #region 入库单取消 /// /// 取消 /// /// 入库单号 /// /// [HANHE(XDL)] CREATED BY 2019-03-11 public string IncreaseCancel(string opNo) { var loginer = FormsAuth.GetUserData(); List entity = new List(); entity.Add(new TN_WM_B_EXAMINEEntity() { CN_GUID = System.Guid.NewGuid().ToString().ToUpper(), CN_S_OP_FROM = "入库单", CN_S_FROM_NO = opNo, CN_S_EXAMINE_TYPE = "cancel", TokenId = loginer.Extend1, CN_S_CREATOR = loginer.UserCode, CN_S_CREATOR_BY = loginer.UserName }); return HttpWMS_Post("api/In/CancelIncrease", JsonConvert.SerializeObject(entity)); } #endregion #region 入库单驳回 /// /// 驳回 /// /// 入库单号 /// 驳回意见 /// /// [HANHE(XDL)] CREATED BY 2018-11-21 public string IncreaseReject(string opNo, string idea) { var loginer = FormsAuth.GetUserData(); List entity = new List(); entity.Add(new TN_WM_B_EXAMINEEntity() { CN_GUID = System.Guid.NewGuid().ToString().ToUpper(), CN_S_OP_FROM = "入库单", CN_S_FROM_NO = opNo, CN_S_EXAMINE_TYPE = "reject", TokenId = loginer.Extend1, CN_S_CREATOR = loginer.UserCode, CN_S_CREATOR_BY = loginer.UserName, CN_S_OPINION = idea }); return HttpWMS_Post("api/In/RejectIncrease", JsonConvert.SerializeObject(entity)); } #endregion #region 入库单导出 /// /// 导出货位库存 /// /// public string ExportIncrease() { //XML文件流 var sr = new System.IO.StreamReader(Request.InputStream); var stream = sr.ReadToEnd(); var loginer = FormsAuth.GetUserData(); var TokenId = loginer.Extend1; var DynamicObject = JsonConvert.DeserializeObject(stream); dynamic formData = DynamicObject["formData"]; string[] date = new string[2]; if (!string.IsNullOrEmpty(Util.ToString(formData.valueDate))) date = JsonConvert.DeserializeObject(Util.ToString(formData.valueDate)); var searchModel = new { TokenId = loginer.Extend1, SearchCondition = new { CN_S_OP_NO = Util.ToString(formData.CN_S_OP_NO), CN_S_STATE = Util.ToString(formData.CN_S_STATE), CN_S_OP_TYPE = Util.ToString(formData.CN_S_OP_TYPE), CN_S_VENDOR_NAME = Util.ToString(formData.CN_S_VENDOR_NAME), IsHandWork = Util.ToString(formData.IsHandWork), CN_T_START = !string.IsNullOrEmpty(Util.ToString(formData.valueDate)) ? date[0] : "", CN_T_END = !string.IsNullOrEmpty(Util.ToString(formData.valueDate)) ? date[1] : "" } }; string result = HttpWMS_Post("api/In/GetIncreaseListExport", JsonConvert.SerializeObject(searchModel)); OperateResult or = JsonConvert.DeserializeObject(result); string s = ((dynamic)or.Data).rows.ToString(); DataTable dt = HH.WMS.Utils.ZConvert.ToDataTableTwo(s); dynamic columns = DynamicObject["columns"]; string title = "入库单列表"; string fileName = title + "_" + DateTime.Now.ToString("yyyyMMddHHmmssffff") + ".xls"; or = ExcelHelper.SaveTemp(columns, title, dt, fileName); if (or.Status == ResultStatus.Success) return JsonConvert.SerializeObject(OperateResult.Succeed("", new { fileName = fileName })); else return JsonConvert.SerializeObject(or); } #endregion } }