| | |
| | | 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 |
| | |
| | | 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 (data0.Rows.Count > 0) |
| | | if (data.Rows.Count > 0) |
| | | { |
| | | mes.code = "300"; |
| | | mes.count = 0; |
| | |
| | | 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"; |
| | | 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 |
| | | 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());//存货类型编码 |
| | |
| | | else |
| | | { |
| | | mes.code = "300"; |
| | | mes.Message = "此标签条码不存在!"; |
| | | mes.Message = "此标签条码不存在或失效!"; |
| | | mes.data = null; |
| | | } |
| | | } |
| | |
| | | mes.Message = "查询成功!"; |
| | | mes.data = data; |
| | | } |
| | | else |
| | | else |
| | | { |
| | | mes.code = "300"; |
| | | mes.count = 0; |
| | |
| | | } |
| | | |
| | | #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<object> list = new List<object>(); |
| | | List<ObjectData> obj = new List<ObjectData>(); |
| | | 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 <obj.Count; i++) |
| | | { |
| | | //写入检验记录主表 |
| | | sql = @"insert into TStepCheckRecord(hbarcode,wo_code,partcode,checkstaned_code,customer_code,check_user,check_type,check_typename,sampmethod,check_result,check_qty,good_qty,ng_qty,lm_user,lm_date) |
| | | values(@hbarcode,@wo_code,@partcode,@checkstaned_code,@customer_code,@check_user,@check_type,@check_typename,@sampmethod,@check_result,@check_qty,@good_qty,@ng_qty,@lm_user,@lm_date)"; |
| | | list.Add(new |
| | | { |
| | | str = sql, |
| | | parm = new |
| | | { |
| | | hbarcode = obj[i].code, |
| | | wo_code = hbillno, |
| | | partcode = partcode, |
| | | checkstaned_code = checkstandcode, |
| | | customer_code=customercode, |
| | | check_user = username, |
| | | check_type = check_type, |
| | | check_typename = "入厂检验", |
| | | sampmethod = sampmethod, |
| | | check_result = qualitystatus, |
| | | check_qty = decimal.Parse(sampleqty), |
| | | good_qty = decimal.Parse(goodqty), |
| | | ng_qty = decimal.Parse(ngqty), |
| | | lm_user = username, |
| | | lm_date = datetime |
| | | } |
| | | }); |
| | | //获取主表最大ID |
| | | sql = @"select ISNULL(IDENT_CURRENT('TStepCheckRecord')+@num,1) as id"; |
| | | dynamicParams.Add("@num", i+1); |
| | | var dt = DapperHelper.selectdata(sql, dynamicParams); |
| | | //写入检验记录子表 |
| | | for (int j = 0; j < arra.Count; j++) |
| | | { |
| | | sql = @"insert into TStepCheckRecordSub(m_id,checknum,checkitem_seq,checkitem_code,checkitem_name,checkitem_descr,check_value,check_result,lm_user,lm_date) |
| | | values(@m_id,@checknum,@checkiem_seq,@checkitem_code,@checkitem_name,@checkitem_descr,@check_value,@check_result,@lm_user,@lm_date)"; |
| | | list.Add(new |
| | | { |
| | | str = sql, |
| | | parm = new |
| | | { |
| | | m_id = int.Parse(dt.Rows[0]["ID"].ToString()), |
| | | checknum = arra[j]["checknum"].ToString(), |
| | | checkiem_seq = arra[j]["checkiem_seq"].ToString(), |
| | | checkitem_code = arra[j]["checkitem_code"].ToString(), |
| | | checkitem_name = arra[j]["checkitem_name"].ToString(), |
| | | checkitem_descr = arra[j]["checkitem_descr"].ToString(), |
| | | check_value = arra[j]["check_value"].ToString(), |
| | | check_result = arra[j]["check_result"].ToString(), |
| | | lm_user = username, |
| | | lm_date = datetime |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | //回写条码档案表标签质检状态 |
| | | sql = @"update T_BarCodeBill set qualitystatus=@qualitystatus where rightcode=@rightcode and hbillno=@hbillno and hbilltype=@hbilltype |
| | | and hbarcodetype=@hbarcodetype and hmaterialcode=@hmaterialcode and hbatchno=@hbatchno and hbarcodestatus=@hbarcodestatus"; |
| | | list.Add(new |
| | | { |
| | | str = sql, |
| | | parm = new |
| | | { |
| | | qualitystatus= qualitystatus, |
| | | rightcode = "2060", |
| | | hbillno = hbillno, |
| | | hbilltype = "1103", |
| | | hbarcodetype = "P", |
| | | hmaterialcode = partcode, |
| | | hbatchno = batchno, |
| | | hbarcodestatus = "Y" |
| | | } |
| | | }); |
| | | |
| | | bool aa = DapperHelper.DoTransaction(list); |
| | | if (aa) |
| | | { |
| | | mes.code = "200"; |
| | | mes.count = 0; |
| | | mes.Message = "操作成功!"; |
| | | mes.data = null; |
| | | } |
| | | 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 |
| | | } |
| | | } |