headers: {
"content-type": "application/x-www-form-urlencoded",
"cache-control": "no-cache"
}
data: {
"grant_type": "password",
"username": "username",
"password": "password"
}
OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
RequestBody body = RequestBody.create(mediaType, "grant_type=password&username=username&password=password");
Request request = new Request.Builder()
.url("http://armandar.com/api/v1/login")
.post(body)
.addHeader("content-type", "application/x-www-form-urlencoded")
.addHeader("cache-control", "no-cache")
.build();
Response response = client.newCall(request).execute();
HttpResponse<String> response = Unirest.post("http://armandar.com/api/v1/login")
.header("content-type", "application/x-www-form-urlencoded")
.header("cache-control", "no-cache")
.body("grant_type=password&username=username&password=password")
.asString();
{
"error": "invalid_grant",
"error_description": "نام کاربری یا کلمه عبور اشتباه است."
}
{
"access_token": "r0WYlR82ArN5PnrM6wg............",
"token_type": "bearer",
"expires_in": 12959999,
"userName": "username",
".issued": "Tue, 14 Feb 2017 14:07:57 GMT",
".expires": "Fri, 14 Jul 2017 14:07:57 GMT"
}
headers: {
"authorization": "Bearer gyXOAl0G4lg5LQYDa-py4JyHcCaaChlYODpdwu1e8zKT05N...."
}
Bearer {space} {access_token}
{
"Message": "Authorization has been denied for this request."
}
[
{
"Count": 8397,
"Title": "مجموع",
"Url": "#",
"Order": 0,
"CanClick":false,
"EnTitle": "Count"
},
{
"Count": 235,
"Title": "پروژه ها با درصد انحراف بالا",
"Url": "#",
"Order": 1,
"CanClick":false,
"EnTitle": "AlertCount"
},
{
"Count": 101,
"Title": "پروژه های بدون مرحله",
"Url": "/Shared/Alarm/ProjectStepIssue",
"Order": 2,
"CanClick":false,
"EnTitle": "ProjectStepIssueCount"
},
{
"Count": 29,
"Title": "فاکتور وزنی مراحل پروژه",
"Url": "/Shared/Alarm/ProjectWFIssue",
"Order": 3,
"CanClick":false,
"EnTitle": "ProjectWFIssueCount"
},
{
"Count": 2241,
"Title": "مستندات مراحل پروژه",
"Url": "/Shared/Alarm/ProjectFileIssue",
"Order": 4,
"CanClick":false,
"EnTitle": "ProjectFileIssueCount"
},
{
"Count": 2792,
"Title": "لینک پروژه به چالش",
"Url": "/Shared/Alarm/ProjectChallengeIssue",
"Order": 5,
"CanClick":false,
"EnTitle": "ProjectChallengeIssueCount"
},
{
"Count": 2951,
"Title": "لینک پروژه به اهداف",
"Url": "/Shared/Alarm/ProjectGoalIssue",
"Order": 6,
"CanClick":false,
"EnTitle": "ProjectGoalIssueCount"
},
{
"Count": 0,
"Title": "اخبار جدید",
"Url": "/Administration/News",
"Order": 7,
"CanClick":false,
"EnTitle": "NewNewsCount"
},
{
"Count": 48,
"Title": "پروژه های متوقف شده",
"Url": "#",
"Order": 8,
"CanClick":false,
"EnTitle": "StopedProjectCount"
}
]
از Url میتوانید برای ارسال کاربر به صفحه مربوطه که در سامانه موجود است استفاده کنید.
یک به روزرسانی انجام شده و خاصیت CanClick نیز در نتایج اضافه شدهاست که برای نمایش این است که کاربر روی آیتم مورد نظر میتواند کلید کند یا نه. پس از کلیک بر روی آن باید لیستی از پروژههای مربوطه نمایش داده شود که اطلاعات مربوط به alerttype آن از طریق خاصیت EnTitle دریافت میشود. برای نمایش پروژهها از از نسخه دوم api مربوط به پروژهها باید استفاده کنید. در ضمن مانند لیست قبلی با کلیک بر روی دکمه مقابل هر پروژه باید لیست فعالیتهای آن را نیز ببیند. تفاوت این لیست با لیست قبلی در این است که پیشرفتهای زیر پروژهها نمایش داده نمیشود ولی بقیه موارد مثل قبلی است. نسخه دوم api پروژه
default: University
default:1
default: 10
default: ""
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("http://armandar.com/api/v1/gauges/1395/Univertsity/1/10/گیلان")
.get()
.addHeader("authorization", "Bearer gyXOAl0G4lg5LQYDa....")
.addHeader("cache-control", "no-cache")
.build();
Response response = client.newCall(request).execute();
[
{
"Id" = 12,
"Value": 40.66,
"ScheduleValue": 97.5,
"YearId": 1395,
"DeviationFactor": -56.84,
"OldScheduleValue": 0,
"HeadOrganizationChartId": 69,
"Title": "گیلان"
}
]
Title: عنوان
Value: پیشرفت واقعی
ScheduleValue: پیشرفت برنامهای
DeviationFactor: میرزان انحراف
گیجها در نسخه دوم به صورت زیر مجموعهای نمایش داده میشوند. یعنی در صفحه اصلی روی گیجها که کلیک میکند داخل شده و تعدادی گیج برای زیر مجموعههای آنها نمایش دادهمیشود. به همین صورت در گیجهای داخلی روی هر کدام که کلیک میکند زیرمجموعههای سطح دوم که آخرین سطح است نمایش دادهمیشود.
اگر روی گیجی کلیک کرد که زیر مجموعه نداشت به صورت toast نمایش دهید که زیرمجموعهای وجود ندارد در غیر این صورت زیرمجموعهها را نمایش دهید.
در زیرمجموعههای جستجو و صفحهبندی نداریم.
توجه: اگر مقدار این پارامتر چیزی به جز مقدار پیشفرض یا ۱ باشد جستجو و صفحه بندی روی نتیجه تاثیری نخواهد داشت. به این دلیل که تعداد زیرمجموعهها مهمولا کمتر ۱۰-۲۰ آیتم آست.
default: 1
default:1
default: 10
default: ""
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("http://armandar.com/api/v۲/gauges/1395/1/1/10/گیلان")
.get()
.addHeader("authorization", "Bearer gyXOAl0G4lg5LQYDa....")
.addHeader("cache-control", "no-cache")
.build();
Response response = client.newCall(request).execute();
[
{
"Id" = 12, //برای دریافت زیرمجموعهها از این Id استفاده کنید.
"Value": 40.66,
"ScheduleValue": 97.5,
"YearId": 1395,
"DeviationFactor": -56.84,
"OldScheduleValue": 0,
"HeadOrganizationChartId": 69,
"Title": "گیلان"
}
]
Title: عنوان
Value: پیشرفت واقعی
ScheduleValue: پیشرفت برنامهای
DeviationFactor: میرزان انحراف
default:1
default: 10
default: ""
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("http://armandar.com/api/v1/projects/1395/1/10/گیلان")
.get()
.addHeader("authorization", "Bearer gyXOAl0G4lg5LQYDa....")
.addHeader("cache-control", "no-cache")
.build();
Response response = client.newCall(request).execute();
[
{
"Id": 2317,
"Code": "P95-002317",
"Title": "تست ۱",
"OrganizationChartId": 690809,
"OrganizationChartTitle": "گیلان",
"StatusId": 2,
"StatusTitle": "در حال انجام",
"ScheduleValue": 98.76,
"Value": 86,
"YearId": 1395,
"DeviationFactor": -12.76
},
{
"Id": 2371,
"Code": "P95-002371",
"Title": "تست ۲",
"OrganizationChartId": 690809,
"OrganizationChartTitle": "گیلان",
"StatusId": 2,
"StatusTitle": "در حال انجام",
"ScheduleValue": 99.75,
"Value": 60,
"YearId": 1395,
"DeviationFactor": -39.75
},...
]
Title: عنوان
Code: کد (حتماً کد را هم نمایش دهید)
OrganizationChartTitle: نام دانشگاه یا واحد
Value: پیشرفت واقعی
ScheduleValue: پیشرفت برنامهای
DeviationFactor: میرزان انحراف
StatusTitle: وضعیت
تذکر: ابتدا به روز رسانی مربوط به Alert را بخوانید.
جهت نمایش پروژهها از این بخش استفاده کنید. تمام اطلاعات مانند ورژن اول میباشد. تنها یک آپشن جدید alerttype جهت نمایش پروژههای مربوط به هشدارها اضافه شدهاست.
default:1
default: 10
نکته: دقت کنید که حتماً مقدار CanClick آیتم کلیک شده برابر با true باشد.
جهت اطمینان مقادیر مجاز برای alerttype که مقدار null بر نمیگرداند به شرح زیر است.
- AlertCount
- ProjectStepIssueCount
- ProjectWFIssueCount
- ProjectChallengeIssueCount
- ProjectGoalIssueCount
- و مقدار خالی که عملکرد آن مشابه نسخه اول این متد خواهد شد.
default: ""
default: ""
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("http://armandar.com/api/v2/projects/1395/1/10/AlertCount/گیلان")
.get()
.addHeader("authorization", "Bearer gyXOAl0G4lg5LQYDa....")
.addHeader("cache-control", "no-cache")
.build();
Response response = client.newCall(request).execute();
[
{
"Id": 2317,
"Code": "P95-002317",
"Title": "تست ۱",
"OrganizationChartId": 690809,
"OrganizationChartTitle": "گیلان",
"StatusId": 2,
"StatusTitle": "در حال انجام",
"ScheduleValue": 98.76,
"Value": 86,
"YearId": 1395,
"DeviationFactor": -12.76,
"Year": 1396,
"ScheduleStartDate": "2017-03-21T00:00:00",
"ScheduleStartDateString": "1396/01/01",
"ScheduleEndDate": "2017-10-22T00:00:00",
"ScheduleEndDateString": "1396/07/30",
"ActualStartDate": null,
"ActualStartDateString": "",
"ActualEndDate": null,
"ActualEndDateString": "",
"ExecutionTypeId": null,
"ExecutionTypeTitle": null,
"Budget": null,
"BudgetAllocationTypeId": null,
"BudgetAllocationTypeTitle": null,
"BudgetFundingTypeId": null,
"BudgetFundingTypeTitle": null,
"AssignedMembers": "دانشگاه تبریز (tabriz)",
"Description": null
},
{
"Id": 2371,
"Code": "P95-002371",
"Title": "تست ۲",
"OrganizationChartId": 690809,
"OrganizationChartTitle": "گیلان",
"StatusId": 2,
"StatusTitle": "در حال انجام",
"ScheduleValue": 99.75,
"Value": 60,
"YearId": 1395,
"DeviationFactor": -39.75,
"Year": 1396,
"ScheduleStartDate": "2017-03-21T00:00:00",
"ScheduleStartDateString": "1396/01/01",
"ScheduleEndDate": "2017-10-22T00:00:00",
"ScheduleEndDateString": "1396/07/30",
"ActualStartDate": null,
"ActualStartDateString": "",
"ActualEndDate": null,
"ActualEndDateString": "",
"ExecutionTypeId": null,
"ExecutionTypeTitle": null,
"Budget": null,
"BudgetAllocationTypeId": null,
"BudgetAllocationTypeTitle": null,
"BudgetFundingTypeId": null,
"BudgetFundingTypeTitle": null,
"AssignedMembers": "دانشگاه تبریز (tabriz)",
"Description": null
},...
]
Title: عنوان
Code: کد (حتماً کد را هم نمایش دهید)
OrganizationChartTitle: نام دانشگاه یا واحد
Value: پیشرفت واقعی
ScheduleValue: پیشرفت برنامهای
DeviationFactor: میرزان انحراف
StatusTitle: وضعیت
Year: سال کاری
ScheduleStartDate: تاریخ شروع برنامهای
ScheduleStartDateString: تاریخ شمسی شروع برنامهای
ScheduleEndDate: تاریخ پایان برنامهای
ScheduleEndDateString: تاریخ شمسی پایان برنامهای
ActualStartDate: تاریخ شروع واقعی
ActualStartDateString: تاریخ شمسی شروع واقعی
ActualEndDate: تاریخ پایان واقعی
ActualEndDateString: تاریخ شمسی پایان واقعی
ExecutionTypeTitle: نوع اجرا
BudgetAllocationTypeTitle: نحوه تخصیص بودجه
BudgetFundingTypeTitle: محل تامین بودجه
AssignedMembers: واحد مسئول
Description: ضرورت تعریف پروژه
url: armandar.com/api/v3/projects/{year}/{orgchartid}/{page?}/{limit?}/{alerttype?}/{search?} --- method: get
تنها یک orgchartid اضافه شده که با استفاده از آن میتوانید پروژه مربوط به یک چارت سازمانی خاص را نمایش دهید. این متد برای زمانی که کاربر روی یک چارت کلیک میکند که زیرمجموعه ندارد و قرار است پروژههای آن چارت نمایش دادهشود
default:1
default: 10
نکته: دقت کنید که حتماً مقدار CanClick آیتم کلیک شده برابر با true باشد.
جهت اطمینان مقادیر مجاز برای alerttype که مقدار null بر نمیگرداند به شرح زیر است.
- AlertCount
- ProjectStepIssueCount
- ProjectWFIssueCount
- ProjectChallengeIssueCount
- ProjectGoalIssueCount
- و مقدار خالی که عملکرد آن مشابه نسخه اول این متد خواهد شد.
default: ""
default: ""
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("http://armandar.com/api/v3/projects/1395/44/1/10/AlertCount")
.get()
.addHeader("authorization", "Bearer gyXOAl0G4lg5LQYDa....")
.addHeader("cache-control", "no-cache")
.build();
Response response = client.newCall(request).execute();
نتیجه دریافتی به صورت زیر خواهد بود.
[
{
"Id": 9339,
"Code": "P96-009339",
"Title": "تست",
"OrganizationChartId": 440808,
"OrganizationChartTitle": "دانشگاه تبریز",
"StatusId": 2,
"StatusTitle": "در حال انجام",
"ScheduleValue": 94.49,
"Value": 93,
"YearId": 1396,
"DeviationFactor": -1.49,
"Year": 1396,
"ScheduleStartDate": "2017-04-21T00:00:00",
"ScheduleStartDateString": "1396/02/01",
"ScheduleEndDate": "2018-02-19T00:00:00",
"ScheduleEndDateString": "1396/11/30",
"ActualStartDate": null,
"ActualStartDateString": "",
"ActualEndDate": null,
"ActualEndDateString": "",
"ExecutionTypeId": null,
"ExecutionTypeTitle": null,
"Budget": null,
"BudgetAllocationTypeId": null,
"BudgetAllocationTypeTitle": null,
"BudgetFundingTypeId": null,
"BudgetFundingTypeTitle": null,
"AssignedMembers": "دانشگاه تبریز (tabriz)",
"Description": null
},
{
"Id": 9342,
"Code": "P96-009342",
"Title": "تست ",
"OrganizationChartId": 440808,
"OrganizationChartTitle": "دانشگاه تبریز",
"StatusId": 4,
"StatusTitle": "پایان یافته",
"ScheduleValue": 100,
"Value": 100,
"YearId": 1396,
"DeviationFactor": 0,
"Year": 1396,
"ScheduleStartDate": "2017-03-21T00:00:00",
"ScheduleStartDateString": "1396/01/01",
"ScheduleEndDate": "2017-10-22T00:00:00",
"ScheduleEndDateString": "1396/07/30",
"ActualStartDate": null,
"ActualStartDateString": "",
"ActualEndDate": null,
"ActualEndDateString": "",
"ExecutionTypeId": null,
"ExecutionTypeTitle": null,
"Budget": null,
"BudgetAllocationTypeId": null,
"BudgetAllocationTypeTitle": null,
"BudgetFundingTypeId": null,
"BudgetFundingTypeTitle": null,
"AssignedMembers": "دانشگاه تبریز (tabriz)",
"Description": null
},...
]
Title: عنوان
Code: کد (حتماً کد را هم نمایش دهید)
OrganizationChartTitle: نام دانشگاه یا واحد
Value: پیشرفت واقعی
ScheduleValue: پیشرفت برنامهای
DeviationFactor: میرزان انحراف
StatusTitle: وضعیت
Year: سال کاری
ScheduleStartDate: تاریخ شروع برنامهای
ScheduleStartDateString: تاریخ شمسی شروع برنامهای
ScheduleEndDate: تاریخ پایان برنامهای
ScheduleEndDateString: تاریخ شمسی پایان برنامهای
ActualStartDate: تاریخ شروع واقعی
ActualStartDateString: تاریخ شمسی شروع واقعی
ActualEndDate: تاریخ پایان واقعی
ActualEndDateString: تاریخ شمسی پایان واقعی
ExecutionTypeTitle: نوع اجرا
BudgetAllocationTypeTitle: نحوه تخصیص بودجه
BudgetFundingTypeTitle: محل تامین بودجه
AssignedMembers: واحد مسئول
Description: ضرورت تعریف پروژه
با توجه به اینکه تعداد فعالیتها معمولا خیلی زیاد نیست در این بخش ما صفحهبندی نداریم و تمام اطلاعات با یک درخواست قابل دریافت است.
با توجه به اینکه فعالیتها ساختار درختی دارند به جیسان دریافتی دقت نموده و برای نمایش با ساختاری مشابه درختی تدبیری بیندیشید.
default: ""
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("http://armandar.com/api/v1/steps/642")
.get()
.addHeader("authorization", "Bearer gyXOAl0G4lg5LQYDa....")
.addHeader("cache-control", "no-cache")
.build();
Response response = client.newCall(request).execute();
[
{
"Id": 3105,
"ProjectId": 642,
"Title": "بررسی وضعیت موجود و تعداد نیروی انسانی شاغل",
"WeightFactor": 20,
"ParentId": null,
"Level": 1,
"Value": 90,
"ScheduleValue": 0,
"DeviationFactor": 0
},
{
"Id": 31272,
"ProjectId": 642,
"Title": "تست1",
"WeightFactor": 100,
"ParentId": 3105,
"Level": 2,
"Value": 0,
"ScheduleValue": 0,
"DeviationFactor": 0
},
{
"Id": 3106,
"ProjectId": 642,
"Title": "استخراج آخرین استانداردهای نیروی انسانی",
"WeightFactor": 40,
"ParentId": null,
"Level": 1,
"Value": 75,
"ScheduleValue": 0,
"DeviationFactor": 0
},
{
"Id": 3103,
"ProjectId": 642,
"Title": "بررسی و مقایسه وضعیت موجود با استانداردها",
"WeightFactor": 20,
"ParentId": null,
"Level": 1,
"Value": 85,
"ScheduleValue": 0,
"DeviationFactor": 0
},
{
"Id": 3108,
"ProjectId": 642,
"Title": "ارائه راه حل برای جبران کمبودها",
"WeightFactor": 20,
"ParentId": null,
"Level": 1,
"Value": 40,
"ScheduleValue": 0,
"DeviationFactor": 0
},
{
"Id": 31273,
"ProjectId": 642,
"Title": "ururt",
"WeightFactor": 100,
"ParentId": 3108,
"Level": 2,
"Value": 0,
"ScheduleValue": 0,
"DeviationFactor": 0
},
{
"Id": 31274,
"ProjectId": 642,
"Title": "ururt",
"WeightFactor": 80,
"ParentId": 31273,
"Level": 3,
"Value": 80,
"ScheduleValue": 0,
"DeviationFactor": 0
},
{
"Id": 31275,
"ProjectId": 642,
"Title": "تست1",
"WeightFactor": 20,
"ParentId": 31273,
"Level": 3,
"Value": 80,
"ScheduleValue": 0,
"DeviationFactor": 0
}
]
Title: عنوان
Value: پیشرفت
Level: سطح
مقدار Level سطح تو رفتگی را در درخت نمایش خواهد داد.
default:1
default: 10
default: ""
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("http://armandar.com/api/v1/actions/1395")
.get()
.addHeader("authorization", "Bearer gyXOAl0G4lg5LQYDa....")
.addHeader("cache-control", "no-cache")
.build();
Response response = client.newCall(request).execute();
[
{
"Id": 2366,
"Title": "تهیه گزارشهای ماهانه سال 95",
"Code": "A95-002366",
"YearId": 1395,
"OrganizationChartTitle": "معاونت توسعه مدیریت و منابع ",
"Value": 36.84,
"ScheduleValue": 92.62
},
{
"Id": 2707,
"Title": "تهیه و انتشار ماهنامه تست",
"Code": "A95-002707",
"YearId": 1395,
"OrganizationChartTitle": "دانشگاه تهران",
"Value": 62.5,
"ScheduleValue": 90.83
}
]
Title: عنوان
Code: کد (حتماً نمایش داده شود.)
OrganizationChartTitle: نام دانشگاه یا واحد
Value: پیشرفت
ScheduleValue: پیشرفت برنامهای
headers: {
"content-type": "application/x-www-form-urlencoded",
"cache-control": "no-cache",
"Authorization": "Bearer r6iBDo8NCynu8-VON9E924qrom4gA..."
}
data: {
"ProjectStepId": 12, //int
"DatePersian": "1395/01/01", //string
"Progress": 10.25 //double
}
OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
RequestBody body = RequestBody.create(mediaType, "ProjectStepId=12&DatePersian=1395%2F01%2F01&Progress=10.25");
Request request = new Request.Builder()
.url("http://armandar.com/api/v2/saveprogress")
.post(body)
.addHeader("authorization", "Bearer r6iBDo8NCynu8-VON9E924qrom4gA....")
.addHeader("content-type", "application/x-www-form-urlencoded")
.addHeader("cache-control", "no-cache")
.build();
Response response = client.newCall(request).execute();
{
"Id": 0,
"Success": false,
"Message": "برای تاریخ مورد نظر اطلاعات ثبت شده است. لطفا تاریخ را تصحیح نمایید.",
"Data": null
}
{
"Id": 12,
"Success": true,
"Message": "ذخیره اطلاعات با موفقیت انجام شد.",
"Data": {
"NewActualProgress": 22.2,
"NewScheduleProgress": 99.33
}
}