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.

448 lines
30 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.Base;
using Estsh.Core.Dapper;
using Estsh.Core.Wms.IRepositories;
using Estsh.Core.Model.Result;
using Estsh.Core.Repositories;
using System.Collections;
using System.Data;
using System.Text;
using System.Security.Cryptography;
using System.Text.Json;
using Estsh.Core.Models;
using Newtonsoft.Json.Linq;
using Estsh.Core.Model.EnumUtil;
namespace Estsh.Core.Wms.Repositories
{
public class OutPdlineReceiveRepository : BaseRepository<BaseEntity>, IOutPdlineReceiveRepository
{
public OutPdlineReceiveRepository(DapperDbContext _dapperDbContext) : base(_dapperDbContext)
{
}
/// <summary>
/// 查询成品和半成品下线
/// </summary>
/// <returns></returns>
public List<MesWmsPgReceive> GetOutPdlineReceiveInfo()
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
StringBuilder sql = new StringBuilder(1024);
sql.Append("SELECT top 3000 * FROM MES_WMS_PG_RECEIVE (nolock) ");
sql.Append("WHERE syn_flg = 10 and create_time < '"+ DateTime.Now.AddMinutes(-3).ToString("yyyy-MM-dd HH:mm:ss")+"'"); //未同步10 已同步20
sql.Append("ORDER BY create_time ");
return dbConn.Query<MesWmsPgReceive>(sql.ToString()).ToList();
}
}
/// <summary>
/// 成品下线 处理成品和半成品下线
/// </summary>
/// <param name="sapCu"></param>
/// <returns></returns>
public bool InsertOutPdlineReceiveInfo(List<MesWmsPgReceive> mesWmsPgs)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
for (int i = 0; i < mesWmsPgs.Count; i++)
{
List<string> sqlList = new List<string>();
List<DynamicParameters> parametersList = new List<DynamicParameters>();
//回传到stock表
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("select* from sys_stock (nolock) where carton_no = '" + mesWmsPgs[i].SerialNumber + "' ");//
SysStock sysStock = dbConn.Query<SysStock>(SqlStringBuilder.ToString()).FirstOrDefault();
if (mesWmsPgs[i].isWings == 0)//原逻辑不变,为座椅总成
{
if (sysStock != null)
{
DynamicParameters parameters = new DynamicParameters();
if (mesWmsPgs[i].IsRepaired == "N")
{
SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("update sys_stock set status=@status,tray_no=@trayNo,channel_number=@channelNumber,mtoc=@mtoc,mtoc_desc=@mtocDesc,cartype_name=@carTypeName,update_userid=@updateUserid,update_time=@updateTime, ");//更新同步状态
SqlStringBuilder.Append(" locate_id=@locate_id,locate_name=@locate_name,warehouse_id=@warehouse_id,warehouse_name=@warehouse_name,zone_id=@zone_id,zone_name=@zone_name,erp_warehouse=@erp_warehouse ");
SqlStringBuilder.Append(" where ruid=@ruid ");
sqlList.Add(SqlStringBuilder.ToString());
SysLocate locate = this.GetLocateInfo(mesWmsPgs[i].PdlineCode);
if (locate == null)
{
sqlList = new List<string>();
parametersList = new List<DynamicParameters>();
SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("update MES_WMS_PG_RECEIVE set syn_flg=@synFlg,syn_time=@synTime,err_msg=@errMsg,update_userid=@updateUserid,update_time=@updateTime where serial_number=@serialNumber ");//更新同步状态
sqlList.Add(SqlStringBuilder.ToString());
parameters = new DynamicParameters();
parameters.Add("@serialNumber", mesWmsPgs[i].SerialNumber);//ID
parameters.Add("@synFlg", "30");//同步异常
parameters.Add("@synTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));//同步时间
parameters.Add("@errMsg", "未找到对应产线信息!");//错误
parameters.Add("@updateUserid", 0);//更新人
parameters.Add("@updateTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));//更新时间
parametersList.Add(parameters);
ExecuteTransaction(sqlList, parametersList);
return false;
}
parameters.Add("@locate_id", locate.LocateId);
parameters.Add("@locate_name", locate.LocateName);
parameters.Add("@warehouse_id", locate.WarehouseId);
parameters.Add("@warehouse_name", locate.WarehouseName);
parameters.Add("@zone_id", locate.ZoneId);
parameters.Add("@zone_name", locate.ZoneName);
parameters.Add("@erp_warehouse", locate.ErpWarehouse);
}
else
{
SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("update sys_stock set tray_no=@trayNo,channel_number=@channelNumber,mtoc=@mtoc,mtoc_desc=@mtocDesc,cartype_name=@carTypeName,update_userid=@updateUserid,update_time=@updateTime where ruid=@ruid ");//更新同步状态
sqlList.Add(SqlStringBuilder.ToString());
}
parameters.Add("@status", (int)WmsEnumUtil.StockStatus.INSTOCKED);//入库
parameters.Add("@ruid", sysStock.Ruid);//ID
parameters.Add("@trayNo", mesWmsPgs[i].TrayNo);//
parameters.Add("@channelNumber", mesWmsPgs[i].ChannelNumber);//
parameters.Add("@mtoc", mesWmsPgs[i].Mtoc);//
parameters.Add("@mtocDesc", mesWmsPgs[i].MtocDesc);//
parameters.Add("@carTypeName", mesWmsPgs[i].CartypeName);//
parameters.Add("@updateUserid", 0);//更新人
parameters.Add("@updateTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));//更新时间
parametersList.Add(parameters);
SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("update MES_WMS_PG_RECEIVE set syn_flg=@synFlg,syn_time=@synTime,update_userid=@updateUserid,update_time=@updateTime where serial_number=@serialNumber ");//更新同步状态
sqlList.Add(SqlStringBuilder.ToString());
parameters = new DynamicParameters();
parameters.Add("@serialNumber", mesWmsPgs[i].SerialNumber);//ID
parameters.Add("@synFlg", "20");//已同步
parameters.Add("@synTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));//同步时间
parameters.Add("@updateUserid", 0);//创建人
parameters.Add("@updateTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));//创建时间
parametersList.Add(parameters);
bool staResult = ExecuteTransaction(sqlList, parametersList);
if (staResult == false)
{
sqlList = new List<string>();
parametersList = new List<DynamicParameters>();
SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("update MES_WMS_PG_RECEIVE set syn_flg=@synFlg,syn_time=@synTime,err_msg=@errMsg,update_userid=@updateUserid,update_time=@updateTime where serial_number=@serialNumber ");//更新同步状态
sqlList.Add(SqlStringBuilder.ToString());
parameters = new DynamicParameters();
parameters.Add("@serialNumber", mesWmsPgs[i].SerialNumber);//ID
parameters.Add("@synFlg", "30");//同步异常
parameters.Add("@synTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));//同步时间
parameters.Add("@errMsg", "同步错误,请检查接口数据!");//错误
parameters.Add("@updateUserid", 0);//更新人
parameters.Add("@updateTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));//更新时间
parametersList.Add(parameters);
ExecuteTransaction(sqlList, parametersList);
return false;
}
}
else
{
sqlList = new List<string>();
parametersList = new List<DynamicParameters>();
SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("update MES_WMS_PG_RECEIVE set syn_flg=@synFlg,syn_time=@synTime,err_msg=@errMsg,update_userid=@updateUserid,update_time=@updateTime where serial_number=@serialNumber ");//更新同步状态
sqlList.Add(SqlStringBuilder.ToString());
DynamicParameters parameters = new DynamicParameters();
parameters.Add("@serialNumber", mesWmsPgs[i].SerialNumber);//ID
parameters.Add("@synFlg", "30");//同步异常
parameters.Add("@synTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));//同步时间
parameters.Add("@errMsg", "同步错误,条码不存在!");//错误
parameters.Add("@updateUserid", 0);//更新人
parameters.Add("@updateTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));//更新时间
parametersList.Add(parameters);
ExecuteTransaction(sqlList, parametersList);
return false;
}
}
else//等于 1 ,侧翼下线时没有,入库时有 ,同时做回冲
{
if (sysStock != null)
{
sqlList = new List<string>();
parametersList = new List<DynamicParameters>();
SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("update MES_WMS_PG_RECEIVE set syn_flg=@synFlg,syn_time=@synTime,err_msg=@errMsg,update_userid=@updateUserid,update_time=@updateTime where serial_number=@serialNumber ");//更新同步状态
sqlList.Add(SqlStringBuilder.ToString());
DynamicParameters parameters = new DynamicParameters();
parameters.Add("@serialNumber", mesWmsPgs[i].SerialNumber);//ID
parameters.Add("@synFlg", "30");//同步异常
parameters.Add("@synTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));//同步时间
parameters.Add("@errMsg", "侧翼条码已存在,数据异常请检查!");//错误
parameters.Add("@updateUserid", 0);//更新人
parameters.Add("@updateTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));//更新时间
parametersList.Add(parameters);
ExecuteTransaction(sqlList, parametersList);
return false;
}//侧翼下线已同步,报错
else
{
StringBuilder sql = new StringBuilder(1024);
DynamicParameters parameters = new DynamicParameters();
SysLocate locate = null;
sql.Append("INSERT INTO dbo.sys_stock ");
sql.Append("( ");
sql.Append(" carton_no, part_id, part_no, part_spec,lot_no, fix_lot_no, status, ");
sql.Append(" qty, snp_qty, locate_id, locate_name,erp_warehouse, ref_order_no, ");
sql.Append(" unit, warehouse_id, warehouse_name, zone_id, zone_name, ");
sql.Append(" factory_id, factory_code, enabled,create_userid, create_time, guid ");
sql.Append(") ");
sql.Append("VALUES ");
sql.Append("( @carton_no, @part_id, @part_no, @part_spec,@lot_no, @fix_lot_no, @status, ");
sql.Append(" @qty, @snp_qty, @locate_id, @locate_name,@erp_warehouse, @ref_order_no, ");
sql.Append(" @unit, @warehouse_id, @warehouse_name, @zone_id, @zone_name, ");
sql.Append(" @factory_id, @factory_code, @enabled,@create_userid, @create_time, @guid ");
sql.Append(") ");
StringBuilder getPart = new StringBuilder(1024);
getPart.Append("select* from sys_part (nolock) where part_no = '" + mesWmsPgs[i].PartNo + "' and enabled='Y' ");//
SysPart getParts = dbConn.Query<SysPart>(getPart.ToString()).FirstOrDefault();
//判断是否在WMS中有维护
if (getPart == null)
{
sqlList = new List<string>();
parametersList = new List<DynamicParameters>();
SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("update MES_WMS_PG_RECEIVE set syn_flg=@synFlg,syn_time=@synTime,err_msg=@errMsg,update_userid=@updateUserid,update_time=@updateTime where serial_number=@serialNumber ");//更新同步状态
sqlList.Add(SqlStringBuilder.ToString());
parameters = new DynamicParameters();
parameters.Add("@serialNumber", mesWmsPgs[i].SerialNumber);//ID
parameters.Add("@synFlg", "30");//同步异常
parameters.Add("@synTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));//同步时间
parameters.Add("@errMsg", "侧翼条码在WMS零件维护中不存在请检查");//错误
parameters.Add("@updateUserid", 0);//更新人
parameters.Add("@updateTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));//更新时间
parametersList.Add(parameters);
ExecuteTransaction(sqlList, parametersList);
return false;
}
parameters = new DynamicParameters();
parameters.Add("@carton_no", mesWmsPgs[i].SerialNumber);
parameters.Add("@part_id", getParts.PartId);
parameters.Add("@part_no", getParts.PartNo);
parameters.Add("@part_spec", getParts.PartSpec);
parameters.Add("@lot_no", DateTime.Now.ToString("yyyy-MM-dd"));
parameters.Add("@fix_lot_no", string.Empty);
parameters.Add("@qty", 1);
parameters.Add("@snp_qty", 1);
parameters.Add("@status", WmsEnumUtil.StockStatus.INSTOCKED);
//getPart.Append("select* from MES_WMS_PG_RECEIVE (nolock) where TRAY_NO = '" + mesWmsPgs[i].TrayNo + "' and is_wings='0' ");//
//MesWmsPgReceive MesWmsPgReceives = mesWmsPgs.Where(a => a.TrayNo == mesWmsPgs[i].TrayNo && a.isWings == 0).FirstOrDefault();
//MesWmsPgReceive MesWmsPgReceives = dbConn.Query<MesWmsPgReceive>(mesWmsPgs[i].PdlineCode).FirstOrDefault();
locate = this.GetLocateInfo(mesWmsPgs[i].PdlineCode);
if (locate == null)
{
sqlList = new List<string>();
parametersList = new List<DynamicParameters>();
SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("update MES_WMS_PG_RECEIVE set syn_flg=@synFlg,syn_time=@synTime,err_msg=@errMsg,update_userid=@updateUserid,update_time=@updateTime where serial_number=@serialNumber ");//更新同步状态
sqlList.Add(SqlStringBuilder.ToString());
parameters = new DynamicParameters();
parameters.Add("@serialNumber", mesWmsPgs[i].SerialNumber);//ID
parameters.Add("@synFlg", "30");//同步异常
parameters.Add("@synTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));//同步时间
parameters.Add("@errMsg", "未找到对应产线信息!");//错误
parameters.Add("@updateUserid", 0);//更新人
parameters.Add("@updateTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));//更新时间
parametersList.Add(parameters);
ExecuteTransaction(sqlList, parametersList);
return false;
}
parameters.Add("@locate_id", locate.DestLocateId);
parameters.Add("@locate_name", locate.DestLocateName);
parameters.Add("@erp_warehouse", locate.ErpWarehouse);
parameters.Add("@warehouse_id", locate.WarehouseId);
parameters.Add("@warehouse_name", locate.WarehouseName);
parameters.Add("@zone_id", locate.ZoneId);
parameters.Add("@zone_name", locate.ZoneName);
parameters.Add("@ref_order_no", "侧翼入库");
parameters.Add("@unit", "件");
parameters.Add("@factory_id", getParts.FactoryId);
parameters.Add("@factory_code", getParts.FactoryCode);
parameters.Add("@enabled", WmsEnumUtil.Enabled.Y.ToString());
parameters.Add("@create_userid", 0);
parameters.Add("@create_time", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"));
parameters.Add("@guid", Guid.NewGuid());
sqlList.Add(sql.ToString());
parametersList.Add(parameters);
#region 新增 sys_stock_trans 事务表
//新增 sys_stock_trans 事务表
sql.Remove(0, sql.Length);
sql.Append("INSERT INTO [dbo].[sys_stock_trans] ");
sql.Append("( ");
sql.Append(" [trans_code],[carton_no],[part_id],[part_no],[part_spec],[src_locate_id],[src_locate_name],[dest_locate_id], ");
sql.Append(" [dest_locate_name],[old_qty],[new_qty],[trans_qty],[old_status],[new_status],[unit], ");
sql.Append(" [factory_id],[factory_code],[src_erp_warehouse],[dest_erp_warehouse],[src_warehouse_id],[src_warehouse_name], ");
sql.Append(" [dest_warehouse_id],[dest_warehouse_name],[src_zone_id],[src_zone_name],[dest_zone_id],[dest_zone_name],[enabled], ");
sql.Append(" [update_userid],[update_time], [create_userid],[create_time],[guid],ref_order_no ");
sql.Append(") ");
sql.Append("VALUES ");
sql.Append("(@trans_code, @carton_no, @part_id, @part_no, @part_spec, @src_locate_id, @src_locate_name, @dest_locate_id, ");
sql.Append(" @dest_locate_name, @old_qty, @new_qty, @trans_qty, @old_status, @new_status, @unit, ");
sql.Append(" @factory_id, @factory_code, @src_erp_warehouse, @dest_erp_warehouse, @src_warehouse_id, @src_warehouse_name, ");
sql.Append(" @dest_warehouse_id, @dest_warehouse_name, @src_zone_id, @src_zone_name, @dest_zone_id, @dest_zone_name, @enabled, ");
sql.Append(" @update_userid, @update_time, @create_userid, @create_time, @guid,@ref_order_no) ");
parameters = new DynamicParameters();
parameters.Add("@trans_code", (int)WmsEnumUtil.TransType.IN_STOCK_CEYI);
parameters.Add("@carton_no", mesWmsPgs[i].SerialNumber);
parameters.Add("@part_id", getParts.PartId);
parameters.Add("@part_no", getParts.PartNo);
parameters.Add("@part_spec", getParts.PartSpec);
parameters.Add("@src_locate_id", string.Empty);
parameters.Add("@src_locate_name", string.Empty);
parameters.Add("@dest_locate_id", locate == null ? 0 : locate.LocateId);
parameters.Add("@dest_locate_name", locate == null ? 0 : locate.LocateName);
parameters.Add("@old_qty", 1);
parameters.Add("@new_qty", 1);
parameters.Add("@trans_qty", 1);
parameters.Add("@old_status", 0);
parameters.Add("@new_status", (int)WmsEnumUtil.StockStatus.INSTOCKED);
parameters.Add("@unit", "件");
parameters.Add("@factory_id", getParts.FactoryId);
parameters.Add("@factory_code", getParts.FactoryCode);
parameters.Add("@src_erp_warehouse", string.Empty);
parameters.Add("@dest_erp_warehouse", locate == null ? 0 : locate.ErpWarehouse);
parameters.Add("@src_warehouse_id", 0);
parameters.Add("@src_warehouse_name", string.Empty);
parameters.Add("@dest_warehouse_id", locate == null ? 0 : locate.WarehouseId);
parameters.Add("@dest_warehouse_name", locate == null ? 0 : locate.WarehouseName);
parameters.Add("@src_zone_id", 0);
parameters.Add("@src_zone_name", string.Empty);
parameters.Add("@dest_zone_id", locate == null ? 0 : locate.ZoneId);
parameters.Add("@dest_zone_name", locate == null ? 0 : locate.ZoneName);
parameters.Add("@enabled", WmsEnumUtil.Enabled.Y.ToString());
parameters.Add("@update_userid", 0);
parameters.Add("@update_time", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"));
parameters.Add("@create_userid", 0);
parameters.Add("@create_time", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"));
parameters.Add("@guid", Guid.NewGuid());
parameters.Add("@ref_order_no", "侧翼入库");
sqlList.Add(sql.ToString());
parametersList.Add(parameters);
#endregion
#region 新增 wms_product_deduct 待扣减表
//新增 wms_product_deduct 待扣减表
sql.Remove(0, sql.Length);
sql.Append("INSERT INTO dbo.wms_product_deduct ");
sql.Append("( ");
sql.Append(" serial_number,part_id, part_no, unit, qty, item_part_id, item_part_no, item_unit, item_qty, ");
sql.Append(" pdline_code, bom_id, factory_id, factory_code, enabled, create_userid, create_time, guid ");
sql.Append(") ");
sql.Append("VALUES ");
sql.Append("( ");
sql.Append(" @serial_number, @part_id, @part_no, @unit, @qty, @item_part_id, @item_part_no, @item_unit, @item_qty, ");
sql.Append(" @pdline_code, @bom_id, @factory_id, @factory_code, @enabled, @create_userid, @create_time, @guid ");
sql.Append(") ");
parameters = new DynamicParameters();
parameters.Add("@serial_number", mesWmsPgs[i].SerialNumber);
parameters.Add("@part_id", getParts.PartId);
parameters.Add("@part_no", getParts.PartNo);
parameters.Add("@unit", getParts.Unit);
parameters.Add("@qty", 1);
parameters.Add("@item_part_id", getParts.PartId);
parameters.Add("@item_part_no", getParts.PartNo);
parameters.Add("@item_unit", getParts.Unit);
parameters.Add("@item_qty", 1);
parameters.Add("@pdline_code", locate.PdlineCode);
parameters.Add("@bom_id", 0);
parameters.Add("@factory_id", getParts.FactoryId);
parameters.Add("@factory_code", getParts.FactoryCode);
parameters.Add("@enabled", WmsEnumUtil.Enabled.Y.ToString());
parameters.Add("@create_userid", 0);
parameters.Add("@create_time", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"));
parameters.Add("@guid", Guid.NewGuid());
sqlList.Add(sql.ToString());
parametersList.Add(parameters);
#endregion
SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("update MES_WMS_PG_RECEIVE set syn_flg=@synFlg,syn_time=@synTime,err_msg=@errMsg,update_userid=@updateUserid,update_time=@updateTime where serial_number=@serialNumber ");//更新同步状态
sqlList.Add(SqlStringBuilder.ToString());
parameters = new DynamicParameters();
parameters.Add("@serialNumber", mesWmsPgs[i].SerialNumber);//ID
parameters.Add("@synFlg", "20");//同步异常
parameters.Add("@synTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));//同步时间
parameters.Add("@errMsg", "同步成功!");
parameters.Add("@updateUserid", 0);//更新人
parameters.Add("@updateTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));//更新时间
parametersList.Add(parameters);
ExecuteTransaction(sqlList, parametersList);
}
}
}
return true;
}
}
private SysLocate GetLocateInfo(string pdline_code)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
if (dbConn.State == ConnectionState.Closed)
{
dbConn.Open();
}
//StringBuilder sql = new StringBuilder(1024);
//sql.Append("select a.pdline_id,a.pdline_code,b.src_warehouse_id,b.src_warehouse_name,b.src_zone_id,b.src_zone_name,c.warehouse_id,c.warehouse_name,c.zone_id,c.zone_name ,c.locate_id,c.locate_name from mes_out_pdline as a ");
//sql.Append(" left join sys_pdline as b on a.pdline_id=b.pdline_id ");
//sql.Append(" left join sys_stock as c on a.serial_number=c.carton_no ");
//sql.Append(" where a.serial_number=@serial_number ");
//DynamicParameters parameters = new DynamicParameters();
//parameters.Add("@serial_number", serial_number);
StringBuilder sql = new StringBuilder(1024);
sql.Append(" select a.pdline_code,b.warehouse_id,b.warehouse_name,b.erp_warehouse,b.zone_id,b.zone_name,a.dest_locate_id,a.dest_locate_name from sys_pdline as a ");
sql.Append(" left join sys_zone as b on a.dest_zone_id = b.zone_id ");
sql.Append(" where a.pdline_code=@pdline_code ");
DynamicParameters parameters = new DynamicParameters();
parameters.Add("@pdline_code", pdline_code);
return dbConn.QueryFirstOrDefault<SysLocate>(sql.ToString(), parameters);
}
}
}
}