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.

669 lines
33 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 Dapper;
using Estsh.Core.Dapper;
using Estsh.Core.IRepositories;
using Estsh.Core.Model.Result;
using Estsh.Core.Models;
using Estsh.Core.Repository.IRepositories;
using System.Collections;
using System.Data;
using System.Text;
/***************************************************************************************************
*
* 更新人sitong.dong
* 描述:采购周计划导入数据访问类
* 修改时间2022.06.22
* 修改日志:系统迭代升级
*
**************************************************************************************************/
namespace Estsh.Core.Repositories
{
/// <summary>
/// 处理采购周计划导入模块的业务数据
/// </summary>
public class PurchaseNoteRepository : BaseRepository<SysStock>, IPurchaseNoteRepository
{
public PurchaseNoteRepository(DapperDbContext _dapperDbContext) : base(_dapperDbContext)
{
}
#region 成员方法
/// <summary>
/// 返回服务日期及时间,返回时格式化
/// </summary>
/// <param name="flag">返回的类型</param>
/// <returns></returns>
public string GetServerDateTime(string flag)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
//default style
string serverDateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss").Replace("-", "/");
switch (flag.ToUpper().Replace(" ", ""))
{
case "YMD":
return serverDateTime.Substring(0, 10); //style:yyyy/MM/dd
case "HMS":
return serverDateTime.Substring(11); //style:HH:mm:ss
case "YY":
return serverDateTime.Substring(2, 2); //style:yy(年前两位)
case "YYYY":
return serverDateTime.Substring(0, 4); //style:yyyy
}
return serverDateTime;
}
}
#region Multilple sheet import DB operat method
/// <summary>
/// Query supplier base information
/// </summary>
/// <param name="supplierCode">supplier code</param>
/// <returns></returns>
public List<SysVendor> QuerySupplierInfo(string vendorCode)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
StringBuilder sbSql = new StringBuilder(1024);
sbSql.Remove(0, sbSql.Length);
sbSql.Append("SELECT TOP 1 vendor_id,vendor_code,vendor_name,vendor_sale,vendor_tel");
sbSql.Append(",vendor_fax,vendor_mtel,vendor_addr,vendor_mail,vendor_pwd,is_print,guid ");
sbSql.Append(" FROM sys_vendor (NOLOCK) WHERE vendor_code=@vendorCode AND enabled='Y'");
DynamicParameters param = new DynamicParameters();
param.Add("@vendorCode", vendorCode);
List<SysVendor> result = dbConn.Query<SysVendor>(sbSql.ToString(), param).ToList();
return result;
}
}
/// <summary>
/// 查询下单员信息
/// </summary>
/// <param name="orderName">上单员姓名</param>
/// <returns></returns>
public List<SysIssuser> QueryOrderInfo(string orderName)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
string strSql = "SELECT TOP 1 iss_id,iss_addr,iss_name,iss_tel,iss_mtel,iss_fax,iss_mail,iss_no " +
" FROM sys_issuser (NOLOCK) WHERE iss_name=@issName AND enabled='Y'";
DynamicParameters param = new DynamicParameters();
param.Add("@issName", orderName);
List<SysIssuser> result = dbConn.Query<SysIssuser>(strSql, param).ToList();
return result;
}
}
/// <summary>
/// 获取服务器日期、时间
/// </summary>
/// <param name="flag">返回类型标志</param>
/// <returns></returns>
public string GetApDateTime(int flag)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
string sql = "SELECT CONVERT(VARCHAR(10),GETDATE(),111) AS ap_datetime";
if (flag > 0)
{
sql = "SELECT CONVERT(VARCHAR(10),GETDATE(),108) AS ap_datetime";
}
List<dynamic> result = dbConn.Query<dynamic>(sql).ToList();
if (result.Count < 1)
{
return "";
}
return result[0].ap_datetime;
}
}
/// <summary>
/// 查询零件行ID
/// </summary>
/// <param name="partNo">零件号</param>
/// <returns></returns>
public string QueryPartId(string partNo)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
string sql = "SELECT TOP 1 part_id FROM sys_part (NOLOCK) WHERE part_no=@partNo AND enabled='Y'";
DynamicParameters param = new DynamicParameters();
param.Add("@partNo", partNo);
object obj = dbConn.ExecuteScalar(sql, param);
if (obj == null)
{
return string.Empty;
}
return obj.ToString();
}
}
/// <summary>
/// 查询零件标准包装
/// </summary>
/// <param name="partId">零件行ID</param>
/// <returns></returns>
public int QueryPartSnp(string partId)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
string sql = "SELECT TOP 1 default_box_qty FROM sys_part (NOLOCK) WHERE part_id=@partId AND enabled='Y'";
DynamicParameters param = new DynamicParameters();
param.Add("@partId", partId);
object obj = dbConn.ExecuteScalar(sql, param);
if (obj == null)
{
return -1;
}
int iReturn = 0;
try
{
iReturn = (int)Convert.ToDouble(obj.ToString());
}
catch
{
return -1;
}
return iReturn;
}
}
/// <summary>
/// 查询项目ID
/// </summary>
/// <param name="itemNo">项目(车型)代码</param>
/// <returns></returns>
public string QueryItemId(string itemNo)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
string sql = "SELECT TOP 1 type_id FROM sys_model_type (NOLOCK) WHERE REPLACE(type_name,' ','')=@item_no and enabled='Y'";
DynamicParameters param = new DynamicParameters();
param.Add("@item_no", itemNo);
object obj = dbConn.ExecuteScalar(sql, param);
if (obj == null)
{
return "";
}
return obj.ToString();
}
}
/// <summary>
/// 验证采购单是否匹配
/// </summary>
/// <param name="purNo">采购单号</param>
/// <param name="partNo">零件号</param>
/// <returns></returns>
public bool ValidatePurNo(string purNo, string partNo)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
//更新sys_base增加WMS接口程序是否开启状态工厂如未开通则不验证)
string sql = "SELECT TOP 1 param_value FROM sys_base (NOLOCK) WHERE param_name='WMSInterfaceEnabled'";
object obj = dbConn.ExecuteScalar(sql);
if (obj != null && obj.ToString().ToUpper() == "Y")
{
sql = "SELECT TOP 1 xw_pod_part FROM xw_pod_det(NOLOCK) WHERE xw_pod_nbr=@purNo AND xw_pod_part=@partNo";
DynamicParameters param = new DynamicParameters();
param.Add("@purNo", purNo);
param.Add("@partNo", partNo);
obj = dbConn.ExecuteScalar(sql, param);
if (obj == null)
{
return false;
}
}
}
return true;
}
/// <summary>
/// 查询工厂ID
/// </summary>
/// <returns></returns>
public string GetFactoryId(int userID)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
string sql = "SELECT TOP 1 factory_id FROM sys_emp (NOLOCK) WHERE emp_id=@userId AND enabled='Y'";
DynamicParameters param = new DynamicParameters(1);
param.Add("@userId", userID);
object obj = dbConn.ExecuteScalar(sql, param);
if (obj == null)
{
return "";
}
return obj.ToString();
}
}
/// <summary>
/// 获取单据码
/// </summary>
/// <param name="item">单据号类型</param>
/// <param name="prefix">前缀</param>
/// <returns></returns>
public string GetOrderNo(string item, string prefix)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
DynamicParameters list = new DynamicParameters();
list.Add("@order_type", item);
list.Add("@order_prefix", prefix);
list.Add("@order_no", null, DbType.String, ParameterDirection.Output, 50);
var hashtable = dbConn.Execute("sys_create_orderno", list, commandType: CommandType.StoredProcedure);
string result = list.Get<string>("@order_no");
return result;
}
}
/// <summary>
/// 保存采购单数据并转结日程单条码
/// </summary>
/// <returns></returns>
public string DataSaveTransact(DataTable dtWeekSchedule, DataTable dtDaySchedule,int userID)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
if (dtWeekSchedule == null || dtWeekSchedule.Rows.Count < 1)
{
return "周计划表头数据读取错误,请确认文件格式!";
}
if (dtDaySchedule == null || dtDaySchedule.Rows.Count < 1)
{
return "周计划表身数据读取错误,请确认文件格式!";
}
IDbTransaction transaction = dbConn.BeginTransaction();
StringBuilder sql = new StringBuilder(1024);
try
{
string saveDate = GetServerDateTime("YMD");
sql.Remove(0, sql.Length);
sql.Append("SELECT RIGHT(CAST(COUNT(DISTINCT iss_seq)+10001 AS VARCHAR(5)),3) FROM g_buy_weekly WHERE create_time=@create_time");
DynamicParameters param = new DynamicParameters();
param.Add("@create_time", saveDate);
string strSeq = dbConn.ExecuteScalar(sql.ToString(), param, transaction).ToString();
if (string.IsNullOrEmpty(strSeq))
{
transaction.Rollback();
return "周计划单导入次序查询失败!";
}
transaction.Commit();
strSeq = saveDate.Replace("/", "") + "-" + strSeq;
foreach (DataRow drWeek in dtWeekSchedule.Rows)
{
string strSeNo = GetOrderNo("BuyWeekOrder", "WR");//weekly order no
if (string.IsNullOrEmpty(strSeNo))
{
transaction.Rollback();
return "周计划单据号获取错误!";
}
string factoryId = drWeek["wa_no"].ToString();
string strSuNo = drWeek["su_no"].ToString();
string strVendorId = drWeek["vendor_id"].ToString();
DataRow[] drs = dtDaySchedule.Select("vendor_id='" + strVendorId + "'");
if (drs.Length < 1)
{
continue;
}
List<string> sqlStrings = new List<string>();
List<DynamicParameters> parameters = new List<DynamicParameters>();
//添加采购订单周计划表头
sql.Remove(0, sql.Length);
sql.Append("INSERT INTO g_buy_weekly (order_no,weekly_no,buy_no,vendor_id,iss_id,iss_date,iss_seq,factory_id ");
sql.Append(",enabled,create_userid, create_time) VALUES (@order_no,@weekly_no,@buy_no,@vendor_id,@iss_id,@iss_date ");
sql.Append(",@iss_seq,@factory_id,@enabled,@user_id, CONVERT(varchar(50), GETDATE(), 21))");
param = new DynamicParameters();
param.Add("@order_no", strSeNo);
param.Add("@weekly_no", drWeek["se_week"].ToString());
param.Add("@buy_no", drWeek["ch_no"].ToString());
param.Add("@vendor_id", strVendorId);
param.Add("@iss_id", drWeek["iss_id"].ToString());
param.Add("@iss_date", drWeek["se_date"].ToString());
param.Add("@iss_seq", strSeq);
param.Add("@factory_id", drWeek["wa_no"].ToString());
param.Add("@enabled", "Y");
param.Add("@user_id", userID);
sqlStrings.Add(sql.ToString());
parameters.Add(param);
//_remotingClone.ExecuteNonQuery(sql.ToString(), param);
//按供应商添加每次提交的日程单数据
foreach (DataRow drDay in drs)
{
sql.Remove(0, sql.Length);
sql.Append("INSERT INTO g_ht_buy_day (order_no,type_id,buy_no,vendor_id,se_date,se_time,part_id,qty,snp_qty ");
sql.Append(",carton_qty,iss_seq,factory_id,enabled,create_userid, create_time) VALUES (@order_no ");
sql.Append(",@type_id,@buy_no,@vendor_id,@se_date,@se_time,@part_id,@qty,@snpQty ");
sql.Append(",@carton_qty,@iss_seq,@factory_id,@enabled,@user_id, CONVERT(varchar(50), GETDATE(), 21))");
param = new DynamicParameters();
param.Add("@order_no", strSeNo);
param.Add("@type_id", drDay["type_id"].ToString());
param.Add("@buy_no", drDay["ch_no"].ToString());
param.Add("@vendor_id", strVendorId);
param.Add("@se_date", drDay["se_date"].ToString());
param.Add("@se_time", drDay["se_time"].ToString());
param.Add("@part_id", drDay["part_id"].ToString());
param.Add("@qty", drDay["qty"].ToString());
param.Add("@snpQty", drDay["snp_qty"].ToString());
param.Add("@carton_qty", drDay["carton_qty"].ToString());
param.Add("@iss_seq", strSeq);
param.Add("@factory_id", factoryId);
param.Add("@enabled", "Y");
param.Add("@user_id", userID);
sqlStrings.Add(sql.ToString());
parameters.Add(param);
//_remotingClone.ExecuteNonQuery(sql.ToString(), param);
}
//清除日程单导入汇总表中数据,只保留最后一次导入数据(按供应商及本次导入的所含的日期)
sql.Remove(0, sql.Length);
sql.Append("update g_buy_day set Enabled='N' WHERE vendor_id=@vendor_id AND se_date IN (SELECT DISTINCT se_date FROM g_ht_buy_day ");
sql.Append(" WHERE vendor_id=@vendor_id AND order_no=@order_no AND iss_seq=@iss_seq) AND type_id IN (SELECT DISTINCT ");
sql.Append(" type_id FROM g_ht_buy_day WHERE vendor_id=@vendor_id AND order_no=@order_no AND iss_seq=@iss_seq)");
param = new DynamicParameters();
param.Add("@vendor_id", strVendorId);
param.Add("@order_no", strSeNo);
param.Add("@iss_seq", strSeq);
sqlStrings.Add(sql.ToString());
parameters.Add(param);
//_remotingClone.ExecuteNonQuery(sql.ToString(), param);
//将本次提交数据更新至采购日程数据表中
foreach (DataRow drDay in drs)
{
sql.Remove(0, sql.Length);
sql.Append("INSERT INTO g_buy_day (order_no,type_id,buy_no,vendor_id,se_date,se_time,part_id,qty,snp_qty ");
sql.Append(",carton_qty,iss_seq,factory_id,enabled,create_userid, create_time) VALUES (@order_no ");
sql.Append(",@type_id,@buy_no,@vendor_id,@se_date,@se_time,@part_id,@qty,@snpQty ");
sql.Append(",@carton_qty,@iss_seq,@factory_id,@enabled,@user_id, CONVERT(varchar(50), GETDATE(), 21))");
param = new DynamicParameters();
param.Add("@order_no", strSeNo);
param.Add("@type_id", drDay["type_id"].ToString());
param.Add("@buy_no", drDay["ch_no"].ToString());
param.Add("@vendor_id", strVendorId);
param.Add("@se_date", drDay["se_date"].ToString());
param.Add("@se_time", drDay["se_time"].ToString());
param.Add("@part_id", drDay["part_id"].ToString());
param.Add("@qty", drDay["qty"].ToString());
param.Add("@snpQty", drDay["snp_qty"].ToString());
param.Add("@carton_qty", drDay["carton_qty"].ToString());
param.Add("@iss_seq", strSeq);
param.Add("@factory_id", factoryId);
param.Add("@enabled", "Y");
param.Add("@user_id", userID);
sqlStrings.Add(sql.ToString());
parameters.Add(param);
//_remotingClone.ExecuteNonQuery(sql.ToString(), param);
}
// Batch Execute
for (int i = 0; i < sqlStrings.Count; i++)
{
dbConn.Execute(sqlStrings[i], parameters[i], transaction);
transaction.Commit();
}
sql.Remove(0, sql.Length);
sql.Append("SELECT type_id,se_date,part_id,RIGHT(REPLACE(se_date,'/',''),6) AS lot_no,SUM(qty) AS qty,buy_no ");
sql.Append(" ,(SELECT TOP 1 part_no FROM sys_part (NOLOCK) WHERE part_id=a.part_id) AS part_no ");
sql.Append(" ,(SELECT TOP 1 buy_no FROM g_buy_day (NOLOCK) WHERE type_id=a.type_id AND se_date=a.se_date AND part_id=a.part_id) AS buy_no ");
sql.Append(",snp_qty,SUM(carton_qty) AS carton_qty FROM g_buy_day AS a WHERE vendor_id=@vendor_id AND order_no=@order_no ");
sql.Append(" AND iss_seq=@iss_seq GROUP BY type_id,se_date,part_id,snp_qty,buy_no ORDER BY type_id,se_date,part_id");
param = new DynamicParameters();
param.Add("@vendor_id", strVendorId);
param.Add("@order_no", strSeNo);
param.Add("@iss_seq", strSeq);
List<GBuyDay> dtCalc = dbConn.Query<GBuyDay>(sql.ToString(), param).ToList();
if (dtCalc == null || dtCalc.Count < 1)
{
continue;
}
sqlStrings = new List<string>();
parameters = new List<DynamicParameters>();
string dayOrderNo = string.Empty;
string sSeDate = string.Empty;
foreach (GBuyDay drCalc in dtCalc)
{
int iSnpQty = drCalc.SnpQty;
int iBoxQty = 0;
int iRema = 0;
int iDiffQty = 0;
if (sSeDate != drCalc.SeDate)
{
//dayOrderNo = "DR" + drCalc["se_date"].ToString().Replace("/", "");
dayOrderNo = GetOrderNo("BuyDayOrder", "PR");
sSeDate = drCalc.SeDate;
}
sql.Remove(0, sql.Length);
sql.Append("SELECT TOP 1 qty,snp_qty,carton_qty,is_closed FROM g_buy_day_fact (NOLOCK) ");
sql.Append(" WHERE type_id=@type_id AND se_date=@se_date AND part_id=@part_id AND vendor_id=@vendor_id ");
param = new DynamicParameters();
param.Add("@type_id", drCalc.TypeId.ToString());
param.Add("@se_date", drCalc.SeDate.ToString());
param.Add("@part_id", drCalc.PartId.ToString());
param.Add("@vendor_id", strVendorId);
List<GBuyDayFact> dtDayFact = dbConn.Query<GBuyDayFact>(sql.ToString(), param).ToList();
if (dtDayFact == null || dtDayFact.Count < 1)
{
sql.Remove(0, sql.Length);
sql.Append("INSERT INTO g_buy_day_fact (order_no,weekly_order_no,type_id,buy_no,vendor_id,se_date,part_id,lot_no ");
sql.Append(" ,qty,snp_qty,carton_qty,rec_qty,rec_carton_qty,diff_qty,status,is_closed,type,factory_id,enabled,create_userid, create_time) ");
sql.Append(" VALUES (@order_no,@weekly_order_no,@type_id,@buy_no,@vendor_id,@se_date,@part_id,@lot_no ");
sql.Append(" ,@qty,@snpQty,@carton_qty,'0','0',@qty,@status,@is_closed,@type,@factory_id,@enabled,@user_id, CONVERT(varchar(50), GETDATE(), 21))");
param = new DynamicParameters();
param.Add("@order_no", dayOrderNo);
param.Add("@weekly_order_no", strSeNo);
param.Add("@type_id", drCalc.TypeId.ToString());
param.Add("@buy_no", drCalc.BuyNo.ToString());
param.Add("@vendor_id", strVendorId);
param.Add("@se_date", drCalc.SeDate.ToString());
param.Add("@part_id", drCalc.PartId.ToString());
param.Add("@lot_no", drCalc.SeDate.ToString().Replace("/", "").Substring(2));
param.Add("@qty", drCalc.Qty.ToString());
param.Add("@snpQty", drCalc.SnpQty.ToString());
param.Add("@carton_qty", drCalc.CartonQty.ToString());
param.Add("@status", "0");
param.Add("@is_closed", "N");
param.Add("@type", "0");
param.Add("@factory_id", factoryId);
param.Add("@enabled", "Y");
param.Add("@user_id", userID);
//_remotingClone.ExecuteNonQuery(sql.ToString(), param);
sqlStrings.Add(sql.ToString());
parameters.Add(param);
iDiffQty = Convert.ToInt32(drCalc.Qty.ToString());
iBoxQty = (int)Math.Ceiling(Convert.ToDouble(iDiffQty) / iSnpQty);
iRema = iDiffQty % iSnpQty;
}
else
{
int iCalcQty = Convert.ToInt32(drCalc.Qty.ToString());
int iFactQty = Convert.ToInt32(dtDayFact[0].Qty.ToString());
iDiffQty = iCalcQty - iFactQty;
if (iDiffQty > 0)
{
sql.Remove(0, sql.Length);
sql.Append("UPDATE g_buy_day_fact SET qty=@qty,carton_qty=@carton_qty,diff_qty=@diff_qty ");
sql.Append(" WHERE type_id=@type_id AND se_date=@se_date AND part_id=@part_id ");
param = new DynamicParameters();
param.Add("@qty", drCalc.Qty.ToString());
param.Add("@carton_qty", drCalc.CartonQty.ToString());
param.Add("@diff_qty", iDiffQty.ToString());
param.Add("@type_id", drCalc.TypeId.ToString());
param.Add("@se_date", drCalc.SeDate.ToString());
param.Add("@part_id", drCalc.PartId.ToString());
//_remotingClone.ExecuteNonQuery(sql.ToString(), param);
sqlStrings.Add(sql.ToString());
parameters.Add(param);
iBoxQty = (int)Math.Ceiling(Convert.ToDouble(iDiffQty) / iSnpQty);
iRema = iDiffQty % iSnpQty;
}
else
{
sql.Remove(0, sql.Length);
sql.Append("UPDATE g_buy_day_fact SET diff_qty=@diff_qty ");
sql.Append(" WHERE type_id=@type_id AND se_date=@se_date AND part_id=@part_id ");
param = new DynamicParameters();
param.Add("@diff_qty", iDiffQty.ToString());
param.Add("@type_id", drCalc.TypeId.ToString());
param.Add("@se_date", drCalc.SeDate.ToString());
param.Add("@part_id", drCalc.PartId.ToString());
//_remotingClone.ExecuteNonQuery(sql.ToString(), param);
sqlStrings.Add(sql.ToString());
parameters.Add(param);
}
}
if (iDiffQty > 0 && iBoxQty > 0)
{
sql.Remove(0, sql.Length);
sql.Append("SELECT TOP 1 RIGHT(carton_no,3) AS carton_no,lot_no FROM sys_stock WHERE 1=1 ");
sql.Append(" AND se_date=@se_date AND part_id=@part_id ORDER BY carton_no DESC");
param = new DynamicParameters();
param.Add("@type_id", drCalc.TypeId.ToString());
param.Add("@se_date", drCalc.SeDate.ToString());
param.Add("@part_id", drCalc.PartId.ToString());
int iLastQty = 0;
string strLotNo = string.Empty;
List<SysStock> dtCarton = dbConn.Query<SysStock>(sql.ToString(), param).ToList();
if (dtCarton == null || dtCarton.Count < 1)
{
strLotNo = drCalc.SeDate.ToString().Replace("/", "").Substring(2);
}
else
{
iLastQty = Convert.ToInt32(dtCarton[0].CartonNo.ToString());
strLotNo = dtCarton[0].LotNo.ToString();
}
for (int i = 1; i <= iBoxQty; i++)
{
iLastQty++;
string strCartonNo = GetCartonNo(drCalc.PartNo.ToString(), strLotNo, iLastQty);
string strCartonQty = iSnpQty.ToString();
if (i == iBoxQty && iRema > 0)
{
strCartonQty = iRema.ToString();
}
sql.Remove(0, sql.Length);
sql.Append("INSERT INTO sys_stock (order_no,weekly_order_no,type_id,buy_no,vendor_id,se_date,part_id ");
sql.Append(" ,carton_no,lot_no,qty,snp_qty,plan_qty,status,iss_seq,group_no,factory_id,enabled,create_userid, create_time) ");
sql.Append(" VALUES (@order_no,@weekly_order_no,@type_id,@buy_no,@vendor_id,@se_date,@part_id ");
sql.Append(" ,@carton_no,@lot_no,@qty,@snpQty,@qty,@status,@iss_seq,@groupNo,@factory_id,@enabled,@user_id, CONVERT(varchar(50), GETDATE(), 21))");
param = new DynamicParameters();
param.Add("@order_no", dayOrderNo);
param.Add("@weekly_order_no", strSeNo);
param.Add("@type_id", drCalc.TypeId.ToString());
param.Add("@buy_no", drCalc.BuyNo.ToString());
param.Add("@vendor_id", strVendorId);
param.Add("@se_date", drCalc.SeDate.ToString());
param.Add("@part_id", drCalc.PartId.ToString());
param.Add("@carton_no", strCartonNo);
param.Add("@lot_no", strLotNo);
param.Add("@qty", strCartonQty);
param.Add("@snpQty", iSnpQty.ToString());
param.Add("@status", "A");
param.Add("@iss_seq", strSeq);
param.Add("@groupNo", "");
param.Add("@factory_id", factoryId);
param.Add("@enabled", "Y");
param.Add("@user_id", userID);
//_remotingClone.ExecuteNonQuery(sql.ToString(), param);
sqlStrings.Add(sql.ToString());
parameters.Add(param);
}
}
}
for (int i = 0; i < sqlStrings.Count; i++)
{
dbConn.Execute(sqlStrings[i], parameters[i], transaction);
}
}
transaction.Commit();
}
catch (Exception ex)
{
transaction.Rollback();
return "周计划订单数据保存失败!\r\n" + ex.Message;
}
return "";
}
}
/// <summary>
/// 箱条码生成(零件号(18)+批号(6)+流水号(3))
/// </summary>
/// <param name="partNo">零件号</param>
/// <param name="lotNo">批号</param>
/// <param name="seq">流水号</param>
/// <returns></returns>
public string GetCartonNo(string partNo, string lotNo, int seq)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
string strCartonNo = partNo + "000000000000000000";
strCartonNo = strCartonNo.Substring(0, 18) + lotNo;
string strSeq = "000" + seq.ToString();
return strCartonNo + strSeq.Substring(strSeq.Length - 3);
}
}
#endregion
#endregion 成员方法
}
}