WebAPI/Controllers/Sc_PckSplitBillController.cs
@@ -366,5 +366,268 @@
            }
        }
        #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 1=1 " + 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 产线关键件绑定
        /// <summary>
        /// SN号查询
        /// </summary>
        /// <param name="HBarCode">SN号</param>
        /// <returns></returns>
        [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;
            }
        }
        /// <summary>
        /// 关键码查询
        /// </summary>
        /// <param name="HBarCode">关键码</param>
        /// <returns></returns>
        [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;
            }
        }
        /// <summary>
        /// 扫码缓存删除
        /// </summary>
        /// <param name="HBarCode">关键码</param>
        /// <returns></returns>
        [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;
            }
        }
        /// <summary>
        /// 组装单提交
        /// </summary>
        /// <param name="HBarCode">关键码</param>
        /// <returns></returns>
        [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<Models.ClsSc_AssemblyBillMain> lsmain = new List<Models.ClsSc_AssemblyBillMain>();//基本资料
                List<Models.ClsSc_AssemblyBillMain> lspjItme = new List<Models.ClsSc_AssemblyBillMain>();//配件列表
                List<Models.ClsSc_AssemblyBillSub> lstmItme = new List<Models.ClsSc_AssemblyBillSub>();//扫码列表
                //基本资料_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
    }
}