예제 #1
0
CDealTime CDealTime::GetCurrentTime()
{
	struct tm *tmNow;
	__time64_t longTime;
	_time64(&longTime);
	tmNow = LOCALTIME_R(&longTime);
	return CDealTime(longTime);
}
예제 #2
0
CDealTime CDealTime::operator +(CDealTime time)
{
	return CDealTime(m_time + time.m_time);
}
예제 #3
0
CDealTime CDealTime::operator -(CDealTime time)
{
	return CDealTime(m_time - time.m_time);
}
	// �����µļ�¼�������ų̼ƻ�����
YK_BOOL InsertWorkSchPlanItem(AMWorkSPtr workID, AMResourceSPtr resourceID, YK_ID srcSelectorID, YK_INT workType,
	YK_TM startTime, YK_TM endTime, YK_DOUBLE srcUsedQuantity,YK_INT modifiedType,YK_ID lockWorkId)
{
#ifdef WORKSEQUENCEOUTPUT
	YK_ID resId = resourceID.GetID();
	YK_ID workId = workID.GetID();
	char buf[1024];
	sprintf_s(buf,"workId:%d  resourceID:%d workType:%d startTime: %S  endTime: %S ",
		workId, resId, workType,
		TOOLS::FormatTime(CDealTime(startTime)).c_str()
		,TOOLS::FormatTime(CDealTime(endTime)).c_str());
	TimeLog::WriteLog(buf);
#endif
	if(startTime == endTime || startTime<=0 || endTime<=0
		|| startTime == LLONG_MAX || endTime == LLONG_MAX)
		return false;
	CLOCK_MARK_BEGIN(T_InsertWorkSchPlanItem);
	//�޸ı�־����
	switch(g_Application.GetModule<SBHModel>()->GetCurSchMethod())
	{
	case SM_OVERTIME:	//�Ӱ�
		modifiedType = -3;
		break;
	case SM_VIRTUAL:	//����
		modifiedType = -1;
		break;
	case SM_FORCE:		//ǿ��
		modifiedType = -2;
		break;
	default:
		break;
	}

	YK_BOOL response = false;
	YKWorkSchPlanSPtr pNewWorkPlanItem = g_Application.Get<YKMapWorkSchPlan>()->CreateObj();
	if(pNewWorkPlanItem.ValidObj())
	{
		if (workID.ValidObj())
			pNewWorkPlanItem->SetWork(workID.GetValue());
		else
			pNewWorkPlanItem->SetWork(YK_NULL);

		if (resourceID.ValidObj())
			pNewWorkPlanItem->SetResource(resourceID.GetValue());
		else
			pNewWorkPlanItem->SetResource(YK_NULL);

		pNewWorkPlanItem->SetResSelector(srcSelectorID);
		pNewWorkPlanItem->SetType(workType);
		pNewWorkPlanItem->SetStartTime(startTime);
		pNewWorkPlanItem->SetEndTime(endTime);
		pNewWorkPlanItem->SetResCapacity(srcUsedQuantity);
		pNewWorkPlanItem->SetNxtWorkId(lockWorkId);
		//���ų̼ƻ���Ϣ����work�������ָ����
		if (workID.ValidObj())
			workID.SetSchPlanList(pNewWorkPlanItem);

		response = true;
	}
	CLOCK_MARK(T_InsertWorkSchPlanItem);
	return response;
}