using Dapper; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; using System.Web; using VueWebApi.Models; using VueWebApi.Tools; namespace VueWebApi.DLL.DAL { public class AppQualityManagementDAL { public static DataTable dt; //定义全局变量dt public static bool res; //定义全局变量dt public static ToMessage mes = new ToMessage(); //定义全局返回信息对象 public static string strProcName = ""; //定义全局sql变量 public static List listStr = new List(); //定义全局参数集合 public static SqlParameter[] parameters; //定义全局SqlParameter参数数组 #region[入厂检验,扫描采购到货生成标签] public static ToMessage InFactoryCheckScanLabCode(string labcode) { string sql = ""; var dynamicParams = new DynamicParameters(); Dictionary list = new Dictionary(); try { //判断条码是否有效(采购到货功能编码:2060) sql = @"select * from T_BarCodeBill where hbarcode=@labcode and rightcode=@rightcode and hbarcodestatus='Y'"; dynamicParams.Add("@labcode", labcode); dynamicParams.Add("@rightcode", "2060"); var data0 = DapperHelper.selectdata(sql, dynamicParams); if (data0.Rows.Count <= 0) { mes.code = "300"; mes.count = 0; mes.Message = "不是有效的标签条码!"; mes.data = null; return mes; } //判断条码是否需要检验 sql = @"select * from TMateriel_Info where partcode=@partcode and is_incheck='N'"; dynamicParams.Add("@partcode", data0.Rows[0]["hmaterialcode"].ToString()); var data_0 = DapperHelper.selectdata(sql, dynamicParams); if (data_0.Rows.Count > 0) { mes.code = "300"; mes.count = 0; mes.Message = "此标签条码免检!"; mes.data = null; return mes; } //判断条码是否检验 sql = @"select * from TStepCheckRecord where hbarcode=@labcode and check_type='InCheck'"; dynamicParams.Add("@labcode", labcode); var data = DapperHelper.selectdata(sql, dynamicParams); if (data.Rows.Count > 0) { mes.code = "300"; mes.count = 0; mes.Message = "此标签条码已检验!"; mes.data = null; return mes; } //获取标签信息 sql = @"select A.hbillno,A.hmaterialcode as partcode,M.partname,M.partspec,A.hbarcode,M.stocktype_code,A.hqty, A.hcustomercode,C.name as hcustomername,A.hbatchno,A.qualitystatus from T_BarCodeBill A left join TMateriel_Info M on A.hmaterialcode=M.partcode left join TCustomer C on A.hcustomercode=C.code where A.hbarcode=@labcode and A.hbarcodestatus='Y'"; dynamicParams.Add("@labcode", labcode); var data1 = DapperHelper.selectdata(sql, dynamicParams); if (data1.Rows.Count > 0) { //获取绑定的入厂质检方案、抽样方式、样本数 sql = @"select code as checkstandcode,name as checkstandname,sampmethod,sampscare from TStepCheckStandard where (PATINDEX('%,' + RTRIM(@partcode) + ',%',',' + suitpart + ',')>0 or PATINDEX('%,' + RTRIM(@stocktype_code) + ',%',',' + suitpart + ',')>0) and checktype='InCheck'"; dynamicParams.Add("@partcode", data1.Rows[0]["partcode"].ToString());//物料编码 dynamicParams.Add("@stocktype_code", data1.Rows[0]["stocktype_code"].ToString());//存货类型编码 var data2 = DapperHelper.selectdata(sql, dynamicParams); list.Add("labcont", data1); list.Add("chekstand", data2); mes.code = "200"; mes.count = 0; mes.Message = "查询成功!"; mes.data = list; } else { mes.code = "300"; mes.Message = "此标签条码不存在或失效!"; mes.data = null; } } catch (Exception e) { mes.code = "300"; mes.count = 0; mes.Message = e.Message; mes.data = null; } return mes; } #endregion #region[入厂检验,根据选择的检验方案查找检验项目] public static ToMessage InFactoryCheckItem(string checkstandcode) { string sql = ""; var dynamicParams = new DynamicParameters(); try { //质检方案编码获取检验项 sql = @"select A.stepcheckitem_seq, B.code,B.name,A.required,A.numberjudge,A.unit,A.decimalnum, A.standvalue,A.uppervalue,A.lowervalue,A.stepcheckitem_desc from TStepCheckStandardSub A left join TStepCheckItem B on A.stepcheckitem_code=B.code where A.stepstaned_code=@checkstandcode order by A.stepcheckitem_seq"; dynamicParams.Add("@checkstandcode", checkstandcode);//质检方案编码 var data = DapperHelper.selectdata(sql, dynamicParams); if (data.Rows.Count > 0) { mes.code = "200"; mes.count = 0; mes.Message = "查询成功!"; mes.data = data; } else { mes.code = "300"; mes.count = 0; mes.Message = "当前质检方案无检验项!"; mes.data = null; } } catch (Exception e) { mes.code = "300"; mes.count = 0; mes.Message = e.Message; mes.data = null; } return mes; } #endregion #region[入厂检验,提交] public static ToMessage InFactoryCheckSave(string hbillno, string labcode, string checkstandcode, string check_type, string sampmethod, string partcode, string customercode, string batchno, string qualitystatus, string labqty, string sampleqty, string goodqty, string ngqty, string issyncbatch, string checkitemcont, string username) { var sql = ""; List list = new List(); List obj = new List(); var dynamicParams = new DynamicParameters(); try { string datetime = DateTime.Now.ToString(); //获取系统时间 //获取检验项目信息 JArray arra = (JArray)Newtonsoft.Json.JsonConvert.DeserializeObject(checkitemcont); list.Clear(); if (issyncbatch == "Y") //同步相同批次 { //查找相同批次条码(功能编码、单据号、单据类型、条码类型、物料编码、批次号、条码状态) sql = @"select hbarcode,hqty from T_BarCodeBill where rightcode=@rightcode and hbillno=@hbillno and hbilltype=@hbilltype and hbarcodetype=@hbarcodetype and hmaterialcode=@hmaterialcode and hbatchno=@hbatchno and hbarcodestatus=@hbarcodestatus"; dynamicParams.Add("@rightcode", "2060"); dynamicParams.Add("@hbillno", hbillno); dynamicParams.Add("@hbilltype", "1103"); dynamicParams.Add("@hbarcodetype", "P"); dynamicParams.Add("@hmaterialcode", partcode); dynamicParams.Add("@hbatchno", batchno); dynamicParams.Add("@hbarcodestatus", "Y"); var data = DapperHelper.selectdata(sql, dynamicParams); if (data.Rows.Count > 0) { for (int i = 0; i < data.Rows.Count; i++) { ObjectData tbj = new ObjectData(); tbj.code = data.Rows[i]["hbarcode"].ToString(); tbj.name = data.Rows[i]["hqty"].ToString(); obj.Add(tbj); } } else { ObjectData tbj = new ObjectData(); tbj.code = labcode; tbj.name = labqty; obj.Add(tbj); } } else { ObjectData tbj = new ObjectData(); tbj.code = labcode; tbj.name = labqty; obj.Add(tbj); } //循环标签个数 for (int i = 0; i