| 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"; | 
|   | 
|         /// <summary> | 
|         /// 扫装箱码方法 | 
|         /// </summary> | 
|         /// <param name="HInterID">组托单ID</param> | 
|         /// <param name="HBillNo">组托单No</param> | 
|         /// <param name="HBillTyp">组托单类型</param> | 
|         /// <param name="HMaker">组托单制单人</param> | 
|         /// <param name="HBarCode_Pack">装箱单条码</param> | 
|         /// <returns>object</returns> | 
|         [Route("GroupOrderBill/GetPackBarCode")] | 
|         [HttpGet] | 
|         public object GetPackBarCode(int HInterID, string HBillNo, string HBillTyp, string HMaker, string HBarCode_Pack,string HOrgID) | 
|         { | 
|             try | 
|             { | 
|                 if (HBarCode_Pack == null || HBarCode_Pack.Equals("")) | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = "[3783-2-003]请输入装箱码!"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|                 else | 
|                 { | 
|                     //判断是否已扫码,并存入缓存表(若未扫码) | 
|                     ds = oCN.RunProcReturn("exec h_p_PackToTemp " + HInterID + ",'" + HBillNo + "','" + HBillTyp + "','" + HMaker + "','" + HBarCode_Pack + "','"+ HOrgID + "'", "h_p_PackToTemp"); | 
|                     if (ClsPub.isInt(ds.Tables[0].Rows[0][0]) == 0) | 
|                     { | 
|                         objJsonResult.code = "0"; | 
|                         objJsonResult.count = 0; | 
|                         objJsonResult.Message = "[0000-1-038]" + 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 = "[3783-2-004]false!无数据,请确认装箱码是否存在!"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|                 else | 
|                 { | 
|                     objJsonResult.code = "1"; | 
|                     objJsonResult.count = 1; | 
|                     objJsonResult.Message = "[0000-1-037]Sucess!"; | 
|                     objJsonResult.data = ds.Tables[0]; | 
|                     return objJsonResult; | 
|                 } | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 objJsonResult.code = "0"; | 
|                 objJsonResult.count = 0; | 
|                 objJsonResult.Message = "[0000-1-038]Exception!" + e.ToString(); | 
|                 objJsonResult.data = null; | 
|                 return objJsonResult; | 
|             } | 
|         } | 
|   | 
|         /// <summary> | 
|         /// 新增单据-保存按钮 | 
|         /// </summary> | 
|         /// <param name="oMain">组托单实例对象</param> | 
|         /// <returns>object</returns> | 
|         [Route("GroupOrderBill/AddBill")] | 
|         [HttpPost] | 
|         public object AddBill([FromBody] JObject oMain) | 
|         { | 
|             var _value = oMain["oMain"].ToString(); | 
|             string msg1 = _value.ToString(); | 
|             try | 
|             { | 
|   | 
|                 //组托单反序列化 | 
|                 msg1 = "[" + msg1.ToString() + "]"; | 
|                 List<GroupOrderBill> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<GroupOrderBill>>(msg1); | 
|                 //获取年月日并拼接成字符串 | 
|                 string year = DateTime.Now.Year.ToString(); | 
|                 //string month = DateTime.Now.Month.ToString(); | 
|                 //string day = DateTime.Now.Day.ToString(); | 
|                 string nowDate = DateTime.Now.ToString("yyyyMMdd"); | 
|                 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;//客户标签(黑标号) | 
|                 long HOrgID = list[0].HOrgID;//递入type得到的单据ID | 
|                 //校验黑标号唯一性 | 
|                 ds = oCN.RunProcReturn($"select * from Sc_PackUnionBillMain where HBarCode_Cus ='{HBarCode_Cus}'", "Sc_PackUnionBillMain"); | 
|                 if (ds.Tables[0].Rows.Count > 0) | 
|                 { | 
|                     objJsonResult.code = "0"; | 
|                     objJsonResult.count = 0; | 
|                     objJsonResult.Message = $"[3783-2-007]黑标号{HBarCode_Cus}已存在"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|                 //生成唯一条码 | 
|                 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,HProdOrgID" + | 
|                     ")" + | 
|                     "values" + | 
|                     "(" + | 
|                         "'" + year + "', '" + HBillType + "'," + HInterID + ", '" + HBillNo + "', '" + HMaker + "'" + | 
|                         ",GETDATE(),0,GETDATE(),' ',0" + | 
|                         ",' ','" + HBarCode_Pack + "',0,0,'" + HBatchNo + "','" + HBarCode_Cus + "','" + HOrgID + | 
|                     "')" | 
|                 ); | 
|                 //插入子表 | 
|                 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 = "[0000-1-050]新增单据成功!"; | 
|                 objJsonResult.data = null; | 
|                 return objJsonResult; | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 //oCN.RollBack(); | 
|                 objJsonResult.code = "0"; | 
|                 objJsonResult.count = 0; | 
|                 objJsonResult.Message = "[0000-1-051]Exception!" + e.ToString(); | 
|                 objJsonResult.data = null; | 
|                 return objJsonResult; | 
|             } | 
|         } | 
|   | 
|         /// <summary> | 
|         /// 返回列表 | 
|         /// </summary> | 
|         /// <param name="sWhere">拼接的SQL</param> | 
|         /// <returns>object</returns> | 
|         [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 = "[0000-1-045]无数据!"; | 
|                     objJsonResult.data = null; | 
|                     return objJsonResult; | 
|                 } | 
|                 else | 
|                 { | 
|                     objJsonResult.code = "1"; | 
|                     objJsonResult.count = 1; | 
|                     objJsonResult.Message = "[0000-1-037]Sucess!"; | 
|                     objJsonResult.data = ds.Tables[0]; | 
|                     return objJsonResult; | 
|                 } | 
|   | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 objJsonResult.code = "0"; | 
|                 objJsonResult.count = 0; | 
|                 objJsonResult.Message = "[0000-1-010]Exception!" + e.ToString(); | 
|                 objJsonResult.data = null; | 
|                 return objJsonResult; | 
|             } | 
|         } | 
|   | 
|         /// <summary> | 
|         /// 返回缓存列表 | 
|         /// </summary> | 
|         /// <param name="sWhere">拼接的SQL</param> | 
|         /// <returns>object</returns> | 
|         [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 1000 * 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; | 
|             } | 
|         } | 
|   | 
|         /// <summary> | 
|         /// 根据ID删除缓存表中扫码记录 | 
|         /// </summary> | 
|         /// <param name="sHitemID">缓存表ID</param> | 
|         /// <returns>object</returns> | 
|         [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; | 
|             } | 
|         } | 
|   | 
|         /// <summary> | 
|         /// 根据唯一条码删除缓存表中扫码记录 | 
|         /// </summary> | 
|         /// <param name="BarCode">唯一条码</param> | 
|         /// <returns>object</returns> | 
|         [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 = "[0000-1-008]删除成功!"; | 
|                 objJsonResult.data = null; | 
|                 return objJsonResult; | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 objJsonResult.code = "0"; | 
|                 objJsonResult.count = 0; | 
|                 objJsonResult.Message = "[0000-1-007]删除失败!"; | 
|                 objJsonResult.data = e.ToString(); | 
|                 return objJsonResult; | 
|             } | 
|         } | 
|   | 
|         /// <summary> | 
|         /// 根据组托单主ID和子ID删除列表中行记录 | 
|         /// </summary> | 
|         /// <param name="HInterID">组托单主ID</param> | 
|         /// <param name="HEntryID">组托单子ID</param> | 
|         /// <returns>object</returns> | 
|         [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; | 
|             } | 
|         } | 
|   | 
|         /// <summary> | 
|         /// 根据组托单主ID和子ID修改列表中行记录的黑标号 | 
|         /// </summary> | 
|         /// <param name="HInterID">组托单主ID</param> | 
|         /// <param name="HBarCode_Cus">黑标号</param> | 
|         /// <returns>object</returns> | 
|         [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 = "[[0000-1-067]]修改成功!"; | 
|                 objJsonResult.data = null; | 
|                 return objJsonResult; | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 objJsonResult.code = "0"; | 
|                 objJsonResult.count = 0; | 
|                 objJsonResult.Message = "[0000-1-066]修改失败!"; | 
|                 objJsonResult.data = e.ToString(); | 
|                 return objJsonResult; | 
|             } | 
|         } | 
|   | 
|     } | 
| } |