using HH.AutoBom.Core;
using HH.WMS.Common;
using HH.WMS.Entitys;
using HH.WMS.Entitys.Check;
using HH.WMS.Entitys.Common;
using HH.WMS.WebUI.Controllers;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace HH.WMS.WebUI.Areas.Check.Controllers
{
public class CheckController : BaseController
{
//
// GET: /Check/Check/
public ActionResult Index()
{
return View();
}
///
/// 新增
///
///
public ActionResult CheckAdd()
{
return View();
}
public ActionResult Batch()
{
return View();
}
public ActionResult CheckCount()
{
return View();
}
#region 获取盘点主表数据
///
/// 获取盘点主表数据
///
/// 盘点单号
/// 仓库编码
/// 库区
/// 物料编码
/// 盘点日期
/// 类型
///
/// [HanHe(LT)] CREATED 2018/7/4
public string GetCheckMst(int pageIndex, int pageSize, string CN_S_OP_NO, string CN_S_TYPE, string CN_S_STOCK_CODE, string CHECKTIME, string CN_S_STATE, string valueDate)
{
string sqlWhere = "WHERE 1=1";
//仓库编码
if (!string.IsNullOrEmpty(CN_S_OP_NO))
{
sqlWhere += " AND CN_S_OP_NO like '%" + CN_S_OP_NO.Trim() + "%'";
}
//仓库编码
if (!string.IsNullOrEmpty(CN_S_STOCK_CODE))
{
sqlWhere += " AND CN_S_STOCK_CODE = '" + CN_S_STOCK_CODE + "'";
}
//类型
if (!string.IsNullOrEmpty(CN_S_TYPE))
{
sqlWhere += " AND CN_S_TYPE = '" + CN_S_TYPE + "' ";
}
string[] date = new string[2];
if (!string.IsNullOrEmpty(valueDate))
{
date = JsonConvert.DeserializeObject(valueDate);
////开始时间
if (!string.IsNullOrEmpty(date[0]))
{
sqlWhere += " AND CN_T_CREATE >= '" + date[0] + "' ";
}
//结束时间
if (!string.IsNullOrEmpty(date[1]))
{
sqlWhere += " AND CN_T_CREATE <= DateAdd(dd, 1, '" + date[1] + "')";
}
}
////开始时间
//if (!string.IsNullOrEmpty(STARTTIME))
//{
// sqlWhere += " AND CN_T_CREATE >= '" + STARTTIME + "' ";
//}
////结束时间
//if (!string.IsNullOrEmpty(ENDTIME))
//{
// sqlWhere += " AND CN_T_CREATE <= DateAdd(dd, 1, '" + ENDTIME + "')";
//}
//状态
if (!string.IsNullOrEmpty(CN_S_STATE))
{
sqlWhere += " AND CN_S_STATE = '" + CN_S_STATE + "'";
}
string OrdeBy = " order by CN_T_CREATE DESC";
var loginer = FormsAuth.GetUserData();
var entity = new
{
tokenId = loginer.Extend1,
OrdeBy = OrdeBy,
sqlWhere = sqlWhere,
pageSize = pageSize,
pageIndex = pageIndex
};
string stringjson = JsonConvert.SerializeObject(entity);
string list = HttpWMS_Post("Api/Check/GetDataTable", stringjson);
return list;
}
///
/// 获取盘点明细数据
///
/// 仓库编码
///
/// [HanHe(LT)] CREATED 2018/7/4
/// [HanHe(dbs)] CREATED 2019/3/18
public string GetCheckDtl(string opNo)
{
string list = HttpWMS_Get("Api/Check/GetCheckDtl?opNo=" + opNo);
return list;
}
///
/// 获取盘点明细表数据
///
/// 仓库编码
///
/// [HanHe(LT)] CREATED 2018/7/4
public string GetCheckList(string opNo)
{
return HttpWMS_Get("Api/Check/GetCheckList?opNo=" + opNo);
}
#endregion
public string GetModel(string opNo)
{
return HttpWMS_Get("Api/Check/GetModel?opNo=" + opNo);
}
#region 获取盘点子表数据
///
/// 获取盘点主表数据
///
/// 仓库编码
///
/// [HanHe(LT)] CREATED 2018/7/4
public string GetDataTableDtls(string CN_S_OP_NO, string ps, string pg)
{
string sqlWhere = "WHERE 1=1";
//业务号
if (!string.IsNullOrEmpty(CN_S_OP_NO))
{
sqlWhere += " AND CN_S_OP_NO = '" + CN_S_OP_NO + "'";
}
string OrdeBy = " order by CN_S_OP_NO DESC";
var loginer = FormsAuth.GetUserData();
var TokenId = loginer.Extend1;//TokenId
var entity = new
{
tokenId = TokenId,
OrdeBy = OrdeBy,
sqlWhere = sqlWhere,
pageSize = ps,
pageIndex = pg
};
string stringjson = JsonConvert.SerializeObject(entity);
string list = HttpWMS_Post("Api/Check/GetDataTableDtl", stringjson);
return list;
}
///
/// 获取子表数据
///
/// 盘点数据
///
/// [HanHe(LT)] CREATED 2018/7/13
public string GetCheckMstDtlBywhere(string CN_S_OP_NO)
{
string sqlwhere = "";
if (!string.IsNullOrEmpty(CN_S_OP_NO))
{
sqlwhere += "AND a.CN_S_OP_NO='" + CN_S_OP_NO + "'";
}
string list = HttpWMS_Get("Api/Check/GetCheckMstDtlBywhere?sqlwhere=" + sqlwhere);
return list;
}
#endregion
#region 获取盘点明细表数据
///
/// 获取盘点明细表数据
///
/// 仓库编码
///
/// [HanHe(LT)] CREATED 2018/7/4
public string GetDataTableCheckLists(string CN_S_OP_NO, string ps, string pg)
{
string sqlWhere = "WHERE 1=1";
//业务号
if (!string.IsNullOrEmpty(CN_S_OP_NO))
{
sqlWhere += " AND CN_S_OP_NO = '" + CN_S_OP_NO + "'";
}
string OrdeBy = " order by CN_S_OP_NO DESC";
var loginer = FormsAuth.GetUserData();
var TokenId = loginer.Extend1;//TokenId
var entity = new
{
tokenId = TokenId,
OrdeBy = OrdeBy,
sqlWhere = sqlWhere,
pageSize = ps,
pageIndex = pg
};
string stringjson = JsonConvert.SerializeObject(entity);
string list = HttpWMS_Post("Api/Check/GetGroupDataTable", stringjson);
return list;
}
public string GetDataTableCheckLists(string CN_S_OP_NO, string CN_S_STOCK_CODE, string CN_S_STOCK_AREA, string CN_S_ITEM_CODE, string ps, string pg)
{
string sqlWhere = "WHERE 1=1";
//盘点号
if (!string.IsNullOrEmpty(CN_S_OP_NO))
{
sqlWhere += " AND CN_S_OP_NO = '" + CN_S_OP_NO + "'";
}
//仓库
if (!string.IsNullOrEmpty(CN_S_STOCK_CODE))
{
sqlWhere += " AND CN_S_STOCK_CODE = '" + CN_S_STOCK_CODE + "'";
}
//库区
if (!string.IsNullOrEmpty(CN_S_STOCK_AREA))
{
sqlWhere += " AND CN_S_STOCK_AREA = '" + CN_S_STOCK_AREA + "'";
}
//物料编码
if (!string.IsNullOrEmpty(CN_S_ITEM_CODE))
{
sqlWhere += " AND CN_S_ITEM_CODE = '" + CN_S_ITEM_CODE + "'";
}
string OrdeBy = " order by CN_S_OP_NO DESC";
var entity = new
{
OrdeBy = OrdeBy,
sqlWhere = sqlWhere,
pageSize = ps,
pageIndex = pg
};
string stringjson = JsonConvert.SerializeObject(entity);
string list = HttpWMS_Post("Api/Check/GetGroupDataTable", stringjson);
return list;
}
#endregion
#region 获取盘点货位物料数据
///
/// 获取盘点货位物料数据
///
/// 盘点类型
/// 仓库号
/// 库区
/// 物料编号
/// 货主
/// 到货批次
/// 货位
///
///
///
/// [HanHe(DBS)] CREATED 2019/3/14
public string GetTrayLocation(string checkType, string stockCode, string stockArea, string itemCode, string owner, string lotNo, string locationCode, int pageIndex, int pageSize)
{
var loginer = FormsAuth.GetUserData();
SearchModel searchModel = new SearchModel()
{
TokenId = loginer.Extend1,
PageIndex = pageIndex,
PageSize = pageSize,
SearchCondition = new
{
CN_S_TYPE = checkType,
CN_S_STOCK_CODE = stockCode,
CN_S_STOCK_AREA = stockArea,
CN_S_ITEM_CODE = itemCode,
CN_S_OWNER = owner,
CN_S_LOT_NO = lotNo,
CN_S_LOCATION_CODE = locationCode
}
};
return HttpWMS_Post("Api/Check/GetTrayLocation", JsonConvert.SerializeObject(searchModel));
}
#endregion
#region 新增
///
/// 新增
///
///
///
/// [HanHe(LT)] CREATED 2018/7/12
/// [HanHe(DBS)] CREATED 2019/3/18
public string Add(JObject obj)
{
var loginer = FormsAuth.GetUserData();
string code = GetCode(Constants.CheckCode);
var time = DateTime.Now;
TN_WM_CHECK_MSTEntity entitymst = new TN_WM_CHECK_MSTEntity()
{
TokenId = ViewConstants.TokenId,
CN_S_OP_NO = code,
CN_S_STOCK_CODE = obj.Value("stockcode"),
CN_T_OP_TIME = time,
CN_S_STATE = obj.Value("state"),
CN_S_TYPE = obj.Value("type"),
CN_S_CREATOR = ViewConstants.UserData.UserCode,
CN_S_CREATOR_BY = ViewConstants.UserData.UserName,
CN_T_CREATE = time,
CN_S_MODIFY = ViewConstants.UserData.UserCode,
CN_S_MODIFY_BY = ViewConstants.UserData.UserName,
CN_T_MODIFY = time,
dtls = JsonConvert.DeserializeObject>(obj["rows"].ToString())
};
for(int i=0;i< entitymst.dtls.Count;i++)
{
entitymst.dtls[i].CN_S_OP_NO = code;
entitymst.dtls[i].CN_N_ROW_NO = i + 1;
};
string jsonentity = JsonConvert.SerializeObject(entitymst);
var str = HttpWMS_Post("Api/Check/AddCheck", jsonentity);
return str;
}
#endregion
#region 提交
///
/// 提交
///
///
///
/// [HanHe(LT)] CREATED 2018/8/24
public string Submit(JObject obj)
{
var loginer = FormsAuth.GetUserData();
var entity = new
{
opNo = obj.Value("opNo"),
//type = obj.Value("type"),
tokenid = loginer.Extend1
};
string jsonentity = JsonConvert.SerializeObject(entity);
string returnstr = HttpWMS_Post("Api/Check/Submit", jsonentity);
return returnstr;
}
#endregion
#region 根据盘点单号删除
///
/// 根据盘点单号删除
///
///
///
/// [HanHe(LT)] CREATED 2018/8/24
public string Delete(string opNo)
{
return HttpWMS_Get("Api/Check/Delete?opNo=" + opNo);
}
#endregion
#region 新增批量
///
/// 新增
///
///
///
/// [HanHe(LT)] CREATED 2018/7/12
public string AddBatch(JObject obj)
{
var loginer = FormsAuth.GetUserData();;
string code = GetCode(Constants.CheckCode);
TN_WM_CHECK_MSTEntity entitymst = new TN_WM_CHECK_MSTEntity();
//TN_WM_CHECK_DTLEntity entity = JsonHelper.ParseFormJson(obj.ToString());
string CN_S_STOCK_CODE = obj.Value("CN_S_STOCK_CODE");
string CN_S_STOCK_AREA = obj.Value("CN_S_STOCK_AREA");
string CN_S_ITEM_CODE = obj.Value("CN_S_ITEM_CODE");
string CN_S_OWNER = obj.Value("CN_S_OWNER");
string CN_S_LOT_NO = obj.Value("CN_S_LOT_NO");
string CN_S_LOCATION_CODE = obj.Value("CN_S_LOCATION_CODE");
var time = DateTime.Now;
entitymst.CN_S_OP_NO = code;
entitymst.CN_S_STOCK_CODE = obj.Value("CN_S_STOCK_CODE");
entitymst.CN_T_OP_TIME = time;
entitymst.CN_S_STATE = "新建";
entitymst.CN_S_TYPE = "自定义盘点";
entitymst.CN_S_CREATOR = loginer.UserCode;
entitymst.CN_S_CREATOR_BY = loginer.UserName;
entitymst.CN_T_CREATE = time;
entitymst.CN_S_MODIFY = loginer.UserCode;
entitymst.CN_S_MODIFY_BY = loginer.UserName;
entitymst.CN_T_MODIFY = time;
string sqlWhere = "WHERE 1=1";
//仓库编码
if (!string.IsNullOrEmpty(CN_S_STOCK_CODE))
{
sqlWhere += " AND CN_S_STOCK_CODE = '" + CN_S_STOCK_CODE + "'";
}
//库区
if (!string.IsNullOrEmpty(CN_S_STOCK_AREA))
{
sqlWhere += " AND CN_S_STOCK_AREA = '" + CN_S_STOCK_AREA + "' ";
}
//物料编码
if (!string.IsNullOrEmpty(CN_S_ITEM_CODE))
{
sqlWhere += " AND CN_S_ITEM_CODE LIKE '%" + CN_S_ITEM_CODE.Trim() + "%' ";
}
//货主
if (!string.IsNullOrEmpty(CN_S_OWNER))
{
sqlWhere += " AND CN_S_OWNER = '" + CN_S_OWNER + "' ";
}
//批次号
if (!string.IsNullOrEmpty(CN_S_LOT_NO))
{
sqlWhere += " AND CN_S_LOT_NO like '%" + CN_S_LOT_NO.Trim() + "%' ";
}
//货位编码
if (!string.IsNullOrEmpty(CN_S_LOCATION_CODE))
{
sqlWhere += " AND CN_S_LOCATION_CODE like '%" + CN_S_LOCATION_CODE.ToUpper().Trim() + "%'";
}
sqlWhere += " AND CN_F_QUANTITY>0";
var entity = new
{
entityMst = entitymst,
sqlwhere = sqlWhere,
type = "货位盘点",
tokenId = loginer.Extend1
};
string jsonentity = JsonConvert.SerializeObject(entity);
string returnstr = HttpWMS_Post("Api/Check/AddCheckBatch", jsonentity);
return returnstr;
}
#endregion
#region 修改
///
/// 修改
///
///
///
/// [HanHe(LT)] CREATED 2018/7/12
public string Update(JObject obj)
{
TN_WM_CHECK_MSTEntity entitymst = new TN_WM_CHECK_MSTEntity();
entitymst.TokenId = ViewConstants.TokenId;
entitymst.CN_S_OP_NO = obj.Value("opNo");
entitymst.CN_S_MODIFY = ViewConstants.UserData.UserCode;
entitymst.CN_S_MODIFY_BY = ViewConstants.UserData.UserName;
entitymst.CN_T_MODIFY = DateTime.Now;
entitymst.dtls =JsonConvert.DeserializeObject>(obj.Value