using System.Collections;
using System.Data;
using System.Data.SqlClient;
using System.Dynamic;
using System.Text;
using Gs.Toolbox;
using Gs.Toolbox.ApiCore.Abstract.Mvc;
using Gs.Toolbox.ApiCore.Common.Mvc;
using Gs.Toolbox.ApiCore.Group;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using static Gs.Toolbox.UtilityHelper;
namespace GS.QC.Service
{
[ApiGroup(ApiGroupNames.QC)]
public class FqcManager : IRomteService
{
private readonly IHttpContextAccessor _http;
private readonly string _userCode, _userGuid, _orgFids;
public FqcManager(IHttpContextAccessor httpContextAccessor)
{
_http = httpContextAccessor;
(_userCode, _userGuid, _orgFids) =
GetUserGuidAndOrgGuid(_http);
}
///
/// 读取列表,支持分页
///
///
///
[RequestMethod(RequestMethods.POST)]
public ReturnDto> GetListPage([FromBody] dynamic model)
{
int currentPage = model.currentPage;
int everyPageSize = model.everyPageSize;
string sortName = model.sortName;
string keyWhere = model.keyWhere;
SqlParameter[] parameters =
{
new("@inCurrentPage", currentPage),
new("@inEveryPageSize", everyPageSize),
new("@inSortName", sortName),
new("@inSortOrder", ""),
new("@inQueryWhere", keyWhere),
new("@inFid", ""),
new("@inP1", ""),
new("@inP2", ""),
new("@inP3", ""),
new("@inP4", "")
};
var dset = new DataSet();
var _pglist = new PageList
{
total = 0,
everyPageSize = 0,
pages = 0,
list = new List()
};
try
{
dset = DbHelperSQL.RunProcedure("[fqc_lst]", parameters, "0");
if (dset != null && dset.Tables.Count > 0 &&
dset.Tables[0].Rows.Count > 0) //有数据
{
var intTotal =
int.Parse(dset.Tables[1].Rows[0]["intTotal"].ToString());
var pages = intTotal % everyPageSize != 0
? intTotal / everyPageSize + 1
: intTotal / everyPageSize;
_pglist.total = intTotal;
_pglist.everyPageSize = everyPageSize;
_pglist.pages = pages;
var _dy = dset.Tables[0].TableToDynamicList();
_pglist.list = _dy;
}
}
catch (Exception ex)
{
LogHelper.Debug(ToString(), ex.Message);
return ReturnDto>.QuickReturn(_pglist,
ReturnCode.Exception, ex.Message);
}
return ReturnDto>.QuickReturn(_pglist,
ReturnCode.Success, "读取成功");
}
///
/// 读取
///
///
///
[RequestMethod(RequestMethods.POST)]
public ReturnDto GetModel([FromBody] dynamic model)
{
string guid = model.guid.ToString();
dynamic m = new ExpandoObject();
m.list = new List();
m.list2 = new List();
SqlParameter[] parameters =
{
new("@inMainGuid", guid),
new("@inP1", ""),
new("@inP2", ""),
new("@inP3", ""),
new("@inP4", "")
};
var dset = new DataSet();
try
{
dset = DbHelperSQL.RunProcedure("[fqc_get]", parameters, "0");
if (dset != null && dset.Tables.Count > 0 &&
dset.Tables[0].Rows.Count > 0)
{
var dr = dset.Tables[0].Rows[0];
m = dr.RowToDynamic();
var _tb = dset.Tables[1].TableToDynamicList();
m.list5 = _tb;
}
}
catch (Exception ex)
{
LogHelper.Debug(ToString(), ex.Message);
}
if (m != null)
return ReturnDto.QuickReturn(m, ReturnCode.Success,
"读取成功!");
return ReturnDto.QuickReturn(m, ReturnCode.Default, "读取失败!");
}
///
/// 读取
///
///
///
[RequestMethod(RequestMethods.POST)]
public ReturnDto GetModel12([FromBody] dynamic model)
{
Guid guid = model.guid;
string parentGuid = model.parentGuid;
dynamic m = new ExpandoObject();
m.list = new List();
m.list2 = new List();
System.Text.StringBuilder sb = new StringBuilder();
sb.Append("select * from MES_QA_ITEMS_DETECT_DETAIL12 where parent_guid='" + guid + "' order by fstand asc");
sb.Append(" select d13.*,d5.fcheck_item as fcheckItemd5,d5.ybsl from MES_QA_ITEMS_DETECT_DETAIL13 d13 left join[dbo].[MES_QA_ITEMS_DETECT_DETAIL5] d5 on d13.parent_guid = d5.guid");
sb.Append(" where d13.parent_guid = '" + guid + "'");
sb.Append(" order by d13.fcheck_item asc");
try
{
DataSet dset = new DataSet();
dset = DbHelperSQL.Query(sb.ToString());
var _tb = dset.Tables[0].TableToDynamicList();
m.list = _tb;
var _tb2 = dset.Tables[1].TableToDynamicList();
m.list2 = _tb2;
}
catch (Exception ex)
{
LogHelper.Debug(ToString(),
"GetModel12 error:" + ex.Message);
}
if (m != null)
return ReturnDto.QuickReturn(m, ReturnCode.Success,
"读取成功!");
return ReturnDto.QuickReturn(m, ReturnCode.Default,
"读取失败!");
}
///
/// 增加或编辑实体
///
///
///
[RequestMethod(RequestMethods.POST)]
public ReturnDto EditModel([FromBody] dynamic model)
{
Guid? guid = model.guid; //主键
string djType = model.djType;
string fbatchQty = model.fbatchQty;
string lifnr = model.lifnr;
string suppId = model.suppId;
string lineId = model.lineId;
string itemId = model.itemId;
string remarks = model.remarks;
string epTag = model.epTag;
string fzrId = model.fzrId;
string msg = model.msg;
string fmanageNo = model.fmanageNo;
string lotNo1 = model.lotNo1;
string lotNo = model.lotNo;
string freceQty = model.freceQty;//判定结果
string fngHandle = model.fngHandle;//处置结果
string fmrmode = model.fmrmode;//工序
string workNo = model.workNo;//反工单号
string zrType = model.zrType;//责任判定
string kbList = model.kbList;
dynamic mObj = new ExpandoObject();
mObj.outMsg = "";
mObj.outSum = -1;
mObj.outGuid = "";
mObj.outNo = "";
using (var conn = new SqlConnection(DbHelperSQL.strConn))
{
using (var cmd = new SqlCommand("[fqc_edt]", conn))
{
try
{
conn.Open();
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter[] parameters =
{
new("@outMsg", SqlDbType.NVarChar, 300),
new("@outSum", SqlDbType.Int),
new("@outGuid", SqlDbType.UniqueIdentifier),
new("@outNo", SqlDbType.NVarChar, 300),
new("@inOrderGuid", CheckGuid(guid) ? guid : DBNull.Value),
new("@txt_djType", djType),
new("@txt_fbatchQty", fbatchQty),
new("@txt_lifnr",lifnr),
new("@txt_suppId", suppId),
new("@txt_lineId",lineId),
new("@txt_itemId",itemId),
new("@txt_remarks", remarks),
new("@txt_workNo",workNo),
new("@txt_epTag",epTag),
new("@txt_fzrId",fzrId),
new("@txt_msg",msg),
new("@txt_fmanageNo",fmanageNo),
new("@freceQty",freceQty),
new("@txt_lotNo1",lotNo1),
new("@txt_fngHandle",fngHandle),
new("@txt_lotNo",lotNo),
new("@txt_fmrmode",fmrmode),
new("@txt_zrType",zrType),
new("@kbList",kbList),
new("@inEdtUserGuid", _userGuid),
};
parameters[0].Direction = ParameterDirection.Output;
parameters[1].Direction = ParameterDirection.Output;
parameters[2].Direction = ParameterDirection.Output;
parameters[3].Direction = ParameterDirection.Output;
foreach (var parameter in parameters)
cmd.Parameters.Add(parameter);
cmd.ExecuteNonQuery();
mObj.outMsg = parameters[0].Value.ToString();
mObj.outSum = int.Parse(parameters[1].Value.ToString());
mObj.outGuid = parameters[2].Value.ToString();
mObj.outNo = parameters[3].Value.ToString();
}
catch (Exception ex)
{
LogHelper.Debug(ToString(),
"fqc_edt error:" + ex.Message);
mObj.outMsg = ex.Message;
mObj.outSum = -1;
}
finally
{
conn.Close();
}
}
}
//保存完主表后,保存明细
if (mObj.outSum > 0)
{
Hashtable SQLStringList = new Hashtable();
foreach (var m in model.list)
{
string _guid = m.guid5.ToString();
string _defectLevel = m.defectLevel.ToString();
string _defectDetails = m.defectDetails.ToString();
SQLStringList.Add("update MES_QA_ITEMS_DETECT_DETAIL5 set defect_level='" + _defectLevel + "',defect_details=@defect_details where guid='" + _guid + "' ", new SqlParameter[] { new SqlParameter("@defect_details", _defectDetails) });
}
if (SQLStringList.Count > 0)
{
try
{
Gs.Toolbox.DbHelperSQL.ExecuteSqlTranRtn(SQLStringList);
}
catch (Exception ex)
{
Gs.Toolbox.LogHelper.Debug(this.ToString(), ex.Message);
mObj.outMsg = (mObj.outMsg + ex.Message);
}
}
}
if (mObj.outSum <= 0)
return ReturnDto.QuickReturn(mObj, ReturnCode.Exception, mObj.outMsg);
return ReturnDto.QuickReturn(mObj, ReturnCode.Success, mObj.outMsg);
}
///
/// 删除主表或明细
///
///
///
[RequestMethod(RequestMethods.POST)]
public ReturnDto DeleteModelOrMx([FromBody] dynamic model)
{
int? rtnInt = (int)ReturnCode.Default;
Guid? guid = model.guid;
var _outMsg = "";
var _outSum = -1;
using (var conn = new SqlConnection(DbHelperSQL.strConn))
{
using (var cmd = new SqlCommand("[fqc_del]", conn))
{
try
{
conn.Open();
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter[] parameters =
{
new("@outMsg", SqlDbType.NVarChar, 300),
new("@outSum", SqlDbType.Int),
new("@inOrderGuid",
UtilityHelper.CheckGuid(guid)
? guid
: DBNull.Value),
new("@inEdtUserGuid", _userGuid),
};
parameters[0].Direction = ParameterDirection.Output;
parameters[1].Direction = ParameterDirection.Output;
foreach (var parameter in parameters)
cmd.Parameters.Add(parameter);
cmd.ExecuteNonQuery();
_outMsg = parameters[0].Value.ToString();
_outSum = int.Parse(parameters[1].Value.ToString());
}
catch (Exception ex)
{
LogHelper.Debug(ToString(),
"prc_QT_del error:" + ex.Message);
_outMsg = ex.Message;
_outSum = -1;
}
finally
{
conn.Close();
}
}
}
if (_outSum <= 0)
return ReturnDto.QuickReturn(rtnInt, ReturnCode.Exception,
_outMsg);
return ReturnDto.QuickReturn(rtnInt, ReturnCode.Success, _outMsg);
}
///
/// fqc时选择daa
///
///
///
[RequestMethod(RequestMethods.POST)]
public ReturnDto> SelectFqcDaa([FromBody] dynamic model)
{
int currentPage = model.currentPage;
int everyPageSize = model.everyPageSize;
string sortName = model.sortName;
string keyWhere = model.keyWhere;
var dset = new DataSet();
try
{
using (var conn = new SqlConnection(DbHelperSQL.strConn))
{
using (var cmd = new SqlCommand("[fqc_select_daa]", conn))
{
conn.Open();
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter[] parameters =
{
new("@inCurrentPage", currentPage),
new("@inEveryPageSize", everyPageSize),
new("@inSortName", sortName),
new("@inSortOrder", ""),
new("@inQueryWhere", keyWhere),
new("@inP1", ""),
new("@inP2", "")
};
foreach (var parameter in parameters)
cmd.Parameters.Add(parameter);
using (var dt = new SqlDataAdapter(cmd))
{
dt.Fill(dset, "0");
}
}
conn.Close();
}
}
catch (Exception ex)
{
LogHelper.Debug(ToString(), "GetListPage error:" + ex.Message);
return ReturnDto>.QuickReturn(
default(PageList), ReturnCode.Exception, "读取失败");
}
var _pglist = new PageList
{
total = 0,
everyPageSize = 0,
pages = 0,
list = new List()
};
if (dset != null && dset.Tables.Count > 0 &&
dset.Tables[0].Rows.Count > 0) //有数据
{
var intTotal =
int.Parse(dset.Tables[1].Rows[0]["intTotal"].ToString());
var pages = intTotal % everyPageSize != 0
? intTotal / everyPageSize + 1
: intTotal / everyPageSize;
_pglist.total = intTotal;
_pglist.everyPageSize = everyPageSize;
_pglist.pages = pages;
var _dy = dset.Tables[0].TableToDynamicList();
_pglist.list = _dy;
}
return ReturnDto>.QuickReturn(_pglist,
ReturnCode.Success, "读取成功");
}
///
/// fqc时选择Box
///
///
///
[RequestMethod(RequestMethods.POST)]
public ReturnDto> SelectFqcBox([FromBody] dynamic model)
{
int currentPage = model.currentPage;
int everyPageSize = model.everyPageSize;
string sortName = model.sortName;
string keyWhere = model.keyWhere;
string daaNo = model.daaNo;
var dset = new DataSet();
try
{
using (var conn = new SqlConnection(DbHelperSQL.strConn))
{
using (var cmd = new SqlCommand("[fqc_select_box]", conn))
{
conn.Open();
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter[] parameters =
{
new("@inCurrentPage", currentPage),
new("@inEveryPageSize", everyPageSize),
new("@inSortName", sortName),
new("@inSortOrder", ""),
new("@inQueryWhere", keyWhere),
new("@daaNo", daaNo),
new("@inP1", ""),
new("@inP2", "")
};
foreach (var parameter in parameters)
cmd.Parameters.Add(parameter);
using (var dt = new SqlDataAdapter(cmd))
{
dt.Fill(dset, "0");
}
}
conn.Close();
}
}
catch (Exception ex)
{
LogHelper.Debug(ToString(), "GetListPage error:" + ex.Message);
return ReturnDto>.QuickReturn(
default(PageList), ReturnCode.Exception, "读取失败");
}
var _pglist = new PageList
{
total = 0,
everyPageSize = 0,
pages = 0,
list = new List()
};
if (dset != null && dset.Tables.Count > 0 &&
dset.Tables[0].Rows.Count > 0) //有数据
{
var intTotal =
int.Parse(dset.Tables[1].Rows[0]["intTotal"].ToString());
var pages = intTotal % everyPageSize != 0
? intTotal / everyPageSize + 1
: intTotal / everyPageSize;
_pglist.total = intTotal;
_pglist.everyPageSize = everyPageSize;
_pglist.pages = pages;
var _dy = dset.Tables[0].TableToDynamicList();
_pglist.list = _dy;
}
return ReturnDto>.QuickReturn(_pglist,
ReturnCode.Success, "读取成功");
}
///
/// 质量,审核,反审核,驳回
///
///
///
[RequestMethod(RequestMethods.POST)]
public ReturnDto EditModelSubmitZhiLiang([FromBody] dynamic mode)
{
string _guid = mode.guid;
string _inFieldValue = mode.inFieldValue;
dynamic m = new ExpandoObject();
m.outSum = -1;
m.outMsg = "";
using (var conn = new SqlConnection(DbHelperSQL.strConn))
{
using (var cmd = new SqlCommand("fqc_zhiLiang", conn))
{
try
{
conn.Open();
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter[] parameters =
{
new("@outMsg", SqlDbType.NVarChar, 300),
new("@outSum", SqlDbType.Int),
new("@inEdtUserGuid", _userGuid),
new("@inOrderGuid", _guid),
new("@inFieldValue",_inFieldValue),
new("@in1", ""),
new("@in2", "")
};
parameters[0].Direction = ParameterDirection.Output;
parameters[1].Direction = ParameterDirection.Output;
foreach (var parameter in parameters)
cmd.Parameters.Add(parameter);
cmd.ExecuteNonQuery();
m.outMsg = parameters[0].Value.ToString();
m.outSum = int.Parse(parameters[1].Value.ToString());
}
catch (Exception ex)
{
LogHelper.Debug(this.ToString(), "fqc_zhiLiang error:" + ex.Message);
return ReturnDto.QuickReturn(m, ReturnCode.Default, ex.Message);
}
finally
{
conn.Close();
}
}
}
return ReturnDto.QuickReturn(m, ReturnCode.Success, "操作成功!");
}
///
/// 读取
///
///
///
[RequestMethod(RequestMethods.POST)]
public ReturnDto GetModel14([FromBody] dynamic model)
{
string parentGuid = model.parentGuid;
dynamic m = new ExpandoObject();
m.list = new List();
System.Text.StringBuilder sb = new StringBuilder();
sb.Append(" select qc14.tbBarcode,ITEM_BARCODE,QUANTITY,DAA_001");
sb.Append(" ,cast( isnull( tb.IS_CHECK,0) as bit) as isCheck,tb.CHECK_DATE,tb.CHECK_BY");
sb.Append(", line.name as lineName,dw.fname as dwName");
sb.Append(", qc.fcheck_resu,qc.frece_qty,qc.CHECK_STATES");
sb.Append(", daa003 as itemName,daa029 as itemNo");
sb.Append(", 0 as rkQty,0 as wrkQty");
sb.Append(" from [dbo].[MES_QA_ITEMS_DETECT_DETAIL14] qc14 left join[MES_INV_ITEM_BARCODES_TBMX] tb on qc14.tbBarcode = tb.ABOUT_TB_BARCODE");
sb.Append(" left join[dbo].[MES_QA_ITEMS_DETECT_01] qc on qc14.[qcGuid] = qc.guid");
sb.Append(" left join WOMDAA daa on daa.guid = qc.about_Guid");
sb.Append(" left join MES_WORKSHOP_LINE line on line.id = daa.daa015");
sb.Append(" left join MES_UNIT dw on dw.id = daa.daa005");
sb.Append(" where qc14.qcGuid ='" + parentGuid + "' and qc.guid = '" + parentGuid + "'");
try
{
DataSet dset = new DataSet();
dset = DbHelperSQL.Query(sb.ToString());
var _tb = dset.Tables[0].TableToDynamicList();
m.list = _tb;
}
catch (Exception ex)
{
LogHelper.Debug(ToString(), "GetModel14 error:" + ex.Message);
}
if (m != null)
return ReturnDto.QuickReturn(m, ReturnCode.Success,
"读取成功!");
return ReturnDto.QuickReturn(m, ReturnCode.Default,
"读取失败!");
}
///
///
///
///
///
[RequestMethod(RequestMethods.POST)]
public ReturnDto EdtModel14([FromBody] dynamic model)
{
string pGuid = model.pGuid; //这是检验单guid
string itemBarCode = model.itemBarCode;
var _outMsg = "";
int? _outSum = -1;
dynamic m = new ExpandoObject();
using (var conn = new SqlConnection(DbHelperSQL.strConn))
{
using (var cmd = new SqlCommand("[fqc_14edit]", conn))
{
try
{
conn.Open();
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter[] parameters =
{
new("@outMsg", SqlDbType.NVarChar, 300),
new("@outSum", SqlDbType.Int),
new("@inEdtUserGuid", _userGuid),
new("@inOrderGuid1", pGuid),
new("@inP1", itemBarCode),
};
parameters[0].Direction = ParameterDirection.Output;
parameters[1].Direction = ParameterDirection.Output;
foreach (var parameter in parameters)
cmd.Parameters.Add(parameter);
cmd.ExecuteNonQuery();
_outMsg = parameters[0].Value.ToString();
_outSum = int.Parse(parameters[1].Value.ToString());
}
catch (Exception ex)
{
LogHelper.Debug(ToString(),
"fqc_14edit error:" + ex.Message);
_outMsg = ex.Message;
_outSum = -1;
}
finally
{
conn.Close();
}
}
}
if (_outSum <= 0)
{
return ReturnDto.QuickReturn(m, ReturnCode.Default, "操作失败:"+ _outMsg);
}
dynamic dy = new { parentGuid = pGuid };
return GetModel14(dy);
}
#region 提交检验
///
/// 提交检验
///
///
///
[RequestMethod(RequestMethods.POST)]
public ReturnDto EditModelSubmit([FromBody] dynamic mode)
{
string _guid = mode.guid;
dynamic m = new ExpandoObject();
m.outSum = -1;
m.outMsg = "";
using (var conn = new SqlConnection(DbHelperSQL.strConn))
{
using (var cmd = new SqlCommand("fqc_submit", conn))
{
try
{
conn.Open();
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter[] parameters =
{
new("@outMsg", SqlDbType.NVarChar, 300),
new("@outSum", SqlDbType.Int),
new("@inEdtUserGuid", _userGuid),
new("@inOrderGuid", _guid),
new("@inFieldValue", 1),
new("@in1", ""),
new("@in2", "")
};
parameters[0].Direction = ParameterDirection.Output;
parameters[1].Direction = ParameterDirection.Output;
foreach (var parameter in parameters)
cmd.Parameters.Add(parameter);
cmd.ExecuteNonQuery();
m.outMsg = parameters[0].Value.ToString();
m.outSum = int.Parse(parameters[1].Value.ToString());
}
catch (Exception ex)
{
m.outMsg = ex.Message;
LogHelper.Debug(this.ToString(), "fqc_submit error:" + ex.Message);
return ReturnDto.QuickReturn(m, ReturnCode.Default, ex.Message);
}
finally
{
conn.Close();
}
}
}
return ReturnDto.QuickReturn(m, ReturnCode.Success, "操作成功!");
}
#endregion
}
}