using Newtonsoft.Json.Linq; using Pub_Class; using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Web.Http; using WebAPI.Models; namespace WebAPI.Controllers { //组托单Controller public class Sc_GroupOrderBillController : ApiController { public DBUtility.ClsPub.Enum_BillStatus BillStatus; private json objJsonResult = new json(); SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); DataSet ds; string HBillType = "2601"; /// /// 扫装箱码方法 /// /// 组托单ID /// 组托单No /// 组托单类型 /// 组托单制单人 /// 装箱单条码 /// object [Route("GroupOrderBill/GetPackBarCode")] [HttpGet] public object GetPackBarCode(int HInterID,string HBillNo,string HBillTyp,string HMaker, string HBarCode_Pack) { try { if (HBarCode_Pack == null || HBarCode_Pack.Equals("")) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "请输入装箱码!"; objJsonResult.data = null; return objJsonResult; } else { //判断是否已扫码,并存入缓存表(若未扫码) ds = oCN.RunProcReturn("exec h_p_PackToTemp " + HInterID + ",'" + HBillNo + "','" + HBillTyp + "','" + HMaker + "','" + HBarCode_Pack + "'", "h_p_PackToTemp"); if (ClsPub.isInt(ds.Tables[0].Rows[0][0]) == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = ds.Tables[0].Rows[0][1].ToString();//该装箱单已扫码! objJsonResult.data = null; return objJsonResult; } //else //{ // //返回装箱单数据(已合并到存储过程‘h_p_PackToTemp’中) // ds = oCN.RunProcReturn("exec h_p_GroupOrderBill_GetPackBarCode '" + HBarCode_Pack + "'", "h_p_GroupOrderBill_GetPackBarCode"); //} } if (ds == null || ds.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "false!无数据,请确认装箱码是否存在!"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "Sucess!"; objJsonResult.data = ds.Tables[0]; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } /// /// 新增单据-保存按钮 /// /// 组托单实例对象 /// object [Route("GroupOrderBill/AddBill")] [HttpPost] public object AddBill([FromBody] JObject oMain) { var _value = oMain["oMain"].ToString(); string msg1 = _value.ToString(); try { //组托单反序列化 msg1 = "[" + msg1.ToString() + "]"; List list = Newtonsoft.Json.JsonConvert.DeserializeObject>(msg1); //获取年月日并拼接成字符串 string year = DateTime.Now.Year.ToString(); string month = DateTime.Now.Month.ToString(); string day = DateTime.Now.Day.ToString(); string nowDate = year + month + day; string HBillType = this.HBillType;//组托单类型 long HInterID = list[0].HInterID;//递入type得到的单据ID string HBillNo = list[0].HBillNo;//递入type得到的单据No string HMaker = list[0].HMaker;//制单人 string HBatchNo = list[0].HBatchNo;//入库批次 string HBarCode_Cus = list[0].HBarCode_Cus;//客户标签(黑标号) //生成唯一条码 ds = oCN.RunProcReturn("exec h_p_WMS_GetMaxNo '" + nowDate + "'", "h_p_WMS_GetMaxNo"); //获取最大流水号 oCN.RunProc("exec h_p_WMS_SetMaxNo '" + nowDate + "'"); string LSH = ClsPub.isStrNull(ds.Tables[0].Rows[0][0]); string HBarCode_Pack = nowDate + LSH; oCN.BeginTran(); //插入主表 oCN.RunProc( "insert into Sc_PackUnionBillMain " + "(" + "HYear, HBillType, HInterID, HBillNo, HMaker" + ", HMakeDate, HPeriod, HDate, HRemark, HICMOInterID" + ", HICMOBillNo, HBarCode_Pack, HMaterID, HUnitID,HBatchNo,HBarCode_Cus" + ")" + "values" + "(" + "'"+ year + "', '" + HBillType + "'," + HInterID + ", '" + HBillNo + "', '" + HMaker + "'" + ",GETDATE(),0,GETDATE(),' ',0" + ",' ','"+ HBarCode_Pack + "',0,0,'" + HBatchNo +"','" + HBarCode_Cus + "')" ); //插入子表 oCN.RunProc("exec h_p_SaveGroupOrder " + HInterID + ""); //根据子表汇总生成Sc_PackUnionBillSub_Sum表记录 oCN.RunProc("exec h_p_Sc_PackUnionBill_SumSubBill " + HInterID + ",'','',''"); //插入条码档案表 oCN.RunProc("exec h_p_SaveGroupOrderCodeToGy_BarCodeBill " + HInterID + ""); 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 = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } /// /// 返回列表 /// /// 拼接的SQL /// object [Route("GroupOrderBill/List")] [HttpGet] public object List(string sWhere) { DataSet ds; try { SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); if (sWhere == null || sWhere.Equals("")) { ds = oCN.RunProcReturn("select * from h_v_GroupOrderBillList order by 制单时间 desc", "h_v_GroupOrderBillList"); } else { string sql1 = "select * from h_v_GroupOrderBillList where 1 = 1 "; string sql = sql1 + sWhere; string sql2 = " order by 制单时间 desc"; sql += sql2; ds = oCN.RunProcReturn(sql, "h_v_GroupOrderBillList"); } if (ds == null || ds.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无数据!"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "Sucess!"; objJsonResult.data = ds.Tables[0]; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } /// /// 返回缓存列表 /// /// 拼接的SQL /// object [Route("GroupOrderBill/CacheList")] [HttpGet] public object CacheList(string sWhere) { DataSet ds; try { SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); if (sWhere == null || sWhere.Equals("")) { ds = oCN.RunProcReturn("select top 5000 * from h_v_GroupOrderBillCacheList order by 扫码时间 desc", "h_v_GroupOrderBillCacheList"); } else { string sql1 = "select * from h_v_GroupOrderBillCacheList where 1 = 1 "; string sql = sql1 + sWhere; string sql2 = " order by 扫码时间 desc"; sql += sql2; ds = oCN.RunProcReturn(sql, "h_v_GroupOrderBillCacheList"); } if (ds == null || ds.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无数据!"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "Sucess!"; objJsonResult.data = ds.Tables[0]; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } /// /// 根据ID删除缓存表中扫码记录 /// /// 缓存表ID /// object [Route("GroupOrderBill/DelCacheList")] [HttpGet] public object DelCacheList(long sHitemID) { try { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); oCn.RunProc("Delete from KF_PonderationBillMain_Temp where HitemID = " + sHitemID); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "删除成功!"; objJsonResult.data = null; return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "删除失败!"; objJsonResult.data = e.ToString(); return objJsonResult; } } /// /// 根据唯一条码删除缓存表中扫码记录 /// /// 唯一条码 /// object [Route("GroupOrderBill/DelCacheListByBarCode")] [HttpGet] public object DelCacheListByBarCode(string BarCode) { try { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); oCn.RunProc("Delete from KF_PonderationBillMain_Temp where HBarCode = '" + BarCode + "' and HBillType = '2601'"); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "删除成功!"; objJsonResult.data = null; return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "删除失败!"; objJsonResult.data = e.ToString(); return objJsonResult; } } /// /// 根据组托单主ID和子ID删除列表中行记录 /// /// 组托单主ID /// 组托单子ID /// object [Route("GroupOrderBill/DelListRow")] [HttpGet] public object DelListRow(long HInterID,long HEntryID) { try { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); oCN.BeginTran(); oCn.RunProc("Delete from Sc_PackUnionBillMain where HInterID = " + HInterID); oCn.RunProc("Delete from Sc_PackUnionBillSub where HInterID = " + HInterID + " and HEntryID = " + HEntryID); //重新刷新更新 汇总子表 的记录和条码档案 oCn.RunProc("Delete from Sc_PackUnionBillSub_Sum where HInterID = " + HInterID); oCn.RunProc("Delete from Gy_BarCodeBill where HInterID = " + HInterID + " and HSourceBillType = '3772'"); //根据子表汇总生成Sc_PackUnionBillSub_Sum表记录 oCN.RunProc("exec h_p_Sc_PackUnionBill_SumSubBill " + HInterID + ",'','',''"); 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 = "删除失败!"; objJsonResult.data = e.ToString(); return objJsonResult; } } /// /// 根据组托单主ID和子ID修改列表中行记录的黑标号 /// /// 组托单主ID /// 黑标号 /// object [Route("GroupOrderBill/editListRowHBarCode_Cus")] [HttpGet] public object editListRowHBarCode_Cus(long HInterID,string HBarCode_Cus) { try { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); oCn.RunProc("update Sc_PackUnionBillMain set HBarCode_Cus = '" + HBarCode_Cus + "' where HInterID = " + HInterID); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "修改成功!"; objJsonResult.data = null; return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "修改失败!"; objJsonResult.data = e.ToString(); return objJsonResult; } } // } }