YL
2021-09-13 32f1949e108230929a6dc69c5bedac79eb9dc52d
WebAPI/Controllers/SCGL/Sc_MaterToSourceBillController.cs
@@ -26,6 +26,7 @@
        public DAL.ClsSc_MESMaterToSourceBill BillOld = new DAL.ClsSc_MESMaterToSourceBill();   //对应单据类
        #region 上料放错单Web列表查询
        /// <summary>
        /// 返回生产上料单列表
        ///参数:string sql。
@@ -39,27 +40,27 @@
            {
                if (sWhere == null || sWhere.Equals(""))
                {
                    ds = oCN.RunProcReturn("select * from h_v_Sc_MaterToSourceBillList " + sWhere, "h_v_Sc_MaterToSourceBillList");
                    ds = oCN.RunProcReturn("select * from h_v_Sc_MaterToSourceBillMain " + sWhere, "h_v_Sc_MaterToSourceBillMain");
                }
                else
                {
                    string sql1 = "select * from h_v_Sc_MaterToSourceBillList where 1 = 1 ";
                    string sql1 = "select * from h_v_Sc_MaterToSourceBillMain where 1 = 1 ";
                    string sql = sql1 + sWhere;
                    ds = oCN.RunProcReturn(sql, "h_v_Sc_MaterToSourceBillList");
                    ds = oCN.RunProcReturn(sql, "h_v_Sc_MaterToSourceBillMain");
                }
                if (ds == null || ds.Tables[0].Rows.Count == 0)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "没有返回任何记录!";
                    objJsonResult.data = null;
                    objJsonResult.data = ds.Tables[0];
                    return objJsonResult;
                }
                else
                {
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "Sucess!";
                    objJsonResult.Message = "查询数据成功!";
                    objJsonResult.data = ds.Tables[0];
                    return objJsonResult;
                }
@@ -73,8 +74,148 @@
                return objJsonResult;
            }
        }
        #endregion
        //
        #region 上料防错单编辑时获取表头数据
        [Route("Sc_MaterToSourceBill/Sc_MaterToSourceBillListCheckDetai")]
        [HttpGet]
        public ApiResult<DataSet> Sc_MaterToSourceBillListCheckDetai(string HID)
        {
            if (string.IsNullOrEmpty(HID))
                return new ApiResult<DataSet> { code = -1, msg = "ID不能为空" };
            SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
            var dataSet = oCN.RunProcReturn("select top 1 * from h_v_Sc_MaterToSourceBillMain  where hmainid= " + HID + " ", "h_v_Sc_MaterToSourceBillMain");
            if (dataSet == null || dataSet.Tables[0].Rows.Count == 0)
                return new ApiResult<DataSet> { code = -1, msg = "不存在上料防错单数据" };
            return new ApiResult<DataSet> { code = 1, msg = "查询成功", data = dataSet };
        }
        #endregion
        #region 上料防错单编辑时获取表体数据(配料记录、治具记录)
        [Route("Sc_MaterToSourceBill/Sc_MaterToSourceBillListProjectDetai")]
        [HttpGet]
        public object Sc_MaterToSourceBillListProjectDetai(string HInterID)
        {
            DataSet ds, ds1;
            List<object> list = new List<object>();
            string Swhere = "";
            try
            {
                if (HInterID != "" || HInterID != null)
                {
                    Swhere = " and hmainid='" + HInterID + "'";
                }
                else
                {
                    Swhere = HInterID;
                }
                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
                //获取配料记录编辑数据
                string sql = "select 条形码 HBarCode,HMaterID,物料代码 HNumber,物料名称 HName,规格型号 HModel,HUnitID,计量单位名称 HUnitName,数量 HQty   from h_v_Sc_MaterToSourceBillSub where 1 = 1 " + Swhere + "";
                ds = oCN.RunProcReturn(sql, "h_v_Sc_MaterToSourceBillSub");
                //获取治具记录编辑数据
                //string sql1 = "select HMaterID, 配件代码 HMaterNumber,配件名称 HMaterName,规格型号 HMaterSpec,HUnitID,单位代码 HUnitNumber,单位名称 HUnitName,实际用量 HQty,标准用量 HQtyMust,HManagerID,负责人代码 HManagerNumber,负责人 HManagerName,表体备注 HRemark  from h_v_Sc_MouldMaintainBillList where 1 = 1 " + Swhere + "";
                //ds1 = oCN.RunProcReturn(sql1, "h_v_Sc_MouldMaintainBillList");
                list.Add(ds.Tables[0]);
                //list.Add(ds1.Tables[0]);
                objJsonResult.code = "0";
                objJsonResult.count = 1;
                objJsonResult.Message = "获取信息成功!";
                objJsonResult.list = list;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "没有返回任何记录!" + e.ToString();
                objJsonResult.data = null;
            }
            return objJsonResult;
        }
        #endregion
        #region [上料防错单删除功能]
        /// <summary>
        /// 开工单删除功能
        /// </summary>
        /// <returns></returns>
        [Route("Sc_MaterToSourceBill/DeltetMaterToSourceBill")]
        [HttpGet]
        public object DeltetMaterToSourceBill(string HInterID, string UserName)
        {
            DBUtility.ClsPub.CurUserName = UserName;
            //编辑权限
            //if (!DBUtility.ClsPub.Security_Log("MES_MaterToSourceBill_Delete", 1, true, DBUtility.ClsPub.CurUserName))
            //{
            //    objJsonResult.code = "0";
            //    objJsonResult.count = 0;
            //    objJsonResult.Message = "无删除权限!";
            //    objJsonResult.data = null;
            //    return objJsonResult;
            //}
            Int64 lngBillKey = 0;
            lngBillKey = DBUtility.ClsPub.isLong(HInterID);
            if (lngBillKey == 0)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "单据ID为空!";
                objJsonResult.data = null;
                return objJsonResult;
            }
            DAL.ClsSc_MESMaterToSourceBill oBill = new DAL.ClsSc_MESMaterToSourceBill();
            if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo))
            {
                if (oBill.omodel.HBillStatus > 1)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "单据当前处于不能删除状态,不能删除!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if (oBill.omodel.HChecker != "")
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "单据已经审核,不能删除!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                bool IsDete = oBill.DeleteBill(oBill.omodel.HInterID, ref DBUtility.ClsPub.sExeReturnInfo);
                if (IsDete)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 1;
                    objJsonResult.Message = DBUtility.ClsPub.sExeReturnInfo;
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                else
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = DBUtility.ClsPub.sExeReturnInfo;
                    objJsonResult.data = null;
                    return objJsonResult;
                }
            }
            else
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "单据未找到";
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region  报工平台上料防错单弹窗查找数据
        [Route("Sc_MaterToSourceBill/GetMESMaterToSourceFrom")]
@@ -140,11 +281,14 @@
                else 
                {
                    //2.匹配用料清单的物料编码是否一致
                    string sql = string.Format(@"select b.HMaterID,m.HNumber,m.HName,m.HModel,a.HQty HMQty, b.HQty,b.HUnitID,u.HName HUnitName   from sc_PPbomBillMain a
                                                 inner join Sc_PPBomBillSub b on a.HInterID=b.HInterID
                                                 left  join Gy_Material m on b.HMaterID=m.HItemID
                                                 left  join Gy_Unit u on b.HUnitID=u.HItemID
                                                 where a.HICMOInterID='" + HICMOInterID + "' and a.HICMOEntryID='"+ HICMOEntryID + "'");
                    string sql = @"select '{0}' HBarCode,b.HMaterID,m.HNumber,m.HName,m.HModel,a.HQty HMQty, b.HQty,b.HUnitID,u.HName HUnitName   from sc_PPbomBillMain a
                                                 inner join Sc_PPBomBillSub b on a.HInterID = b.HInterID
                                                 left join Gy_Material m on b.HMaterID = m.HItemID
                                                 left join Gy_Unit u on b.HUnitID = u.HItemID
                                                 where a.HICMOInterID = '{1}' and a.HICMOEntryID = '{2}'";
                    sql = string.Format(sql,HBarCode, HICMOInterID, HICMOEntryID);
                    ds = oCN.RunProcReturn(sql, "Sc_PPBomBillSub");
                    if (ds.Tables[0].Rows.Count > 0) //有用料清单记录
                    {
@@ -301,11 +445,24 @@
            ListModels oListModels = new ListModels();
            try
            {
                //表头数据实例化
                DAL.ClsSc_MESMaterToSourceBill oBill = new DAL.ClsSc_MESMaterToSourceBill();
                List<Model.ClsSc_MaterToSourceBillMain> lsmain = new List<Model.ClsSc_MaterToSourceBillMain>();
                msg2 = msg2.Replace("\\", "");
                msg2 = msg2.Replace("\n", "");  //\n
                lsmain = oListModels.getObjectByJson_Sc_MaterToSourceBillMain(msg2);
                //配料记录表体数据实例化
                //按 },{来拆分数组 //去掉【和】
                msg3 = msg3.Substring(1, msg3.Length - 2);
                msg3 = msg3.Replace("\\", "");
                msg3 = msg3.Replace("\n", "");  //\n
                //msg2 = msg2.Replace("'", "’");
                List<Model.ClsSc_MaterToSourceBillSub> ls = new List<Model.ClsSc_MaterToSourceBillSub>();
                ls = oListModels.getObjectByJson_Sc_MaterToSourceBillSub(msg3);
                //配件项表体数据实例化
                foreach (Model.ClsSc_MaterToSourceBillMain oItem in lsmain)
                {
                    if (refSav == "Add")
@@ -369,6 +526,11 @@
                    oItem.HProcExchInterID = 0; //流转卡主内码
                    oItem.HProcExchEntryID = 0; //流转卡子内码
                    oItem.HProcID = 0;          //工序ID
                    oItem.HMainSourceBillNo =oItem.HSourceBillNo;
                    oItem.HMainSourceBillType = oItem.HSourceBillType;
                    oItem.HMainSourceInterID = oItem.HSourceInterID;
                    oItem.HMainSourceEntryID = oItem.HSourceEntryID;
                    if (DBUtility.ClsPub.isStrNull(oItem.HDate) == "")
                    {
@@ -378,36 +540,34 @@
                        objJsonResult.data = 1;
                        return objJsonResult;
                    }
                    //循环配料信息子表
                    int i = 0;
                    foreach (Model.ClsSc_MaterToSourceBillSub oItemSub in ls)
                    {
                        i++;
                        oItemSub.HEntryID = i;
                        //oItemSub.HCloseMan = "";       //行关闭
                        oItemSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now);
                        oItemSub.HCloseType = false;   //关闭类型
                                                       //oItemSub.HRemark = "";         //备注
                        oItemSub.HSourceInterID = 0;     // 源单主内码
                        oItemSub.HSourceEntryID = 0;   //源单子内码
                                                       //oItemSub.HSourceBillNo = "";  //源单单号
                                                       //oItemSub.HSourceBillType = ""; //源单类型
                        oItemSub.HRelationQty = 0;     //关联数量
                        oItemSub.HScanDate = DBUtility.ClsPub.isDate(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));//  --扫码时间
                        oItemSub.HSourceBillNo = oItem.HSourceBillNo;
                        oItemSub.HSourceBillType = oItem.HSourceBillType;
                        oItemSub.HSourceInterID = oItem.HSourceInterID;
                        oItemSub.HSourceEntryID = oItem.HSourceEntryID;
                        oBill.DetailColl.Add(oItemSub);
                    }
                    oBill.omodel = oItem;
                }
                //配料记录表体数据
                //按 },{来拆分数组 //去掉【和】
                msg3 = msg3.Substring(1, msg3.Length - 2);
                msg3 = msg3.Replace("\\", "");
                msg3 = msg3.Replace("\n", "");  //\n
                //msg2 = msg2.Replace("'", "’");
                List<Model.ClsSc_MaterToSourceBillSub> ls = new List<Model.ClsSc_MaterToSourceBillSub>();
                ls = oListModels.getObjectByJson_Sc_MaterToSourceBillSub(msg3);
                int i = 0;
                foreach (Model.ClsSc_MaterToSourceBillSub oItemSub in ls)
                {
                    i++;
                    oItemSub.HEntryID = i;
                    //oItemSub.HCloseMan = "";       //行关闭
                    oItemSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now);
                    oItemSub.HCloseType = false;   //关闭类型
                    //oItemSub.HRemark = "";         //备注
                    oItemSub.HSourceInterID = 0;     // 源单主内码
                    oItemSub.HSourceEntryID = 0;   //源单子内码
                    //oItemSub.HSourceBillNo = "";  //源单单号
                    //oItemSub.HSourceBillType = ""; //源单类型
                    oItemSub.HRelationQty = 0;     //关联数量
                    oBill.DetailColl.Add(oItemSub);
                }
                //配件项表体数据
                //保存
                //保存完毕后处理
@@ -436,6 +596,7 @@
                else
                {
                    bResult = oBill.ModifyBill(oBill.omodel.HInterID, ref DBUtility.ClsPub.sExeReturnInfo);
                    objJsonResult.HInterID = DBUtility.ClsPub.sExeReturnInfo; //返回主ID
                    objJsonResult.Verify = "N";
                }
                if (bResult)