|
|
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 PullingRepository : BaseRepository<WmsPullingGroup>, IPullingRepository
|
|
|
{
|
|
|
public PullingRepository(DapperDbContext _dapperDbContext) : base(_dapperDbContext)
|
|
|
{
|
|
|
|
|
|
}
|
|
|
/// <summary>
|
|
|
/// 查询JIT生产队列接口数据
|
|
|
/// </summary>
|
|
|
/// <returns></returns>
|
|
|
public List<MesWmsWorkOrder> GetProductionQueueInfo()
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
StringBuilder sql = new StringBuilder(1024);
|
|
|
sql.Append("SELECT top 3000 * FROM MES_WMS_WORK_ORDER(nolock) ");
|
|
|
sql.Append("WHERE syn_flg = 10 and order_type= 20 "); //未同步:10 已同步:20
|
|
|
sql.Append("ORDER BY create_time ");
|
|
|
|
|
|
return dbConn.Query<MesWmsWorkOrder>(sql.ToString()).ToList();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 处理JIT生产队列接口数据
|
|
|
/// </summary>
|
|
|
/// <param name="mesWmsWorks"></param>
|
|
|
/// <returns></returns>
|
|
|
public bool InsertProductionQueueInfo(List<MesWmsWorkOrder> mesWmsWorks)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
StringBuilder stringBuilder = new StringBuilder();
|
|
|
stringBuilder.Append(" SELECT * from sys_part(nolock) ");
|
|
|
List<SysPart> sysPartsAll = dbConn.Query<SysPart>(stringBuilder.ToString()).ToList();
|
|
|
|
|
|
stringBuilder = new StringBuilder();
|
|
|
stringBuilder.Append(" SELECT * from sys_pdline(nolock) ");
|
|
|
List<SysPdline> sysPdlinesAll = dbConn.Query<SysPdline>(stringBuilder.ToString()).ToList();
|
|
|
|
|
|
StringBuilder factoryStringBuilder = new StringBuilder(1024);
|
|
|
factoryStringBuilder.Append("select * from sys_factory(nolock) ");//工厂代码获取工厂ID
|
|
|
List<SysFactory> sysFactoryAll = dbConn.Query<SysFactory>(factoryStringBuilder.ToString()).ToList();
|
|
|
|
|
|
MesWmsWorkOrder mesWmsWork = new MesWmsWorkOrder();
|
|
|
for (int i = 0; i < mesWmsWorks.Count; i++)
|
|
|
{
|
|
|
List<string> sqlList = new List<string>();
|
|
|
List<DynamicParameters> parametersList = new List<DynamicParameters>();
|
|
|
mesWmsWork = mesWmsWorks[i];
|
|
|
|
|
|
StringBuilder SqlStringBuilder = new StringBuilder(1024);
|
|
|
DynamicParameters parameters = new DynamicParameters();
|
|
|
|
|
|
List<SysPart> sysParts = sysPartsAll.Where(a => a.PartNo == mesWmsWork.PartNo).ToList();//零件号ID
|
|
|
|
|
|
List<SysPdline> sysPdlines = sysPdlinesAll.Where(a => a.PdlineCode == mesWmsWork.PdlineCode).ToList();//产线
|
|
|
|
|
|
List<SysFactory> sysFactory = sysFactoryAll.Where(a => a.FactoryCode == mesWmsWork.FactoryCode).ToList();//工厂
|
|
|
|
|
|
StringBuilder customerStringBuilder = new StringBuilder(1024);
|
|
|
customerStringBuilder.Append("select * from sys_customer(nolock) where customer_code='" + mesWmsWork.CustomerCode + "'");//客户信息
|
|
|
List<SysCustomer> sysCustomers = dbConn.Query<SysCustomer>(customerStringBuilder.ToString()).ToList();
|
|
|
|
|
|
if (mesWmsWork.IsWings == 1)//如果是1 侧翼
|
|
|
{
|
|
|
//string checkPullingGroupPartSql = @"select a.* from [dbo].[wms_pulling_group_part] a (nolock) left join [dbo].[wms_pulling_group] b (nolock) on a.group_code=b.group_code
|
|
|
// where a.part_no = '" + mesWmsWork.PartNo + "' and a.enabled='Y' ";
|
|
|
//WmsPullingGroupPart wmsPullingGroupParts = dbConn.Query<WmsPullingGroupPart>(checkPullingGroupPartSql).FirstOrDefault();
|
|
|
//if (wmsPullingGroupParts != null)
|
|
|
//{
|
|
|
//明细
|
|
|
stringBuilder = new StringBuilder();
|
|
|
stringBuilder.Append(" SELECT * from mes_work_order_part(nolock) WHERE order_no='" + mesWmsWork.WorkOrderNo + "' and parent_part_no='" + mesWmsWork.PartNo + "' and part_no='" + mesWmsWork.PartNo + "' ");
|
|
|
List<MesWorkOrderPart> mesWorkOrderParts = dbConn.Query<MesWorkOrderPart>(stringBuilder.ToString()).ToList();
|
|
|
if (mesWorkOrderParts.Count > 0)
|
|
|
{
|
|
|
SqlStringBuilder = new StringBuilder(1024);
|
|
|
SqlStringBuilder.Append("UPDATE dbo.mes_work_order_part ");
|
|
|
SqlStringBuilder.Append(" SET order_no = @orderNo,part_id = @partId ");
|
|
|
SqlStringBuilder.Append(" ,part_no = @partNo,part_spec = @partSpec ");
|
|
|
SqlStringBuilder.Append(" ,qty = @qty,unit = @unit ");
|
|
|
SqlStringBuilder.Append(" ,pull_status = @pullStatus,parent_part_id = @parentPartId ");
|
|
|
SqlStringBuilder.Append(" ,parent_part_no = @parentPartNo,parent_part_spec = @parentPartSpec ");
|
|
|
SqlStringBuilder.Append(" ,factory_id = @factoryId ");
|
|
|
SqlStringBuilder.Append(" ,factory_code = @factoryCode,enabled = @enabled ");
|
|
|
SqlStringBuilder.Append(" ,update_userid = @updateUserid,update_time = @updateTime ");
|
|
|
SqlStringBuilder.Append(" ,car_no = @car_no,move_group_no = @move_group_no ");//新增 车架号 下发时分组号
|
|
|
SqlStringBuilder.Append(" WHERE ruid = @ruid ");
|
|
|
|
|
|
sqlList.Add(SqlStringBuilder.ToString());
|
|
|
parameters = new DynamicParameters();
|
|
|
parameters.Add("@orderNo", mesWmsWork.WorkOrderNo);//JIT单号
|
|
|
|
|
|
parameters.Add("@car_no", mesWmsWork.CarNo);//车架号
|
|
|
parameters.Add("@move_group_no", mesWmsWork.MoveGroupNo);//下发时分组号
|
|
|
|
|
|
stringBuilder = new StringBuilder();
|
|
|
stringBuilder.Append(" SELECT * from sys_part(nolock) WHERE part_no='" + mesWmsWork.PartNo + "'");
|
|
|
List<SysPart> itemSysParts = dbConn.Query<SysPart>(stringBuilder.ToString()).ToList();
|
|
|
|
|
|
if (itemSysParts.Count > 0)
|
|
|
{
|
|
|
parameters.Add("@partId", itemSysParts[0].PartId);//子零件号ID
|
|
|
parameters.Add("@partSpec", itemSysParts[0].PartSpec);//子简码
|
|
|
parameters.Add("@unit", itemSysParts[0].Unit);//子单位
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
parameters.Add("@partId", 0);//子零件号ID
|
|
|
parameters.Add("@partSpec", "");//子简码
|
|
|
parameters.Add("@unit", "");//子单位
|
|
|
}
|
|
|
parameters.Add("@partNo", mesWmsWork.PartNo);//子零件号
|
|
|
parameters.Add("@qty", mesWmsWork.Qty);//成品个数*零件号数量
|
|
|
parameters.Add("@pullStatus", "10");//状态
|
|
|
|
|
|
if (sysParts.Count > 0)
|
|
|
{
|
|
|
parameters.Add("@parentPartId", sysParts[0].PartId);//父零件号ID
|
|
|
parameters.Add("@parentPartNo", sysParts[0].PartNo);//父零件号
|
|
|
parameters.Add("@parentPartSpec", sysParts[0].PartSpec);//父简码
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
parameters.Add("@parentPartId", "0");//父零件号ID
|
|
|
parameters.Add("@parentPartNo", "");//父零件号
|
|
|
parameters.Add("@parentPartSpec", "");//父简码
|
|
|
}
|
|
|
|
|
|
|
|
|
if (sysFactory.Count == 0)
|
|
|
{
|
|
|
parameters.Add("@factoryId", 0);//工厂ID
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
parameters.Add("@factoryId", sysFactory[0].FactoryId);//工厂ID
|
|
|
}
|
|
|
parameters.Add("@factoryCode", mesWmsWork.FactoryCode);//工厂代码
|
|
|
parameters.Add("@enabled", 'Y');//启用
|
|
|
parameters.Add("@updateUserid", 0);//修改人
|
|
|
parameters.Add("@updateTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"));//修改日期
|
|
|
parameters.Add("@ruid", mesWorkOrderParts[0].Ruid);//ruid
|
|
|
parametersList.Add(parameters);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
SqlStringBuilder = new StringBuilder(1024);
|
|
|
SqlStringBuilder.Append("INSERT INTO dbo.mes_work_order_part(order_no,part_id,part_no,part_spec,qty,unit,pull_status ");
|
|
|
SqlStringBuilder.Append(" ,parent_part_id,parent_part_no,parent_part_spec,factory_id,factory_code,enabled ");
|
|
|
SqlStringBuilder.Append(" ,create_userid,create_time,car_no,move_group_no) ");
|
|
|
SqlStringBuilder.Append(" VALUES(@orderNo,@partId,@partNo,@partSpec,@qty,@unit,@pullStatus,@parentPartId,@parentPartNo, ");
|
|
|
SqlStringBuilder.Append(" @parentPartSpec,@factoryId,@factoryCode,@enabled,@createUserid,@createTime,@car_no,@move_group_no) ");
|
|
|
|
|
|
sqlList.Add(SqlStringBuilder.ToString());
|
|
|
parameters = new DynamicParameters();
|
|
|
parameters.Add("@orderNo", mesWmsWork.WorkOrderNo);//JIT单号
|
|
|
|
|
|
parameters.Add("@car_no", mesWmsWork.CarNo);//车架号
|
|
|
parameters.Add("@move_group_no", mesWmsWork.MoveGroupNo);//下发时分组号
|
|
|
|
|
|
stringBuilder = new StringBuilder();
|
|
|
stringBuilder.Append(" SELECT * from sys_part(nolock) WHERE part_no='" + mesWmsWork.PartNo + "'");
|
|
|
List<SysPart> itemSysParts = dbConn.Query<SysPart>(stringBuilder.ToString()).ToList();
|
|
|
|
|
|
if (itemSysParts.Count > 0)
|
|
|
{
|
|
|
parameters.Add("@partId", itemSysParts[0].PartId);//子零件号ID
|
|
|
parameters.Add("@partSpec", itemSysParts[0].PartSpec);//子简码
|
|
|
parameters.Add("@unit", itemSysParts[0].Unit);//子单位
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
parameters.Add("@partId", 0);//子零件号ID
|
|
|
parameters.Add("@partSpec", "");//子简码
|
|
|
parameters.Add("@unit", "");//子单位
|
|
|
}
|
|
|
|
|
|
parameters.Add("@partNo", mesWmsWork.PartNo);//子零件号
|
|
|
parameters.Add("@qty", mesWmsWork.Qty);//成品个数*零件号数量
|
|
|
parameters.Add("@pullStatus", "10");//状态
|
|
|
|
|
|
if (sysParts.Count > 0)
|
|
|
{
|
|
|
parameters.Add("@parentPartId", sysParts[0].PartId);//父零件号ID
|
|
|
parameters.Add("@parentPartNo", sysParts[0].PartNo);//父零件号
|
|
|
parameters.Add("@parentPartSpec", sysParts[0].PartSpec);//父简码
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
parameters.Add("@parentPartId", "0");//父零件号ID
|
|
|
parameters.Add("@parentPartNo", "");//父零件号
|
|
|
parameters.Add("@parentPartSpec", "");//父简码
|
|
|
}
|
|
|
|
|
|
if (sysFactory.Count == 0)
|
|
|
{
|
|
|
parameters.Add("@factoryId", 0);//工厂ID
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
parameters.Add("@factoryId", sysFactory[0].FactoryId);//工厂ID
|
|
|
}
|
|
|
parameters.Add("@factoryCode", mesWmsWork.FactoryCode);//工厂代码
|
|
|
parameters.Add("@enabled", 'Y');//启用
|
|
|
parameters.Add("@createUserid", 0);//创建人
|
|
|
parameters.Add("@createTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"));//创建日期
|
|
|
parametersList.Add(parameters);
|
|
|
}
|
|
|
//}
|
|
|
}
|
|
|
else //其他 正常拆bom
|
|
|
{
|
|
|
SqlStringBuilder = new StringBuilder(1024);
|
|
|
SqlStringBuilder.Append("select * from sys_bom_detail(nolock) where part_no='" + mesWmsWork.PartNo + "' ");
|
|
|
List<SysBomDetail> sysBomDetails = dbConn.Query<SysBomDetail>(SqlStringBuilder.ToString()).ToList();
|
|
|
foreach (SysBomDetail sysBom in sysBomDetails)
|
|
|
{
|
|
|
//string checkPullingGroupPartSql = @"select a.* from [dbo].[wms_pulling_group_part] a (nolock) left join [dbo].[wms_pulling_group] b (nolock) on a.group_code=b.group_code
|
|
|
// where a.part_no = '" + sysBom.ItemPartNo + "' and a.enabled='Y' ";
|
|
|
//WmsPullingGroupPart wmsPullingGroupParts = dbConn.Query<WmsPullingGroupPart>(checkPullingGroupPartSql).FirstOrDefault();
|
|
|
//if (wmsPullingGroupParts != null)
|
|
|
//{
|
|
|
//明细
|
|
|
stringBuilder = new StringBuilder();
|
|
|
stringBuilder.Append(" SELECT * from mes_work_order_part(nolock) WHERE order_no='" + mesWmsWork.WorkOrderNo + "' and parent_part_no='" + mesWmsWork.PartNo + "' and part_no='" + sysBom.ItemPartNo + "' ");
|
|
|
List<MesWorkOrderPart> mesWorkOrderParts = dbConn.Query<MesWorkOrderPart>(stringBuilder.ToString()).ToList();
|
|
|
if (mesWorkOrderParts.Count > 0)
|
|
|
{
|
|
|
SqlStringBuilder = new StringBuilder(1024);
|
|
|
SqlStringBuilder.Append("UPDATE dbo.mes_work_order_part ");
|
|
|
SqlStringBuilder.Append(" SET order_no = @orderNo,part_id = @partId ");
|
|
|
SqlStringBuilder.Append(" ,part_no = @partNo,part_spec = @partSpec ");
|
|
|
SqlStringBuilder.Append(" ,qty = @qty,unit = @unit ");
|
|
|
SqlStringBuilder.Append(" ,pull_status = @pullStatus,parent_part_id = @parentPartId ");
|
|
|
SqlStringBuilder.Append(" ,parent_part_no = @parentPartNo,parent_part_spec = @parentPartSpec ");
|
|
|
SqlStringBuilder.Append(" ,factory_id = @factoryId ");
|
|
|
SqlStringBuilder.Append(" ,factory_code = @factoryCode,enabled = @enabled ");
|
|
|
SqlStringBuilder.Append(" ,update_userid = @updateUserid,update_time = @updateTime ");
|
|
|
SqlStringBuilder.Append(" ,car_no = @car_no,move_group_no = @move_group_no ");//新增 车架号 下发时分组号
|
|
|
SqlStringBuilder.Append(" WHERE ruid = @ruid ");
|
|
|
|
|
|
sqlList.Add(SqlStringBuilder.ToString());
|
|
|
parameters = new DynamicParameters();
|
|
|
parameters.Add("@orderNo", mesWmsWork.WorkOrderNo);//JIT单号
|
|
|
|
|
|
parameters.Add("@car_no", mesWmsWork.CarNo);//车架号
|
|
|
parameters.Add("@move_group_no", mesWmsWork.MoveGroupNo);//下发时分组号
|
|
|
|
|
|
stringBuilder = new StringBuilder();
|
|
|
stringBuilder.Append(" SELECT * from sys_part(nolock) WHERE part_no='" + sysBom.ItemPartNo + "'");
|
|
|
List<SysPart> itemSysParts = dbConn.Query<SysPart>(stringBuilder.ToString()).ToList();
|
|
|
|
|
|
if (itemSysParts.Count > 0)
|
|
|
{
|
|
|
parameters.Add("@partId", itemSysParts[0].PartId);//子零件号ID
|
|
|
parameters.Add("@partSpec", itemSysParts[0].PartSpec);//子简码
|
|
|
parameters.Add("@unit", itemSysParts[0].Unit);//子单位
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
parameters.Add("@partId", 0);//子零件号ID
|
|
|
parameters.Add("@partSpec", "");//子简码
|
|
|
parameters.Add("@unit", "");//子单位
|
|
|
}
|
|
|
parameters.Add("@partNo", sysBom.ItemPartNo);//子零件号
|
|
|
parameters.Add("@qty", mesWmsWork.Qty * sysBom.Qty);//成品个数*零件号数量
|
|
|
parameters.Add("@pullStatus", "10");//状态
|
|
|
|
|
|
if (sysParts.Count > 0)
|
|
|
{
|
|
|
parameters.Add("@parentPartId", sysParts[0].PartId);//父零件号ID
|
|
|
parameters.Add("@parentPartNo", sysParts[0].PartNo);//父零件号
|
|
|
parameters.Add("@parentPartSpec", sysParts[0].PartSpec);//父简码
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
parameters.Add("@parentPartId", "0");//父零件号ID
|
|
|
parameters.Add("@parentPartNo", "");//父零件号
|
|
|
parameters.Add("@parentPartSpec", "");//父简码
|
|
|
}
|
|
|
|
|
|
|
|
|
if (sysFactory.Count == 0)
|
|
|
{
|
|
|
parameters.Add("@factoryId", 0);//工厂ID
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
parameters.Add("@factoryId", sysFactory[0].FactoryId);//工厂ID
|
|
|
}
|
|
|
parameters.Add("@factoryCode", mesWmsWork.FactoryCode);//工厂代码
|
|
|
parameters.Add("@enabled", 'Y');//启用
|
|
|
parameters.Add("@updateUserid", 0);//修改人
|
|
|
parameters.Add("@updateTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"));//修改日期
|
|
|
parameters.Add("@ruid", mesWorkOrderParts[0].Ruid);//ruid
|
|
|
parametersList.Add(parameters);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
SqlStringBuilder = new StringBuilder(1024);
|
|
|
SqlStringBuilder.Append("INSERT INTO dbo.mes_work_order_part(order_no,part_id,part_no,part_spec,qty,unit,pull_status ");
|
|
|
SqlStringBuilder.Append(" ,parent_part_id,parent_part_no,parent_part_spec,factory_id,factory_code,enabled ");
|
|
|
SqlStringBuilder.Append(" ,create_userid,create_time,car_no,move_group_no) ");
|
|
|
SqlStringBuilder.Append(" VALUES(@orderNo,@partId,@partNo,@partSpec,@qty,@unit,@pullStatus,@parentPartId,@parentPartNo, ");
|
|
|
SqlStringBuilder.Append(" @parentPartSpec,@factoryId,@factoryCode,@enabled,@createUserid,@createTime,@car_no,@move_group_no) ");
|
|
|
|
|
|
sqlList.Add(SqlStringBuilder.ToString());
|
|
|
parameters = new DynamicParameters();
|
|
|
parameters.Add("@orderNo", mesWmsWork.WorkOrderNo);//JIT单号
|
|
|
|
|
|
parameters.Add("@car_no", mesWmsWork.CarNo);//车架号
|
|
|
parameters.Add("@move_group_no", mesWmsWork.MoveGroupNo);//下发时分组号
|
|
|
|
|
|
stringBuilder = new StringBuilder();
|
|
|
stringBuilder.Append(" SELECT * from sys_part(nolock) WHERE part_no='" + sysBom.ItemPartNo + "'");
|
|
|
List<SysPart> itemSysParts = dbConn.Query<SysPart>(stringBuilder.ToString()).ToList();
|
|
|
|
|
|
if (itemSysParts.Count > 0)
|
|
|
{
|
|
|
parameters.Add("@partId", itemSysParts[0].PartId);//子零件号ID
|
|
|
parameters.Add("@partSpec", itemSysParts[0].PartSpec);//子简码
|
|
|
parameters.Add("@unit", itemSysParts[0].Unit);//子单位
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
parameters.Add("@partId", 0);//子零件号ID
|
|
|
parameters.Add("@partSpec", "");//子简码
|
|
|
parameters.Add("@unit", "");//子单位
|
|
|
}
|
|
|
|
|
|
parameters.Add("@partNo", sysBom.ItemPartNo);//子零件号
|
|
|
parameters.Add("@qty", mesWmsWork.Qty * sysBom.Qty);//成品个数*零件号数量
|
|
|
parameters.Add("@pullStatus", "10");//状态
|
|
|
|
|
|
if (sysParts.Count > 0)
|
|
|
{
|
|
|
parameters.Add("@parentPartId", sysParts[0].PartId);//父零件号ID
|
|
|
parameters.Add("@parentPartNo", sysParts[0].PartNo);//父零件号
|
|
|
parameters.Add("@parentPartSpec", sysParts[0].PartSpec);//父简码
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
parameters.Add("@parentPartId", "0");//父零件号ID
|
|
|
parameters.Add("@parentPartNo", "");//父零件号
|
|
|
parameters.Add("@parentPartSpec", "");//父简码
|
|
|
}
|
|
|
|
|
|
if (sysFactory.Count == 0)
|
|
|
{
|
|
|
parameters.Add("@factoryId", 0);//工厂ID
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
parameters.Add("@factoryId", sysFactory[0].FactoryId);//工厂ID
|
|
|
}
|
|
|
parameters.Add("@factoryCode", mesWmsWork.FactoryCode);//工厂代码
|
|
|
parameters.Add("@enabled", 'Y');//启用
|
|
|
parameters.Add("@createUserid", 0);//创建人
|
|
|
parameters.Add("@createTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"));//创建日期
|
|
|
parametersList.Add(parameters);
|
|
|
}
|
|
|
//}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
//主表
|
|
|
stringBuilder = new StringBuilder();
|
|
|
stringBuilder.Append(" SELECT * from mes_work_order(nolock) WHERE order_no='" + mesWmsWork.WorkOrderNo + "' and part_no='" + mesWmsWork.PartNo + "'");
|
|
|
List<MesWorkOrder> mesWorkOrders = dbConn.Query<MesWorkOrder>(stringBuilder.ToString()).ToList();
|
|
|
if (mesWorkOrders.Count > 0)
|
|
|
{
|
|
|
SqlStringBuilder = new StringBuilder(1024);
|
|
|
SqlStringBuilder.Append("UPDATE dbo.mes_work_order ");
|
|
|
SqlStringBuilder.Append(" SET order_type = @orderType,order_status = @orderStatus ");
|
|
|
SqlStringBuilder.Append(" ,order_seq = @orderSeq,part_id = @partId ");
|
|
|
SqlStringBuilder.Append(" ,part_no = @partNo,part_spec = @partSpec ");
|
|
|
SqlStringBuilder.Append(" ,qty = @qty,complete_qty = @completeQty ");
|
|
|
SqlStringBuilder.Append(" ,order_source = @orderSource,pdline_id = @pdlineId ");
|
|
|
SqlStringBuilder.Append(" ,pdline_code = @pdlineCode ");
|
|
|
SqlStringBuilder.Append(" ,customer_id = @customerId ");
|
|
|
SqlStringBuilder.Append(" ,customer_code = @customerCode,cust_order_no = @custOrderNo ");
|
|
|
SqlStringBuilder.Append(" ,vin_code = @vinCode ");
|
|
|
SqlStringBuilder.Append(" ,vehicle_no = @vehicleNo,vehicle_name = @vehicleName ");
|
|
|
SqlStringBuilder.Append(" ,factory_id = @factoryId,factory_code = @factoryCode ");
|
|
|
SqlStringBuilder.Append(" ,enabled = @enabled,update_userid = @updateUserid ");
|
|
|
SqlStringBuilder.Append(" ,update_time = @updateTime ");
|
|
|
SqlStringBuilder.Append(" ,car_no = @car_no,move_group_no = @move_group_no ");//新增 车架号 下发时分组号
|
|
|
SqlStringBuilder.Append(" WHERE ruid = @ruid ");
|
|
|
|
|
|
sqlList.Add(SqlStringBuilder.ToString());
|
|
|
parameters = new DynamicParameters();
|
|
|
parameters.Add("@orderType", mesWmsWork.OrderType);//JIT类型
|
|
|
parameters.Add("@orderStatus", "10");//状态
|
|
|
parameters.Add("@orderSeq", mesWmsWork.OrderSeq);//JIT序号
|
|
|
|
|
|
parameters.Add("@car_no", mesWmsWork.CarNo);//车架号
|
|
|
parameters.Add("@move_group_no", mesWmsWork.MoveGroupNo);//下发时分组号
|
|
|
if (sysParts.Count > 0)
|
|
|
{
|
|
|
parameters.Add("@partId", sysParts[0].PartId);//零件号ID
|
|
|
parameters.Add("@partNo", sysParts[0].PartNo);//零件号
|
|
|
parameters.Add("@partSpec", sysParts[0].PartSpec);//简码
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
parameters.Add("@partId", 0);//零件号ID
|
|
|
parameters.Add("@partNo", mesWmsWork.PartNo);//零件号
|
|
|
parameters.Add("@partSpec", "");//简码
|
|
|
}
|
|
|
parameters.Add("@qty", mesWmsWork.Qty);//数量
|
|
|
parameters.Add("@completeQty", 0);//数量
|
|
|
parameters.Add("@orderSource", "mes");//单据来源
|
|
|
if (sysPdlines.Count > 0)
|
|
|
{
|
|
|
parameters.Add("@pdlineId", sysPdlines[0].PdlineId);//生产线id
|
|
|
parameters.Add("@pdlineCode", sysPdlines[0].PdlineCode);//生产线代码
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
parameters.Add("@pdlineId", 0);//生产线id
|
|
|
parameters.Add("@pdlineCode", mesWmsWork.PdlineCode);//生产线代码
|
|
|
}
|
|
|
|
|
|
if (sysCustomers.Count == 0)
|
|
|
{
|
|
|
parameters.Add("@customerId", 0);//客户ID
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
parameters.Add("@customerId", sysCustomers[0].CustomerId);//客户ID
|
|
|
}
|
|
|
parameters.Add("@customerCode", mesWmsWork.CustomerCode);//客户代码
|
|
|
parameters.Add("@custOrderNo", mesWmsWork.CustOrderNo);//客户代码
|
|
|
parameters.Add("@vinCode", mesWmsWork.VinCode);//Vin代码
|
|
|
parameters.Add("@vehicleNo", mesWmsWork.VehicleNo);//配置代码
|
|
|
parameters.Add("@vehicleName", mesWmsWork.VehicleName);//配置描述
|
|
|
|
|
|
if (sysFactory.Count == 0)
|
|
|
{
|
|
|
parameters.Add("@factoryId", 0);//工厂ID
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
parameters.Add("@factoryId", sysFactory[0].FactoryId);//工厂ID
|
|
|
}
|
|
|
parameters.Add("@factoryCode", mesWmsWork.FactoryCode);//工厂代码
|
|
|
parameters.Add("@enabled", 'Y');//启用
|
|
|
parameters.Add("@updateUserid", 0);//修改人
|
|
|
parameters.Add("@updateTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"));//修改日期
|
|
|
parameters.Add("@ruid", mesWorkOrders[0].Ruid);//ruid
|
|
|
parametersList.Add(parameters);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
SqlStringBuilder = new StringBuilder(1024);
|
|
|
SqlStringBuilder.Append("INSERT INTO dbo.mes_work_order(order_no,order_type,order_status,order_seq,part_id,part_no,part_spec ");
|
|
|
SqlStringBuilder.Append(" ,qty,complete_qty,order_source,pdline_id,pdline_code ");
|
|
|
SqlStringBuilder.Append(" ,customer_id,customer_code,cust_order_no,cust_part_no,vin_code,vehicle_no,vehicle_name,pull_status");
|
|
|
SqlStringBuilder.Append(" ,factory_id,factory_code,enabled,create_userid,create_time,car_no,move_group_no ) ");
|
|
|
SqlStringBuilder.Append(" VALUES(@orderNo,@orderType,@orderStatus,@orderSeq,@partId,@partNo,@partSpec ");
|
|
|
SqlStringBuilder.Append(" ,@qty,@completeQty,@orderSource,@pdlineId,@pdlineCode,@customerId,@customerCode ");
|
|
|
SqlStringBuilder.Append(" ,@custOrderNo,@custPartNo,@vinCode,@vehicleNo,@vehicleName,@pullStatus,@factoryId,@factoryCode ");
|
|
|
SqlStringBuilder.Append(" ,@enabled,@createUserid,@createTime,@car_no,@move_group_no ) ");
|
|
|
|
|
|
sqlList.Add(SqlStringBuilder.ToString());
|
|
|
parameters = new DynamicParameters();
|
|
|
parameters.Add("@orderNo", mesWmsWork.WorkOrderNo);//JIT单号
|
|
|
parameters.Add("@orderType", mesWmsWork.OrderType);//JIT类型
|
|
|
parameters.Add("@orderStatus", "10");//状态
|
|
|
parameters.Add("@orderSeq", mesWmsWork.OrderSeq);//JIT序号
|
|
|
|
|
|
parameters.Add("@car_no", mesWmsWork.CarNo);//车架号
|
|
|
parameters.Add("@move_group_no", mesWmsWork.MoveGroupNo);//下发时分组号
|
|
|
if (sysParts.Count > 0)
|
|
|
{
|
|
|
parameters.Add("@partId", sysParts[0].PartId);//零件号ID
|
|
|
parameters.Add("@partSpec", sysParts[0].PartSpec);//简码
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
parameters.Add("@partId", 0);//零件号ID
|
|
|
parameters.Add("@partSpec", "");//简码
|
|
|
}
|
|
|
parameters.Add("@partNo", mesWmsWork.PartNo);//零件号
|
|
|
|
|
|
parameters.Add("@qty", mesWmsWork.Qty);//数量
|
|
|
parameters.Add("@completeQty", 0);//数量
|
|
|
parameters.Add("@orderSource", "mes");//单据来源
|
|
|
if (sysPdlines.Count > 0)
|
|
|
{
|
|
|
parameters.Add("@pdlineId", sysPdlines[0].PdlineId);//生产线id
|
|
|
parameters.Add("@pdlineCode", sysPdlines[0].PdlineCode);//生产线代码
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
parameters.Add("@pdlineId", 0);//生产线id
|
|
|
parameters.Add("@pdlineCode", mesWmsWork.PdlineCode);//生产线代码
|
|
|
}
|
|
|
|
|
|
if (sysCustomers.Count == 0)
|
|
|
{
|
|
|
parameters.Add("@customerId", 0);//客户ID
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
parameters.Add("@customerId", sysCustomers[0].CustomerId);//客户ID
|
|
|
}
|
|
|
parameters.Add("@customerCode", mesWmsWork.CustomerCode);//客户代码
|
|
|
parameters.Add("@custOrderNo", mesWmsWork.CustOrderNo);//客户代码
|
|
|
parameters.Add("@custPartNo", "");//客户代码
|
|
|
|
|
|
parameters.Add("@vinCode", mesWmsWork.VinCode);//Vin代码
|
|
|
parameters.Add("@vehicleNo", mesWmsWork.VehicleNo);//配置代码
|
|
|
parameters.Add("@vehicleName", mesWmsWork.VehicleName);//配置描述
|
|
|
parameters.Add("@pullStatus", 10);//拉动状态
|
|
|
|
|
|
if (sysFactory.Count == 0)
|
|
|
{
|
|
|
parameters.Add("@factoryId", 0);//工厂ID
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
parameters.Add("@factoryId", sysFactory[0].FactoryId);//工厂ID
|
|
|
}
|
|
|
parameters.Add("@factoryCode", mesWmsWork.FactoryCode);//工厂代码
|
|
|
parameters.Add("@enabled", 'Y');//启用
|
|
|
parameters.Add("@createUserid", 0);//创建人
|
|
|
parameters.Add("@createTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"));//创建日期
|
|
|
parametersList.Add(parameters);
|
|
|
}
|
|
|
|
|
|
SqlStringBuilder = new StringBuilder(1024);
|
|
|
SqlStringBuilder.Append("update MES_WMS_WORK_ORDER set syn_flg=@synFlg,syn_time=@synTime,update_userid=@updateUserid,update_time=@updateTime where GUID=@GUID ");//更新同步状态
|
|
|
sqlList.Add(SqlStringBuilder.ToString());
|
|
|
|
|
|
parameters = new DynamicParameters();
|
|
|
parameters.Add("@GUID", mesWmsWork.Guid);//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_WORK_ORDER set syn_flg=@synFlg,syn_time=@synTime,err_msg=@errMsg,update_userid=@updateUserid,update_time=@updateTime where GUID=@GUID ");//更新同步状态
|
|
|
sqlList.Add(SqlStringBuilder.ToString());
|
|
|
|
|
|
parameters = new DynamicParameters();
|
|
|
parameters.Add("@GUID", mesWmsWork.Guid);//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;
|
|
|
}
|
|
|
}
|
|
|
return true;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 根据拉动组类型获取拉动组信息
|
|
|
/// </summary>
|
|
|
/// <returns></returns>
|
|
|
public List<WmsPullingGroup> GetPullingGroupList(int pullType)
|
|
|
{
|
|
|
IDbConnection dbConn = dapperDbContext.GetDbConnection();
|
|
|
//using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
//{
|
|
|
//dbConn.Open();
|
|
|
StringBuilder SqlStringBuilder = new StringBuilder(1024);
|
|
|
SqlStringBuilder.Append("SELECT * FROM [wms_pulling_group] (nolock) WHERE enabled = 'Y' ");
|
|
|
SqlStringBuilder.Append(" AND pulling_type = @pullingType ");
|
|
|
|
|
|
DynamicParameters parameters = new DynamicParameters();
|
|
|
parameters.Add("@pullingType", pullType);
|
|
|
|
|
|
List<WmsPullingGroup> resultList = dbConn.Query<WmsPullingGroup>(SqlStringBuilder.ToString(), parameters).ToList();
|
|
|
|
|
|
return resultList;
|
|
|
//}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 需要生成安全库存零件的列表
|
|
|
/// </summary>
|
|
|
/// <returns></returns>
|
|
|
public List<SysLocatePart> SafetyPullList()
|
|
|
{
|
|
|
IDbConnection dbConn = dapperDbContext.GetDbConnection();
|
|
|
//using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
//{
|
|
|
//dbConn.Open();
|
|
|
StringBuilder sql = new StringBuilder(1024);
|
|
|
sql.Append(@"select a.guid,c.warehouse_id,c.warehouse_name,c.zone_id,c.zone_name,d.erp_warehouse,a.locate_id,c.locate_name,c.locate_desc,a.factory_id,a.factory_code,
|
|
|
a.part_id,a.part_no,e.part_spec,a.max_qty,a.min_qty,a.safety_qty,
|
|
|
isnull(b.qty,0) Total,isnull(f.Total2,0) Total2 from sys_locate_part as a (nolock) left join
|
|
|
(select locate_name,part_id, sum(qty) qty from sys_stock (nolock) where status = @status and enabled = 'Y' group by locate_name,part_id) as b on a.part_id = b.part_id and a.locate_name = b.locate_name
|
|
|
left join sys_locate as c (nolock) on a.locate_id = c.locate_id
|
|
|
left join sys_zone as d (nolock) on c.zone_id = d.zone_id
|
|
|
left join sys_part as e (nolock) on a.part_no = e.part_no
|
|
|
left join (select part_id, sum(qty) Total2 from sys_stock (nolock) where status = 50 and enabled = 'Y' group by part_id) as f on a.part_id = f.part_id
|
|
|
where a.safety_qty > isnull(b.qty,0) and is_safety_pull = '0' and c.locate_type=@locate_type and a.enabled='Y' ");
|
|
|
|
|
|
DynamicParameters parameters = new DynamicParameters();
|
|
|
parameters.Add("@status", (int)WmsEnumUtil.StockStatus.ONLINED);
|
|
|
parameters.Add("@locate_type", (int)WmsEnumUtil.LocateType.LINE_LOCATE);
|
|
|
|
|
|
List<SysLocatePart> resultList = dbConn.Query<SysLocatePart>(sql.ToString(), parameters).ToList();
|
|
|
|
|
|
return resultList;
|
|
|
//}
|
|
|
}
|
|
|
|
|
|
public List<WmsMoveHeader> GetSmallPiecePullRecovery()
|
|
|
{
|
|
|
IDbConnection dbConn = dapperDbContext.GetDbConnection();
|
|
|
|
|
|
StringBuilder sql = new StringBuilder(1024);
|
|
|
sql.Append(@" select pdline_code,isnull(max(part_prepare),0) part_prepare from sys_pdline group by pdline_code ");
|
|
|
List<SysPdline> part_prepare = dbConn.Query<SysPdline>(sql.ToString()).ToList();
|
|
|
|
|
|
|
|
|
StringBuilder SqlStringBuilder = new StringBuilder(1024);
|
|
|
SqlStringBuilder.Append("select * from wms_move_header a left join wms_move_detail b on a.order_no=b.order_no where ref_order_no='安全库存拉动' and wrong_sign=0 and order_status in(10,20,30) ");
|
|
|
SqlStringBuilder.Append("and part_no in ( ");
|
|
|
for (int i = 0; i < part_prepare.Count; i++)
|
|
|
{
|
|
|
SqlStringBuilder.Append(@" select distinct b.part_no from (select distinct top "+ part_prepare[i].PartPrepare + " order_no,order_seq from mes_work_order where order_status = @order_status and pdline_code='" + part_prepare[i].PdlineCode + "' order by order_seq) a left join mes_work_order_part b on a.order_no = b.order_no ");
|
|
|
if (part_prepare.Count-1 != i)
|
|
|
{
|
|
|
SqlStringBuilder.Append(@" union ");
|
|
|
}
|
|
|
}
|
|
|
SqlStringBuilder.Append(" ) ");
|
|
|
|
|
|
DynamicParameters parameters = new DynamicParameters();
|
|
|
parameters.Add("@order_status", 10);//JIT状态 10未处理
|
|
|
List<WmsMoveHeader> resultList = dbConn.Query<WmsMoveHeader>(SqlStringBuilder.ToString(), parameters).ToList();
|
|
|
return resultList;
|
|
|
}
|
|
|
public int UpdateSmallPiecePullRecovery(List<WmsMoveHeader> wmsMoves)
|
|
|
{
|
|
|
IDbConnection dbConn = dapperDbContext.GetDbConnection();
|
|
|
StringBuilder SqlStringBuilder = new StringBuilder(1024);
|
|
|
DynamicParameters parameters = new DynamicParameters();
|
|
|
int retNum = 0;
|
|
|
for (int i = 0; i < wmsMoves.Count; i++)
|
|
|
{
|
|
|
SqlStringBuilder = new StringBuilder(1024);
|
|
|
SqlStringBuilder.Append("update wms_move_header set wrong_sign=2 where ruid=@ruid ");
|
|
|
parameters = new DynamicParameters();
|
|
|
parameters.Add("@ruid", wmsMoves[i].Ruid);
|
|
|
retNum = dbConn.Execute(SqlStringBuilder.ToString(), parameters);
|
|
|
}
|
|
|
return retNum;
|
|
|
}
|
|
|
|
|
|
public List<WmsMoveHeader> GetMoveHeaderWrong0()
|
|
|
{
|
|
|
IDbConnection dbConn = dapperDbContext.GetDbConnection();
|
|
|
//using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
//{
|
|
|
//dbConn.Open();
|
|
|
StringBuilder sql = new StringBuilder(1024);
|
|
|
sql.Append(@" select a.guid,a.order_no,b.part_id,b.part_no,isnull(f.qty,0) qty from wms_move_header as a (nolock) left join wms_move_detail as b (nolock) on a.order_no = b.order_no
|
|
|
left join (select part_id, sum(qty) qty from sys_stock (nolock) where status = 50 and enabled = 'Y' group by part_id) as f on b.part_id = f.part_id
|
|
|
where a.wrong_sign in ('1','2') and a.ref_order_no='安全库存拉动' ");
|
|
|
|
|
|
List<WmsMoveHeader> resultList = dbConn.Query<WmsMoveHeader>(sql.ToString()).ToList();
|
|
|
|
|
|
return resultList;
|
|
|
//}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 大件拣选任务零件选择
|
|
|
/// </summary>
|
|
|
/// <param name="pullGroupCode"></param>
|
|
|
/// <param name="workOrderType"></param>
|
|
|
/// <returns></returns>
|
|
|
public List<WmsPullingOrderDetail> GetPullingPickPartList(string pullGroupCode, int workOrderType)
|
|
|
{
|
|
|
IDbConnection dbConn = dapperDbContext.GetDbConnection();
|
|
|
//using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
//{
|
|
|
//dbConn.Open();
|
|
|
StringBuilder sql = new StringBuilder(1024);
|
|
|
sql.Append("SELECT a.order_no,a.ruid,b.order_seq work_order_seq,a.part_id,a.part_no,a.part_spec,b.part_id parent_part_id,b.part_no parent_part_no,b.part_spec parent_part_spec,a.unit, a.qty * c.pull_qty qty, ");
|
|
|
sql.Append(" a.factory_id,a.factory_code,b.pdline_id,b.pdline_code ");
|
|
|
sql.Append("FROM mes_work_order_part a (nolock) ");
|
|
|
sql.Append("JOIN dbo.mes_work_order b (nolock) ON a.order_no = b.order_no AND a.parent_part_id = b.part_id ");
|
|
|
sql.Append("JOIN dbo.wms_pulling_group_part c (nolock) ON a.part_id = c.part_id ");
|
|
|
sql.Append("WHERE a.pull_status = 10 ");
|
|
|
sql.Append(" AND b.order_type = @orderType ");
|
|
|
sql.Append(" AND a.enabled = 'Y' ");
|
|
|
sql.Append(" AND c.enabled = 'Y' ");
|
|
|
sql.Append(" AND c.group_code = @groupCode ");
|
|
|
//sql.Append("GROUP BY a.order_no,a.part_id,a.part_no,a.part_spec,a.unit, ");
|
|
|
//sql.Append(" a.factory_id,a.factory_code,b.pdline_id,b.pdline_code ");
|
|
|
//sql.Append("ORDER BY a.order_no ");
|
|
|
|
|
|
DynamicParameters parameters = new DynamicParameters();
|
|
|
parameters.Add("@orderType", workOrderType);
|
|
|
parameters.Add("@groupCode", pullGroupCode);
|
|
|
|
|
|
List<WmsPullingOrderDetail> resultList = dbConn.Query<WmsPullingOrderDetail>(sql.ToString(), parameters).ToList();
|
|
|
|
|
|
return resultList;
|
|
|
//}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 根据产线ID获取产线库区关系信息
|
|
|
/// </summary>
|
|
|
/// <param name="pdlineId"></param>
|
|
|
/// <returns></returns>
|
|
|
public SysPdlineZone GetPdlineZone(int pdlineId)
|
|
|
{
|
|
|
IDbConnection dbConn = dapperDbContext.GetDbConnection();
|
|
|
//using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
//{
|
|
|
//dbConn.Open();
|
|
|
StringBuilder SqlStringBuilder = new StringBuilder(1024);
|
|
|
SqlStringBuilder.Append("SELECT top 1 *,z.erp_warehouse FROM [dbo].[sys_pdline_zone] pz (nolock) ");
|
|
|
SqlStringBuilder.Append("JOIN dbo.sys_zone z (nolock) ON pz.zone_id = z.zone_id ");
|
|
|
|
|
|
SqlStringBuilder.Append("WHERE pz.pdline_id = @pdlineId ");
|
|
|
SqlStringBuilder.Append(" AND pz.busi_type = @busiType ");
|
|
|
SqlStringBuilder.Append(" AND pz.enabled = 'Y' ");
|
|
|
|
|
|
DynamicParameters parameters = new DynamicParameters();
|
|
|
parameters.Add("@pdlineId", pdlineId);
|
|
|
parameters.Add("@busiType", (int)WmsEnumUtil.PdlineZoneBusiType.BIG_PART_PULL);
|
|
|
|
|
|
var result = dbConn.QueryFirstOrDefault<SysPdlineZone>(SqlStringBuilder.ToString(), parameters);
|
|
|
|
|
|
return result;
|
|
|
//}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 获取待拉动JIT订单数据
|
|
|
/// </summary>
|
|
|
/// <returns></returns>
|
|
|
public List<MesWorkOrder> GetPullingJitOrderList()
|
|
|
{
|
|
|
IDbConnection dbConn = dapperDbContext.GetDbConnection();
|
|
|
//using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
//{
|
|
|
//dbConn.Open();
|
|
|
StringBuilder sql = new StringBuilder(1024);
|
|
|
sql.Append("SELECT TOP 1000 * FROM mes_work_order (nolock) ");
|
|
|
sql.Append("WHERE order_type = @orderType ");
|
|
|
sql.Append("ORDER BY order_seq ");
|
|
|
|
|
|
DynamicParameters parameters = new DynamicParameters();
|
|
|
parameters.Add("@orderType", (int)MesEnumUtil.WorkOrderType.PRODUCT_JIT);
|
|
|
|
|
|
List<MesWorkOrder> resultList = dbConn.Query<MesWorkOrder>(sql.ToString(), parameters).ToList();
|
|
|
return resultList;
|
|
|
//}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 获取待拉动JIT订单原材料数据
|
|
|
/// </summary>
|
|
|
/// <returns></returns>
|
|
|
public List<MesWorkOrderPart> GetPullingJitOrderPartList()
|
|
|
{
|
|
|
IDbConnection dbConn = dapperDbContext.GetDbConnection();
|
|
|
//using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
//{
|
|
|
//dbConn.Open();
|
|
|
StringBuilder sql = new StringBuilder(1024);
|
|
|
sql.Append("SELECT TOP 1000 * FROM mes_work_order (nolock) ");
|
|
|
sql.Append("WHERE order_type = @orderType ");
|
|
|
sql.Append("ORDER BY order_seq ");
|
|
|
|
|
|
DynamicParameters parameters = new DynamicParameters();
|
|
|
parameters.Add("@orderType", (int)MesEnumUtil.WorkOrderType.PRODUCT_JIT);
|
|
|
|
|
|
List<MesWorkOrderPart> resultList = dbConn.Query<MesWorkOrderPart>(sql.ToString(), parameters).ToList();
|
|
|
return resultList;
|
|
|
//}
|
|
|
}
|
|
|
}
|
|
|
}
|