using DBUtility; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Net; using System.Net.Http; using System.Web.Http; using WebAPI.Models; namespace WebAPI.Controllers { public class Sc_PckSplitBillController : ApiController { private JsonResult objJsonResult = new JsonResult(); public DataSet ds = new DataSet(); public double sRelQty = 0; SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); public WebServer webserver = new WebServer(); /// /// 拆箱单扫描托条码/直接调用webservice /// /// [Route("PackSplitBill/SetPackBarCode_Webs")] [HttpGet] public Object SetPackBarCode_Webs(Int64 sInterID, string sBillNo, string sBillType, string HTBarCode, string sMaker,Int64 HOWNERID) { try { WebS.WebService1 oWebs = new WebS.WebService1(); WebS.ClsKf_ICStockBill_WMS WebSoBar = new WebS.ClsKf_ICStockBill_WMS(); //string sExpressNumber = ""; WebSoBar = oWebs.get_CheckTypeByPackBarCode_Pack(sInterID, sBillNo, sBillType,HTBarCode,sMaker,HOWNERID,ref DBUtility.ClsPub.sErrInfo); if (WebSoBar == null) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = DBUtility.ClsPub.sErrInfo; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = DBUtility.ClsPub.sErrInfo; objJsonResult.data = WebSoBar; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = e.Message + ";" + e.StackTrace; objJsonResult.data = null; return objJsonResult; } } /// /// 装箱单扫描托条码/直接调用webservice /// /// [Route("PackUnionBill/SetPackBarCode_Webs1")] [HttpGet] public Object SetPackBarCode_Webs1(Int64 sInterID, string sBillNo, string sBillType, string HTBarCode, string sMaker, Int64 HOWNERID) { try { WebS.WebService1 oWebs = new WebS.WebService1(); WebS.ClsKf_ICStockBill_WMS WebSoBar = new WebS.ClsKf_ICStockBill_WMS(); //string sExpressNumber = ""; WebSoBar = oWebs.get_CheckTypeByPackBarCode_Pack(sInterID, sBillNo, sBillType, HTBarCode, sMaker, HOWNERID, ref DBUtility.ClsPub.sErrInfo); if (WebSoBar == null) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = DBUtility.ClsPub.sErrInfo; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = DBUtility.ClsPub.sErrInfo; objJsonResult.data = WebSoBar; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = e.Message + ";" + e.StackTrace; objJsonResult.data = null; return objJsonResult; } } [Route("PackSplitBill/GetBillEntry_TmpList_Pack")] [HttpGet] public object GetBillEntry_TmpList_Pack(Int64 HBillID, string HBillNo, string HBillType) { try { WebS.WebService1 oWebs = new WebS.WebService1(); ds = oWebs.GetBillEntry_TmpList_Pack(HBillID, HBillNo, HBillType, ref DBUtility.ClsPub.sErrInfo); if (ds == null || ds.Tables[0].Rows.Count <= 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "没有返回任何记录!"; objJsonResult.data = null; return objJsonResult; //DBUtility.ClsPub.MessageBeep((int)DBUtility.ClsPub.BeepType.Warning); } else { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "获取信息成功!"; objJsonResult.data = ds.Tables[0]; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "没有返回任何记录!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } [Route("PackUnionBill/GetBillEntry_TmpList_Pack1")] [HttpGet] public object GetBillEntry_TmpList_Pack1(Int64 HBillID, string HBillNo, string HBillType) { try { WebS.WebService1 oWebs = new WebS.WebService1(); ds = oWebs.GetBillEntry_TmpList_Pack(HBillID, HBillNo, HBillType, ref DBUtility.ClsPub.sErrInfo); if (ds == null || ds.Tables[0].Rows.Count <= 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "没有返回任何记录!"; objJsonResult.data = null; return objJsonResult; //DBUtility.ClsPub.MessageBeep((int)DBUtility.ClsPub.BeepType.Warning); } else { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "获取信息成功!"; objJsonResult.data = ds.Tables[0]; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "没有返回任何记录!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } /// /// 拆箱单扫描拆箱条码/直接调用webservice /// /// [Route("PackSplit/get_CheckTypeByBarCode_Json")] [HttpGet] public Object get_CheckTypeByBarCode_Json(string HBarCode,Int64 sInterID, string HBillType, string sBillNo, string HTBarCode, string sMaker, Int64 HOWNERID) { try { WebS.WebService1 oWebs = new WebS.WebService1(); if (oWebs.get_CheckTypeByBarCode_PackSplit(HBarCode, sInterID, HBillType, sBillNo, HTBarCode, sMaker, HOWNERID, ref DBUtility.ClsPub.sErrInfo)) { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "扫码成功!"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = DBUtility.ClsPub.sErrInfo; objJsonResult.data = null; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = e.Message + ";" + e.StackTrace; objJsonResult.data = null; return objJsonResult; } } /// /// 拆箱单扫描拆箱条码/直接调用webservice /// /// [Route("PackUnionBill/get_CheckTypeByBarCode_Json1")] [HttpGet] public Object get_CheckTypeByBarCode_Json1(string HBarCode, Int64 sInterID, string HBillType, string sBillNo, string HTBarCode, string sMaker, Int64 HOWNERID) { try { WebS.WebService1 oWebs = new WebS.WebService1(); if (oWebs.get_CheckTypeByBarCode_PackUnion(HBarCode, sInterID, HBillType, sBillNo, HTBarCode, sMaker, HOWNERID, ref DBUtility.ClsPub.sErrInfo)) { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "扫码成功!"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = DBUtility.ClsPub.sErrInfo; objJsonResult.data = null; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = e.Message + ";" + e.StackTrace; objJsonResult.data = null; return objJsonResult; } } [Route("PackSplit/Delete")] [HttpGet] public object Delete(long HInterID, string HBarCode,string HBillType) { string sErrMsg = string.Empty; try { if (DeletePackSplitBill(HInterID, HBarCode, HBillType, ref sErrMsg)) { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "删除成功!"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "删除失败!"; objJsonResult.data = null; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "删除失败!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } public bool DeletePackSplitBill(long HInterID, string HBarCode, string HBillType, ref string sErrMsg) { WebS.WebService1 oWebs = new WebS.WebService1(); if (oWebs.set_DelPonderationBillMain_Temp_Pack(HInterID, HBarCode, HBillType, ref DBUtility.ClsPub.sErrInfo)) { sErrMsg = "删除成功!"; return true; } else { sErrMsg = "删除失败!"; return false; } } /// /// 生成拆箱单 /// /// [Route("PackSplit/set_SavePackSplitBill_Json")] [HttpGet] public Object set_SavePackSplitBill_Json(long sInterID, string HBillType, string sBillNo,string HTBarCode,string sMaker,long HOWNERID) { try { if (set_SavePackSplitBill_New(sInterID, HBillType, sBillNo, HTBarCode, sMaker, HOWNERID, ref DBUtility.ClsPub.sErrInfo)) { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "生成成功!单据号为:"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "上传失败!" + DBUtility.ClsPub.sErrInfo; objJsonResult.data = null; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "上传失败!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } public bool set_SavePackSplitBill_New(long sInterID, string HBillType, string sBillNo, string HTBarCode, string sMaker, long HOWNERID, ref string sErrMsg) { WebS.WebService1 oWebs = new WebS.WebService1(); if (oWebs.set_SavePackSplitBill_New(sInterID, HBillType, sBillNo, HTBarCode, sMaker, HOWNERID, ref sErrMsg)) { sErrMsg = "保存成功!" + sBillNo; return true; } else { sErrMsg = "单据号:" + sBillNo + ", 单据ID:" + sInterID + ";" + sErrMsg; return false; } } #region 生产领料拆码列表 [Route("Sc_PckSplit/Get_PPickingBillList")] [HttpGet] public Object Get_PPickingBillList(string sWhere) { try { string sql1 = string.Format(@"select * from h_v_Kf_ICStockBillList where HBillType='1204' " + sWhere); DataSet ds=oCn.RunProcReturn(sql1, "h_v_Kf_ICStockBillList"); if (ds.Tables[0].Rows.Count == 0 || ds == null) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "暂无数据" + DBUtility.ClsPub.sErrInfo; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "查询成功"; objJsonResult.data = ds.Tables[0]; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "上传失败!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 产线关键件绑定 /// /// SN号查询 /// /// SN号 /// [Route("Sc_PckSplit/Get_PHPCruxSNBillList")] [HttpGet] public Object Get_PHPCruxSNBillList(int HinterID, string HBarCode,int HProcID,string HBillNo) { try { string sql1 = string.Format($"exec h_p_Sc_PHPCruxSNBillTOTemp '"+HBarCode+"',"+HinterID+","+HProcID+",'"+ HBillNo+"'"); DataSet ds = oCn.RunProcReturn(sql1, "h_p_Sc_PHPCruxSNBillTOTemp"); if (ds.Tables[0].Rows.Count == 0 || ds == null) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "暂无数据!"; objJsonResult.data = null; return objJsonResult; } else if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0]["sel"]) ==0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "暂无数据!"; objJsonResult.data = null; return objJsonResult; } else{ //先存进临时表再返回数据 objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "查询成功"; objJsonResult.data = ds.Tables[0]; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "上传失败!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } /// /// 关键码查询 /// /// 关键码 /// [Route("Sc_PckSplit/Get_PHPCruxBillList")] [HttpGet] public Object Get_PHPCruxBillList(int HinterID,string HPCrux,string HBillNo) { try { string sql1 = string.Format($"exec h_p_Sc_PHPCruxBillTOTemp '" +HPCrux+"',"+ HinterID+",'"+ HBillNo+"'"); DataSet ds = oCn.RunProcReturn(sql1, "h_p_Sc_PHPCruxBillTOTemp"); if (ds.Tables[0].Rows.Count == 0 || ds == null) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "未查询到条形码信息!" + DBUtility.ClsPub.sErrInfo; objJsonResult.data = null; return objJsonResult; } else if (ds.Tables[0].Rows[0]["HBack"].ToString() == "2") { objJsonResult.code = "2"; objJsonResult.count = 2; objJsonResult.Message = "错误!" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0][1]); objJsonResult.data = null; return objJsonResult; } else { //先存进临时表再返回数据 objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "查询成功"; objJsonResult.data = ds.Tables[0]; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "上传失败!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } /// /// 扫码缓存删除 /// /// 关键码 /// [Route("Sc_PckSplit/Delete_PHPCruxBillListByME")] [HttpGet] public Object Delete_PHPCruxBillListByME(int HInterID,int HMaterID,string HBarCode) { try { oCn.BeginTran(); string sql = string.Format(@"delete Sc_AssemblyBill_BindBarCodeTemp where HInterID="+ HInterID+" and HMaterID="+ HMaterID+ " and HBarCode='" + HBarCode+"'"); oCn.RunProc(sql); //删除成功 string sql1= string.Format(@"select a.HEntryID,a.HMaterID,m.HName HMaterName,m.HModel HMaterSpec,1 HQty,HBarCode HPJM from Sc_AssemblyBill_BindBarCodeTemp a left join Gy_Material m on a.HMaterID=m.HItemID where HInterID=" + HInterID); DataSet ds=oCn.RunProcReturn(sql1, "Sc_AssemblyBill_BindBarCodeTemp"); oCn.Commit(); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = ds.Tables[0]; return objJsonResult; } catch (Exception e) { oCn.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "上传失败!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } /// /// 组装单提交 /// /// 关键码 /// [Route("Sc_PckSplit/Add_PHPCruxBillList")] [HttpPost] public Object Add_PHPCruxBillList([FromBody] JObject msg) { var _value = msg["msg"].ToString(); string msg1 = _value.ToString(); string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); string msg2 = sArray[0].ToString();//基本资料 string msg3 = sArray[1].ToString();//配件列表 string msg4 = sArray[2].ToString();//条码列表 string msg5 = sArray[3].ToString();//登录人 ListModels oListModels = new ListModels(); long HinterID; string HBillNo = ""; try { DLL.ClsSc_PHPCruxBillBill oBill = new DLL.ClsSc_PHPCruxBillBill(); List lsmain = new List();//基本资料 List lspjItme = new List();//配件列表 List lstmItme = new List();//扫码列表 //基本资料_json格式转换 msg2 = msg2.Replace("\\", ""); msg2 = msg2.Replace("\n", ""); lsmain = oListModels.getObjectByJson_Sc_AssemblyBillMain(msg2); HinterID = lsmain[0].HInterID;//主ID HBillNo = lsmain[0].HBillNo;//单据号 //事务开始 oCn.BeginTran(); //根据interID在源单临时表中查找数据 DataSet ds1 = oCn.RunProcReturn("select top 1 * from Sc_AssemblyBill_BindSourceTemp where HInterID=" + HinterID, "Sc_AssemblyBill_BindSourceTemp"); //保存生产组装单主表 string sql = "Insert Into Sc_AssemblyBillMain " + "(HYear,HPeriod,HBillType,HBillSubType,HInterID,HDate," + "HBillNo,HBillStatus,HMaker,HMakeDate" + ",HMainSourceInterID,HMainSourceBillNo" + ",HICMOInterID,HICMOBillNo,HBarCode_P,HMaterID,HUnitID,HAssemblyStatus" + ") " + " values('" + DateTime.Now.Year + "','" + DateTime.Now.Month + "',3727,3727," + HinterID + ",'" + DateTime.Now+ "','" + HBillNo + "',1,'"+msg5+"',getdate()" + ",0,'" + lsmain[0].HBarCode + "'" + "," + ds1.Tables[0].Rows[0]["HSourceInterID"].ToString() + ",'" + ds1.Tables[0].Rows[0]["HSourceBillNo"].ToString() + "','" + lsmain[0].HBarCode + "',0,0,'生产中'" + ") "; oCn.RunProc(sql); //根据interID在扫码临时表中查找数据 DataSet ds2 = oCn.RunProcReturn("select * from Sc_AssemblyBill_BindBarCodeTemp where HInterID=" + HinterID, "Sc_AssemblyBill_BindBarCodeTemp"); for (int i = 0; i < ds2.Tables[0].Rows.Count; i++) { string sq2 = "Insert Into Sc_AssemblyBillSub " + "(HInterID,HBillNo_bak,HEntryID," + "HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType" + ",HMaterID,HSourceID,HEquipID,HUnitID,HQty,HGroupID,HWorkerID,HScanDate,HBarCode,HBarCode_P,HSNNumber" + ") " + " values(" + HinterID + ",'" + HBillNo + "'," + i + "," + ds2.Tables[0].Rows[i]["HSourceInterID"].ToString() + "," + ds2.Tables[0].Rows[i]["HSourceEntryID"].ToString() + ",'" + ds2.Tables[0].Rows[i]["HSourceBillNo"].ToString() + "'" + ",''," + ds2.Tables[0].Rows[i]["HMaterID"].ToString() + ",'"+ lsmain[0].HSCZYID + "',0,0,1," + lsmain[0].HGroupID + "," + lsmain[0].HKeeperID + ",getdate(),'" + ds2.Tables[0].Rows[i]["HBarCode"].ToString() + "','" + ds2.Tables[0].Rows[i]["HBarCode"].ToString() + "','" + lsmain[0].HBarCode + "'" + ") "; oCn.RunProc(sq2); } oCn.Commit(); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message ="提交成功"; objJsonResult.data =null; return objJsonResult; } catch (Exception e) { oCn.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "上传失败!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion } }