yusijie
2024-07-17 c0e503107d910761bb8ceb287bc3dfbab44d8ae5
WebAPI/Controllers/WebAPIController.cs
@@ -10377,6 +10377,368 @@
        }
        #endregion
        #region  休息日  设置列表/保存/编辑/删除方法
        /// <summary>
        ///  休息日 保存
        /// </summary>
        /// <param name="msg"></param>
        /// <returns></returns>
        [Route("SaveGy_RestDayList")]
        [HttpPost]
        public object SaveGy_RestDayList([FromBody] JObject msg)
        {
            DataSet ds;
            var _value = msg["msg"].ToString();
            string msg3 = _value.ToString();
            string[] sArray = msg3.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
            string msg1 = sArray[0].ToString();
            string msg2 = sArray[1].ToString();
            //查看权限
            if (!DBUtility.ClsPub.Security_Log("Gy_RestDay_Edit", 1, false, msg2))
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "无保存权限!";
                objJsonResult.data = null;
                return objJsonResult;
            }
            Int64 HItemID = 0;
            SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
            //获取最大ID值赋值
            DataSet Maxds = oCN.RunProcReturn("select isNull(MAX(HItemID),0) HItemID from Gy_RestDay ", "Gy_RestDay");
            if (Maxds != null || Maxds.Tables[0].Rows.Count > 0)
            {
                //HItemID= Maxds.Tables[0].Rows[0]["HItemID"]
                var maxid = Convert.ToInt32(Maxds.Tables[0].Rows[0]["HItemID"]);
                maxid += 1;
                HItemID = maxid;
            }
            ListModels oListModels = new ListModels();
            try
            {
                WebAPI.DLL.ClsGy_RestDay_Ctl oBill = new WebAPI.DLL.ClsGy_RestDay_Ctl();
                List<Model.ClsGy_RestDay_Model> lsmain = new List<Model.ClsGy_RestDay_Model>();
                msg1 = msg1.Replace("\\", "");
                msg1 = msg1.Replace("\n", "");
                lsmain = oListModels.getObjectByJson_Gy_RestDay(msg1);
                foreach (Model.ClsGy_RestDay_Model oItem in lsmain)
                {
                    if (oItem.HNumber.Trim() == "")
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "保存失败!代码不能为空!";
                        objJsonResult.data = 1;
                        return objJsonResult;
                    }
                    if (oItem.HName.Trim() == "")
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "保存失败!名称不能为空!";
                        objJsonResult.data = 1;
                        return objJsonResult;
                    }
                    if (!DBUtility.ClsPub.AllowNumber(oItem.HNumber.Trim()))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "保存失败!代码中不能出现连续‘.’并且首位末位不能为‘.’!";
                        objJsonResult.data = 1;
                        return objJsonResult;
                    }
                    //得到短代码
                    string sShortNumber;
                    sShortNumber = DBUtility.ClsPub.GetShortNumber(oItem.HNumber.Trim());
                    if (sShortNumber.Trim() == "")
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "保存失败!短代码为空!";
                        objJsonResult.data = 1;
                        return objJsonResult;
                    }
                    oItem.HShortNumber = sShortNumber;//短代码
                    oItem.HEndFlag = true;//末级标志
                    oItem.HLevel = DBUtility.ClsPub.GetLevel(oItem.HNumber.Trim()); //等级
                    oItem.HMakeEmp = msg2; //创建人
                    DayOfWeek dayOfWeek = oItem.HRestDay.DayOfWeek;
                    // 定义星期几的中文映射关系
                    Dictionary<DayOfWeek, string> chineseDayOfWeek = new Dictionary<DayOfWeek, string>
                    {
                        { DayOfWeek.Sunday, "星期日" },
                        { DayOfWeek.Saturday, "星期六" }
                    };
                    // 获取中文星期几名称
                    oItem.HWeekDay = chineseDayOfWeek[dayOfWeek];
                    oBill.oModel = oItem;
                }
                //保存
                //保存完毕后处理
                bool bResult;
                if (oBill.oModel.HItemID == 0)
                {
                    // bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
                    bResult = oBill.AddNew();
                }
                else
                {
                    bResult = oBill.ModifyByID(oBill.oModel.HItemID);
                }
                if (bResult)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "保存成功!";
                    objJsonResult.data = 1;
                    return objJsonResult;
                }
                else
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "保存失败!数据已存在!";
                    objJsonResult.data = 1;
                    return objJsonResult;
                }
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "保存失败!" + e.ToString();
                objJsonResult.data = 1;
                return objJsonResult;
            }
        }
        /// <summary>
        ///  休息日 保存
        /// </summary>
        /// <param name="msg"></param>
        /// <returns></returns>
        [Route("SaveSumGy_RestDayList")]
        [HttpPost]
        public object SaveSumGy_RestDayList([FromBody] JObject msg)
        {
            DataSet ds;
            var _value = msg["msg"].ToString();
            string msg3 = _value.ToString();
            string[] sArray = msg3.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
            string msg1 = sArray[0].ToString();
            string msg2 = sArray[1].ToString();
            //查看权限
            if (!DBUtility.ClsPub.Security_Log("Gy_RestDay_Edit", 1, false, msg2))
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "无保存权限!";
                objJsonResult.data = null;
                return objJsonResult;
            }
            JObject msgObj = JObject.Parse(msg1);
            string HYear = msgObj["HYear"].ToString();
            string HNumber1 = msgObj["HDeptNumber"].ToString()+'-' + msgObj["HOrgNumber"].ToString();
            string HName1 = msgObj["HDeptName"].ToString()+'-'+msgObj["HOrgName"].ToString();
            string HOrgID = msgObj["HOrgID"].ToString();
            string HDeptID = msgObj["HDeptID"].ToString();
            bool HStopflag = bool.Parse(msgObj["HStopflag"].ToString());
            string HRemark= msgObj["HRemark"].ToString();
            string HUSEORGID= msgObj["HUSEORGID"].ToString();
            string HHelpCode= msgObj["HHelpCode"].ToString();
            string HMakeEmp = msg2; //创建人
            bool Sunday = Convert.ToBoolean(msgObj["Sunday"]);
            bool Saturday = Convert.ToBoolean(msgObj["Saturday"]);
            List<Tuple<DateTime, string>> sundaysInYear = GetSundaysInYear(Convert.ToInt32(HYear),  Sunday,  Saturday);
            foreach (var oItem in sundaysInYear)
            {
                Int64 HItemID = 0;
                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
                //获取最大ID值赋值
                DataSet Maxds = oCN.RunProcReturn("select isNull(MAX(HItemID),0) HItemID from Gy_RestDay ", "Gy_RestDay");
                if (Maxds != null || Maxds.Tables[0].Rows.Count > 0)
                {
                    //HItemID= Maxds.Tables[0].Rows[0]["HItemID"]
                    var maxid = Convert.ToInt32(Maxds.Tables[0].Rows[0]["HItemID"]);
                    maxid += 1;
                    HItemID = maxid;
                }
                DateTime HRestDay = oItem.Item1;
                string HWeekDay = oItem.Item2; // 获取星期字符串
                string HDate = oItem.Item1.ToString("yyyyMMdd");
                string HNumber = "";
                string HName = "";
                HNumber = HNumber1 + '-' + HDate;
                 HName = HName1 + '-' + HDate;
                //先查看数据库有没有
                ds = oCN.RunProcReturn("select * from Gy_RestDay where HRestDay='" + HRestDay + "' and HOrgID='" + HOrgID + "' and HDeptID='" + HDeptID + "'", "Gy_RestDay");
                if (ds.Tables[0].Rows.Count<1)
                {
                    oCN.RunProc("Insert into Gy_RestDay " +
                   " (HNumber,HName,HHelpCode,HShortNumber,HParentID" +
                   ",HLevel,HEndFlag,HStopflag,HRemark,HMakeTime,HUSEORGID,HUseFlag,HMakeEmp,HCREATEORGID," +
                   "HOrgID,HDeptID,HRestDay,HWeekDay) " +
                   " Values('" + HNumber + "','" + HName + "','" + HHelpCode + "',''," + 0 +
                   "," + 0 + "," + 0 + "," + Convert.ToString(HStopflag ? 1 : 0) + ",'" + HRemark + "','" + DateTime.Now + "','" + HUSEORGID + "',' 未检测','" + HMakeEmp + "','" + HUSEORGID + "'" +
                   ",'" + HOrgID.ToString() + "','" + HDeptID.ToString() + "','" + HRestDay.ToString() + "','" + HWeekDay.ToString() + "')");
                }
            }
            objJsonResult.code = "0";
            objJsonResult.count = 1;
            objJsonResult.Message = "保存成功!";
            objJsonResult.data = 1;
            return objJsonResult;
        }
        /// <summary>
        /// 休息日 获取信息
        /// </summary>
        /// <returns></returns>
        [Route("GetGy_RestDayDetailEdit")]
        [HttpGet]
        public ApiResult<DataSet> GetGy_RestDayDetailEdit(string HID)
        {
            var model = LuBaoSevice.GetGy_RestDayDetailEdit(HID);
            return model;
        }
        /// <summary>
        /// 休息日 获取信息
        /// </summary>
        /// <returns></returns>
        [Route("GetGy_RestDayDetail")]
        [HttpGet]
        public ApiResult<DataSet> GetGy_RestDayDetail(string HName)
        {
            var model = LuBaoSevice.GetGy_RestDayDetail(HName);
            return model;
        }
        /// <summary>
        /// 休息日 删除功能
        /// </summary>
        /// <returns></returns>
        [Route("DeltetGy_RestDay")]
        [HttpGet]
        public object DeltetGy_RestDay(string HItemID, string user)
        {
            DataSet ds;
            try
            {
                //删除权限
                if (!DBUtility.ClsPub.Security_Log("Gy_RestDay_Delete", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无删除权限!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
                if (string.IsNullOrWhiteSpace(HItemID))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "HItemID为空!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                oCN.BeginTran();//开始事务
                oCN.RunProc("delete Gy_RestDay where HItemID=" + HItemID);
                oCN.Commit();//提交事务
                objJsonResult.code = "0";
                objJsonResult.count = 1;
                objJsonResult.Message = "数据删除成功!";
                objJsonResult.data = null;
                return objJsonResult; ;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "删除失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        //获取一年中的周六,周日或者两个同时获取
        public List<Tuple<DateTime, string>> GetSundaysInYear(int HYear, bool Sunday,bool Saturday)
        {
            List<Tuple<DateTime, string>> Days = new List<Tuple<DateTime, string>>();
            DateTime startDate = new DateTime(HYear, 1, 1);
            DateTime endDate = new DateTime(HYear, 12, 31);
            //星期天勾选
            if (Sunday && !Saturday)
            {
                while (startDate <= endDate)
                {
                    if (startDate.DayOfWeek == DayOfWeek.Sunday)
                    {
                        Days.Add(Tuple.Create(startDate, "星期天"));
                    }
                    startDate = startDate.AddDays(1);
                }
            }
            //星期六 勾选
            else if (!Sunday && Saturday)
            {
                while (startDate <= endDate)
                {
                    if (startDate.DayOfWeek == DayOfWeek.Saturday)
                    {
                        Days.Add(Tuple.Create(startDate, "星期六"));
                    }
                    startDate = startDate.AddDays(1);
                }
            }
            else if (Sunday && Saturday)
            {
                while (startDate <= endDate)
                {
                    if (startDate.DayOfWeek == DayOfWeek.Saturday || startDate.DayOfWeek == DayOfWeek.Sunday)
                    {
                        string weekdayChinese;
                        if (startDate.DayOfWeek == DayOfWeek.Sunday)
                        {
                            weekdayChinese = "星期天";
                            Days.Add(Tuple.Create(startDate, weekdayChinese));
                        }
                        else if (startDate.DayOfWeek == DayOfWeek.Saturday)
                        {
                            weekdayChinese = "星期六";
                            Days.Add(Tuple.Create(startDate, weekdayChinese));
                        }
                    }
                    startDate = startDate.AddDays(1);
                }
            }
            return Days;
        }
        //返回的字段
        public class DayOfWeekInfo
        {
            public DateTime Date { get; set; }
            public string DayOfWeekText { get; set; }
        }
        #endregion
        /// <summary>
        /// 用关联工序获取信息
        /// </summary>