yangle
2022-09-27 bc168ff5559475a7f32308a5111122d12238a8dd
WebAPI/Controllers/SCGL/Sc_ComplementGoodBillController.cs
@@ -40,6 +40,7 @@
            public DateTime HEndDate { get; set; }//结束时间
            public int ps { get; set; }//仅显示未完全配送
            public string user { get; set; }//当前登录人
            public string Arbitrarily { get; set; }//任意参数
        }
        [Route("Sc_ComplementGoodBill/ComplementGoodBillList")]
@@ -68,11 +69,13 @@
                //反序列化传递的值
                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.AddDays(1).AddSeconds(-1)}'," +
                    $"{com.ps},{com.Organization},'{com.user}' ", "h_p_JIT_CallGoodsPlatForm_Query");
                   oCN.RunProc($"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.ps},{com.Organization},'{com.user}' ");
                objJsonResult.code = "1";
                ds = oCN.RunProcReturn("select * from ##h_p_JIT_CallGoodsPlatForm_Query where 1=1 " + com.Arbitrarily + "", "##h_p_JIT_CallGoodsPlatForm_Query");
               objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = ds.Tables[0];
@@ -98,6 +101,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; }//退料原因
@@ -108,6 +113,7 @@
            public double 计划发料数量 = 0;//HPlanQtyCol 
            public int HWHID = 0;//HWHIDCol
            public int? 调出仓库id = 0;//调出仓库id
            public int? 调入仓库id = 0;//调入仓库id
            public string HMaterialNumberCol { get; set; }
            public string HMaterialModelCol { get; set; }
            public string HProcID { get; set; }//HProcIDCol
@@ -117,10 +123,10 @@
            public long HICMOInterID = 0;// HICMOInterIDCol
            public long HICMOEntryID = 0;// HICMOEntryIDCol
            public long HDeptID = 0;//HDeptID
            public long 库存数量 = 0;
            public double HBHGQtyCol = 0;
            public string 销售订单号 { get; set; }//HSeOrderNOCol
            public DateTime? 计划开工日期 = null;//HBPlanDateCol
        }
        //临时表  叫料子表
@@ -137,6 +143,7 @@
            public string HSeOrderNo;
            public string HSeOrderBillNo;
            public int HWHID = 0;
            public int HSCWHID = 0;
            public long HOutOrgID = 0;
            public long HICMOInterID = 0;
            public long HICMOEntryID = 0;
@@ -183,6 +190,60 @@
                {
                    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;
                        }
                        if (listCa[i].库存数量 == 0 && listCa[i].叫料数量 > 0)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "库存数量为0,无法叫料!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        if (listCa[i].叫料数量 > listCa[i].库存数量)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "库存数量小于叫料数量,无法叫料!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        if (listCa[i].叫料数量 > 0 && listCa[i].调入仓库id == 0)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "请选择调入仓库!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        if (listCa[i].叫料数量 > 0 && listCa[i].调出仓库id == 0)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "请选择调出仓库!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        //if (listCa[i].调出仓库可用库存数量 == 0)
                        //{
                        //    objJsonResult.code = "0";
                        //    objJsonResult.count = 0;
                        //    objJsonResult.Message = "调出仓库可用库存数量为0!";
                        //    objJsonResult.data = null;
                        //    return objJsonResult;
                        //}
                        j = 1;
                        var txtHBillNo = DBUtility.ClsPub.CreateBillCode_Prod(CallGoodsBill.ModName, ref DBUtility.ClsPub.sExeReturnInfo, true);//获得一个新的单据号
@@ -207,28 +268,11 @@
                        oSub.HSourceBillNo = listCa[i].HSourceBillNo;
                        oSub.HQty =double.Parse(listCa[i].叫料数量.ToString());
                        //if (oSub.HQty <= 0)
                        //{
                        //    objJsonResult.code = "0";
                        //    objJsonResult.count = 0;
                        //    objJsonResult.Message = $"第{i+1}行,叫料数量不能为0或者小于0";
                        //    objJsonResult.data = null;
                        //    return objJsonResult;
                        //}
                        //if (oSub.HQty > listCa[i].调出仓库可用库存数量)
                        //{
                        //    objJsonResult.code = "0";
                        //    objJsonResult.count = 0;
                        //    objJsonResult.Message = $"第{i+1}行,叫料数量大于该物料调出仓库可用库存数量";
                        //    objJsonResult.data = null;
                        //    return objJsonResult;
                        //}
                        oSub.HMaterID = listCa[i].HMaterialID;
                        oSub.HMaterNumber = listCa[i].HMaterialNumberCol; 
                        oSub.HModel = listCa[i].HMaterialModelCol;
                        oSub.HWHID = listCa[i].HWHID;
                        oSub.HWHID = int.Parse(listCa[i].调入仓库id.ToString());
                        oSub.HSCWHID = int.Parse(listCa[i].调出仓库id.ToString());
                        oSub.HProcName = listCa[i].HProcNameCol; 
                        oSub.HProcID = listCa[i].HProcID;
                        oSub.HOutOrgID = listCa[i].HOutOrgID;
@@ -272,7 +316,7 @@
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无任何叫料数量,无法叫料!";
                    objJsonResult.Message = "无任何叫料数量或叫料数量小于0,无法叫料!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
@@ -303,12 +347,12 @@
                      " (HInterID,HEntryID,HRemark" +
                      ",HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HRelationQty,HRelationMoney" +
                      ",HSeOrderInterID,HSeOrderEntryID,HSeOrderBillNo,HICMOInterID,HICMOEntryID,HICMOBillNo" +
                      ",HDeptID,HMaterID,HQty,HProcID,HWHID,HSPID,HBillNo_bak,HOutOrgID" +
                      ",HDeptID,HMaterID,HQty,HProcID,HWHID,HSCWHID,HSPID,HBillNo_bak,HOutOrgID,HStockOutOrgID,HStockInOrgID" +
                      ") 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() +",'',"+oSub.HOutOrgID+") ", ref DBUtility.ClsPub.sExeReturnInfo);
                      "," + oSub.HDeptID.ToString() + "," + oSub.HMaterID.ToString() + "," + oSub.HQty.ToString() + ",'" + oSub.HProcID + "'," + oSub.HWHID.ToString() + ", " + oSub.HSCWHID.ToString()+"," + oSub.HSPID.ToString() +",'',"+oSub.HOutOrgID+ ","+oSub.HOutOrgID+ "," + omodel.HPRDORGID +") ", ref DBUtility.ClsPub.sExeReturnInfo);
                //主表
@@ -374,6 +418,45 @@
                {
                    if (listCa[i].退料数量 > 0)
                    {
                        if (listCa[i].退料数量 > listCa[i].已配送数量&& listCa[i].已配送数量>0)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "退料数量大于已配送数量!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        ds = oCN.RunProcReturn("select isnull(sum(d.HQty),0) 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;
                        }
                        if (listCa[i].调入仓库id == 0)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "请选择调入仓库!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        if (listCa[i].调出仓库id == 0)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "请选择调出仓库!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        flag = AddICStockTuiBill(listCa[i], "666601", "不良品退料", HOrgID, ref DBUtility.ClsPub.sExeReturnInfo);
                        j = 1;
                    }
@@ -382,7 +465,7 @@
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无任何退料数量,无法退料!";
                    objJsonResult.Message = "无任何退料数量或退料数量小于0,无法退料!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
@@ -419,14 +502,13 @@
        {
            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);
                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 = int.Parse(listCa.调入仓库id.ToString()) == 0 ? 0 : int.Parse(listCa.调入仓库id.ToString());
                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();
                //插入子表
@@ -443,7 +525,7 @@
                        " 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}')");
                       $" 0, 0, {listCa.HOutOrgID}, {HOrgID}, 0,'{HBackType}')");
                 
                sReturn = "新增单据成功!";
                oCN.Commit();
@@ -465,12 +547,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;
@@ -491,6 +573,27 @@
                {
                    if (listCa[i].退料数量 > 0)
                    {
                        if (listCa[i].退料数量 > listCa[i].已配送数量 && listCa[i].已配送数量 > 0)
                        {
                            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;
                    }
@@ -541,12 +644,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_BF_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;
@@ -567,6 +670,27 @@
                {
                    if (listCa[i].退料数量 > 0)
                    {
                        if (listCa[i].退料数量 > listCa[i].已配送数量 && listCa[i].已配送数量 > 0)
                        {
                            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;
                    }
@@ -608,7 +732,7 @@
        }
        #endregion
        #region 生产叫料平台  叫料拣料信息查询
        #region 生产叫料平台  叫料拣料信息查询  上查/下查
        //查询条件
        public class HlpBill
        {
@@ -777,7 +901,7 @@
                msg2 = msg2.Replace("\\", "");
                msg2 = msg2.Replace("\n", "");
                ds = oCN.RunProcReturn("select * from JIT_CallGoodsBackBillMain ", "JIT_CallGoodsBackBillMain ");
                ds = oCN.RunProcReturn("select * from JIT_CallGoodsBackRequestBillMain where HISCheck=0 ", "JIT_CallGoodsBackRequestBillMain ");
                if (ds.Tables[0].Rows.Count > 0)
                {