chenhaozhe
2 天以前 25c2291ded30737b07fb7c93e5e231cc64733d2a
WebAPI/Controllers/Sc_GroupOrderBillController.cs
@@ -21,28 +21,169 @@
        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,string user)
        public object List(string sWhere)
        {
            DataSet ds;
            try
            {
                //判断是否有查询权限
                //if (!DBUtility.ClsPub.Security_Log("Sc_GroupOrderBillList_Query", 1, false, user))
                //{
                //    objJsonResult.code = "0";
                //    objJsonResult.count = 0;
                //    objJsonResult.Message = "无查询权限!";
                //    objJsonResult.data = null;
                //    return objJsonResult;
                //}
                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
                if (sWhere == null || sWhere.Equals(""))
                {
@@ -56,23 +197,75 @@
                    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;
                }
                //if (ds.Tables[0].Rows.Count != 0 || ds != null)
                //{
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = ds.Tables[0];
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "[0000-1-010]Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
                //}
                //else
                //{
                //objJsonResult.code = "0";
                //objJsonResult.count = 0;
                //objJsonResult.Message = "无数据";
                //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)
@@ -85,7 +278,132 @@
            }
        }
        /// <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;
            }
        }
    }
}