1
zzr99
2022-07-28 6590310cb3482ca4a5089d09bfc17ff9a8f1378e
WebAPI/Controllers/SCGL/Sc_ComplementGoodBillController.cs
@@ -69,7 +69,7 @@
                ComplementGoodBill com = JsonConvert.DeserializeObject<ComplementGoodBill>(sWhere.ToString());
                ds = oCN.RunProcReturn($"exec h_p_JIT_CallGoodsPlatForm_Query '{com.HSeOrderBillNo}','{com.DepartmentName}','{com.MaterialNumber}','{com.MaterialName}'," +
                    $"'{com.MaterialModel}','{com.HICMOBillNo}','{com.CPNumber}','{com.CPName}','{com.CPModel}','{com.HBeginDate}','{com.HEndDate}'," +
                    $"'{com.MaterialModel}','{com.HICMOBillNo}','{com.CPNumber}','{com.CPName}','{com.CPModel}','{com.HBeginDate}','{com.HEndDate.AddDays(1).AddSeconds(-1)}'," +
                    $"{com.ps},{com.Organization},'{com.user}' ", "h_p_JIT_CallGoodsPlatForm_Query");
                objJsonResult.code = "1";
@@ -98,6 +98,8 @@
            public long HSouceInterID = 0;//HSourceInterIDCol
            public long HSourceEntryID = 0;//HSourceEntryIDCol
            public int? 叫料数量 = 0;//HBHGQtyCol
            public int? 已叫料数量 = 0;//HBHGQtyCol
            public int? 已配送数量 = 0;//HBHGQtyCol
            public double? 退料数量 = 0;//退料数量
            public long HSTOCKID = 0;//HSTOCKID
            public string 退料原因 { get; set; }//退料原因
@@ -107,15 +109,16 @@
            public int 调出仓库库存数量 = 0;//HKFQtySCol
            public double 计划发料数量 = 0;//HPlanQtyCol 
            public int HWHID = 0;//HWHIDCol
            public int? 调出仓库id = 0;//调出仓库id
            public string HMaterialNumberCol { get; set; }
            public string HMaterialModelCol { get; set; }
            public string HProcIDCol { get; set; }//HProcID
            public string HProcID { get; set; }//HProcIDCol
            public string HProcNameCol { get; set; }//工段
            public int HOutOrgIDCol = 0;//HOutOrgID
            public string  HICMOBillNoCol { get; set; }//HICMOBillNo
            public long HICMOInterIDCol = 0;//HICMOInterID
            public long HICMOEntryIDCol = 0;//HICMOEntryID
            public long HDeptIDCol = 0;//HDeptID
            public int HOutOrgID = 0;//HOutOrgID
            public string HICMOBillNo { get; set; }// HICMOBillNoCol
            public long HICMOInterID = 0;// HICMOInterIDCol
            public long HICMOEntryID = 0;// HICMOEntryIDCol
            public long HDeptID = 0;//HDeptID
            public double HBHGQtyCol = 0;
            public string 销售订单号 { get; set; }//HSeOrderNOCol
            public DateTime? 计划开工日期 = null;//HBPlanDateCol
@@ -155,6 +158,7 @@
            string[] sArray = _value.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
            string msg2 = sArray[0].ToString();
            string user = sArray[1].ToString();
            omodel.HPRDORGID = long.Parse(sArray[2].ToString());
            try
            {
@@ -181,6 +185,15 @@
                {
                    if (listCa[i].HMaterialID != 0 && listCa[i].叫料数量 > 0)
                    {
                        if (listCa[i].叫料数量 > listCa[i].计划发料数量)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "叫料数量大于计划发料数量!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        j = 1;
                        var txtHBillNo = DBUtility.ClsPub.CreateBillCode_Prod(CallGoodsBill.ModName, ref DBUtility.ClsPub.sExeReturnInfo, true);//获得一个新的单据号
@@ -228,12 +241,12 @@
                        oSub.HModel = listCa[i].HMaterialModelCol;
                        oSub.HWHID = listCa[i].HWHID;
                        oSub.HProcName = listCa[i].HProcNameCol; 
                        oSub.HProcID = listCa[i].HProcIDCol;
                        oSub.HOutOrgID = listCa[i].HOutOrgIDCol;
                        oSub.HICMOBillNo = listCa[i].HICMOBillNoCol;
                        oSub.HICMOInterID = listCa[i].HICMOInterIDCol;
                        oSub.HICMOEntryID = listCa[i].HICMOEntryIDCol;
                        oSub.HDeptID = listCa[i].HDeptIDCol;
                        oSub.HProcID = listCa[i].HProcID;
                        oSub.HOutOrgID = listCa[i].HOutOrgID;
                        oSub.HICMOBillNo = listCa[i].HICMOBillNo;
                        oSub.HICMOInterID = listCa[i].HICMOInterID;
                        oSub.HICMOEntryID = listCa[i].HICMOEntryID;
                        oSub.HDeptID = listCa[i].HDeptID;
                        oSub.HPlanQty = listCa[i].计划发料数量;
                        oSub.HSeOrderNo = listCa[i].销售订单号; 
                        oSub.HBPlanDate = listCa[i].计划开工日期;
@@ -270,7 +283,7 @@
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无任何叫料数量,无法叫料!";
                    objJsonResult.Message = "无任何叫料数量或叫料数量小于0,无法叫料!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
@@ -301,12 +314,12 @@
                      " (HInterID,HEntryID,HRemark" +
                      ",HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HRelationQty,HRelationMoney" +
                      ",HSeOrderInterID,HSeOrderEntryID,HSeOrderBillNo,HICMOInterID,HICMOEntryID,HICMOBillNo" +
                      ",HDeptID,HMaterID,HQty,HProcID,HWHID,HSPID,HBillNo_bak" +
                      ",HDeptID,HMaterID,HQty,HProcID,HWHID,HSPID,HBillNo_bak,HOutOrgID" +
                      ") values("
                      + omodel.HInterID.ToString() + "," + oSub.HEntryID.ToString() + ",'" + oSub.HRemark + "'" +
                      "," + oSub.HSourceInterID.ToString() + "," + oSub.HSourceEntryID.ToString() + ",'" + oSub.HSourceBillNo + "','" + oSub.HSourceBillType + "'," + oSub.HRelationQty.ToString() + "," + oSub.HRelationMoney.ToString() +
                      "," + oSub.HSeOrderInterID.ToString() + "," + oSub.HSeOrderEntryID.ToString() + ",'" + oSub.HSeOrderBillNo + "'," + oSub.HICMOInterID.ToString() + "," + oSub.HICMOEntryID.ToString() + ",'" + oSub.HICMOBillNo + "'" +
                      "," + oSub.HDeptID.ToString() + "," + oSub.HMaterID.ToString() + "," + oSub.HQty.ToString() + ",'" + oSub.HProcID + "'," + oSub.HWHID.ToString() + ", " + oSub.HSPID.ToString() +",'') ", ref DBUtility.ClsPub.sExeReturnInfo);
                      "," + oSub.HDeptID.ToString() + "," + oSub.HMaterID.ToString() + "," + oSub.HQty.ToString() + ",'" + oSub.HProcID + "'," + oSub.HWHID.ToString() + ", " + oSub.HSPID.ToString() +",'',"+oSub.HOutOrgID+") ", ref DBUtility.ClsPub.sExeReturnInfo);
                //主表
@@ -317,14 +330,14 @@
                ",HMainSourceBillType,HMainSourceInterID,HMainSourceEntryID,HMainSourceBillNo" +
                ",HBacker,HBackDate,HBackRemark,HChecker,HCheckDate,HUpDater,HUpDateDate " +
                ",HCloseMan,HCloseDate,HCloseType,HDeleteMan,HDeleteDate " +
                ",HPrintQty,HCallManID,HSendManID,HCallType,HWareManID) " +
                ",HPrintQty,HCallManID,HSendManID,HCallType,HWareManID,HOrgID) " +
                " values('" + CallGoodsBill.ModName + "','" + CallGoodsBill.ModName + "'," + omodel.HInterID.ToString() + ",'" + omodel.HBillNo + "','" + omodel.HDate + "'" +
                ", " + omodel.HYear.ToString() + "," + omodel.HPeriod.ToString() + ",'" + omodel.HRemark + "','" + omodel.HMaker + "',getdate()" +
                ",'" + omodel.HBillStatus + "'," + omodel.HCheckItemNowID.ToString() + "," + omodel.HCheckItemNextID.ToString() + ", " + omodel.HCheckFlowID.ToString() +
                ",'" + omodel.HMainSourceBillType + "'," + omodel.HMainSourceInterID.ToString() + "," + omodel.HMainSourceEntryID.ToString() + ", '" + omodel.HMainSourceBillNo + "'" +
                ",'" + omodel.HBacker + "','" + omodel.HBackDate + "','" + omodel.HBackRemark + "', '" + omodel.HChecker + "','" + omodel.HCheckDate + "', '" + omodel.HUpDater + "',''" +
                ",'" + omodel.HCloseMan + "','" + omodel.HCloseDate + "','" + omodel.HCloseType + "', '" + omodel.HDeleteMan + "','" + omodel.HDeleteDate + "'" +
                ",0,0,0,'普通',0) ", ref DBUtility.ClsPub.sExeReturnInfo);
                ",0,0,0,'普通',0," + omodel.HPRDORGID + ") ", ref DBUtility.ClsPub.sExeReturnInfo);
                sReturn = "新增单据成功!";
                //oCn.Commit();
@@ -346,12 +359,13 @@
            var _value = msg["msg"].ToString();
            string[] sArray = _value.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
            string msg2 = sArray[0].ToString();
            string user = sArray[1].ToString();
            DBUtility.ClsPub.CurUserName = sArray[1].ToString();
            string HOrgID = sArray[2].ToString();
            bool flag = false;
            try
            {
                if (!DBUtility.ClsPub.Security_Log("JIT_BLP_ComplementGoods_Edit", 1, false, user))
                if (!DBUtility.ClsPub.Security_Log("JIT_BLP_ComplementGoods_Edit", 1, false, DBUtility.ClsPub.CurUserName))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
@@ -366,40 +380,58 @@
                //获取表格数据集合
                listCa = JsonConvert.DeserializeObject<List<CallGoodsBill>>(msg2.ToString());
                if (listCa[0].退料数量 > 0)
                int j=0;
                for (int i = 0; i < listCa.Count; i++)
                {
                    Int64 lngBillKey = listCa[0].HSouceInterID == 0 ? 0 : listCa[0].HSouceInterID;
                    Int64 lngBillKeyEntry = listCa[0].HSourceEntryID == 0 ? 0 : listCa[0].HSourceEntryID;
                    double HQty = (double)(listCa[0].退料数量 == 0 ? 0 : listCa[0].退料数量);
                    long HDeptWHID = listCa[0].HSTOCKID == 0 ? 0 : listCa[0].HSTOCKID;
                    string HTuiResult = listCa[0].退料原因 == "" ? "" : listCa[0].退料原因;
                    var HBillNo = DBUtility.ClsPub.CreateBillCode_Prod("6666", ref DBUtility.ClsPub.sExeReturnInfo, true);//获得一个新的单据号
                    var HBillInterID = DBUtility.ClsPub.CreateBillID_Prod("6666", ref DBUtility.ClsPub.sExeReturnInfo);
                    ds = oCN.RunProcReturn("exec h_p_JIT_BadGoodsRequest_Insert  " + lngBillKey.ToString() + " , " + lngBillKeyEntry.ToString() + " ,  '" + user + "'  ," + HQty.ToString() + " ," + HOrgID.ToString() + " , '" + HBillNo + "' ," + HBillInterID.ToString() + "," + HDeptWHID.ToString() + ",'" + HTuiResult + "'", "h_p_JIT_GoodsRequestBad_Insert");
                    if (int.Parse(ds.Tables[0].Rows[0][0].ToString()) == 1)
                    if (listCa[i].退料数量 > 0)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "无任何退料数量,无法退料!";
                        objJsonResult.data = null;
                        return objJsonResult;
                        if (listCa[i].退料数量 > listCa[i].已配送数量)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "退料数量大于已配送数量!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        ds = oCN.RunProcReturn("select sum(d.HQty) HQty from JIT_CallGoodsBackRequestBillSub c inner join JIT_CallGoodsBackBillSub d on c.HInterID = d.HSourceInterID and c.HEntryID = d.HSourceEntryID and c.HMaterID = d.HMaterID " +
                   $"where c.HSourceInterID={listCa[i].HSouceInterID} and c.HSourceEntryID ={listCa[i].HSourceEntryID} and c.HSourceBillNo = '{listCa[i].HSourceBillNo}' and c.HMaterID={listCa[i].HMaterialID}", "JIT_CallGoodsBackRequestBillSub");
                        if ((double.Parse(ds.Tables[0].Rows[0][0].ToString()==""?"0": ds.Tables[0].Rows[0][0].ToString()) +listCa[i].退料数量) > listCa[i].已叫料数量)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = $"已经退料数量:{double.Parse(ds.Tables[0].Rows[0][0].ToString())},可退料数量为:{(listCa[i].已叫料数量 - double.Parse(ds.Tables[0].Rows[0][0].ToString()))}!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        flag = AddICStockTuiBill(listCa[i], "666601", "不良品退料", HOrgID, ref DBUtility.ClsPub.sExeReturnInfo);
                        j = 1;
                    }
                    else
                    {
                        objJsonResult.code = "1";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "退料成功";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                if (j == 0)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无任何退料数量或退料数量小于0,无法退料!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if (flag)
                {
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "不良品退料成功!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                else
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无任何退料数量,无法退料!";
                    objJsonResult.Message = "不良品退料失败!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
@@ -413,6 +445,47 @@
                return objJsonResult;
            }
        }
        //新增
        public bool AddICStockTuiBill(CallGoodsBill listCa,string HBillType,string HBackType,string HOrgID, ref string sReturn)
        {
            try
            {
                Int64 lngBillKey = listCa.HSouceInterID == 0 ? 0 : listCa.HSouceInterID;
                Int64 lngBillKeyEntry = listCa.HSourceEntryID == 0 ? 0 : listCa.HSourceEntryID;
                double HQty = (double)(listCa.退料数量 == 0 ? 0 : listCa.退料数量);
                long HDeptWHID = listCa.HSTOCKID == 0 ? 0 : listCa.HSTOCKID;
                string HTuiResult = listCa.退料原因 == "" ? "" : listCa.退料原因;
                var HBillNo = DBUtility.ClsPub.CreateBillCode_Prod("6666", ref DBUtility.ClsPub.sExeReturnInfo, true);//获得一个新的单据号
                var HBillInterID = DBUtility.ClsPub.CreateBillID_Prod("6666", ref DBUtility.ClsPub.sExeReturnInfo);
                oCN.BeginTran();
                //插入子表
                oCN.RunProc("Insert into JIT_CallGoodsBackRequestBillSub ( HInterID,HEntryID,HSourceInterID,HSourceEntryID," +
                        "HSourceBillNo,HSourceBillType, HMaterID, HQty, HSCWHID," +
                        " HWHID, HSPID, HResult, HDeptID, HProcID,HBackReason) " +
                        $"values({HBillInterID},1,{lngBillKey},{ lngBillKeyEntry}," +
                        $"'{listCa.HSourceBillNo}',88,{listCa.HMaterialID},{HQty},{(listCa.调出仓库id==null?0:listCa.调出仓库id)}," +
                        $"{HDeptWHID},'','',{listCa.HDeptID},'','{HTuiResult}')");
                    //插入主表
                    oCN.RunProc("insert into JIT_CallGoodsBackRequestBillMain(HYear,HPeriod,HInterid,HBillSubType,HBillStatus," +
                        "HBillType,HDate,HBillNo,HOrgID,HMaker,HMakeDate,HRemark,HBackRemark,HMainSourceBillType , HMainSourceInterID, HMainSourceEntryID, HMainSourceBillNo," +
                        " HItemMainID, HSendManID, HWareManID, HStockOutOrgID, HStockInOrgID, HBackType)" +
                       $"values({DateTime.Now.Year},{DateTime.Now.Month},{HBillInterID},'{HBillType}',1," +
                       $" '{HBillType}','{DateTime.Now}','{HBillNo}',{HOrgID},'{ DBUtility.ClsPub.CurUserName}','{DateTime.Now}','','',0,0,0,''," +
                       $" 0, 0, 0, {HOrgID}, 0,'{HBackType}')");
                sReturn = "新增单据成功!";
                oCN.Commit();
                return true;
            }
            catch (Exception e)
            {
                sReturn = e.Message;
                throw (e);
            }
        }
        #endregion
        #region 生产叫料平台  余量退料申请单新增
@@ -423,12 +496,12 @@
            var _value = msg["msg"].ToString();
            string[] sArray = _value.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
            string msg2 = sArray[0].ToString();
            string user = sArray[1].ToString();
            DBUtility.ClsPub.CurUserName = sArray[1].ToString();
            string HOrgID = sArray[2].ToString();
            try
            {
                if (!DBUtility.ClsPub.Security_Log("JIT_YL_ComplementGoods_Edit", 1, false, user))
                if (!DBUtility.ClsPub.Security_Log("JIT_YL_ComplementGoods_Edit", 1, false, DBUtility.ClsPub.CurUserName))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
@@ -442,37 +515,39 @@
                List<CallGoodsBill> listCa = new List<CallGoodsBill>();
                //获取表格数据集合
                listCa = JsonConvert.DeserializeObject<List<CallGoodsBill>>(msg2.ToString());
                bool flag = false;
                if (listCa[0].退料数量 > 0)
                int j = 0;
                for (int i = 0; i < listCa.Count; i++)
                {
                    Int64 lngBillKey = listCa[0].HSouceInterID == 0 ? 0 : listCa[0].HSouceInterID;
                    Int64 lngBillKeyEntry = listCa[0].HSourceEntryID == 0 ? 0 : listCa[0].HSourceEntryID;
                    double HQty = (double)(listCa[0].退料数量 == 0 ? 0 : listCa[0].退料数量);
                    long HDeptWHID = listCa[0].HSTOCKID == 0 ? 0 : listCa[0].HSTOCKID;
                    string HTuiResult = listCa[0].退料原因 == "" ? "" : listCa[0].退料原因;
                    var HBillNo = DBUtility.ClsPub.CreateBillCode_Prod("6666", ref DBUtility.ClsPub.sExeReturnInfo, true);//获得一个新的单据号
                    var HBillInterID = DBUtility.ClsPub.CreateBillID_Prod("6666", ref DBUtility.ClsPub.sExeReturnInfo);
                    ds = oCN.RunProcReturn("exec h_p_JIT_MarginGoodsRequest_Insert  " + lngBillKey.ToString() + " , " + lngBillKeyEntry.ToString() + " ,  '" + user + "'  ," + HQty.ToString() + " ," + HOrgID.ToString() + " , '" + HBillNo + "' ," + HBillInterID.ToString() + "," + HDeptWHID.ToString() + ",'" + HTuiResult + "'", "h_p_JIT_GoodsRequestMargin_Insert");
                    if (int.Parse(ds.Tables[0].Rows[0][0].ToString()) == 1)
                    if (listCa[i].退料数量 > 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 = null;
                        return objJsonResult;
                        if (listCa[i].退料数量 > listCa[i].已配送数量)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "退料数量大于已配送数量!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        ds = oCN.RunProcReturn("select sum(d.HQty) HQty from JIT_CallGoodsBackRequestBillSub c inner join JIT_CallGoodsBackBillSub d on c.HInterID = d.HSourceInterID and c.HEntryID = d.HSourceEntryID and c.HMaterID = d.HMaterID " +
                   $"where c.HSourceInterID={listCa[i].HSouceInterID} and c.HSourceEntryID ={listCa[i].HSourceEntryID} and c.HSourceBillNo = '{listCa[i].HSourceBillNo}' and c.HMaterID={listCa[i].HMaterialID}", "JIT_CallGoodsBackRequestBillSub");
                        if ((double.Parse(ds.Tables[0].Rows[0][0].ToString() == "" ? "0" : ds.Tables[0].Rows[0][0].ToString()) + listCa[i].退料数量) > listCa[i].已叫料数量)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = $"已经退料数量:{double.Parse(ds.Tables[0].Rows[0][0].ToString())},可退料数量为:{(listCa[i].已叫料数量 - double.Parse(ds.Tables[0].Rows[0][0].ToString()))}!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        flag = AddICStockTuiBill(listCa[i], "666602", " 余量退料", HOrgID, ref DBUtility.ClsPub.sExeReturnInfo);
                        j = 1;
                    }
                }
                else
                if (j == 0)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
@@ -480,6 +555,24 @@
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if (flag)
                {
                    objJsonResult.code = "1";
                    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)
            {
@@ -500,12 +593,12 @@
            var _value = msg["msg"].ToString();
            string[] sArray = _value.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
            string msg2 = sArray[0].ToString();
            string user = sArray[1].ToString();
            DBUtility.ClsPub.CurUserName = sArray[1].ToString();
            string HOrgID = sArray[2].ToString();
            try
            {
                if (!DBUtility.ClsPub.Security_Log("JIT_YL_ComplementGoods_Edit", 1, false, user))
                if (!DBUtility.ClsPub.Security_Log("JIT_BF_ComplementGoods_Edit", 1, false, DBUtility.ClsPub.CurUserName))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
@@ -520,40 +613,59 @@
                //获取表格数据集合
                listCa = JsonConvert.DeserializeObject<List<CallGoodsBill>>(msg2.ToString());
                if (listCa[0].退料数量 > 0)
                bool flag = false;
                int j = 0;
                for (int i = 0; i < listCa.Count; i++)
                {
                    Int64 lngBillKey = listCa[0].HSouceInterID == 0 ? 0 : listCa[0].HSouceInterID;
                    Int64 lngBillKeyEntry = listCa[0].HSourceEntryID == 0 ? 0 : listCa[0].HSourceEntryID;
                    double HQty = (double)(listCa[0].退料数量 == 0 ? 0 : listCa[0].退料数量);
                    long HDeptWHID = listCa[0].HSTOCKID == 0 ? 0 : listCa[0].HSTOCKID;
                    string HTuiResult = listCa[0].退料原因 == "" ? "" : listCa[0].退料原因;
                    var HBillNo = DBUtility.ClsPub.CreateBillCode_Prod("6666", ref DBUtility.ClsPub.sExeReturnInfo, true);//获得一个新的单据号
                    var HBillInterID = DBUtility.ClsPub.CreateBillID_Prod("6666", ref DBUtility.ClsPub.sExeReturnInfo);
                    ds = oCN.RunProcReturn("exec h_p_JIT_ScrapGoodsRequest_Insert  " + lngBillKey.ToString() + " , " + lngBillKeyEntry.ToString() + " ,  '" + user + "'  ," + HQty.ToString() + " ," + HOrgID.ToString() + " , '" + HBillNo + "' ," + HBillInterID.ToString() + "," + HDeptWHID.ToString() + ",'" + HTuiResult + "'", "h_p_JIT_GoodsRequestMargin_Insert");
                    if (int.Parse(ds.Tables[0].Rows[0][0].ToString()) == 1)
                    if (listCa[i].退料数量 > 0)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "无任何退料数量,无法退料!";
                        objJsonResult.data = null;
                        return objJsonResult;
                        if (listCa[i].退料数量 > listCa[i].已配送数量)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "退料数量大于已配送数量!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        ds = oCN.RunProcReturn("select sum(d.HQty) HQty from JIT_CallGoodsBackRequestBillSub c inner join JIT_CallGoodsBackBillSub d on c.HInterID = d.HSourceInterID and c.HEntryID = d.HSourceEntryID and c.HMaterID = d.HMaterID " +
                   $"where c.HSourceInterID={listCa[i].HSouceInterID} and c.HSourceEntryID ={listCa[i].HSourceEntryID} and c.HSourceBillNo = '{listCa[i].HSourceBillNo}' and c.HMaterID={listCa[i].HMaterialID}", "JIT_CallGoodsBackRequestBillSub");
                        if ((double.Parse(ds.Tables[0].Rows[0][0].ToString() == "" ? "0" : ds.Tables[0].Rows[0][0].ToString()) + listCa[i].退料数量) > listCa[i].已叫料数量)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = $"已经退料数量:{double.Parse(ds.Tables[0].Rows[0][0].ToString())},可退料数量为:{(listCa[i].已叫料数量 - double.Parse(ds.Tables[0].Rows[0][0].ToString()))}!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        flag = AddICStockTuiBill(listCa[i], "666603", "报废退料", HOrgID, ref DBUtility.ClsPub.sExeReturnInfo);
                        j = 1;
                    }
                    else
                    {
                        objJsonResult.code = "1";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "退料成功";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                if (j == 0)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无任何退料数量,无法退料!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if (flag)
                {
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "报废退料成功!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                else
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无任何退料数量,无法退料!";
                    objJsonResult.Message = "报废退料失败!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
@@ -569,12 +681,13 @@
        }
        #endregion
        #region 生产叫料平台  叫料拣料信息查询
        #region 生产叫料平台  叫料拣料信息查询  上查/下查
        //查询条件
        public class HlpBill
        {
            public int HSouceInterID = 0;
            public int HSourceEntryID = 0;
            public int Type = 0;
            public string user { get; set; }
        }
        [Route("Sc_ComplementGoodBill/HlpBillList")]
@@ -583,18 +696,187 @@
        {
            try
            {
                List<object> columnNameList = new List<object>();
                //反序列化传递的值
                HlpBill com = JsonConvert.DeserializeObject<HlpBill>(sWhere.ToString());
                ds = oCN.RunProcReturn($"exec h_p_JIT_CallGoodsPlatForm_DownQuery 0,0,'',0,0,'{com.HSouceInterID}','{com.HSourceEntryID}'"+
                    $"'{com.user}'", "h_p_JIT_CallGoodsPlatForm_DownQuery");
                if (com.Type == 1)
                {
                    //生产叫料平台  下查
                    ds = oCN.RunProcReturn($"exec h_p_JIT_CallGoodsPlatForm_DownQuery 0,0,'',0,0,{com.HSouceInterID},{com.HSourceEntryID}" +
                       $",'{com.user}'", "h_p_JIT_CallGoodsPlatForm_DownQuery");
                }
                else if (com.Type == 2)
                {
                    //拣料配送 上查
                    ds = oCN.RunProcReturn($"exec h_p_JIT_ComplementGoodsBillList_UpQuery '{com.HSouceInterID}',{com.HSourceEntryID}", "h_p_JIT_ComplementGoodsBillList_UpQuery");
                }
                else if (com.Type == 3)
                {
                    //拣料配送 下查
                    ds = oCN.RunProcReturn($"exec h_p_JIT_ComplementGoodsBillList_DownQuery '{com.HSouceInterID}',{com.HSourceEntryID}", "h_p_JIT_ComplementGoodsBillList_DownQuery");
                }
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = ds.Tables[0];
                //添加列名
                foreach (DataColumn col in ds.Tables[0].Columns)
                {
                    Type dataType = col.DataType;
                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
                    columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名
                }
                //type==1 存储过程里面查询了两次  所有需要判断两张表都有没有数据
                if (ds.Tables[0].Rows.Count != 0)
                {
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "Sucess!";
                    objJsonResult.data = ds.Tables[0];
                    objJsonResult.list = columnNameList;
                    return objJsonResult;
                }
                else if ((com.Type == 1 ? ds.Tables[1].Rows.Count : ds.Tables[0].Rows.Count) != 0)
                {
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "Sucess!";
                    objJsonResult.data = ds.Tables[1];
                    objJsonResult.list = columnNameList;
                    return objJsonResult;
                }
                else
                {
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "Sucess!";
                    objJsonResult.data = ds.Tables[0];
                    objJsonResult.list = columnNameList;
                    return objJsonResult;
                }
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region 生产叫料平台  拣料单新增
        [Route("Sc_ComplementGoodBill/Insert_JL_ICStockTuiBill")]
        [HttpPost]
        public object Insert_JL_ICStockTuiBill([FromBody] JObject msg)
        {
            var _value = msg["msg"].ToString();
            string[] sArray = _value.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
            string msg2 = sArray[0].ToString();
            string user = sArray[1].ToString();
            string HOrgID = sArray[2].ToString();
            try
            {
                if (!DBUtility.ClsPub.Security_Log("Cj_ComplementGoodsBill_Edit", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无保存权限";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                msg2 = msg2.Replace("\\", "");
                msg2 = msg2.Replace("\n", "");
                ds = oCN.RunProcReturn("select * from h_v_IF_JIT_CallGoodsBillList ", "h_v_IF_JIT_CallGoodsBillList ");
                if (ds.Tables[0].Rows.Count > 0)
                {
                    ds.Clear();
                    long HInterID = DBUtility.ClsPub.CreateBillID_Prod("4602", ref DBUtility.ClsPub.sExeReturnInfo);
                    string HBillNo = DBUtility.ClsPub.CreateBillCode_Prod("4602", ref DBUtility.ClsPub.sExeReturnInfo, true);
                   ds= oCN.RunProcReturn($"exec h_p_JIT_ComplementGoods_Insert {HInterID},'{HBillNo}',{HOrgID},'{user}',0,0", "h_p_JIT_ComplementGoods_Insert");
                    objJsonResult.code = ds.Tables[0].Rows[0][0].ToString();
                    objJsonResult.count = int.Parse(ds.Tables[0].Rows[0][0].ToString());
                    objJsonResult.Message = ds.Tables[0].Rows[0][1].ToString();
                    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 = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region 生产叫料平台  退料单新增
        [Route("Sc_ComplementGoodBill/Insert_TL_ICStockTuiBill")]
        [HttpPost]
        public object Insert_TL_ICStockTuiBill([FromBody] JObject msg)
        {
            var _value = msg["msg"].ToString();
            string[] sArray = _value.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
            string msg2 = sArray[0].ToString();
            string user = sArray[1].ToString();
            string HOrgID = sArray[2].ToString();
            try
            {
                if (!DBUtility.ClsPub.Security_Log("Cj_CallGoodsBillBack_Edit", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无保存权限";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                msg2 = msg2.Replace("\\", "");
                msg2 = msg2.Replace("\n", "");
                ds = oCN.RunProcReturn("select * from JIT_CallGoodsBackRequestBillMain where HISCheck=0 ", "JIT_CallGoodsBackRequestBillMain ");
                if (ds.Tables[0].Rows.Count > 0)
                {
                    long HInterID = DBUtility.ClsPub.CreateBillID_Prod("6666", ref DBUtility.ClsPub.sExeReturnInfo);
                    string HBillNo = DBUtility.ClsPub.CreateBillCode_Prod("6666", ref DBUtility.ClsPub.sExeReturnInfo, true);
                    //long HOutOrgID = int.Parse(listCa[i].HOutOrgID.ToString());
                    //long HWHID = int.Parse(listCa[i].HWHID.ToString());
                   ds= oCN.RunProcReturn($"exec h_p_JIT_GetCallGoodsBillCount_Back {HInterID},'{HBillNo}',{HOrgID},'{user}'", "h_p_JIT_GetCallGoodsBillCount_Back");
                    objJsonResult.code = ds.Tables[0].Rows[0][0].ToString();
                    objJsonResult.count = int.Parse(ds.Tables[0].Rows[0][0].ToString());
                    objJsonResult.Message = ds.Tables[0].Rows[0][1].ToString();
                    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";