zzr99
2022-01-05 090e358965800ecf7707fbfc69cef0e018836ae1
WebAPI/Controllers/»ù´¡×ÊÁÏ/»ù´¡×ÊÁÏ/Gy_StockCheckItemBillController.cs
@@ -16,7 +16,7 @@
        private json objJsonResult = new json();
        public DataSet ds = new DataSet();
        public SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
        public Models.ClsGy_StockCheckItemBill BillNew0 = new Models.ClsGy_StockCheckItemBill();
        public Models.ClsGy_StockCheckItemBill BillNew0 = new ClsGy_StockCheckItemBill();
        #region ç›˜ç‚¹æ–¹æ¡ˆåˆ—表
        [Route("Gy_StockCheckItemBill/Get_StockCheckItemList")]
@@ -254,24 +254,17 @@
        #region ç›˜ç‚¹åˆ†æžåˆ—表
        [Route("Gy_StockCheckItemBill/Get_InventoryAnalysisList")]
        [HttpGet]
        public object Get_InventoryAnalysisList(string sWhere)
        public object Get_InventoryAnalysisList(string sWhere,string sID)
        {
            DataSet ds;
            List<object> list = new List<object>();
            List<object> list1 = new List<object>();//正常
            List<object> list2 = new List<object>();//调拨
            List<object> list3 = new List<object>();//出库
            List<object> list4 = new List<object>();//先做领用退库单,再做领用出库单
            List<object> list5 = new List<object>();//盘盈
            List<object> list6 = new List<object>();//盘亏
            List<object> list7 = new List<object>();//退库
            string sql;
            try
            {
                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
                string sql;
                if (sWhere != null&&sWhere!="")
                if (sID == null || sID == "")
                {
                     sql = string.Format(@"select k.HBarCode æ¡ç ,m.HNumber å™¨å…·ç¼–号,s.HName ç›˜ç‚¹æ–¹æ¡ˆ,
                    sql = string.Format(@"select k.HBarCode æ¡ç ,m.HBillNo å™¨å…·ç¼–号,s.HName ç›˜ç‚¹æ–¹æ¡ˆ,
                        case when k.HCorrespondentTypeID=1 then '供应商' when k.HCorrespondentTypeID=2 then '客户' when k.HCorrespondentTypeID=4 then '仓库' end å®žé™…位置类型,
                        case when k.HCorrespondentTypeID=1 then p.HName when  k.HCorrespondentTypeID=2 then c.HName when k.HCorrespondentTypeID=4 then w.HName end å®žé™…位置,
                        case when m.HNowSupTypeID=1 then '供应商' when m.HNowSupTypeID=2 then '客户' when m.HNowSupTypeID=4 then '仓库' end è´¦é¢ä½ç½®ç±»åž‹,
@@ -280,16 +273,16 @@
                        left join Gy_MouldFileMain m on k.HBarCode=m.HBarCode
                        left join Gy_StockCheckItem s on k.HSourceInterID=s.HItemID 
                        left join Gy_Supplier p on k.HCorrespondentID=p.HItemID
                        left join Gy_Supplier p1 on m.HNowSupTypeID=p1.HItemID
                        left join Gy_Supplier p1 on m.HNowSupID=p1.HItemID
                        left join Gy_Customer c on k.HCorrespondentID=c.HItemID
                        left join Gy_Customer c1 on m.HNowSupTypeID=c1.HItemID
                        left join Gy_Warehouse w on k.HSourceInterID=w.HItemID
                        left join Gy_Warehouse w1 on m.HNowSupTypeID=w1.HItemID
                        where (select  HEndDate from Gy_StockCheckItem where Hitemid=(select top 1 HSourceInterID from Sc_MouldStockBillMain_Temp WHERE HSourceInterID=0))<getdate()");
                        left join Gy_Customer c1 on m.HNowSupID=c1.HItemID
                        left join Gy_Warehouse w on k.HCorrespondentID=w.HItemID
                        left join Gy_Warehouse w1 on m.HNowSupID=w1.HItemID
                  where k.HBillType='3822' and " + sWhere);
                }
                else
                {
                     sql = string.Format(@"select k.HBarCode æ¡ç ,m.HNumber å™¨å…·ç¼–号,s.HName ç›˜ç‚¹æ–¹æ¡ˆ,
                    sql = string.Format(@"select k.HBarCode æ¡ç ,m.HBillNo å™¨å…·ç¼–号,s.HName ç›˜ç‚¹æ–¹æ¡ˆ,
                        case when k.HCorrespondentTypeID=1 then '供应商' when k.HCorrespondentTypeID=2 then '客户' when k.HCorrespondentTypeID=4 then '仓库' end å®žé™…位置类型,
                        case when k.HCorrespondentTypeID=1 then p.HName when  k.HCorrespondentTypeID=2 then c.HName when k.HCorrespondentTypeID=4 then w.HName end å®žé™…位置,
                        case when m.HNowSupTypeID=1 then '供应商' when m.HNowSupTypeID=2 then '客户' when m.HNowSupTypeID=4 then '仓库' end è´¦é¢ä½ç½®ç±»åž‹,
@@ -298,111 +291,15 @@
                        left join Gy_MouldFileMain m on k.HBarCode=m.HBarCode
                        left join Gy_StockCheckItem s on k.HSourceInterID=s.HItemID 
                        left join Gy_Supplier p on k.HCorrespondentID=p.HItemID
                        left join Gy_Supplier p1 on m.HNowSupTypeID=p1.HItemID
                        left join Gy_Supplier p1 on m.HNowSupID=p1.HItemID
                        left join Gy_Customer c on k.HCorrespondentID=c.HItemID
                        left join Gy_Customer c1 on m.HNowSupTypeID=c1.HItemID
                        left join Gy_Warehouse w on k.HSourceInterID=w.HItemID
                        left join Gy_Warehouse w1 on m.HNowSupTypeID=w1.HItemID");
                        left join Gy_Customer c1 on m.HNowSupID=c1.HItemID
                        left join Gy_Warehouse w on k.HCorrespondentID=w.HItemID
                        left join Gy_Warehouse w1 on m.HNowSupID=w1.HItemID
                  where k.HBillType='3822' and " + sWhere + " and k.HSourceInterID=(select HItemID from Gy_StockCheckItem where HItemID=" + sID + ") and k.HMakeDate<=(select HEndDate from Gy_StockCheckItem where HItemID=" + sID + ")");
                }
                ds = oCN.RunProcReturn(sql, "Sc_MouldStockBillMain_Temp");
                DataTable dt = ds.Tables[0];
                if (dt.Rows.Count > 0)
                {
                    foreach (DataRow dr in dt.Rows)
                    {
                        if (dr["实际位置类型"].ToString()== dr["账面位置类型"].ToString()&& dr["实际位置类型"].ToString()=="供应商")
                        {
                            //正常
                            if (dr["实际位置"].ToString() == dr["账面位置"].ToString())
                            {
                                list1.Add(dr);
                            }
                            //盘盈  å®žç‰©åœ¨A供应商,但是在账面上没有这个台车
                            if (dr["实际位置"].ToString() !=""|| dr["实际位置"].ToString() != null && dr["账面位置"].ToString()==""|| dr["账面位置"].ToString() == null)
                            {
                                list5.Add(dr);
                            }
                            //盘亏  A供应商没有这个台车,但是在账面上有这个台车
                            if (dr["实际位置"].ToString() == "" || dr["实际位置"].ToString() == null && dr["账面位置"].ToString() != "" || dr["账面位置"].ToString() != null)
                            {
                                list6.Add(dr);
                            }
                            //先做领用退库单,再做领用出库单  å°è½¦åœ¨A供应商/客户,但是账面上台车在B供应商/客户
                            if (dr["实际位置类型"].ToString()=="客户"&& dr["实际位置"].ToString() != dr["实际位置"].ToString())
                            {
                                list4.Add(dr);
                            }
                            //出库
                            if (dr["实际位置类型"].ToString() == "供应商" && dr["账面位置类型"].ToString() == "仓库")
                            {
                                list3.Add(dr);
                            }
                        }
                        if (dr["实际位置类型"].ToString() == dr["账面位置类型"].ToString() && dr["实际位置类型"].ToString() == "客户")
                        {
                            //正常
                            if (dr["实际位置"].ToString() == dr["账面位置"].ToString())
                            {
                                list1.Add(dr);
                            }
                            //盘盈  å®žç‰©åœ¨A供应商,但是在账面上没有这个台车
                            if (dr["实际位置"].ToString() != "" || dr["实际位置"].ToString() != null && dr["账面位置"].ToString() == "" || dr["账面位置"].ToString() == null)
                            {
                                list5.Add(dr);
                            }
                            //盘亏  A供应商没有这个台车,但是在账面上有这个台车
                            if (dr["实际位置"].ToString() == "" || dr["实际位置"].ToString() == null && dr["账面位置"].ToString() != "" || dr["账面位置"].ToString() != null)
                            {
                                list6.Add(dr);
                            }
                            //出库
                            if (dr["实际位置类型"].ToString() == "客户" && dr["账面位置类型"].ToString() == "仓库")
                            {
                                list3.Add(dr);
                            }
                            //先做领用退库单,再做领用出库单  å°è½¦åœ¨A供应商/客户,但是账面上台车在B供应商/客户
                            if (dr["实际位置类型"].ToString() == "供应商" && dr["实际位置"].ToString() != dr["实际位置"].ToString())
                            {
                                list4.Add(dr);
                            }
                        }
                        if (dr["实际位置类型"].ToString() == dr["账面位置类型"].ToString() && dr["实际位置类型"].ToString() == "仓库")
                        {
                            //正常
                            if (dr["实际位置"].ToString() == dr["账面位置"].ToString())
                            {
                                list1.Add(dr);
                            }
                            //盘盈  å®žç‰©åœ¨A供应商,但是在账面上没有这个台车
                            if (dr["实际位置"].ToString() != "" || dr["实际位置"].ToString() != null && dr["账面位置"].ToString() == "" || dr["账面位置"].ToString() == null)
                            {
                                list5.Add(dr);
                            }
                            //盘亏  A供应商没有这个台车,但是在账面上有这个台车
                            if (dr["实际位置"].ToString() == "" || dr["实际位置"].ToString() == null && dr["账面位置"].ToString() != "" || dr["账面位置"].ToString() != null)
                            {
                                list6.Add(dr);
                            }
                            //退库
                            if (dr["账面位置类型"].ToString()=="供应商"|| dr["账面位置类型"].ToString() == "客户")
                            {
                                list7.Add(dr);
                            }
                            //调拨
                            if (dr["实际位置"].ToString() != dr["账面位置"].ToString())
                            {
                                list2.Add(dr);
                            }
                        }
                    }
                    list.Add(list1);
                    list.Add(list2);
                    list.Add(list3);
                    list.Add(list4);
                    list.Add(list5);
                    list.Add(list6);
                    list.Add(list7);
                }
                list.Add(ds.Tables[0]);
                objJsonResult.code = "0";
                objJsonResult.count = 1;
                objJsonResult.Message = "获取信息成功!";
@@ -420,9 +317,98 @@
        }
        #endregion
        #region ç›˜ç‚¹è®°å½•列表
        [Route("Gy_StockCheckItemBill/Get_MouldStockBillMainTemp")]
        [HttpGet]
        public object Get_MouldStockBillMainTemp(string sWhere)
        {
            try
            {
                ds = MouldStockBillMainTemp(sWhere);
                if (ds == null)
                {
                    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 ex)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "查询数据异常,请与管理员联系!" + ex.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        public static DataSet MouldStockBillMainTemp(string sWhere)
        {
            string sql1 = string.Format(@"select * from h_v_Gy_MouldStockBillMainTempList where 1=1 ");
            if (sWhere == null || sWhere.Equals(""))
            {
                return new SQLHelper.ClsCN().RunProcReturn(sql1 + sWhere + " order by åˆ¶å•日期 desc", "h_v_Gy_MouldStockBillMainTempList");
            }
            else
            {
                string sql = sql1 + sWhere + "order by åˆ¶å•日期 desc";
                return new SQLHelper.ClsCN().RunProcReturn(sql, "h_v_Gy_MouldStockBillMainTempList");
            }
        }
        #endregion
        #region [盘点方案删除功能]
        [Route("Gy_StockCheckItemBill/set_DeleteBill_Temp")]
        [HttpGet]
        public object set_DeleteBill_Temp(string HItemID)
        {
            Int64 lngBillKey = 0;
            lngBillKey = DBUtility.ClsPub.isLong(HItemID);
            if (lngBillKey == 0)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "单据ID为空!";
                objJsonResult.data = null;
                return objJsonResult;
            }
            ds = oCn.RunProcReturn("select * from Sc_MouldStockBillMain_Temp where HItemID=" + lngBillKey, "Sc_MouldStockBillMain_Temp");
            if (ds != null)
            {
                oCn.RunProc("Delete from Sc_MouldStockBillMain_Temp where HItemID=" + lngBillKey);
                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;
            }
        }
        #endregion
        #region ç›˜ç‚¹åˆ†æžå®¡æ ¸
        #region è°ƒæ‹¨â€”直接调拨
            [Route("Gy_StockCheckItemBill/MakeProdMove")]
        [Route("Gy_StockCheckItemBill/MakeProdMove")]
            [HttpGet]
            public object MakeProdMove(string HBarCode, string user, string userID)
        {