Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
N
NewParkAPP
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
YONG-LIN SU
NewParkAPP
Commits
e2e0907e
Commit
e2e0907e
authored
Aug 02, 2022
by
YONG-LIN SU
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新增累計頁面
parent
2f612abc
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
404 additions
and
3 deletions
+404
-3
misc.xml
.idea/misc.xml
+1
-0
AndroidManifest.xml
app/src/main/AndroidManifest.xml
+10
-3
FilesFilter.java
app/src/main/java/ecom/android/newparkapp/FilesFilter.java
+38
-0
T02StartActivity.java
...n/java/ecom/android/newparkapp/view/T02StartActivity.java
+12
-0
T03TotalActivity.java
...n/java/ecom/android/newparkapp/view/T03TotalActivity.java
+147
-0
activity_t03_total.xml
app/src/main/res/layout/activity_t03_total.xml
+196
-0
No files found.
.idea/misc.xml
View file @
e2e0907e
...
...
@@ -31,6 +31,7 @@
<entry
key=
"..\:/Users/pp931/Desktop/RD/Projects/NewParkApp/app/src/main/res/layout/activity_t03_cumulative.xml"
value=
"0.34375"
/>
<entry
key=
"..\:/Users/pp931/Desktop/RD/Projects/NewParkApp/app/src/main/res/layout/activity_t03_img_viewer.xml"
value=
"0.34375"
/>
<entry
key=
"..\:/Users/pp931/Desktop/RD/Projects/NewParkApp/app/src/main/res/layout/activity_t03_list_files.xml"
value=
"0.34375"
/>
<entry
key=
"..\:/Users/pp931/Desktop/RD/Projects/NewParkApp/app/src/main/res/layout/activity_t03_total.xml"
value=
"0.34375"
/>
<entry
key=
"..\:/Users/pp931/Desktop/RD/Projects/NewParkApp/app/src/main/res/layout/alert_dialog_t03_cumulative_time.xml"
value=
"0.34375"
/>
<entry
key=
"..\:/Users/pp931/Desktop/RD/Projects/NewParkApp/app/src/main/res/layout/card_view_image_plate_number_item.xml"
value=
"0.34375"
/>
<entry
key=
"..\:/Users/pp931/Desktop/RD/Projects/NewParkApp/app/src/main/res/layout/card_view_list_files_item.xml"
value=
"0.34375"
/>
...
...
app/src/main/AndroidManifest.xml
View file @
e2e0907e
...
...
@@ -27,9 +27,7 @@
android:supportsRtl=
"true"
android:theme=
"@style/Theme.AppCompat.Light.NoActionBar"
tools:targetApi=
"31"
>
<activity
android:name=
".view.T03ListFilesActivity"
android:exported=
"false"
/>
<activity
android:name=
".view.MainActivity"
android:exported=
"true"
>
...
...
@@ -53,6 +51,7 @@
android:exported=
"false"
android:label=
"系統公告"
android:theme=
"@style/Theme.AppCompat.Light"
/>
<activity
android:name=
".view.T02KeyInPlateNumberActivity"
android:exported=
"false"
/>
...
...
@@ -71,9 +70,17 @@
<activity
android:name=
".view.T02SelectUserActivity"
android:exported=
"false"
/>
<activity
android:name=
".view.T03ImgViewerActivity"
android:exported=
"false"
/>
<activity
android:name=
".view.T03TotalActivity"
android:exported=
"false"
android:label=
"累計"
/>
<activity
android:name=
".view.T03ListFilesActivity"
android:exported=
"false"
/>
<provider
android:name=
"androidx.core.content.FileProvider"
...
...
app/src/main/java/ecom/android/newparkapp/FilesFilter.java
0 → 100644
View file @
e2e0907e
package
ecom
.
android
.
newparkapp
;
import
java.io.File
;
import
java.io.FilenameFilter
;
public
class
FilesFilter
implements
FilenameFilter
{
private
boolean
bImgList
;
private
String
szUserId
;
private
String
szDate
;
private
String
szExtended
;
public
FilesFilter
(
String
szId
,
String
szDate
,
String
szExt
,
boolean
bImgList
)
{
this
.
szUserId
=
szId
;
this
.
szDate
=
szDate
;
this
.
szExtended
=
szExt
;
this
.
bImgList
=
bImgList
;
}
public
FilesFilter
(
String
szId
,
String
szExt
,
boolean
bImgList
)
{
this
.
szUserId
=
szId
;
this
.
szExtended
=
szExt
;
this
.
bImgList
=
bImgList
;
}
public
boolean
accept
(
File
dir
,
String
name
)
{
if
(
this
.
bImgList
)
{
return
(
name
.
regionMatches
(
0
,
szUserId
,
0
,
11
)
&&
name
.
endsWith
(
"."
+
szExtended
));
//檢查前11碼
}
else
if
(
szExtended
.
compareTo
(
"jpg"
)
==
0
)
{
return
(
name
.
regionMatches
(
0
,
szUserId
,
0
,
2
)
&&
name
.
endsWith
(
"."
+
szExtended
));
//只檢查前2碼
}
else
if
(
szExtended
.
compareTo
(
".txt"
)
==
0
)
{
return
(
name
.
regionMatches
(
0
,
szUserId
,
0
,
2
)
&&
name
.
endsWith
(
szExtended
));
}
else
{
return
(
name
.
regionMatches
(
1
,
szUserId
,
0
,
2
)
&&
name
.
endsWith
(
"."
+
szExtended
));
}
//return (name.endsWith(".txt"));
}
}
app/src/main/java/ecom/android/newparkapp/view/T02StartActivity.java
View file @
e2e0907e
...
...
@@ -80,6 +80,7 @@ public class T02StartActivity extends AppCompatActivity {
dataBinding
.
btnPhotoCount
.
setOnClickListener
(
v
->
btnPhotoCountOnClicked
());
dataBinding
.
btnCumulativeTime
.
setOnClickListener
(
v
->
btnCumulativeTimeOnClicked
());
dataBinding
.
btnInventory
.
setOnClickListener
(
v
->
btnInventoryOnClicked
());
dataBinding
.
btnMonthlyReport
.
setOnClickListener
(
v
->
btnMonthlyReportOnClicked
());
dataBinding
.
btnStartBack
.
setOnClickListener
(
v
->
{
finish
();});
...
...
@@ -350,4 +351,15 @@ public class T02StartActivity extends AppCompatActivity {
intent
.
setClass
(
this
,
T03ListFilesActivity
.
class
);
inventoryActivityResultLauncher
.
launch
(
intent
);
}
private
void
btnMonthlyReportOnClicked
(){
Intent
intent
=
new
Intent
();
intent
.
setClass
(
this
,
T03TotalActivity
.
class
);
Bundle
bundle
=
new
Bundle
();
bundle
.
putString
(
"USER_ID"
,
String
.
valueOf
(
currentUser
.
id
));
intent
.
putExtras
(
bundle
);
startActivity
(
intent
);
}
}
\ No newline at end of file
app/src/main/java/ecom/android/newparkapp/view/T03TotalActivity.java
0 → 100644
View file @
e2e0907e
package
ecom
.
android
.
newparkapp
.
view
;
import
androidx.appcompat.app.AppCompatActivity
;
import
androidx.databinding.DataBindingUtil
;
import
android.os.Bundle
;
import
android.os.Environment
;
import
android.widget.Toast
;
import
java.io.File
;
import
java.text.SimpleDateFormat
;
import
java.util.Date
;
import
java.util.Locale
;
import
java.util.Objects
;
import
ecom.android.newparkapp.Common
;
import
ecom.android.newparkapp.FilesFilter
;
import
ecom.android.newparkapp.R
;
import
ecom.android.newparkapp.databinding.ActivityT03TotalBinding
;
public
class
T03TotalActivity
extends
AppCompatActivity
{
private
ActivityT03TotalBinding
dataBinding
;
int
nTotalMonth
;
int
nCanceledMonth
;
int
nExpensesMonth
;
double
dTimesMonth
;
@Override
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
dataBinding
=
DataBindingUtil
.
setContentView
(
this
,
R
.
layout
.
activity_t03_total
);
Init
();
}
private
void
Init
()
{
Bundle
bundle
=
this
.
getIntent
().
getExtras
();
if
(
bundle
!=
null
)
{
String
szUserId
=
bundle
.
getString
(
"USER_ID"
);
// 取得當天日期
Date
date
=
new
Date
();
SimpleDateFormat
simpleDateFormat
=
new
SimpleDateFormat
(
"yyyyMMdd"
);
String
szYYMMDD
=
simpleDateFormat
.
format
(
date
);
// 取得存放目錄
String
szTmpPath
=
Environment
.
getExternalStorageDirectory
()
+
getApplication
().
getString
(
R
.
string
.
sysData_path
)
+
szYYMMDD
;
CalcToday
(
szUserId
,
szTmpPath
,
szYYMMDD
,
false
);
CalcMonth
(
szUserId
,
szTmpPath
,
szYYMMDD
);
}
else
{
Toast
.
makeText
(
this
,
"資料異常!"
,
Toast
.
LENGTH_LONG
).
show
();
finish
();
}
}
private
void
CalcToday
(
String
szUserId
,
String
szPath
,
String
szYYMMDD
,
boolean
bMonth
)
{
int
nTotalToday
=
0
;
int
nCanceledToday
=
0
;
int
nExpensesToday
=
0
;
double
dTimesToday
=
0.0
;
boolean
bError
=
false
;
File
fileTemp
=
new
File
(
szPath
);
if
(!
fileTemp
.
isDirectory
())
return
;
if
(
Objects
.
requireNonNull
(
fileTemp
.
listFiles
(
new
FilesFilter
(
szUserId
,
szYYMMDD
,
"txt"
,
false
))).
length
>
0
)
{
for
(
File
file
:
Objects
.
requireNonNull
(
fileTemp
.
listFiles
(
new
FilesFilter
(
szUserId
,
szYYMMDD
,
"txt"
,
false
))))
{
try
{
String
szPathTemp
=
szPath
+
"/"
+
file
.
getName
();
String
[]
arrayCars
=
Common
.
readTXT
(
szPathTemp
,
"\r\n"
);
for
(
int
i
=
0
;
i
<
arrayCars
.
length
;
i
++)
{
bError
=
false
;
String
[]
arrayItem
=
arrayCars
[
i
].
split
(
";"
);
if
(
arrayItem
.
length
<
12
)
continue
;
for
(
int
j
=
0
;
j
<
12
;
++
j
)
{
if
(
arrayItem
[
j
].
length
()
<
1
)
{
bError
=
true
;
break
;
}
}
if
(
bError
)
continue
;
nTotalToday
++;
dTimesToday
+=
Double
.
parseDouble
(
arrayItem
[
10
]);
nExpensesToday
+=
Integer
.
parseInt
(
arrayItem
[
11
]);
if
(
arrayItem
.
length
<
14
)
{
nCanceledToday
+=
0
;
}
else
{
nCanceledToday
+=
(
Integer
.
parseInt
(
arrayItem
[
13
])
>
0
)
?
0
:
1
;
}
}
}
catch
(
Exception
e
)
{
continue
;
}
// nCanceledToday++;
}
if
(!
bMonth
)
{
dataBinding
.
totalbillsTodayTextView
.
setText
(
String
.
valueOf
(
nTotalToday
));
dataBinding
.
totalCanceledTodayTextView
.
setText
(
String
.
valueOf
(
nCanceledToday
));
dataBinding
.
totalTimesTodayTextView
.
setText
(
String
.
valueOf
(
dTimesToday
));
dataBinding
.
totalExpensesTodayTextView
.
setText
(
String
.
valueOf
(
nExpensesToday
));
}
else
{
nTotalMonth
+=
nTotalToday
;
nCanceledMonth
+=
nCanceledToday
;
nExpensesMonth
+=
nExpensesToday
;
dTimesMonth
+=
dTimesToday
;
}
}
}
private
void
CalcMonth
(
String
szUserId
,
String
szPath
,
String
szYYMMDD
)
{
String
szPathMonth
;
nTotalMonth
=
0
;
nCanceledMonth
=
0
;
nExpensesMonth
=
0
;
dTimesMonth
=
0.0
;
for
(
int
i
=
1
;
i
<
32
;
++
i
)
{
szPathMonth
=
String
.
format
(
Locale
.
TAIWAN
,
"%s%02d"
,
szPath
.
substring
(
0
,
szPath
.
length
()
-
2
),
i
);
CalcToday
(
szUserId
,
szPathMonth
,
szYYMMDD
,
true
);
// Toast.makeText(T03_Total.this, szPathMonth, Toast.LENGTH_LONG).show();
}
dataBinding
.
totalbillsMonthTextView
.
setText
(
String
.
valueOf
(
nTotalMonth
));
dataBinding
.
totalCanceledMonthTextView
.
setText
(
String
.
valueOf
(
nCanceledMonth
));
dataBinding
.
totalTimesMonthTextView
.
setText
(
String
.
valueOf
(
dTimesMonth
));
dataBinding
.
totalExpensesMonthTextView
.
setText
(
String
.
valueOf
(
nExpensesMonth
));
}
}
\ No newline at end of file
app/src/main/res/layout/activity_t03_total.xml
0 → 100644
View file @
e2e0907e
<?xml version="1.0" encoding="utf-8"?>
<layout>
<androidx.core.widget.NestedScrollView
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:fillViewport=
"true"
android:paddingStart=
"20dp"
android:paddingTop=
"10dp"
android:paddingEnd=
"10dp"
android:paddingBottom=
"350dp"
tools:context=
".view.T03TotalActivity"
>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:orientation=
"vertical"
>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"50dp"
android:orientation=
"horizontal"
>
<Space
android:id=
"@+id/space6"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
/>
<TextView
android:id=
"@+id/textView18"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
android:gravity=
"center"
android:text=
"本日"
android:textSize=
"21sp"
/>
<TextView
android:id=
"@+id/textView20"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
android:gravity=
"center"
android:text=
"本月"
android:textSize=
"21sp"
/>
</LinearLayout>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"20dp"
android:orientation=
"horizontal"
>
<TextView
android:id=
"@+id/textView8"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
android:gravity=
"center_vertical"
android:text=
"總單數"
android:textSize=
"21sp"
/>
<TextView
android:id=
"@+id/totalbillsToday_textView"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
android:gravity=
"center"
android:text=
"0"
android:textSize=
"21sp"
/>
<TextView
android:id=
"@+id/totalbillsMonth_textView"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
android:gravity=
"center"
android:text=
"0"
android:textSize=
"21sp"
/>
</LinearLayout>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"20dp"
android:orientation=
"horizontal"
>
<TextView
android:id=
"@+id/textView17"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
android:gravity=
"center_vertical"
android:text=
"總時數"
android:textSize=
"21sp"
app:layout_constraintBottom_toTopOf=
"@+id/textView19"
app:layout_constraintEnd_toStartOf=
"@+id/totalTimesToday_textView"
app:layout_constraintHorizontal_bias=
"0.5"
app:layout_constraintHorizontal_weight=
"0.3"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/textView8"
/>
<TextView
android:id=
"@+id/totalTimesToday_textView"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
android:gravity=
"center"
android:text=
"0.0"
android:textSize=
"21sp"
/>
<TextView
android:id=
"@+id/totalTimesMonth_textView"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
android:gravity=
"center"
android:text=
"0.0"
android:textSize=
"21sp"
/>
</LinearLayout>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"20dp"
android:orientation=
"horizontal"
>
<TextView
android:id=
"@+id/textView19"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
android:gravity=
"center_vertical"
android:text=
"總停車費"
android:textSize=
"21sp"
/>
<TextView
android:id=
"@+id/totalExpensesToday_textView"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
android:gravity=
"center"
android:text=
"0"
android:textSize=
"21sp"
/>
<TextView
android:id=
"@+id/totalExpensesMonth_textView"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
android:gravity=
"center"
android:text=
"0"
android:textSize=
"21sp"
/>
</LinearLayout>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"20dp"
android:orientation=
"horizontal"
>
<TextView
android:id=
"@+id/textView16"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
android:gravity=
"center_vertical"
android:text=
"註銷數"
android:textSize=
"21sp"
/>
<TextView
android:id=
"@+id/totalCanceledToday_textView"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
android:gravity=
"center"
android:text=
"0"
android:textSize=
"21sp"
/>
<TextView
android:id=
"@+id/totalCanceledMonth_textView"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
android:gravity=
"center"
android:text=
"0"
android:textSize=
"21sp"
/>
</LinearLayout>
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</layout>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment