在线急求大神解决

那么天涯 2014-10-18 02:43:29
我现在需要做的是模仿电脑端,写一个给安卓的API接口 其他功能还好,就是请假日期这块搞不懂了,说是根据开始时间,和结束时间来计算,但是他们电脑端写的放法我看不懂,也不知道他们下面写的算法是什么意思。求大神帮忙解决一下,看看我的代码应该怎么修改。
public static string Insert_Process_List(Obj_User.User _User, Hashtable _PostDate, MySqlConnection _MySqlCon)
{
Obj_AskLeave.AskLeaveInfo _askleaveInfo = new Obj_AskLeave.AskLeaveInfo();

_askleaveInfo.ProcessId = long.Parse(_PostDate["ProcessId"].ToString());
if (_askleaveInfo.ProcessId > 0)
{
Obj_Process.ProcessInfo _ProcessInfo = new Obj_Process.ProcessInfo();
_ProcessInfo = Obj_Process.Process.Get_ProcessNextSPInfo(_askleaveInfo.ProcessId, 0, _MySqlCon);
if (_ProcessInfo.Id > 0)
{
_askleaveInfo.UserId = _User.Id;
_askleaveInfo.TimeStart = Convert.ToDateTime(_PostDate["TimeStart"].ToString());
_askleaveInfo.TimeEnd = Convert.ToDateTime(_PostDate["TimeEnd"].ToString());
_askleaveInfo.Info =_PostDate["Info"].ToString();
if (MyPage_Tool.Get_Description(_askleaveInfo.Info).Length >= 5)
{
_askleaveInfo.AuditUserId = _ProcessInfo.UserId;
_askleaveInfo.ProcessInfoId = _ProcessInfo.Id;
_askleaveInfo.SysTime = DateTime.Now;
_askleaveInfo.Status = 0;
if (_askleaveInfo.Add(_MySqlCon))
{
_askleaveInfo.Get_OfUserAndDateTime(_askleaveInfo.UserId, _askleaveInfo.SysTime, _MySqlCon);


Set_AskLeaveData(_askleaveInfo, _MySqlCon);
return "1";
}
else
{
return "0";
}
}
else {
return "请假理由字数小于5";
}
}{
return "部门审批人为空";
}
}
else {
return "流程ID为空";
}

}
#region 判断日期
public static void Set_AskLeaveData(Obj_AskLeave.AskLeaveInfo _askleaveInfo, MySqlConnection _MySqlCon)
{

string[] _PageDates = _askleaveInfo.TimeStart.ToString().Split(',');

Obj_AskLeave.DateInfo _Dateinfo = new Obj_AskLeave.DateInfo();


foreach (string skey in _PageDates)
{
try
{
string[] _DataInfos = skey.Split('|');
if (_Dateinfo.UserId <= 0)
{
_Dateinfo.Date = Convert.ToDateTime(_DataInfos[0]);
_Dateinfo.UserId = _askleaveInfo.UserId;
_Dateinfo.AskleaveId = _askleaveInfo.Id;
}
else
{
if (_Dateinfo.Date.ToString("yyyy-MM-dd") != _DataInfos[0])
{
__AddAskLeaveData(_Dateinfo, _askleaveInfo, _MySqlCon);
_Dateinfo = new Obj_AskLeave.DateInfo();
_Dateinfo.Date = Convert.ToDateTime(_DataInfos[0]);
_Dateinfo.UserId = _askleaveInfo.UserId;
_Dateinfo.AskleaveId = _askleaveInfo.Id;
}
}


if (_DataInfos[1] == "AM")
_Dateinfo.AM = 1;
if (_DataInfos[1] == "PM")
_Dateinfo.PM = 1;
}
catch { }
}


__AddAskLeaveData(_Dateinfo, _askleaveInfo, _MySqlCon);
_askleaveInfo.TimeStart = Convert.ToDateTime(MyData_MySql.Execute_Scalar("SELECT Min(Date) FROM dailyaffairs_askleavedate WHERE AskleaveId=" + _askleaveInfo.Id, new Hashtable(), _MySqlCon));
_askleaveInfo.TimeEnd = Convert.ToDateTime(MyData_MySql.Execute_Scalar("SELECT Max(Date) FROM dailyaffairs_askleavedate WHERE AskleaveId=" + _askleaveInfo.Id, new Hashtable(), _MySqlCon));
_askleaveInfo.Edit(_MySqlCon);

}

public static void __AddAskLeaveData(Obj_AskLeave.DateInfo _Dateinfo, Obj_AskLeave.AskLeaveInfo _askleaveInfo, MySqlConnection _MySqlCon)
{

if (_Dateinfo.AM > 0)
_askleaveInfo.TimeLength++;
if (_Dateinfo.PM > 0)
_askleaveInfo.TimeLength++;

if (_Dateinfo.AM > 0 && _Dateinfo.PM > 0)
_askleaveInfo.TimeInfo = _askleaveInfo.TimeInfo + "【" + _Dateinfo.Date.ToString("MM-dd") + "/" + MyTool.Get_DayOfWeekOfData(_Dateinfo.Date) + "】";
else if (_Dateinfo.AM > 0)
_askleaveInfo.TimeInfo = _askleaveInfo.TimeInfo + "【" + _Dateinfo.Date.ToString("MM-dd") + "/" + MyTool.Get_DayOfWeekOfData(_Dateinfo.Date) + "/上午】";
else if (_Dateinfo.PM > 0)
_askleaveInfo.TimeInfo = _askleaveInfo.TimeInfo + "【" + _Dateinfo.Date.ToString("MM-dd") + "/" + MyTool.Get_DayOfWeekOfData(_Dateinfo.Date) + "/下午】";

_Dateinfo.Add(_MySqlCon);
}
-------------这是电脑端的 --------
#region 获取选择的请假时间
try
{
_PageDate = Request.Params["Check_Date"].ToString();
}
catch { }

if (_PageDate == "")
{
MyPage_JavaScript.Alert("请选择请假时间!", this);
return;
}

#endregion

Obj_Process.Process _Process = new Obj_Process.Process();
_Process.Get(DropDownList_Process.SelectedValue, _MySqlCon);
if (_Process.Id <= 0)
{
MyPage_JavaScript.Alert("请选择审批流程!", this);
return;
}
_AskLeaveInfo.ProcessId = _Process.Id;
Obj_Process.ProcessInfo _ProcessInfo = new Obj_Process.ProcessInfo();
_ProcessInfo = Obj_Process.Process.Get_ProcessNextSPInfo(_Process.Id, 0, _MySqlCon);
if (_ProcessInfo.Id <= 0)
{
MyPage_JavaScript.Alert("请选择审批流程!", this);
return;
}

_AskLeaveInfo.ProcessInfoId = _ProcessInfo.Id;
_AskLeaveInfo.AuditUserId = _ProcessInfo.UserId;
_AskLeaveInfo.Info = FCK_Info.Value;
if (MyPage_Tool.Get_Description(_AskLeaveInfo.Info).Length < 5)
{
MyPage_JavaScript.Alert("原因不能少于5个字!", this);
return;
}

_AskLeaveInfo.Status = 0;
_AskLeaveInfo.SysTime = DateTime.Now;
_AskLeaveInfo.UserId = _User.Id;
if (_AskLeaveInfo.Add(_MySqlCon))
{
//_AskLeaveInfo.Get_OfUserAndDateTime(_AskLeaveInfo.UserId, _AskLeaveInfo.SysTime, _MySqlCon);
Set_AskLeaveData();
#region 创建消息
Obj_Sys.MsgInfo.Set_MsgStatus(_AskLeaveInfo.AuditUserId, Obj_Sys.MsgInfo.MsgStatus.t21, _AskLeaveInfo.Id, 0, _MySqlCon);
#endregion
MyPage_JavaScript.AlertAndRedirect("添加成功!", "AskLeave_List.aspx");
}
else
MyPage_JavaScript.Alert("添加失败!", this);
}

private void Set_AskLeaveData()
{
string[] _PageDates = _PageDate.Split(',');
Obj_AskLeave.DateInfo _Dateinfo = new Obj_AskLeave.DateInfo();
foreach (string skey in _PageDates)
{
try
{
string[] _DataInfos = skey.Split('|');
if (_Dateinfo.UserId <= 0)
{
_Dateinfo.Date = Convert.ToDateTime(_DataInfos[0]);
_Dateinfo.UserId = _AskLeaveInfo.UserId;
_Dateinfo.AskleaveId = _AskLeaveInfo.Id;
}
else
{
if (_Dateinfo.Date.ToString("yyyy-MM-dd") != _DataInfos[0])
{
__AddAskLeaveData(_Dateinfo);
_Dateinfo = new Obj_AskLeave.DateInfo();
_Dateinfo.Date = Convert.ToDateTime(_DataInfos[0]);
_Dateinfo.UserId = _AskLeaveInfo.UserId;
_Dateinfo.AskleaveId = _AskLeaveInfo.Id;
}
}


if (_DataInfos[1] == "AM")
_Dateinfo.AM = 1;
if (_DataInfos[1] == "PM")
_Dateinfo.PM = 1;
}
catch { }
}


__AddAskLeaveData(_Dateinfo);




_AskLeaveInfo.TimeStart = Convert.ToDateTime(MyData_MySql.Execute_Scalar("SELECT Min(Date) FROM dailyaffairs_askleavedate WHERE AskleaveId=" + _AskLeaveInfo.Id, new Hashtable(), _MySqlCon));
_AskLeaveInfo.TimeEnd = Convert.ToDateTime(MyData_MySql.Execute_Scalar("SELECT Max(Date) FROM dailyaffairs_askleavedate WHERE AskleaveId=" + _AskLeaveInfo.Id, new Hashtable(), _MySqlCon));
_AskLeaveInfo.Edit(_MySqlCon);
}

private void __AddAskLeaveData(Obj_AskLeave.DateInfo _Dateinfo)
{
if (_Dateinfo.AM > 0)
_AskLeaveInfo.TimeLength++;
if (_Dateinfo.PM > 0)
_AskLeaveInfo.TimeLength++;

if (_Dateinfo.AM > 0 && _Dateinfo.PM > 0)
_AskLeaveInfo.TimeInfo = _AskLeaveInfo.TimeInfo + "【" + _Dateinfo.Date.ToString("MM-dd") + "/" + MyTool.Get_DayOfWeekOfData(_Dateinfo.Date) + "】";
else if (_Dateinfo.AM > 0)
_AskLeaveInfo.TimeInfo = _AskLeaveInfo.TimeInfo + "【" + _Dateinfo.Date.ToString("MM-dd") + "/" + MyTool.Get_DayOfWeekOfData(_Dateinfo.Date) + "/上午】";
else if (_Dateinfo.PM > 0)
_AskLeaveInfo.TimeInfo = _AskLeaveInfo.TimeInfo + "【" + _Dateinfo.Date.ToString("MM-dd") + "/" + MyTool.Get_DayOfWeekOfData(_Dateinfo.Date) + "/下午】";

_Dateinfo.Add(_MySqlCon);
}
...全文
144 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
那么天涯 2014-10-18
  • 打赏
  • 举报
回复
他只给我讲了讲实现流程,具体怎么做他让我自己想,但是我实在是做不出来,刚入职估计要被开除了。。
bdmh 2014-10-18
  • 打赏
  • 举报
回复
你跟你们电脑端的人去沟通,跟我们沟通没有用,让人家给你讲讲

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧