Merge pull request #61 from witelgroup/feature/ManageReportSafty
change structure report in safty and privecy
This commit is contained in:
@@ -17,9 +17,10 @@ use Symfony\Component\HttpFoundation\BinaryFileResponse;
|
||||
class AccessRoadActivityController extends Controller
|
||||
{
|
||||
use ApiResponse;
|
||||
|
||||
public function countryActivity(Request $request, OperatorService $operatorService): JsonResponse
|
||||
{
|
||||
$data = $operatorService->countryActivity(90);
|
||||
$data = $operatorService->countryActivity(90, $request);
|
||||
|
||||
return $this->successResponse([
|
||||
'activities' => $data,
|
||||
@@ -31,8 +32,8 @@ class AccessRoadActivityController extends Controller
|
||||
{
|
||||
|
||||
$data = $operatorService->provinceActivity(
|
||||
info_id: 90,
|
||||
province_id: $request->input('province_id')
|
||||
$request,
|
||||
90,
|
||||
);
|
||||
|
||||
return $this->successResponse([
|
||||
@@ -42,7 +43,7 @@ class AccessRoadActivityController extends Controller
|
||||
}
|
||||
public function countryExcelActivity(Request $request, OperatorService $operatorService): BinaryFileResponse
|
||||
{
|
||||
$data = $operatorService->countryActivity(90);
|
||||
$data = $operatorService->countryActivity(90, $request);
|
||||
$name = 'گزارش نگهداری حریم راه برای راه دسترسی غیر مجاز ' . verta()->now()->format('Y-m-d H-i') . '.xlsx';
|
||||
return Excel::download(new ExcelReport($data), $name);
|
||||
}
|
||||
@@ -50,8 +51,8 @@ class AccessRoadActivityController extends Controller
|
||||
public function provinceExcelActivity(Request $request, OperatorService $operatorService): BinaryFileResponse
|
||||
{
|
||||
$data = $operatorService->provinceActivity(
|
||||
info_id: 90,
|
||||
province_id: $request->input('province_id')
|
||||
$request,
|
||||
90,
|
||||
);
|
||||
$name = 'گزارش نگهداری حریم راه برای راه دسترسی غیر مجاز ' . verta()->now()->format('Y-m-d H-i') . '.xlsx';
|
||||
return Excel::download(new AccessRoadReport($data, $request), $name);
|
||||
|
||||
@@ -20,7 +20,7 @@ class ConstructionActivityController extends Controller
|
||||
use ApiResponse;
|
||||
public function countryActivity(Request $request, OperatorService $operatorService): JsonResponse
|
||||
{
|
||||
$data = $operatorService->countryActivity(89);
|
||||
$data = $operatorService->countryActivity(89, $request);
|
||||
|
||||
return $this->successResponse([
|
||||
'activities' => $data,
|
||||
@@ -30,8 +30,8 @@ class ConstructionActivityController extends Controller
|
||||
public function provinceActivity(Request $request, OperatorService $operatorService,): JsonResponse
|
||||
{
|
||||
$data = $operatorService->provinceActivity(
|
||||
info_id: 89,
|
||||
province_id: $request->input('province_id')
|
||||
$request,
|
||||
89,
|
||||
);
|
||||
|
||||
return $this->successResponse([
|
||||
@@ -46,7 +46,7 @@ class ConstructionActivityController extends Controller
|
||||
*/
|
||||
public function countryExcelActivity(Request $request, OperatorService $operatorService): BinaryFileResponse
|
||||
{
|
||||
$data = $operatorService->countryActivity(89);
|
||||
$data = $operatorService->countryActivity(89, $request);
|
||||
$name = ' گزارش نگهداری حریم راه برای ساخت و ساز غیر مجاز' . verta()->now()->format('Y-m-d H-i') . '.xlsx';
|
||||
|
||||
return Excel::download(new ExcelReport($data), $name);
|
||||
@@ -59,8 +59,8 @@ class ConstructionActivityController extends Controller
|
||||
public function provinceExcelActivity(Request $request, OperatorService $operatorService): BinaryFileResponse
|
||||
{
|
||||
$data = $operatorService->provinceActivity(
|
||||
info_id: 89,
|
||||
province_id: $request->input('province_id')
|
||||
$request,
|
||||
89,
|
||||
);
|
||||
$name = ' گزارش نگهداری حریم راه برای ساخت و ساز غیر مجاز' . verta()->now()->format('Y-m-d H-i') . '.xlsx';
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ class UtilityPassingActivityController extends Controller
|
||||
|
||||
public function countryActivity(Request $request, OperatorService $operatorService): JsonResponse
|
||||
{
|
||||
$data = $operatorService->countryActivity(91);
|
||||
$data = $operatorService->countryActivity(91, $request);
|
||||
|
||||
return $this->successResponse([
|
||||
'activities' => $data,
|
||||
@@ -30,8 +30,8 @@ class UtilityPassingActivityController extends Controller
|
||||
public function provinceActivity(Request $request, OperatorService $operatorService): JsonResponse
|
||||
{
|
||||
$data = $operatorService->provinceActivity(
|
||||
info_id: 91,
|
||||
province_id: $request->input('province_id')
|
||||
$request,
|
||||
91,
|
||||
);
|
||||
|
||||
return $this->successResponse([
|
||||
@@ -41,7 +41,7 @@ class UtilityPassingActivityController extends Controller
|
||||
}
|
||||
public function countryExcelActivity(Request $request, OperatorService $operatorService): BinaryFileResponse
|
||||
{
|
||||
$data = $operatorService->countryActivity(91);
|
||||
$data = $operatorService->countryActivity(91, $request);
|
||||
|
||||
$name = 'گزارش نگهداری حریم راه برای عبور تاسیسات زیربنایی غیر مجاز ' . verta()->now()->format('Y-m-d H-i') . '.xlsx';
|
||||
return Excel::download(new ExcelReport($data), $name);
|
||||
@@ -50,8 +50,8 @@ class UtilityPassingActivityController extends Controller
|
||||
public function provinceExcelActivity(Request $request, OperatorService $operatorService): BinaryFileResponse
|
||||
{
|
||||
$data = $operatorService->provinceActivity(
|
||||
info_id: 91,
|
||||
province_id: $request->input('province_id')
|
||||
$request,
|
||||
91,
|
||||
);
|
||||
$name = 'گزارش نگهداری حریم راه برای عبور تاسیسات زیربنایی غیر مجاز ' . verta()->now()->format('Y-m-d H-i') . '.xlsx';
|
||||
|
||||
|
||||
@@ -34,8 +34,38 @@ class OperatorService
|
||||
);
|
||||
}
|
||||
|
||||
public function countryActivity(int $info_id): array
|
||||
public function countryActivity(int $info_id, Request $request): array
|
||||
{
|
||||
$params = [
|
||||
'infoId' => $info_id,
|
||||
];
|
||||
|
||||
$dateFields = [
|
||||
'created_at',
|
||||
'activity_date_time',
|
||||
'judiciary_document_upload_date',
|
||||
'action_date',
|
||||
];
|
||||
|
||||
|
||||
foreach ($dateFields as $field) {
|
||||
$params["{$field}_from"] = null;
|
||||
$params["{$field}_to"] = null;
|
||||
$params["{$field}_from_2"] = null;
|
||||
$params["{$field}_to_2"] = null;
|
||||
}
|
||||
|
||||
foreach (json_decode($request->filters, true) as $filter) {
|
||||
if ($filter['fn'] === "between")
|
||||
{
|
||||
$field = $filter['id'];
|
||||
$params["{$field}_from"] = $filter['value'][0] . ' 00:00:00';
|
||||
$params["{$field}_to"] = $filter['value'][1] . ' 23:59:59';
|
||||
$params["{$field}_from_2"] = $filter['value'][0] . ' 00:00:00';
|
||||
$params["{$field}_to_2"] = $filter['value'][1] . ' 23:59:59';
|
||||
}
|
||||
}
|
||||
|
||||
return DB::select("
|
||||
WITH base AS (
|
||||
SELECT
|
||||
@@ -51,6 +81,21 @@ class OperatorService
|
||||
ON t.province_id = p.id
|
||||
AND t.axis_type_id = a.id
|
||||
AND t.info_id = :infoId
|
||||
AND (
|
||||
(:created_at_from IS NULL OR :created_at_to IS NULL)
|
||||
OR t.created_at BETWEEN :created_at_from_2 AND :created_at_to_2)
|
||||
AND (
|
||||
(:activity_date_time_from IS NULL OR :activity_date_time_to IS NULL)
|
||||
OR t.activity_date_time BETWEEN :activity_date_time_from_2 AND :activity_date_time_to_2
|
||||
)
|
||||
AND (
|
||||
(:judiciary_document_upload_date_from IS NULL OR :judiciary_document_upload_date_to IS NULL)
|
||||
OR t.judiciary_document_upload_date BETWEEN :judiciary_document_upload_date_from_2 AND :judiciary_document_upload_date_to_2
|
||||
)
|
||||
AND (
|
||||
(:action_date_from IS NULL OR :action_date_to IS NULL)
|
||||
OR t.action_date BETWEEN :action_date_from_2 AND :action_date_to_2
|
||||
)
|
||||
GROUP BY p.id, a.id
|
||||
)
|
||||
SELECT
|
||||
@@ -83,13 +128,44 @@ class OperatorService
|
||||
|
||||
ORDER BY province_id, axis_type_id
|
||||
|
||||
", [
|
||||
'infoId' => $info_id,
|
||||
]);
|
||||
",$params);
|
||||
}
|
||||
|
||||
public function provinceActivity(int $info_id, int $province_id): array
|
||||
public function provinceActivity(Request $request, int $info_id): array
|
||||
{
|
||||
$params = [
|
||||
'infoId' => $info_id,
|
||||
];
|
||||
|
||||
$dateFields = [
|
||||
'created_at',
|
||||
'activity_date_time',
|
||||
'judiciary_document_upload_date',
|
||||
'action_date',
|
||||
];
|
||||
|
||||
|
||||
foreach ($dateFields as $field) {
|
||||
$params["{$field}_from"] = NULL;
|
||||
$params["{$field}_to"] = NULL;
|
||||
$params["{$field}_from_2"] = NULL;
|
||||
$params["{$field}_to_2"] = NULL;
|
||||
}
|
||||
|
||||
foreach (json_decode($request->filters, true) as $filter) {
|
||||
if ($filter['fn'] === "between")
|
||||
{
|
||||
$field = $filter['id'];
|
||||
$params["{$field}_from"] = $filter['value'][0] . ' 00:00:00';
|
||||
$params["{$field}_to"] = $filter['value'][1] . ' 23:59:59';
|
||||
$params["{$field}_from_2"] = $filter['value'][0] . ' 00:00:00';
|
||||
$params["{$field}_to_2"] = $filter['value'][1] . ' 23:59:59';
|
||||
}
|
||||
if ($filter['id'] === "province_id")
|
||||
{
|
||||
$params["provinceId"] = $filter['value'];
|
||||
}
|
||||
}
|
||||
|
||||
return DB::select("
|
||||
WITH edareh_data AS (
|
||||
SELECT
|
||||
@@ -105,6 +181,21 @@ class OperatorService
|
||||
ON e.id = t.edare_shahri_id
|
||||
AND t.axis_type_id = a.id
|
||||
AND t.info_id = :infoId
|
||||
AND (
|
||||
(:created_at_from IS NULL OR :created_at_to IS NULL)
|
||||
OR t.created_at BETWEEN :created_at_from_2 AND :created_at_to_2)
|
||||
AND (
|
||||
(:activity_date_time_from IS NULL OR :activity_date_time_to IS NULL)
|
||||
OR t.activity_date_time BETWEEN :activity_date_time_from_2 AND :activity_date_time_to_2
|
||||
)
|
||||
AND (
|
||||
(:judiciary_document_upload_date_from IS NULL OR :judiciary_document_upload_date_to IS NULL)
|
||||
OR t.judiciary_document_upload_date BETWEEN :judiciary_document_upload_date_from_2 AND :judiciary_document_upload_date_to_2
|
||||
)
|
||||
AND (
|
||||
(:action_date_from IS NULL OR :action_date_to IS NULL)
|
||||
OR t.action_date BETWEEN :action_date_from_2 AND :action_date_to_2
|
||||
)
|
||||
WHERE e.province_id = :provinceId
|
||||
GROUP BY e.id, a.id
|
||||
)
|
||||
@@ -137,9 +228,6 @@ class OperatorService
|
||||
GROUP BY axis_type_id
|
||||
|
||||
ORDER BY edare_id , axis_type_id
|
||||
", [
|
||||
'provinceId' => $province_id,
|
||||
'infoId' => $info_id,
|
||||
]);
|
||||
", $params);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user