-
33.gitignore
-
745hs_err_pid17268.log
-
735hs_err_pid9124.log
-
259mvnw
-
149mvnw.cmd
-
77pom.xml
-
14src/main/java/com/gcc/publicgrievance/PublicgrievanceApplication.java
-
105src/main/java/com/gcc/publicgrievance/Service/ComplaintService.java
-
47src/main/java/com/gcc/publicgrievance/config/AppConfigur.java
-
15src/main/java/com/gcc/publicgrievance/configuration/AppConfig.java
-
77src/main/java/com/gcc/publicgrievance/configuration/DataSourceConfig.java
-
24src/main/java/com/gcc/publicgrievance/configuration/SecurityConfig.java
-
33src/main/java/com/gcc/publicgrievance/configuration/UserSessionInterceptor.java
-
24src/main/java/com/gcc/publicgrievance/configuration/WebConfig.java
-
123src/main/java/com/gcc/publicgrievance/controller/APIController.java
-
811src/main/java/com/gcc/publicgrievance/controller/ComplaintController.java
-
41src/main/java/com/gcc/publicgrievance/controller/UserController.java
-
20src/main/resources/application-dev.properties
-
27src/main/resources/application-prod.properties
-
1src/main/resources/application.properties
-
BINsrc/main/resources/static/images/Thin broken ring.gif
-
494src/main/resources/static/images/ack.pdf
-
BINsrc/main/resources/static/images/bad-weather.png
-
BINsrc/main/resources/static/images/bt-logo.png
-
BINsrc/main/resources/static/images/change.png
-
BINsrc/main/resources/static/images/chennai.jpg
-
BINsrc/main/resources/static/images/contract.png
-
BINsrc/main/resources/static/images/dog.png
-
BINsrc/main/resources/static/images/egov.jpg
-
BINsrc/main/resources/static/images/gcc.png
-
BINsrc/main/resources/static/images/gcc1.png
-
BINsrc/main/resources/static/images/menu.png
-
BINsrc/main/resources/static/images/message.png
-
BINsrc/main/resources/static/images/minus.png
-
BINsrc/main/resources/static/images/mosquito.png
-
BINsrc/main/resources/static/images/otp.png
-
BINsrc/main/resources/static/images/output-onlinepngtools.png
-
BINsrc/main/resources/static/images/phone-call.png
-
BINsrc/main/resources/static/images/plus.png
-
BINsrc/main/resources/static/images/portable-bathroom.png
-
BINsrc/main/resources/static/images/record.png
-
BINsrc/main/resources/static/images/recycle.png
-
BINsrc/main/resources/static/images/register.png
-
BINsrc/main/resources/static/images/ripon.jpg
-
BINsrc/main/resources/static/images/road.png
-
BINsrc/main/resources/static/images/screenreader.png
-
BINsrc/main/resources/static/images/search.png
-
BINsrc/main/resources/static/images/sewage.png
-
BINsrc/main/resources/static/images/street-lamp.png
-
BINsrc/main/resources/static/images/tamil.jpg
-
BINsrc/main/resources/static/images/tsunami.png
-
BINsrc/main/resources/static/images/waste-bin.png
-
3src/main/resources/static/js/invertcolor.js
-
44src/main/resources/static/js/screenreader.js
-
591src/main/resources/templates/User/home.html
-
0src/main/resources/templates/User/kin.html
-
2432src/main/resources/templates/User/registercomplaints.html
-
615src/main/resources/templates/checklistofficer/checklistofficer.html
-
164src/main/resources/templates/fragments/accessibility.html
-
56src/main/resources/templates/fragments/footer.html
-
73src/main/resources/templates/fragments/header.html
-
258src/main/resources/templates/officer/checkofficerhome.html
-
528src/main/resources/templates/officer/checkofficerstatus.html
-
614src/main/resources/templates/staff/staffcheckstatus.html
-
1538src/main/resources/templates/staff/staffcomplaint.html
-
543src/main/resources/templates/staff/staffhome.html
-
BINuploads/1724728439636_gcc1.png
@ -0,0 +1,33 @@ |
|||
HELP.md |
|||
target/ |
|||
!.mvn/wrapper/maven-wrapper.jar |
|||
!**/src/main/**/target/ |
|||
!**/src/test/**/target/ |
|||
|
|||
### STS ### |
|||
.apt_generated |
|||
.classpath |
|||
.factorypath |
|||
.project |
|||
.settings |
|||
.springBeans |
|||
.sts4-cache |
|||
|
|||
### IntelliJ IDEA ### |
|||
.idea |
|||
*.iws |
|||
*.iml |
|||
*.ipr |
|||
|
|||
### NetBeans ### |
|||
/nbproject/private/ |
|||
/nbbuild/ |
|||
/dist/ |
|||
/nbdist/ |
|||
/.nb-gradle/ |
|||
build/ |
|||
!**/src/main/**/build/ |
|||
!**/src/test/**/build/ |
|||
|
|||
### VS Code ### |
|||
.vscode/ |
|||
@ -0,0 +1,745 @@ |
|||
# |
|||
# There is insufficient memory for the Java Runtime Environment to continue. |
|||
# Native memory allocation (mmap) failed to map 88080384 bytes for G1 virtual space |
|||
# Possible reasons: |
|||
# The system is out of physical RAM or swap space |
|||
# The process is running with CompressedOops enabled, and the Java Heap may be blocking the growth of the native heap |
|||
# Possible solutions: |
|||
# Reduce memory load on the system |
|||
# Increase physical memory or swap space |
|||
# Check if swap backing store is full |
|||
# Decrease Java heap size (-Xmx/-Xms) |
|||
# Decrease number of Java threads |
|||
# Decrease Java thread stack sizes (-Xss) |
|||
# Set larger code cache with -XX:ReservedCodeCacheSize= |
|||
# JVM is running with Unscaled Compressed Oops mode in which the Java heap is |
|||
# placed in the first 4GB address space. The Java Heap base address is the |
|||
# maximum limit for the native heap growth. Please use -XX:HeapBaseMinAddress |
|||
# to set the Java Heap base and to place the Java Heap above 4GB virtual address. |
|||
# This output file may be truncated or incomplete. |
|||
# |
|||
# Out of Memory Error (os_windows.cpp:3613), pid=17268, tid=12840 |
|||
# |
|||
# JRE version: OpenJDK Runtime Environment Temurin-17.0.9+9 (17.0.9+9) (build 17.0.9+9) |
|||
# Java VM: OpenJDK 64-Bit Server VM Temurin-17.0.9+9 (17.0.9+9, mixed mode, tiered, compressed oops, compressed class ptrs, g1 gc, windows-amd64) |
|||
# No core dump will be written. Minidumps are not enabled by default on client versions of Windows |
|||
# |
|||
|
|||
--------------- S U M M A R Y ------------ |
|||
|
|||
Command Line: -Dmaven.home=EMBEDDED -Dclassworlds.conf=D:\projects\New2\.metadata\.plugins\org.eclipse.m2e.launching\launches\m2conf10300884232095977621.tmp -Dmaven.multiModuleProjectDirectory=D:\PGR Update\public_grievance_updated -Dm2e.build.project.data.socket.port=62562 -Dfile.encoding=UTF-8 -Dstdout.encoding=UTF-8 -Dstderr.encoding=UTF-8 -XX:+ShowCodeDetailsInExceptionMessages org.codehaus.plexus.classworlds.launcher.Launcher -B -Dstyle.color=always install |
|||
|
|||
Host: Intel(R) Core(TM) i5-6300U CPU @ 2.40GHz, 4 cores, 7G, Windows 10 , 64 bit Build 19041 (10.0.19041.5915) |
|||
Time: Mon Nov 17 11:12:47 2025 India Standard Time elapsed time: 24.313100 seconds (0d 0h 0m 24s) |
|||
|
|||
--------------- T H R E A D --------------- |
|||
|
|||
Current thread (0x000001ccac22cb50): VMThread "VM Thread" [stack: 0x000000bb6c300000,0x000000bb6c400000] [id=12840] |
|||
|
|||
Stack: [0x000000bb6c300000,0x000000bb6c400000] |
|||
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) |
|||
V [jvm.dll+0x67cf49] |
|||
V [jvm.dll+0x83478a] |
|||
V [jvm.dll+0x83624e] |
|||
V [jvm.dll+0x8368b3] |
|||
V [jvm.dll+0x247f1f] |
|||
V [jvm.dll+0x679d69] |
|||
V [jvm.dll+0x66e6ba] |
|||
V [jvm.dll+0x307e5b] |
|||
V [jvm.dll+0x30f306] |
|||
V [jvm.dll+0x35f0ce] |
|||
V [jvm.dll+0x35f2ff] |
|||
V [jvm.dll+0x2dea58] |
|||
V [jvm.dll+0x2dcc34] |
|||
V [jvm.dll+0x2dc23c] |
|||
V [jvm.dll+0x3205e1] |
|||
V [jvm.dll+0x83adab] |
|||
V [jvm.dll+0x83baf1] |
|||
V [jvm.dll+0x83c00d] |
|||
V [jvm.dll+0x83c3e4] |
|||
V [jvm.dll+0x83c4b0] |
|||
V [jvm.dll+0x7e3c3a] |
|||
V [jvm.dll+0x67be35] |
|||
C [ucrtbase.dll+0x21bb2] |
|||
C [KERNEL32.DLL+0x17374] |
|||
C [ntdll.dll+0x4cc91] |
|||
|
|||
VM_Operation (0x000000bb6bdfd090): G1TryInitiateConcMark, mode: safepoint, requested by thread 0x000001cc92b2de00 |
|||
|
|||
|
|||
--------------- P R O C E S S --------------- |
|||
|
|||
Threads class SMR info: |
|||
_java_thread_list=0x000001ccb143ccb0, length=12, elements={ |
|||
0x000001cc92b2de00, 0x000001ccac268020, 0x000001ccac22d560, 0x000001ccac251250, |
|||
0x000001ccac253c30, 0x000001ccac254500, 0x000001ccac254dd0, 0x000001ccac294000, |
|||
0x000001ccac305130, 0x000001ccac307660, 0x000001ccac3f7f70, 0x000001ccac423090 |
|||
} |
|||
|
|||
Java Threads: ( => current thread ) |
|||
0x000001cc92b2de00 JavaThread "main" [_thread_blocked, id=15236, stack(0x000000bb6bd00000,0x000000bb6be00000)] |
|||
0x000001ccac268020 JavaThread "Reference Handler" daemon [_thread_blocked, id=17068, stack(0x000000bb6c400000,0x000000bb6c500000)] |
|||
0x000001ccac22d560 JavaThread "Finalizer" daemon [_thread_blocked, id=1604, stack(0x000000bb6c500000,0x000000bb6c600000)] |
|||
0x000001ccac251250 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=13316, stack(0x000000bb6c600000,0x000000bb6c700000)] |
|||
0x000001ccac253c30 JavaThread "Attach Listener" daemon [_thread_blocked, id=17284, stack(0x000000bb6c700000,0x000000bb6c800000)] |
|||
0x000001ccac254500 JavaThread "Service Thread" daemon [_thread_blocked, id=18676, stack(0x000000bb6c800000,0x000000bb6c900000)] |
|||
0x000001ccac254dd0 JavaThread "Monitor Deflation Thread" daemon [_thread_blocked, id=7476, stack(0x000000bb6c900000,0x000000bb6ca00000)] |
|||
0x000001ccac294000 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=12092, stack(0x000000bb6ca00000,0x000000bb6cb00000)] |
|||
0x000001ccac305130 JavaThread "C1 CompilerThread0" daemon [_thread_blocked, id=12440, stack(0x000000bb6cb00000,0x000000bb6cc00000)] |
|||
0x000001ccac307660 JavaThread "Sweeper thread" daemon [_thread_blocked, id=19672, stack(0x000000bb6cc00000,0x000000bb6cd00000)] |
|||
0x000001ccac3f7f70 JavaThread "Notification Thread" daemon [_thread_blocked, id=19896, stack(0x000000bb6cd00000,0x000000bb6ce00000)] |
|||
0x000001ccac423090 JavaThread "Common-Cleaner" daemon [_thread_blocked, id=12960, stack(0x000000bb6cf00000,0x000000bb6d000000)] |
|||
|
|||
Other Threads: |
|||
=>0x000001ccac22cb50 VMThread "VM Thread" [stack: 0x000000bb6c300000,0x000000bb6c400000] [id=12840] |
|||
0x000001ccac3fa870 WatcherThread [stack: 0x000000bb6ce00000,0x000000bb6cf00000] [id=14048] |
|||
0x000001cc92b88690 GCTaskThread "GC Thread#0" [stack: 0x000000bb6be00000,0x000000bb6bf00000] [id=14192] |
|||
0x000001ccace2ac40 GCTaskThread "GC Thread#1" [stack: 0x000000bb6d000000,0x000000bb6d100000] [id=17816] |
|||
0x000001ccacf3e480 GCTaskThread "GC Thread#2" [stack: 0x000000bb6d100000,0x000000bb6d200000] [id=9304] |
|||
0x000001ccace57030 GCTaskThread "GC Thread#3" [stack: 0x000000bb6d200000,0x000000bb6d300000] [id=7980] |
|||
0x000001cc92b991b0 ConcurrentGCThread "G1 Main Marker" [stack: 0x000000bb6bf00000,0x000000bb6c000000] [id=9056] |
|||
0x000001cc92b99ae0 ConcurrentGCThread "G1 Conc#0" [stack: 0x000000bb6c000000,0x000000bb6c100000] [id=13516] |
|||
0x000001cc92bedc10 ConcurrentGCThread "G1 Refine#0" [stack: 0x000000bb6c100000,0x000000bb6c200000] [id=9916] |
|||
0x000001ccacf3e740 ConcurrentGCThread "G1 Refine#1" [stack: 0x000000bb6d300000,0x000000bb6d400000] [id=3152] |
|||
0x000001ccac0940c0 ConcurrentGCThread "G1 Service" [stack: 0x000000bb6c200000,0x000000bb6c300000] [id=11744] |
|||
|
|||
Threads with active compile tasks: |
|||
|
|||
VM state: at safepoint (normal execution) |
|||
|
|||
VM Mutex/Monitor currently owned by a thread: ([mutex/lock_event]) |
|||
[0x000001cc92b280c0] Threads_lock - owner thread: 0x000001ccac22cb50 |
|||
[0x000001cc92b28270] Heap_lock - owner thread: 0x000001cc92b2de00 |
|||
|
|||
Heap address: 0x0000000081a00000, size: 2022 MB, Compressed Oops mode: 32-bit |
|||
|
|||
CDS archive(s) not mapped |
|||
Compressed class space mapped at: 0x0000000100000000-0x0000000140000000, reserved size: 1073741824 |
|||
Narrow klass base: 0x0000000000000000, Narrow klass shift: 3, Narrow klass range: 0x140000000 |
|||
|
|||
GC Precious Log: |
|||
CPUs: 4 total, 4 available |
|||
Memory: 8087M |
|||
Large Page Support: Disabled |
|||
NUMA Support: Disabled |
|||
Compressed Oops: Enabled (32-bit) |
|||
Heap Region Size: 1M |
|||
Heap Min Capacity: 8M |
|||
Heap Initial Capacity: 128M |
|||
Heap Max Capacity: 2022M |
|||
Pre-touch: Disabled |
|||
Parallel Workers: 4 |
|||
Concurrent Workers: 1 |
|||
Concurrent Refinement Workers: 4 |
|||
Periodic GC: Disabled |
|||
|
|||
Heap: |
|||
garbage-first heap total 131072K, used 36894K [0x0000000081a00000, 0x0000000100000000) |
|||
region size 1024K, 1 young (1024K), 1 survivors (1024K) |
|||
Metaspace used 28018K, committed 28224K, reserved 1114112K |
|||
class space used 2965K, committed 3008K, reserved 1048576K |
|||
|
|||
Heap Regions: E=young(eden), S=young(survivor), O=old, HS=humongous(starts), HC=humongous(continues), CS=collection set, F=free, OA=open archive, CA=closed archive, TAMS=top-at-mark-start (previous, next) |
|||
| 0|0x0000000081a00000, 0x0000000081b00000, 0x0000000081b00000|100%| O| |TAMS 0x0000000081b00000, 0x0000000081b00000| Untracked |
|||
| 1|0x0000000081b00000, 0x0000000081c00000, 0x0000000081c00000|100%| O| |TAMS 0x0000000081c00000, 0x0000000081c00000| Untracked |
|||
| 2|0x0000000081c00000, 0x0000000081d00000, 0x0000000081d00000|100%| O| |TAMS 0x0000000081d00000, 0x0000000081d00000| Untracked |
|||
| 3|0x0000000081d00000, 0x0000000081e00000, 0x0000000081e00000|100%| O| |TAMS 0x0000000081d00000, 0x0000000081e00000| Untracked |
|||
| 4|0x0000000081e00000, 0x0000000081f00000, 0x0000000081f00000|100%| O| |TAMS 0x0000000081e00000, 0x0000000081f00000| Untracked |
|||
| 5|0x0000000081f00000, 0x0000000082000000, 0x0000000082000000|100%| O| |TAMS 0x0000000081f00000, 0x0000000082000000| Untracked |
|||
| 6|0x0000000082000000, 0x0000000082100000, 0x0000000082100000|100%| O| |TAMS 0x0000000082000000, 0x0000000082100000| Untracked |
|||
| 7|0x0000000082100000, 0x0000000082200000, 0x0000000082200000|100%| O| |TAMS 0x0000000082100000, 0x0000000082200000| Untracked |
|||
| 8|0x0000000082200000, 0x0000000082300000, 0x0000000082300000|100%| O| |TAMS 0x0000000082200000, 0x0000000082300000| Untracked |
|||
| 9|0x0000000082300000, 0x0000000082400000, 0x0000000082400000|100%| O| |TAMS 0x0000000082300000, 0x0000000082400000| Untracked |
|||
| 10|0x0000000082400000, 0x0000000082500000, 0x0000000082500000|100%| O| |TAMS 0x0000000082400000, 0x0000000082500000| Untracked |
|||
| 11|0x0000000082500000, 0x0000000082600000, 0x0000000082600000|100%| O| |TAMS 0x0000000082500000, 0x0000000082600000| Untracked |
|||
| 12|0x0000000082600000, 0x0000000082700000, 0x0000000082700000|100%| O| |TAMS 0x0000000082600000, 0x0000000082700000| Untracked |
|||
| 13|0x0000000082700000, 0x0000000082800000, 0x0000000082800000|100%|HS| |TAMS 0x0000000082700000, 0x0000000082800000| Complete |
|||
| 14|0x0000000082800000, 0x0000000082900000, 0x0000000082900000|100%|HC| |TAMS 0x0000000082800000, 0x0000000082900000| Complete |
|||
| 15|0x0000000082900000, 0x0000000082a00000, 0x0000000082a00000|100%|HC| |TAMS 0x0000000082900000, 0x0000000082a00000| Complete |
|||
| 16|0x0000000082a00000, 0x0000000082b00000, 0x0000000082b00000|100%|HC| |TAMS 0x0000000082a00000, 0x0000000082b00000| Complete |
|||
| 17|0x0000000082b00000, 0x0000000082c00000, 0x0000000082c00000|100%|HC| |TAMS 0x0000000082b00000, 0x0000000082c00000| Complete |
|||
| 18|0x0000000082c00000, 0x0000000082d00000, 0x0000000082d00000|100%|HC| |TAMS 0x0000000082c00000, 0x0000000082d00000| Complete |
|||
| 19|0x0000000082d00000, 0x0000000082e00000, 0x0000000082e00000|100%|HC| |TAMS 0x0000000082d00000, 0x0000000082e00000| Complete |
|||
| 20|0x0000000082e00000, 0x0000000082f00000, 0x0000000082f00000|100%|HC| |TAMS 0x0000000082e00000, 0x0000000082f00000| Complete |
|||
| 21|0x0000000082f00000, 0x0000000083000000, 0x0000000083000000|100%|HS| |TAMS 0x0000000082f00000, 0x0000000083000000| Complete |
|||
| 22|0x0000000083000000, 0x0000000083100000, 0x0000000083100000|100%|HC| |TAMS 0x0000000083000000, 0x0000000083100000| Complete |
|||
| 23|0x0000000083100000, 0x0000000083200000, 0x0000000083200000|100%|HC| |TAMS 0x0000000083100000, 0x0000000083200000| Complete |
|||
| 24|0x0000000083200000, 0x0000000083300000, 0x0000000083300000|100%|HC| |TAMS 0x0000000083200000, 0x0000000083300000| Complete |
|||
| 25|0x0000000083300000, 0x0000000083400000, 0x0000000083400000|100%|HC| |TAMS 0x0000000083300000, 0x0000000083400000| Complete |
|||
| 26|0x0000000083400000, 0x0000000083500000, 0x0000000083500000|100%|HC| |TAMS 0x0000000083400000, 0x0000000083500000| Complete |
|||
| 27|0x0000000083500000, 0x0000000083600000, 0x0000000083600000|100%|HC| |TAMS 0x0000000083500000, 0x0000000083600000| Complete |
|||
| 28|0x0000000083600000, 0x0000000083700000, 0x0000000083700000|100%|HC| |TAMS 0x0000000083600000, 0x0000000083700000| Complete |
|||
| 29|0x0000000083700000, 0x0000000083800000, 0x0000000083800000|100%|HC| |TAMS 0x0000000083700000, 0x0000000083800000| Complete |
|||
| 30|0x0000000083800000, 0x0000000083900000, 0x0000000083900000|100%|HC| |TAMS 0x0000000083800000, 0x0000000083900000| Complete |
|||
| 31|0x0000000083900000, 0x0000000083a00000, 0x0000000083a00000|100%|HC| |TAMS 0x0000000083900000, 0x0000000083a00000| Complete |
|||
| 32|0x0000000083a00000, 0x0000000083b00000, 0x0000000083b00000|100%|HC| |TAMS 0x0000000083a00000, 0x0000000083b00000| Complete |
|||
| 33|0x0000000083b00000, 0x0000000083c00000, 0x0000000083c00000|100%| O| |TAMS 0x0000000083b00000, 0x0000000083c00000| Untracked |
|||
| 34|0x0000000083c00000, 0x0000000083d00000, 0x0000000083d00000|100%| O| |TAMS 0x0000000083c00000, 0x0000000083d00000| Untracked |
|||
| 35|0x0000000083d00000, 0x0000000083d25c00, 0x0000000083e00000| 14%| O| |TAMS 0x0000000083d00000, 0x0000000083d25c00| Untracked |
|||
| 36|0x0000000083e00000, 0x0000000083e00000, 0x0000000083f00000| 0%| F| |TAMS 0x0000000083e00000, 0x0000000083e00000| Untracked |
|||
| 37|0x0000000083f00000, 0x0000000083f00000, 0x0000000084000000| 0%| F| |TAMS 0x0000000083f00000, 0x0000000083f00000| Untracked |
|||
| 38|0x0000000084000000, 0x0000000084000000, 0x0000000084100000| 0%| F| |TAMS 0x0000000084000000, 0x0000000084000000| Untracked |
|||
| 39|0x0000000084100000, 0x0000000084100000, 0x0000000084200000| 0%| F| |TAMS 0x0000000084100000, 0x0000000084100000| Untracked |
|||
| 40|0x0000000084200000, 0x0000000084200000, 0x0000000084300000| 0%| F| |TAMS 0x0000000084200000, 0x0000000084200000| Untracked |
|||
| 41|0x0000000084300000, 0x0000000084300000, 0x0000000084400000| 0%| F| |TAMS 0x0000000084300000, 0x0000000084300000| Untracked |
|||
| 42|0x0000000084400000, 0x0000000084400000, 0x0000000084500000| 0%| F| |TAMS 0x0000000084400000, 0x0000000084400000| Untracked |
|||
| 43|0x0000000084500000, 0x0000000084500000, 0x0000000084600000| 0%| F| |TAMS 0x0000000084500000, 0x0000000084500000| Untracked |
|||
| 44|0x0000000084600000, 0x0000000084600000, 0x0000000084700000| 0%| F| |TAMS 0x0000000084600000, 0x0000000084600000| Untracked |
|||
| 45|0x0000000084700000, 0x0000000084700000, 0x0000000084800000| 0%| F| |TAMS 0x0000000084700000, 0x0000000084700000| Untracked |
|||
| 46|0x0000000084800000, 0x0000000084800000, 0x0000000084900000| 0%| F| |TAMS 0x0000000084800000, 0x0000000084800000| Untracked |
|||
| 47|0x0000000084900000, 0x0000000084900000, 0x0000000084a00000| 0%| F| |TAMS 0x0000000084900000, 0x0000000084900000| Untracked |
|||
| 48|0x0000000084a00000, 0x0000000084a00000, 0x0000000084b00000| 0%| F| |TAMS 0x0000000084a00000, 0x0000000084a00000| Untracked |
|||
| 49|0x0000000084b00000, 0x0000000084b00000, 0x0000000084c00000| 0%| F| |TAMS 0x0000000084b00000, 0x0000000084b00000| Untracked |
|||
| 50|0x0000000084c00000, 0x0000000084c00000, 0x0000000084d00000| 0%| F| |TAMS 0x0000000084c00000, 0x0000000084c00000| Untracked |
|||
| 51|0x0000000084d00000, 0x0000000084d00000, 0x0000000084e00000| 0%| F| |TAMS 0x0000000084d00000, 0x0000000084d00000| Untracked |
|||
| 52|0x0000000084e00000, 0x0000000084e00000, 0x0000000084f00000| 0%| F| |TAMS 0x0000000084e00000, 0x0000000084e00000| Untracked |
|||
| 53|0x0000000084f00000, 0x0000000084f00000, 0x0000000085000000| 0%| F| |TAMS 0x0000000084f00000, 0x0000000084f00000| Untracked |
|||
| 54|0x0000000085000000, 0x0000000085000000, 0x0000000085100000| 0%| F| |TAMS 0x0000000085000000, 0x0000000085000000| Untracked |
|||
| 55|0x0000000085100000, 0x0000000085100000, 0x0000000085200000| 0%| F| |TAMS 0x0000000085100000, 0x0000000085100000| Untracked |
|||
| 56|0x0000000085200000, 0x0000000085200000, 0x0000000085300000| 0%| F| |TAMS 0x0000000085200000, 0x0000000085200000| Untracked |
|||
| 57|0x0000000085300000, 0x0000000085300000, 0x0000000085400000| 0%| F| |TAMS 0x0000000085300000, 0x0000000085300000| Untracked |
|||
| 58|0x0000000085400000, 0x0000000085400000, 0x0000000085500000| 0%| F| |TAMS 0x0000000085400000, 0x0000000085400000| Untracked |
|||
| 59|0x0000000085500000, 0x0000000085500000, 0x0000000085600000| 0%| F| |TAMS 0x0000000085500000, 0x0000000085500000| Untracked |
|||
| 60|0x0000000085600000, 0x0000000085600000, 0x0000000085700000| 0%| F| |TAMS 0x0000000085600000, 0x0000000085600000| Untracked |
|||
| 61|0x0000000085700000, 0x0000000085700000, 0x0000000085800000| 0%| F| |TAMS 0x0000000085700000, 0x0000000085700000| Untracked |
|||
| 62|0x0000000085800000, 0x0000000085800000, 0x0000000085900000| 0%| F| |TAMS 0x0000000085800000, 0x0000000085800000| Untracked |
|||
| 63|0x0000000085900000, 0x0000000085900000, 0x0000000085a00000| 0%| F| |TAMS 0x0000000085900000, 0x0000000085900000| Untracked |
|||
| 64|0x0000000085a00000, 0x0000000085a00000, 0x0000000085b00000| 0%| F| |TAMS 0x0000000085a00000, 0x0000000085a00000| Untracked |
|||
| 65|0x0000000085b00000, 0x0000000085b00000, 0x0000000085c00000| 0%| F| |TAMS 0x0000000085b00000, 0x0000000085b00000| Untracked |
|||
| 66|0x0000000085c00000, 0x0000000085c00000, 0x0000000085d00000| 0%| F| |TAMS 0x0000000085c00000, 0x0000000085c00000| Untracked |
|||
| 67|0x0000000085d00000, 0x0000000085d00000, 0x0000000085e00000| 0%| F| |TAMS 0x0000000085d00000, 0x0000000085d00000| Untracked |
|||
| 68|0x0000000085e00000, 0x0000000085e00000, 0x0000000085f00000| 0%| F| |TAMS 0x0000000085e00000, 0x0000000085e00000| Untracked |
|||
| 69|0x0000000085f00000, 0x0000000085f00000, 0x0000000086000000| 0%| F| |TAMS 0x0000000085f00000, 0x0000000085f00000| Untracked |
|||
| 70|0x0000000086000000, 0x0000000086000000, 0x0000000086100000| 0%| F| |TAMS 0x0000000086000000, 0x0000000086000000| Untracked |
|||
| 71|0x0000000086100000, 0x0000000086100000, 0x0000000086200000| 0%| F| |TAMS 0x0000000086100000, 0x0000000086100000| Untracked |
|||
| 72|0x0000000086200000, 0x0000000086200000, 0x0000000086300000| 0%| F| |TAMS 0x0000000086200000, 0x0000000086200000| Untracked |
|||
| 73|0x0000000086300000, 0x0000000086300000, 0x0000000086400000| 0%| F| |TAMS 0x0000000086300000, 0x0000000086300000| Untracked |
|||
| 74|0x0000000086400000, 0x0000000086400000, 0x0000000086500000| 0%| F| |TAMS 0x0000000086400000, 0x0000000086400000| Untracked |
|||
| 75|0x0000000086500000, 0x0000000086500000, 0x0000000086600000| 0%| F| |TAMS 0x0000000086500000, 0x0000000086500000| Untracked |
|||
| 76|0x0000000086600000, 0x0000000086600000, 0x0000000086700000| 0%| F| |TAMS 0x0000000086600000, 0x0000000086600000| Untracked |
|||
| 77|0x0000000086700000, 0x0000000086700000, 0x0000000086800000| 0%| F| |TAMS 0x0000000086700000, 0x0000000086700000| Untracked |
|||
| 78|0x0000000086800000, 0x0000000086800000, 0x0000000086900000| 0%| F| |TAMS 0x0000000086800000, 0x0000000086800000| Untracked |
|||
| 79|0x0000000086900000, 0x0000000086900000, 0x0000000086a00000| 0%| F| |TAMS 0x0000000086900000, 0x0000000086900000| Untracked |
|||
| 80|0x0000000086a00000, 0x0000000086a00000, 0x0000000086b00000| 0%| F| |TAMS 0x0000000086a00000, 0x0000000086a00000| Untracked |
|||
| 81|0x0000000086b00000, 0x0000000086b00000, 0x0000000086c00000| 0%| F| |TAMS 0x0000000086b00000, 0x0000000086b00000| Untracked |
|||
| 82|0x0000000086c00000, 0x0000000086c00000, 0x0000000086d00000| 0%| F| |TAMS 0x0000000086c00000, 0x0000000086c00000| Untracked |
|||
| 83|0x0000000086d00000, 0x0000000086d00000, 0x0000000086e00000| 0%| F| |TAMS 0x0000000086d00000, 0x0000000086d00000| Untracked |
|||
| 84|0x0000000086e00000, 0x0000000086e00000, 0x0000000086f00000| 0%| F| |TAMS 0x0000000086e00000, 0x0000000086e00000| Untracked |
|||
| 85|0x0000000086f00000, 0x0000000086f00000, 0x0000000087000000| 0%| F| |TAMS 0x0000000086f00000, 0x0000000086f00000| Untracked |
|||
| 86|0x0000000087000000, 0x0000000087000000, 0x0000000087100000| 0%| F| |TAMS 0x0000000087000000, 0x0000000087000000| Untracked |
|||
| 87|0x0000000087100000, 0x0000000087100000, 0x0000000087200000| 0%| F| |TAMS 0x0000000087100000, 0x0000000087100000| Untracked |
|||
| 88|0x0000000087200000, 0x0000000087200000, 0x0000000087300000| 0%| F| |TAMS 0x0000000087200000, 0x0000000087200000| Untracked |
|||
| 89|0x0000000087300000, 0x0000000087300000, 0x0000000087400000| 0%| F| |TAMS 0x0000000087300000, 0x0000000087300000| Untracked |
|||
| 90|0x0000000087400000, 0x0000000087400000, 0x0000000087500000| 0%| F| |TAMS 0x0000000087400000, 0x0000000087400000| Untracked |
|||
| 91|0x0000000087500000, 0x0000000087500000, 0x0000000087600000| 0%| F| |TAMS 0x0000000087500000, 0x0000000087500000| Untracked |
|||
| 92|0x0000000087600000, 0x0000000087600000, 0x0000000087700000| 0%| F| |TAMS 0x0000000087600000, 0x0000000087600000| Untracked |
|||
| 93|0x0000000087700000, 0x0000000087700000, 0x0000000087800000| 0%| F| |TAMS 0x0000000087700000, 0x0000000087700000| Untracked |
|||
| 94|0x0000000087800000, 0x0000000087800000, 0x0000000087900000| 0%| F| |TAMS 0x0000000087800000, 0x0000000087800000| Untracked |
|||
| 95|0x0000000087900000, 0x0000000087900000, 0x0000000087a00000| 0%| F| |TAMS 0x0000000087900000, 0x0000000087900000| Untracked |
|||
| 96|0x0000000087a00000, 0x0000000087a00000, 0x0000000087b00000| 0%| F| |TAMS 0x0000000087a00000, 0x0000000087a00000| Untracked |
|||
| 97|0x0000000087b00000, 0x0000000087b00000, 0x0000000087c00000| 0%| F| |TAMS 0x0000000087b00000, 0x0000000087b00000| Untracked |
|||
| 98|0x0000000087c00000, 0x0000000087c00000, 0x0000000087d00000| 0%| F| |TAMS 0x0000000087c00000, 0x0000000087c00000| Untracked |
|||
| 99|0x0000000087d00000, 0x0000000087d00000, 0x0000000087e00000| 0%| F| |TAMS 0x0000000087d00000, 0x0000000087d00000| Untracked |
|||
| 100|0x0000000087e00000, 0x0000000087e00000, 0x0000000087f00000| 0%| F| |TAMS 0x0000000087e00000, 0x0000000087e00000| Untracked |
|||
| 101|0x0000000087f00000, 0x0000000087f00000, 0x0000000088000000| 0%| F| |TAMS 0x0000000087f00000, 0x0000000087f00000| Untracked |
|||
| 102|0x0000000088000000, 0x0000000088000000, 0x0000000088100000| 0%| F| |TAMS 0x0000000088000000, 0x0000000088000000| Untracked |
|||
| 103|0x0000000088100000, 0x0000000088100000, 0x0000000088200000| 0%| F| |TAMS 0x0000000088100000, 0x0000000088100000| Untracked |
|||
| 104|0x0000000088200000, 0x0000000088200000, 0x0000000088300000| 0%| F| |TAMS 0x0000000088200000, 0x0000000088200000| Untracked |
|||
| 105|0x0000000088300000, 0x0000000088300000, 0x0000000088400000| 0%| F| |TAMS 0x0000000088300000, 0x0000000088300000| Untracked |
|||
| 106|0x0000000088400000, 0x0000000088400000, 0x0000000088500000| 0%| F| |TAMS 0x0000000088400000, 0x0000000088400000| Untracked |
|||
| 107|0x0000000088500000, 0x0000000088500000, 0x0000000088600000| 0%| F| |TAMS 0x0000000088500000, 0x0000000088500000| Untracked |
|||
| 108|0x0000000088600000, 0x0000000088600000, 0x0000000088700000| 0%| F| |TAMS 0x0000000088600000, 0x0000000088600000| Untracked |
|||
| 109|0x0000000088700000, 0x0000000088700000, 0x0000000088800000| 0%| F| |TAMS 0x0000000088700000, 0x0000000088700000| Untracked |
|||
| 110|0x0000000088800000, 0x0000000088800000, 0x0000000088900000| 0%| F| |TAMS 0x0000000088800000, 0x0000000088800000| Untracked |
|||
| 111|0x0000000088900000, 0x0000000088900000, 0x0000000088a00000| 0%| F| |TAMS 0x0000000088900000, 0x0000000088900000| Untracked |
|||
| 112|0x0000000088a00000, 0x0000000088a00000, 0x0000000088b00000| 0%| F| |TAMS 0x0000000088a00000, 0x0000000088a00000| Untracked |
|||
| 113|0x0000000088b00000, 0x0000000088b00000, 0x0000000088c00000| 0%| F| |TAMS 0x0000000088b00000, 0x0000000088b00000| Untracked |
|||
| 114|0x0000000088c00000, 0x0000000088c00000, 0x0000000088d00000| 0%| F| |TAMS 0x0000000088c00000, 0x0000000088c00000| Untracked |
|||
| 115|0x0000000088d00000, 0x0000000088d00000, 0x0000000088e00000| 0%| F| |TAMS 0x0000000088d00000, 0x0000000088d00000| Untracked |
|||
| 116|0x0000000088e00000, 0x0000000088ee1e40, 0x0000000088f00000| 88%| S|CS|TAMS 0x0000000088e00000, 0x0000000088e00000| Complete |
|||
| 117|0x0000000088f00000, 0x0000000088f00000, 0x0000000089000000| 0%| F| |TAMS 0x0000000088f00000, 0x0000000088f00000| Untracked |
|||
| 118|0x0000000089000000, 0x0000000089000000, 0x0000000089100000| 0%| F| |TAMS 0x0000000089000000, 0x0000000089000000| Untracked |
|||
| 119|0x0000000089100000, 0x0000000089100000, 0x0000000089200000| 0%| F| |TAMS 0x0000000089100000, 0x0000000089100000| Untracked |
|||
| 120|0x0000000089200000, 0x0000000089200000, 0x0000000089300000| 0%| F| |TAMS 0x0000000089200000, 0x0000000089200000| Untracked |
|||
| 121|0x0000000089300000, 0x0000000089300000, 0x0000000089400000| 0%| F| |TAMS 0x0000000089300000, 0x0000000089300000| Untracked |
|||
| 122|0x0000000089400000, 0x0000000089400000, 0x0000000089500000| 0%| F| |TAMS 0x0000000089400000, 0x0000000089400000| Untracked |
|||
| 123|0x0000000089500000, 0x0000000089500000, 0x0000000089600000| 0%| F| |TAMS 0x0000000089500000, 0x0000000089500000| Untracked |
|||
| 124|0x0000000089600000, 0x0000000089600000, 0x0000000089700000| 0%| F| |TAMS 0x0000000089600000, 0x0000000089600000| Untracked |
|||
| 125|0x0000000089700000, 0x0000000089700000, 0x0000000089800000| 0%| F| |TAMS 0x0000000089700000, 0x0000000089700000| Untracked |
|||
| 126|0x0000000089800000, 0x0000000089800000, 0x0000000089900000| 0%| F| |TAMS 0x0000000089800000, 0x0000000089800000| Untracked |
|||
| 127|0x0000000089900000, 0x0000000089900000, 0x0000000089a00000| 0%| F| |TAMS 0x0000000089900000, 0x0000000089900000| Untracked |
|||
|
|||
Card table byte_map: [0x000001cca5600000,0x000001cca5a00000] _byte_map_base: 0x000001cca51f3000 |
|||
|
|||
Marking Bits (Prev, Next): (CMBitMap*) 0x000001cc92b88c00, (CMBitMap*) 0x000001cc92b88bc0 |
|||
Prev Bits: [0x000001cca7da0000, 0x000001cca9d38000) |
|||
Next Bits: [0x000001cca5e00000, 0x000001cca7d98000) |
|||
|
|||
Polling page: 0x000001cc90a80000 |
|||
|
|||
Metaspace: |
|||
|
|||
Usage: |
|||
Non-class: 24.47 MB used. |
|||
Class: 2.90 MB used. |
|||
Both: 27.36 MB used. |
|||
|
|||
Virtual space: |
|||
Non-class space: 64.00 MB reserved, 24.62 MB ( 38%) committed, 1 nodes. |
|||
Class space: 1.00 GB reserved, 2.94 MB ( <1%) committed, 1 nodes. |
|||
Both: 1.06 GB reserved, 27.56 MB ( 3%) committed. |
|||
|
|||
Chunk freelists: |
|||
Non-Class: 6.61 MB |
|||
Class: 12.94 MB |
|||
Both: 19.55 MB |
|||
|
|||
MaxMetaspaceSize: unlimited |
|||
CompressedClassSpaceSize: 1.00 GB |
|||
Initial GC threshold: 21.00 MB |
|||
Current GC threshold: 35.25 MB |
|||
CDS: off |
|||
MetaspaceReclaimPolicy: balanced |
|||
- commit_granule_bytes: 65536. |
|||
- commit_granule_words: 8192. |
|||
- virtual_space_node_default_size: 8388608. |
|||
- enlarge_chunks_in_place: 1. |
|||
- new_chunks_are_fully_committed: 0. |
|||
- uncommit_free_chunks: 1. |
|||
- use_allocation_guard: 0. |
|||
- handle_deallocations: 1. |
|||
|
|||
|
|||
Internal statistics: |
|||
|
|||
num_allocs_failed_limit: 3. |
|||
num_arena_births: 124. |
|||
num_arena_deaths: 0. |
|||
num_vsnodes_births: 2. |
|||
num_vsnodes_deaths: 0. |
|||
num_space_committed: 441. |
|||
num_space_uncommitted: 0. |
|||
num_chunks_returned_to_freelist: 3. |
|||
num_chunks_taken_from_freelist: 796. |
|||
num_chunk_merges: 3. |
|||
num_chunk_splits: 513. |
|||
num_chunks_enlarged: 384. |
|||
num_inconsistent_stats: 0. |
|||
|
|||
CodeHeap 'non-profiled nmethods': size=120000Kb used=2603Kb max_used=2603Kb free=117396Kb |
|||
bounds [0x000001cc9dcd0000, 0x000001cc9df60000, 0x000001cca5200000] |
|||
CodeHeap 'profiled nmethods': size=120000Kb used=9973Kb max_used=9973Kb free=110026Kb |
|||
bounds [0x000001cc96200000, 0x000001cc96bc0000, 0x000001cc9d730000] |
|||
CodeHeap 'non-nmethods': size=5760Kb used=1187Kb max_used=1255Kb free=4572Kb |
|||
bounds [0x000001cc9d730000, 0x000001cc9d9a0000, 0x000001cc9dcd0000] |
|||
total_blobs=5119 nmethods=4629 adapters=401 |
|||
compilation: enabled |
|||
stopped_count=0, restarted_count=0 |
|||
full_count=0 |
|||
|
|||
Compilation events (20 events): |
|||
Event: 24.253 Thread 0x000001ccac305130 4620 3 org.apache.maven.shared.filtering.BoundedReader::read (31 bytes) |
|||
Event: 24.253 Thread 0x000001ccac305130 nmethod 4620 0x000001cc96bb0a90 code [0x000001cc96bb0c40, 0x000001cc96bb0e88] |
|||
Event: 24.253 Thread 0x000001ccac305130 4621 ! 3 java.io.BufferedReader::read (104 bytes) |
|||
Event: 24.254 Thread 0x000001ccac305130 nmethod 4621 0x000001cc96bb0f90 code [0x000001cc96bb1180, 0x000001cc96bb1758] |
|||
Event: 24.254 Thread 0x000001ccac305130 4623 3 org.apache.maven.shared.filtering.BoundedReader::reset (13 bytes) |
|||
Event: 24.255 Thread 0x000001ccac305130 nmethod 4623 0x000001cc96bb1a90 code [0x000001cc96bb1c40, 0x000001cc96bb1e08] |
|||
Event: 24.255 Thread 0x000001ccac305130 4624 ! 3 java.io.BufferedReader::reset (69 bytes) |
|||
Event: 24.255 Thread 0x000001ccac305130 nmethod 4624 0x000001cc96bb1f10 code [0x000001cc96bb2100, 0x000001cc96bb25f8] |
|||
Event: 24.255 Thread 0x000001ccac305130 4625 ! 3 org.apache.maven.shared.filtering.MultiDelimiterInterpolatorFilterReaderLineEnding::read (734 bytes) |
|||
Event: 24.256 Thread 0x000001ccac294000 4629 4 java.util.Objects::checkFromIndexSize (8 bytes) |
|||
Event: 24.256 Thread 0x000001ccac294000 nmethod 4629 0x000001cc9df5a710 code [0x000001cc9df5a880, 0x000001cc9df5a938] |
|||
Event: 24.267 Thread 0x000001ccac305130 nmethod 4625 0x000001cc96bb2890 code [0x000001cc96bb3240, 0x000001cc96bb9728] |
|||
Event: 24.267 Thread 0x000001ccac305130 4622 1 org.codehaus.plexus.interpolation.multi.DelimiterSpecification::getBegin (5 bytes) |
|||
Event: 24.267 Thread 0x000001ccac305130 nmethod 4622 0x000001cc9df5aa10 code [0x000001cc9df5aba0, 0x000001cc9df5ac78] |
|||
Event: 24.267 Thread 0x000001ccac305130 4626 3 org.apache.maven.shared.filtering.BoundedReader::<init> (25 bytes) |
|||
Event: 24.267 Thread 0x000001ccac305130 nmethod 4626 0x000001cc96bbbb10 code [0x000001cc96bbbcc0, 0x000001cc96bbc068] |
|||
Event: 24.267 Thread 0x000001ccac305130 4627 ! 3 java.io.BufferedReader::mark (57 bytes) |
|||
Event: 24.268 Thread 0x000001ccac305130 nmethod 4627 0x000001cc96bbc190 code [0x000001cc96bbc360, 0x000001cc96bbc7d8] |
|||
Event: 24.268 Thread 0x000001ccac305130 4628 ! 3 java.io.Reader::skip (121 bytes) |
|||
Event: 24.269 Thread 0x000001ccac305130 nmethod 4628 0x000001cc96bbca10 code [0x000001cc96bbcc00, 0x000001cc96bbd3f8] |
|||
|
|||
GC Heap History (20 events): |
|||
Event: 5.842 GC heap after |
|||
{Heap after GC invocations=6 (full 0): |
|||
garbage-first heap total 27648K, used 7747K [0x0000000081a00000, 0x0000000100000000) |
|||
region size 1024K, 4 young (4096K), 4 survivors (4096K) |
|||
Metaspace used 24589K, committed 24768K, reserved 1114112K |
|||
class space used 2681K, committed 2816K, reserved 1048576K |
|||
} |
|||
Event: 5.932 GC heap before |
|||
{Heap before GC invocations=6 (full 0): |
|||
garbage-first heap total 27648K, used 8771K [0x0000000081a00000, 0x0000000100000000) |
|||
region size 1024K, 5 young (5120K), 4 survivors (4096K) |
|||
Metaspace used 24648K, committed 24896K, reserved 1114112K |
|||
class space used 2688K, committed 2816K, reserved 1048576K |
|||
} |
|||
Event: 5.944 GC heap after |
|||
{Heap after GC invocations=7 (full 0): |
|||
garbage-first heap total 27648K, used 8125K [0x0000000081a00000, 0x0000000100000000) |
|||
region size 1024K, 1 young (1024K), 1 survivors (1024K) |
|||
Metaspace used 24648K, committed 24896K, reserved 1114112K |
|||
class space used 2688K, committed 2816K, reserved 1048576K |
|||
} |
|||
Event: 6.602 GC heap before |
|||
{Heap before GC invocations=7 (full 0): |
|||
garbage-first heap total 27648K, used 18365K [0x0000000081a00000, 0x0000000100000000) |
|||
region size 1024K, 11 young (11264K), 1 survivors (1024K) |
|||
Metaspace used 25256K, committed 25472K, reserved 1114112K |
|||
class space used 2741K, committed 2880K, reserved 1048576K |
|||
} |
|||
Event: 6.607 GC heap after |
|||
{Heap after GC invocations=8 (full 0): |
|||
garbage-first heap total 27648K, used 9362K [0x0000000081a00000, 0x0000000100000000) |
|||
region size 1024K, 2 young (2048K), 2 survivors (2048K) |
|||
Metaspace used 25256K, committed 25472K, reserved 1114112K |
|||
class space used 2741K, committed 2880K, reserved 1048576K |
|||
} |
|||
Event: 7.081 GC heap before |
|||
{Heap before GC invocations=8 (full 0): |
|||
garbage-first heap total 27648K, used 18578K [0x0000000081a00000, 0x0000000100000000) |
|||
region size 1024K, 11 young (11264K), 2 survivors (2048K) |
|||
Metaspace used 25381K, committed 25600K, reserved 1114112K |
|||
class space used 2742K, committed 2880K, reserved 1048576K |
|||
} |
|||
Event: 7.090 GC heap after |
|||
{Heap after GC invocations=9 (full 0): |
|||
garbage-first heap total 27648K, used 10655K [0x0000000081a00000, 0x0000000100000000) |
|||
region size 1024K, 2 young (2048K), 2 survivors (2048K) |
|||
Metaspace used 25381K, committed 25600K, reserved 1114112K |
|||
class space used 2742K, committed 2880K, reserved 1048576K |
|||
} |
|||
Event: 7.897 GC heap before |
|||
{Heap before GC invocations=9 (full 0): |
|||
garbage-first heap total 27648K, used 19871K [0x0000000081a00000, 0x0000000100000000) |
|||
region size 1024K, 11 young (11264K), 2 survivors (2048K) |
|||
Metaspace used 25818K, committed 26048K, reserved 1114112K |
|||
class space used 2791K, committed 2880K, reserved 1048576K |
|||
} |
|||
Event: 7.905 GC heap after |
|||
{Heap after GC invocations=10 (full 0): |
|||
garbage-first heap total 79872K, used 11943K [0x0000000081a00000, 0x0000000100000000) |
|||
region size 1024K, 2 young (2048K), 2 survivors (2048K) |
|||
Metaspace used 25818K, committed 26048K, reserved 1114112K |
|||
class space used 2791K, committed 2880K, reserved 1048576K |
|||
} |
|||
Event: 15.124 GC heap before |
|||
{Heap before GC invocations=10 (full 0): |
|||
garbage-first heap total 79872K, used 49831K [0x0000000081a00000, 0x0000000100000000) |
|||
region size 1024K, 39 young (39936K), 2 survivors (2048K) |
|||
Metaspace used 26349K, committed 26560K, reserved 1114112K |
|||
class space used 2815K, committed 2944K, reserved 1048576K |
|||
} |
|||
Event: 15.135 GC heap after |
|||
{Heap after GC invocations=11 (full 0): |
|||
garbage-first heap total 79872K, used 14297K [0x0000000081a00000, 0x0000000100000000) |
|||
region size 1024K, 4 young (4096K), 4 survivors (4096K) |
|||
Metaspace used 26349K, committed 26560K, reserved 1114112K |
|||
class space used 2815K, committed 2944K, reserved 1048576K |
|||
} |
|||
Event: 23.090 GC heap before |
|||
{Heap before GC invocations=11 (full 0): |
|||
garbage-first heap total 79872K, used 52185K [0x0000000081a00000, 0x0000000100000000) |
|||
region size 1024K, 41 young (41984K), 4 survivors (4096K) |
|||
Metaspace used 26802K, committed 27072K, reserved 1114112K |
|||
class space used 2834K, committed 2944K, reserved 1048576K |
|||
} |
|||
Event: 23.103 GC heap after |
|||
{Heap after GC invocations=12 (full 0): |
|||
garbage-first heap total 79872K, used 15953K [0x0000000081a00000, 0x0000000100000000) |
|||
region size 1024K, 5 young (5120K), 5 survivors (5120K) |
|||
Metaspace used 26802K, committed 27072K, reserved 1114112K |
|||
class space used 2834K, committed 2944K, reserved 1048576K |
|||
} |
|||
Event: 24.228 GC heap before |
|||
{Heap before GC invocations=12 (full 0): |
|||
garbage-first heap total 79872K, used 44625K [0x0000000081a00000, 0x0000000100000000) |
|||
region size 1024K, 14 young (14336K), 5 survivors (5120K) |
|||
Metaspace used 27993K, committed 28160K, reserved 1114112K |
|||
class space used 2963K, committed 3008K, reserved 1048576K |
|||
} |
|||
Event: 24.240 GC heap after |
|||
{Heap after GC invocations=13 (full 0): |
|||
garbage-first heap total 79872K, used 36839K [0x0000000081a00000, 0x0000000100000000) |
|||
region size 1024K, 3 young (3072K), 3 survivors (3072K) |
|||
Metaspace used 27993K, committed 28160K, reserved 1114112K |
|||
class space used 2963K, committed 3008K, reserved 1048576K |
|||
} |
|||
Event: 24.291 GC heap before |
|||
{Heap before GC invocations=13 (full 0): |
|||
garbage-first heap total 79872K, used 49127K [0x0000000081a00000, 0x0000000100000000) |
|||
region size 1024K, 4 young (4096K), 3 survivors (3072K) |
|||
Metaspace used 28018K, committed 28224K, reserved 1114112K |
|||
class space used 2965K, committed 3008K, reserved 1048576K |
|||
} |
|||
Event: 24.299 GC heap after |
|||
{Heap after GC invocations=14 (full 0): |
|||
garbage-first heap total 79872K, used 16535K [0x0000000081a00000, 0x0000000100000000) |
|||
region size 1024K, 1 young (1024K), 1 survivors (1024K) |
|||
Metaspace used 28018K, committed 28224K, reserved 1114112K |
|||
class space used 2965K, committed 3008K, reserved 1048576K |
|||
} |
|||
Event: 24.300 GC heap before |
|||
{Heap before GC invocations=14 (full 0): |
|||
garbage-first heap total 79872K, used 24727K [0x0000000081a00000, 0x0000000100000000) |
|||
region size 1024K, 2 young (2048K), 1 survivors (1024K) |
|||
Metaspace used 28018K, committed 28224K, reserved 1114112K |
|||
class space used 2965K, committed 3008K, reserved 1048576K |
|||
} |
|||
Event: 24.303 GC heap after |
|||
{Heap after GC invocations=15 (full 0): |
|||
garbage-first heap total 79872K, used 24593K [0x0000000081a00000, 0x0000000100000000) |
|||
region size 1024K, 1 young (1024K), 1 survivors (1024K) |
|||
Metaspace used 28018K, committed 28224K, reserved 1114112K |
|||
class space used 2965K, committed 3008K, reserved 1048576K |
|||
} |
|||
Event: 24.305 GC heap before |
|||
{Heap before GC invocations=15 (full 0): |
|||
garbage-first heap total 79872K, used 36881K [0x0000000081a00000, 0x0000000100000000) |
|||
region size 1024K, 2 young (2048K), 1 survivors (1024K) |
|||
Metaspace used 28018K, committed 28224K, reserved 1114112K |
|||
class space used 2965K, committed 3008K, reserved 1048576K |
|||
} |
|||
|
|||
Dll operation events (7 events): |
|||
Event: 0.016 Loaded shared library C:\Users\ADMIN\.p2\pool\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.9.v20231028-0858\jre\bin\java.dll |
|||
Event: 0.332 Loaded shared library C:\Users\ADMIN\.p2\pool\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.9.v20231028-0858\jre\bin\net.dll |
|||
Event: 0.335 Loaded shared library C:\Users\ADMIN\.p2\pool\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.9.v20231028-0858\jre\bin\nio.dll |
|||
Event: 0.349 Loaded shared library C:\Users\ADMIN\.p2\pool\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.9.v20231028-0858\jre\bin\zip.dll |
|||
Event: 0.605 Loaded shared library C:\Users\ADMIN\.p2\pool\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.9.v20231028-0858\jre\bin\jimage.dll |
|||
Event: 0.683 Loaded shared library C:\Users\ADMIN\AppData\Local\Temp\jansi-2.4.1-3c2736af26602078-jansi.dll |
|||
Event: 1.162 Loaded shared library C:\Users\ADMIN\.p2\pool\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.9.v20231028-0858\jre\bin\verify.dll |
|||
|
|||
Deoptimization events (20 events): |
|||
Event: 23.829 Thread 0x000001cc92b2de00 Uncommon trap: trap_request=0xffffffc6 fr.pc=0x000001cc9ddc042c relative=0x000000000000008c |
|||
Event: 23.829 Thread 0x000001cc92b2de00 Uncommon trap: reason=bimorphic_or_optimized_type_check action=maybe_recompile pc=0x000001cc9ddc042c method=com.google.inject.internal.LinkedBindingImpl.acceptTargetVisitor(Lcom/google/inject/spi/BindingTargetVisitor;)Ljava/lang/Object; @ 2 c2 |
|||
Event: 23.829 Thread 0x000001cc92b2de00 DEOPT PACKING pc=0x000001cc9ddc042c sp=0x000000bb6bdfd0e0 |
|||
Event: 23.829 Thread 0x000001cc92b2de00 DEOPT UNPACKING pc=0x000001cc9d7869a3 sp=0x000000bb6bdfd068 mode 2 |
|||
Event: 23.830 Thread 0x000001cc92b2de00 Uncommon trap: trap_request=0xffffffc6 fr.pc=0x000001cc9ddc042c relative=0x000000000000008c |
|||
Event: 23.830 Thread 0x000001cc92b2de00 Uncommon trap: reason=bimorphic_or_optimized_type_check action=maybe_recompile pc=0x000001cc9ddc042c method=com.google.inject.internal.LinkedBindingImpl.acceptTargetVisitor(Lcom/google/inject/spi/BindingTargetVisitor;)Ljava/lang/Object; @ 2 c2 |
|||
Event: 23.830 Thread 0x000001cc92b2de00 DEOPT PACKING pc=0x000001cc9ddc042c sp=0x000000bb6bdfd0e0 |
|||
Event: 23.830 Thread 0x000001cc92b2de00 DEOPT UNPACKING pc=0x000001cc9d7869a3 sp=0x000000bb6bdfd068 mode 2 |
|||
Event: 23.849 Thread 0x000001cc92b2de00 Uncommon trap: trap_request=0xfffffff4 fr.pc=0x000001cc9dede340 relative=0x0000000000000860 |
|||
Event: 23.849 Thread 0x000001cc92b2de00 Uncommon trap: reason=null_check action=make_not_entrant pc=0x000001cc9dede340 method=com.google.inject.internal.InjectorImpl.enterContext()Lcom/google/inject/internal/InternalContext; @ 7 c2 |
|||
Event: 23.849 Thread 0x000001cc92b2de00 DEOPT PACKING pc=0x000001cc9dede340 sp=0x000000bb6bdfd180 |
|||
Event: 23.849 Thread 0x000001cc92b2de00 DEOPT UNPACKING pc=0x000001cc9d7869a3 sp=0x000000bb6bdfd170 mode 2 |
|||
Event: 24.029 Thread 0x000001cc92b2de00 Uncommon trap: trap_request=0xffffff45 fr.pc=0x000001cc9dddd884 relative=0x00000000000000e4 |
|||
Event: 24.029 Thread 0x000001cc92b2de00 Uncommon trap: reason=unstable_if action=reinterpret pc=0x000001cc9dddd884 method=java.util.HashMap.hash(Ljava/lang/Object;)I @ 1 c2 |
|||
Event: 24.029 Thread 0x000001cc92b2de00 DEOPT PACKING pc=0x000001cc9dddd884 sp=0x000000bb6bdfb760 |
|||
Event: 24.029 Thread 0x000001cc92b2de00 DEOPT UNPACKING pc=0x000001cc9d7869a3 sp=0x000000bb6bdfb6a0 mode 2 |
|||
Event: 24.162 Thread 0x000001cc92b2de00 Uncommon trap: trap_request=0xffffff45 fr.pc=0x000001cc9df43f7c relative=0x000000000000025c |
|||
Event: 24.162 Thread 0x000001cc92b2de00 Uncommon trap: reason=unstable_if action=reinterpret pc=0x000001cc9df43f7c method=java.util.regex.Pattern.qtype()Ljava/util/regex/Pattern$Qtype; @ 8 c2 |
|||
Event: 24.162 Thread 0x000001cc92b2de00 DEOPT PACKING pc=0x000001cc9df43f7c sp=0x000000bb6bdfcdf0 |
|||
Event: 24.162 Thread 0x000001cc92b2de00 DEOPT UNPACKING pc=0x000001cc9d7869a3 sp=0x000000bb6bdfcc88 mode 2 |
|||
|
|||
Classes unloaded (0 events): |
|||
No events |
|||
|
|||
Classes redefined (0 events): |
|||
No events |
|||
|
|||
Internal exceptions (20 events): |
|||
Event: 4.892 Thread 0x000001cc92b2de00 Exception <a 'java/lang/ExceptionInInitializerError'{0x0000000089036868}> (0x0000000089036868) |
|||
thrown [s\src\hotspot\share\oops\instanceKlass.cpp, line 1218] |
|||
Event: 4.950 Thread 0x000001cc92b2de00 Implicit null exception at 0x000001cc9dd5b82f to 0x000001cc9dd5b98c |
|||
Event: 4.953 Thread 0x000001cc92b2de00 Exception <a 'java/lang/NoSuchMethodError'{0x0000000088f4a778}: 'java.lang.Object java.lang.invoke.Invokers$Holder.invokeExact_MT(java.lang.Object, int, java.lang.Object)'> (0x0000000088f4a778) |
|||
thrown [s\src\hotspot\share\interpreter\linkResolver.cpp, line 759] |
|||
Event: 4.968 Thread 0x000001cc92b2de00 Exception <a 'java/lang/NoSuchMethodError'{0x0000000088fb2328}: 'int java.lang.invoke.DirectMethodHandle$Holder.invokeSpecial(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object)'> (0x0000000088fb2328) |
|||
thrown [s\src\hotspot\share\interpreter\linkResolver.cpp, line 759] |
|||
Event: 5.366 Thread 0x000001cc92b2de00 Exception <a 'java/lang/NoClassDefFoundError'{0x0000000082956e60}: com/google/inject/servlet/ServletModuleTargetVisitor> (0x0000000082956e60) |
|||
thrown [s\src\hotspot\share\classfile\systemDictionary.cpp, line 245] |
|||
Event: 5.488 Thread 0x000001cc92b2de00 Exception <a 'java/lang/NoSuchMethodError'{0x00000000828f7100}: 'void java.lang.invoke.DirectMethodHandle$Holder.invokeVirtual(java.lang.Object, java.lang.Object)'> (0x00000000828f7100) |
|||
thrown [s\src\hotspot\share\interpreter\linkResolver.cpp, line 759] |
|||
Event: 5.509 Thread 0x000001cc92b2de00 Exception <a 'java/lang/NoSuchMethodError'{0x0000000082734f00}: 'java.lang.Object java.lang.invoke.DirectMethodHandle$Holder.invokeStaticInit(java.lang.Object, int, int, int, int)'> (0x0000000082734f00) |
|||
thrown [s\src\hotspot\share\interpreter\linkResolver.cpp, line 759] |
|||
Event: 5.725 Thread 0x000001cc92b2de00 Implicit null exception at 0x000001cc9dcf2ef2 to 0x000001cc9dcf350c |
|||
Event: 5.725 Thread 0x000001cc92b2de00 Implicit null exception at 0x000001cc9dd0d7f2 to 0x000001cc9dd0de2c |
|||
Event: 5.845 Thread 0x000001cc92b2de00 Exception <a 'java/lang/NoSuchMethodError'{0x0000000089901e00}: 'void java.lang.invoke.DirectMethodHandle$Holder.invokeSpecial(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object)'> (0x0000000089901e00) |
|||
thrown [s\src\hotspot\share\interpreter\linkResolver.cpp, line 759] |
|||
Event: 5.852 Thread 0x000001cc92b2de00 Exception <a 'java/lang/NoSuchMethodError'{0x000000008991cd38}: 'void java.lang.invoke.DirectMethodHandle$Holder.invokeSpecial(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object)'> (0x000000008991cd38) |
|||
thrown [s\src\hotspot\share\interpreter\linkResolver.cpp, line 759] |
|||
Event: 5.947 Thread 0x000001cc92b2de00 Exception <a 'java/lang/NoSuchMethodError'{0x0000000089925d68}: 'java.lang.Object java.lang.invoke.DirectMethodHandle$Holder.invokeVirtual(java.lang.Object, java.lang.Object, java.lang.Object)'> (0x0000000089925d68) |
|||
thrown [s\src\hotspot\share\interpreter\linkResolver.cpp, line 759] |
|||
Event: 22.433 Thread 0x000001cc92b2de00 Implicit null exception at 0x000001cc9dec8a6f to 0x000001cc9dec8c30 |
|||
Event: 22.433 Thread 0x000001cc92b2de00 Implicit null exception at 0x000001cc9dd9850f to 0x000001cc9dd98589 |
|||
Event: 22.773 Thread 0x000001cc92b2de00 Exception <a 'java/lang/NoSuchMethodError'{0x00000000845a5738}: 'java.lang.Object java.lang.invoke.DirectMethodHandle$Holder.newInvokeSpecial(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object)'> (0x00000000845a5738) |
|||
thrown [s\src\hotspot\share\interpreter\linkResolver.cpp, line 759] |
|||
Event: 22.773 Thread 0x000001cc92b2de00 Exception <a 'java/lang/NoSuchMethodError'{0x00000000845aa048}: 'java.lang.Object java.lang.invoke.Invokers$Holder.linkToTargetMethod(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object)'> (0x00000000845aa048) |
|||
thrown [s\src\hotspot\share\interpreter\linkResolver.cpp, line 759] |
|||
Event: 23.849 Thread 0x000001cc92b2de00 Implicit null exception at 0x000001cc9deddbb0 to 0x000001cc9dede330 |
|||
Event: 23.909 Thread 0x000001cc92b2de00 Exception <a 'java/lang/NoSuchMethodError'{0x00000000862f1c68}: 'int java.lang.invoke.DirectMethodHandle$Holder.invokeVirtual(java.lang.Object, java.lang.Object)'> (0x00000000862f1c68) |
|||
thrown [s\src\hotspot\share\interpreter\linkResolver.cpp, line 759] |
|||
Event: 24.029 Thread 0x000001cc92b2de00 Implicit null exception at 0x000001cc9dddd7e0 to 0x000001cc9dddd87a |
|||
Event: 24.161 Thread 0x000001cc92b2de00 Exception <a 'java/lang/NoSuchMethodError'{0x00000000860e4348}: 'int java.lang.invoke.DirectMethodHandle$Holder.invokeStatic(java.lang.Object, java.lang.Object, int)'> (0x00000000860e4348) |
|||
thrown [s\src\hotspot\share\interpreter\linkResolver.cpp, line 759] |
|||
|
|||
VM Operations (20 events): |
|||
Event: 18.162 Executing VM operation: Cleanup done |
|||
Event: 19.175 Executing VM operation: Cleanup |
|||
Event: 19.175 Executing VM operation: Cleanup done |
|||
Event: 20.186 Executing VM operation: Cleanup |
|||
Event: 20.186 Executing VM operation: Cleanup done |
|||
Event: 21.196 Executing VM operation: Cleanup |
|||
Event: 21.196 Executing VM operation: Cleanup done |
|||
Event: 22.206 Executing VM operation: Cleanup |
|||
Event: 22.207 Executing VM operation: Cleanup done |
|||
Event: 23.090 Executing VM operation: G1CollectForAllocation |
|||
Event: 23.103 Executing VM operation: G1CollectForAllocation done |
|||
Event: 24.115 Executing VM operation: Cleanup |
|||
Event: 24.116 Executing VM operation: Cleanup done |
|||
Event: 24.228 Executing VM operation: G1TryInitiateConcMark |
|||
Event: 24.240 Executing VM operation: G1TryInitiateConcMark done |
|||
Event: 24.291 Executing VM operation: G1TryInitiateConcMark |
|||
Event: 24.299 Executing VM operation: G1TryInitiateConcMark done |
|||
Event: 24.300 Executing VM operation: G1TryInitiateConcMark |
|||
Event: 24.303 Executing VM operation: G1TryInitiateConcMark done |
|||
Event: 24.305 Executing VM operation: G1TryInitiateConcMark |
|||
|
|||
Events (20 events): |
|||
Event: 24.032 loading class java/time/zone/ZoneRulesProvider |
|||
Event: 24.032 loading class java/time/zone/ZoneRulesProvider done |
|||
Event: 24.032 loading class java/time/zone/ZoneRulesProvider$1 |
|||
Event: 24.032 loading class java/time/zone/ZoneRulesProvider$1 done |
|||
Event: 24.032 loading class java/time/zone/TzdbZoneRulesProvider |
|||
Event: 24.032 loading class java/time/zone/TzdbZoneRulesProvider done |
|||
Event: 24.062 loading class java/time/zone/Ser |
|||
Event: 24.062 loading class java/io/Externalizable |
|||
Event: 24.062 loading class java/io/Externalizable done |
|||
Event: 24.062 loading class java/time/zone/Ser done |
|||
Event: 24.074 loading class jdk/internal/reflect/UnsafeBooleanFieldAccessorImpl |
|||
Event: 24.074 loading class jdk/internal/reflect/UnsafeBooleanFieldAccessorImpl done |
|||
Event: 24.152 loading class java/lang/Character$UnicodeBlock |
|||
Event: 24.154 loading class java/lang/Character$Subset |
|||
Event: 24.154 loading class java/lang/Character$Subset done |
|||
Event: 24.154 loading class java/lang/Character$UnicodeBlock done |
|||
Event: 24.256 loading class java/nio/BufferMismatch |
|||
Event: 24.256 loading class java/nio/BufferMismatch done |
|||
Event: 24.256 loading class java/nio/file/attribute/PosixFileAttributes |
|||
Event: 24.256 loading class java/nio/file/attribute/PosixFileAttributes done |
|||
|
|||
|
|||
Dynamic libraries: |
|||
0x00007ff6d4ea0000 - 0x00007ff6d4eae000 C:\Users\ADMIN\.p2\pool\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.9.v20231028-0858\jre\bin\javaw.exe |
|||
0x00007ffb17cf0000 - 0x00007ffb17ee8000 C:\Windows\SYSTEM32\ntdll.dll |
|||
0x00007ffb17460000 - 0x00007ffb17522000 C:\Windows\System32\KERNEL32.DLL |
|||
0x00007ffb15530000 - 0x00007ffb15826000 C:\Windows\System32\KERNELBASE.dll |
|||
0x00007ffb15a60000 - 0x00007ffb15b60000 C:\Windows\System32\ucrtbase.dll |
|||
0x00007ffb0f470000 - 0x00007ffb0f487000 C:\Users\ADMIN\.p2\pool\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.9.v20231028-0858\jre\bin\jli.dll |
|||
0x00007ffb17100000 - 0x00007ffb172a1000 C:\Windows\System32\USER32.dll |
|||
0x00007ffb15a30000 - 0x00007ffb15a52000 C:\Windows\System32\win32u.dll |
|||
0x00007ffb17530000 - 0x00007ffb1755b000 C:\Windows\System32\GDI32.dll |
|||
0x00007ffb15380000 - 0x00007ffb15499000 C:\Windows\System32\gdi32full.dll |
|||
0x00007ffb15830000 - 0x00007ffb158cd000 C:\Windows\System32\msvcp_win.dll |
|||
0x00007ffb0f1a0000 - 0x00007ffb0f1bb000 C:\Users\ADMIN\.p2\pool\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.9.v20231028-0858\jre\bin\VCRUNTIME140.dll |
|||
0x00007ffb00f20000 - 0x00007ffb011bb000 C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.19041.6456_none_60b8a6cb71f64256\COMCTL32.dll |
|||
0x00007ffb17360000 - 0x00007ffb173fe000 C:\Windows\System32\msvcrt.dll |
|||
0x00007ffb17560000 - 0x00007ffb1758f000 C:\Windows\System32\IMM32.DLL |
|||
0x00007ffb0f2f0000 - 0x00007ffb0f2fc000 C:\Users\ADMIN\.p2\pool\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.9.v20231028-0858\jre\bin\vcruntime140_1.dll |
|||
0x00007ffb097b0000 - 0x00007ffb0983d000 C:\Users\ADMIN\.p2\pool\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.9.v20231028-0858\jre\bin\msvcp140.dll |
|||
0x00007ffaf6cf0000 - 0x00007ffaf7951000 C:\Users\ADMIN\.p2\pool\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.9.v20231028-0858\jre\bin\server\jvm.dll |
|||
0x00007ffb16e30000 - 0x00007ffb16ee1000 C:\Windows\System32\ADVAPI32.dll |
|||
0x00007ffb17590000 - 0x00007ffb1762f000 C:\Windows\System32\sechost.dll |
|||
0x00007ffb16a60000 - 0x00007ffb16b80000 C:\Windows\System32\RPCRT4.dll |
|||
0x00007ffb15c10000 - 0x00007ffb15c37000 C:\Windows\System32\bcrypt.dll |
|||
0x00007ffb15130000 - 0x00007ffb1517b000 C:\Windows\SYSTEM32\POWRPROF.dll |
|||
0x00007ffb09710000 - 0x00007ffb09719000 C:\Windows\SYSTEM32\WSOCK32.dll |
|||
0x00007ffb17c40000 - 0x00007ffb17cab000 C:\Windows\System32\WS2_32.dll |
|||
0x00007ffb011d0000 - 0x00007ffb011f7000 C:\Windows\SYSTEM32\WINMM.dll |
|||
0x00007ffb0e2f0000 - 0x00007ffb0e2fa000 C:\Windows\SYSTEM32\VERSION.dll |
|||
0x00007ffb15110000 - 0x00007ffb15122000 C:\Windows\SYSTEM32\UMPDC.dll |
|||
0x00007ffb13b90000 - 0x00007ffb13ba2000 C:\Windows\SYSTEM32\kernel.appcore.dll |
|||
0x00007ffb0eee0000 - 0x00007ffb0eeea000 C:\Users\ADMIN\.p2\pool\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.9.v20231028-0858\jre\bin\jimage.dll |
|||
0x00007ffb13080000 - 0x00007ffb13281000 C:\Windows\SYSTEM32\DBGHELP.DLL |
|||
0x00007ffb0beb0000 - 0x00007ffb0bee4000 C:\Windows\SYSTEM32\dbgcore.DLL |
|||
0x00007ffb154a0000 - 0x00007ffb15522000 C:\Windows\System32\bcryptPrimitives.dll |
|||
0x00007ffb0e1d0000 - 0x00007ffb0e1f5000 C:\Users\ADMIN\.p2\pool\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.9.v20231028-0858\jre\bin\java.dll |
|||
0x00007ffb0e060000 - 0x00007ffb0e078000 C:\Users\ADMIN\.p2\pool\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.9.v20231028-0858\jre\bin\zip.dll |
|||
0x00007ffb15d10000 - 0x00007ffb16480000 C:\Windows\System32\SHELL32.dll |
|||
0x00007ffb132b0000 - 0x00007ffb13a55000 C:\Windows\SYSTEM32\windows.storage.dll |
|||
0x00007ffb16480000 - 0x00007ffb167d4000 C:\Windows\System32\combase.dll |
|||
0x00007ffb14cd0000 - 0x00007ffb14cfb000 C:\Windows\SYSTEM32\Wldp.dll |
|||
0x00007ffb167f0000 - 0x00007ffb168bd000 C:\Windows\System32\OLEAUT32.dll |
|||
0x00007ffb16f70000 - 0x00007ffb1701d000 C:\Windows\System32\SHCORE.dll |
|||
0x00007ffb16f10000 - 0x00007ffb16f6b000 C:\Windows\System32\shlwapi.dll |
|||
0x00007ffb152b0000 - 0x00007ffb152d4000 C:\Windows\SYSTEM32\profapi.dll |
|||
0x00007ffb0df10000 - 0x00007ffb0df29000 C:\Users\ADMIN\.p2\pool\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.9.v20231028-0858\jre\bin\net.dll |
|||
0x00007ffb0b630000 - 0x00007ffb0b73a000 C:\Windows\SYSTEM32\WINHTTP.dll |
|||
0x00007ffb14a30000 - 0x00007ffb14a9a000 C:\Windows\system32\mswsock.dll |
|||
0x00007ffb0def0000 - 0x00007ffb0df06000 C:\Users\ADMIN\.p2\pool\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.9.v20231028-0858\jre\bin\nio.dll |
|||
0x00007ffb0db20000 - 0x00007ffb0db44000 C:\Users\ADMIN\AppData\Local\Temp\jansi-2.4.1-3c2736af26602078-jansi.dll |
|||
0x00007ffb0e030000 - 0x00007ffb0e040000 C:\Users\ADMIN\.p2\pool\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.9.v20231028-0858\jre\bin\verify.dll |
|||
0x00007ffb14710000 - 0x00007ffb1474b000 C:\Windows\SYSTEM32\IPHLPAPI.DLL |
|||
0x00007ffb16c70000 - 0x00007ffb16c78000 C:\Windows\System32\NSI.dll |
|||
0x00007ffb0bde0000 - 0x00007ffb0bdf7000 C:\Windows\SYSTEM32\dhcpcsvc6.DLL |
|||
0x00007ffb0be80000 - 0x00007ffb0be9d000 C:\Windows\SYSTEM32\dhcpcsvc.DLL |
|||
0x00007ffb14750000 - 0x00007ffb1481a000 C:\Windows\SYSTEM32\DNSAPI.dll |
|||
|
|||
dbghelp: loaded successfully - version: 4.0.5 - missing functions: none |
|||
symbol engine: initialized successfully - sym options: 0x614 - pdb path: .;C:\Users\ADMIN\.p2\pool\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.9.v20231028-0858\jre\bin;C:\Windows\SYSTEM32;C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.19041.6456_none_60b8a6cb71f64256;C:\Users\ADMIN\.p2\pool\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.9.v20231028-0858\jre\bin\server;C:\Users\ADMIN\AppData\Local\Temp |
|||
|
|||
VM Arguments: |
|||
jvm_args: -Dmaven.home=EMBEDDED -Dclassworlds.conf=D:\projects\New2\.metadata\.plugins\org.eclipse.m2e.launching\launches\m2conf10300884232095977621.tmp -Dmaven.multiModuleProjectDirectory=D:\PGR Update\public_grievance_updated -Dm2e.build.project.data.socket.port=62562 -Dfile.encoding=UTF-8 -Dstdout.encoding=UTF-8 -Dstderr.encoding=UTF-8 -XX:+ShowCodeDetailsInExceptionMessages |
|||
java_command: org.codehaus.plexus.classworlds.launcher.Launcher -B -Dstyle.color=always install |
|||
java_class_path (initial): C:\Users\ADMIN\.p2\pool\plugins\org.eclipse.m2e.maven.runtime_3.9.900.20250220-2013\jars\plexus-classworlds-2.8.0.jar |
|||
Launcher Type: SUN_STANDARD |
|||
|
|||
[Global flags] |
|||
intx CICompilerCount = 3 {product} {ergonomic} |
|||
uint ConcGCThreads = 1 {product} {ergonomic} |
|||
uint G1ConcRefinementThreads = 4 {product} {ergonomic} |
|||
size_t G1HeapRegionSize = 1048576 {product} {ergonomic} |
|||
uintx GCDrainStackTargetSize = 64 {product} {ergonomic} |
|||
size_t InitialHeapSize = 134217728 {product} {ergonomic} |
|||
size_t MarkStackSize = 4194304 {product} {ergonomic} |
|||
size_t MaxHeapSize = 2120220672 {product} {ergonomic} |
|||
size_t MaxNewSize = 1271922688 {product} {ergonomic} |
|||
size_t MinHeapDeltaBytes = 1048576 {product} {ergonomic} |
|||
size_t MinHeapSize = 8388608 {product} {ergonomic} |
|||
uintx NonNMethodCodeHeapSize = 5832780 {pd product} {ergonomic} |
|||
uintx NonProfiledCodeHeapSize = 122912730 {pd product} {ergonomic} |
|||
uintx ProfiledCodeHeapSize = 122912730 {pd product} {ergonomic} |
|||
uintx ReservedCodeCacheSize = 251658240 {pd product} {ergonomic} |
|||
bool SegmentedCodeCache = true {product} {ergonomic} |
|||
bool ShowCodeDetailsInExceptionMessages = true {manageable} {command line} |
|||
size_t SoftMaxHeapSize = 2120220672 {manageable} {ergonomic} |
|||
bool UseCompressedClassPointers = true {product lp64_product} {ergonomic} |
|||
bool UseCompressedOops = true {product lp64_product} {ergonomic} |
|||
bool UseG1GC = true {product} {ergonomic} |
|||
bool UseLargePagesIndividualAllocation = false {pd product} {ergonomic} |
|||
|
|||
Logging: |
|||
Log output configuration: |
|||
#0: stdout all=warning uptime,level,tags |
|||
#1: stderr all=off uptime,level,tags |
|||
|
|||
Environment Variables: |
|||
PATH=C:/Users/ADMIN/.p2/pool/plugins/org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_23.0.2.v20250131-0604/jre/bin/server;C:/Users/ADMIN/.p2/pool/plugins/org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_23.0.2.v20250131-0604/jre/bin;C:\Program Files\Common Files\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\Git\cmd;C:\Program Files\nodejs\;C:\Users\ADMIN\AppData\Local\Programs\Python\Python313\Scripts\;C:\Users\ADMIN\AppData\Local\Programs\Python\Python313\;C:\Program Files\MySQL\MySQL Shell 8.0\bin\;C:\Users\ADMIN\AppData\Local\Microsoft\WindowsApps;D:\vscode and mysql installer\Microsoft VS Code\bin;D:\Python\PyCharm 2024.3.2\bin;;C:\Users\ADMIN\AppData\Roaming\npm;C:\Users\ADMIN\AppData\Local\GitHubDesktop\bin;C:\Windows\system32; |
|||
USERNAME=ADMIN |
|||
OS=Windows_NT |
|||
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 78 Stepping 3, GenuineIntel |
|||
TMP=C:\Users\ADMIN\AppData\Local\Temp |
|||
TEMP=C:\Users\ADMIN\AppData\Local\Temp |
|||
|
|||
|
|||
|
|||
Periodic native trim disabled |
|||
|
|||
|
|||
--------------- S Y S T E M --------------- |
|||
|
|||
OS: |
|||
Windows 10 , 64 bit Build 19041 (10.0.19041.5915) |
|||
OS uptime: 22 days 21:23 hours |
|||
|
|||
CPU: total 4 (initial active 4) (2 cores per cpu, 2 threads per core) family 6 model 78 stepping 3 microcode 0xf0, cx8, cmov, fxsr, ht, mmx, 3dnowpref, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, lzcnt, tsc, tscinvbit, avx, avx2, aes, erms, clmul, bmi1, bmi2, rtm, adx, fma, vzeroupper, clflush, clflushopt |
|||
Processor Information for all 4 processors : |
|||
Max Mhz: 2496, Current Mhz: 2496, Mhz Limit: 2496 |
|||
|
|||
Memory: 4k page, system-wide physical 8087M (724M free) |
|||
TotalPageFile size 25396M (AvailPageFile size 38M) |
|||
current process WorkingSet (physical memory assigned to process): 172M, peak: 172M |
|||
current process commit charge ("private bytes"): 249M, peak: 333M |
|||
|
|||
vm_info: OpenJDK 64-Bit Server VM (17.0.9+9) for windows-amd64 JRE (17.0.9+9), built on Oct 26 2023 14:01:42 by "admin" with MS VC++ 16.10 / 16.11 (VS2019) |
|||
|
|||
END. |
|||
@ -0,0 +1,735 @@ |
|||
# |
|||
# There is insufficient memory for the Java Runtime Environment to continue. |
|||
# Native memory allocation (mmap) failed to map 11534336 bytes for G1 virtual space |
|||
# Possible reasons: |
|||
# The system is out of physical RAM or swap space |
|||
# The process is running with CompressedOops enabled, and the Java Heap may be blocking the growth of the native heap |
|||
# Possible solutions: |
|||
# Reduce memory load on the system |
|||
# Increase physical memory or swap space |
|||
# Check if swap backing store is full |
|||
# Decrease Java heap size (-Xmx/-Xms) |
|||
# Decrease number of Java threads |
|||
# Decrease Java thread stack sizes (-Xss) |
|||
# Set larger code cache with -XX:ReservedCodeCacheSize= |
|||
# JVM is running with Unscaled Compressed Oops mode in which the Java heap is |
|||
# placed in the first 4GB address space. The Java Heap base address is the |
|||
# maximum limit for the native heap growth. Please use -XX:HeapBaseMinAddress |
|||
# to set the Java Heap base and to place the Java Heap above 4GB virtual address. |
|||
# This output file may be truncated or incomplete. |
|||
# |
|||
# Out of Memory Error (os_windows.cpp:3613), pid=9124, tid=9716 |
|||
# |
|||
# JRE version: OpenJDK Runtime Environment Temurin-17.0.9+9 (17.0.9+9) (build 17.0.9+9) |
|||
# Java VM: OpenJDK 64-Bit Server VM Temurin-17.0.9+9 (17.0.9+9, mixed mode, tiered, compressed oops, compressed class ptrs, g1 gc, windows-amd64) |
|||
# No core dump will be written. Minidumps are not enabled by default on client versions of Windows |
|||
# |
|||
|
|||
--------------- S U M M A R Y ------------ |
|||
|
|||
Command Line: -Dmaven.home=EMBEDDED -Dclassworlds.conf=D:\projects\New2\.metadata\.plugins\org.eclipse.m2e.launching\launches\m2conf4771384238088312615.tmp -Dmaven.multiModuleProjectDirectory=D:\PGR Update\public_grievance_updated -Dm2e.build.project.data.socket.port=62566 -Dfile.encoding=UTF-8 -Dstdout.encoding=UTF-8 -Dstderr.encoding=UTF-8 -XX:+ShowCodeDetailsInExceptionMessages org.codehaus.plexus.classworlds.launcher.Launcher -B -Dstyle.color=always install |
|||
|
|||
Host: Intel(R) Core(TM) i5-6300U CPU @ 2.40GHz, 4 cores, 7G, Windows 10 , 64 bit Build 19041 (10.0.19041.5915) |
|||
Time: Mon Nov 17 11:13:28 2025 India Standard Time elapsed time: 12.378450 seconds (0d 0h 0m 12s) |
|||
|
|||
--------------- T H R E A D --------------- |
|||
|
|||
Current thread (0x0000014ab14c0780): VMThread "VM Thread" [stack: 0x0000002febf00000,0x0000002fec000000] [id=9716] |
|||
|
|||
Stack: [0x0000002febf00000,0x0000002fec000000] |
|||
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) |
|||
V [jvm.dll+0x67cf49] |
|||
V [jvm.dll+0x83478a] |
|||
V [jvm.dll+0x83624e] |
|||
V [jvm.dll+0x8368b3] |
|||
V [jvm.dll+0x247f1f] |
|||
V [jvm.dll+0x679d69] |
|||
V [jvm.dll+0x66e6ba] |
|||
V [jvm.dll+0x307e5b] |
|||
V [jvm.dll+0x30f306] |
|||
V [jvm.dll+0x35f0ce] |
|||
V [jvm.dll+0x35f2ff] |
|||
V [jvm.dll+0x2dea58] |
|||
V [jvm.dll+0x2e1ad6] |
|||
V [jvm.dll+0x2ec1ca] |
|||
V [jvm.dll+0x3204d0] |
|||
V [jvm.dll+0x83adab] |
|||
V [jvm.dll+0x83baf1] |
|||
V [jvm.dll+0x83c00d] |
|||
V [jvm.dll+0x83c3e4] |
|||
V [jvm.dll+0x83c4b0] |
|||
V [jvm.dll+0x7e3c3a] |
|||
V [jvm.dll+0x67be35] |
|||
C [ucrtbase.dll+0x21bb2] |
|||
C [KERNEL32.DLL+0x17374] |
|||
C [ntdll.dll+0x4cc91] |
|||
|
|||
VM_Operation (0x0000002febbff430): G1PauseRemark, mode: safepoint, requested by thread 0x0000014a97e78dc0 |
|||
|
|||
|
|||
--------------- P R O C E S S --------------- |
|||
|
|||
Threads class SMR info: |
|||
_java_thread_list=0x0000014ab72b37d0, length=12, elements={ |
|||
0x0000014a97e0ea20, 0x0000014ab1541020, 0x0000014ab1541cb0, 0x0000014ab166b690, |
|||
0x0000014ab166df70, 0x0000014ab166e840, 0x0000014ab166f110, 0x0000014ab166fd10, |
|||
0x0000014ab16db500, 0x0000014ab16de1d0, 0x0000014ab17dba50, 0x0000014ab17e8620 |
|||
} |
|||
|
|||
Java Threads: ( => current thread ) |
|||
0x0000014a97e0ea20 JavaThread "main" [_thread_blocked, id=12320, stack(0x0000002feb900000,0x0000002feba00000)] |
|||
0x0000014ab1541020 JavaThread "Reference Handler" daemon [_thread_blocked, id=11784, stack(0x0000002fec000000,0x0000002fec100000)] |
|||
0x0000014ab1541cb0 JavaThread "Finalizer" daemon [_thread_blocked, id=16816, stack(0x0000002fec100000,0x0000002fec200000)] |
|||
0x0000014ab166b690 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=8308, stack(0x0000002fec200000,0x0000002fec300000)] |
|||
0x0000014ab166df70 JavaThread "Attach Listener" daemon [_thread_blocked, id=10712, stack(0x0000002fec300000,0x0000002fec400000)] |
|||
0x0000014ab166e840 JavaThread "Service Thread" daemon [_thread_blocked, id=3500, stack(0x0000002fec400000,0x0000002fec500000)] |
|||
0x0000014ab166f110 JavaThread "Monitor Deflation Thread" daemon [_thread_blocked, id=5636, stack(0x0000002fec500000,0x0000002fec600000)] |
|||
0x0000014ab166fd10 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=15476, stack(0x0000002fec600000,0x0000002fec700000)] |
|||
0x0000014ab16db500 JavaThread "C1 CompilerThread0" daemon [_thread_blocked, id=20008, stack(0x0000002fec700000,0x0000002fec800000)] |
|||
0x0000014ab16de1d0 JavaThread "Sweeper thread" daemon [_thread_blocked, id=17188, stack(0x0000002fec800000,0x0000002fec900000)] |
|||
0x0000014ab17dba50 JavaThread "Notification Thread" daemon [_thread_blocked, id=6004, stack(0x0000002fec900000,0x0000002feca00000)] |
|||
0x0000014ab17e8620 JavaThread "Common-Cleaner" daemon [_thread_blocked, id=18460, stack(0x0000002fecb00000,0x0000002fecc00000)] |
|||
|
|||
Other Threads: |
|||
=>0x0000014ab14c0780 VMThread "VM Thread" [stack: 0x0000002febf00000,0x0000002fec000000] [id=9716] |
|||
0x0000014ab17de350 WatcherThread [stack: 0x0000002feca00000,0x0000002fecb00000] [id=19632] |
|||
0x0000014a97e682a0 GCTaskThread "GC Thread#0" [stack: 0x0000002feba00000,0x0000002febb00000] [id=4628] |
|||
0x0000014ab6832240 GCTaskThread "GC Thread#1" [stack: 0x0000002fece00000,0x0000002fecf00000] [id=2860] |
|||
0x0000014ab67817e0 GCTaskThread "GC Thread#2" [stack: 0x0000002fecf00000,0x0000002fed000000] [id=19068] |
|||
0x0000014ab677ef20 GCTaskThread "GC Thread#3" [stack: 0x0000002fed000000,0x0000002fed100000] [id=11576] |
|||
0x0000014a97e78dc0 ConcurrentGCThread "G1 Main Marker" [stack: 0x0000002febb00000,0x0000002febc00000] [id=13100] |
|||
0x0000014a97e796f0 ConcurrentGCThread "G1 Conc#0" [stack: 0x0000002febc00000,0x0000002febd00000] [id=20192] |
|||
0x0000014a97ecd820 ConcurrentGCThread "G1 Refine#0" [stack: 0x0000002febd00000,0x0000002febe00000] [id=18128] |
|||
0x0000014ab6d5ae90 ConcurrentGCThread "G1 Refine#1" [stack: 0x0000002fed100000,0x0000002fed200000] [id=10212] |
|||
0x0000014a97ece160 ConcurrentGCThread "G1 Service" [stack: 0x0000002febe00000,0x0000002febf00000] [id=3124] |
|||
|
|||
Threads with active compile tasks: |
|||
C2 CompilerThread0 12426 4615 4 org.codehaus.plexus.util.SelectorUtils::match (520 bytes) |
|||
|
|||
VM state: at safepoint (normal execution) |
|||
|
|||
VM Mutex/Monitor currently owned by a thread: ([mutex/lock_event]) |
|||
[0x0000014a97e0a430] Threads_lock - owner thread: 0x0000014ab14c0780 |
|||
[0x0000014a97e0a040] Heap_lock - owner thread: 0x0000014a97e78dc0 |
|||
|
|||
Heap address: 0x0000000081a00000, size: 2022 MB, Compressed Oops mode: 32-bit |
|||
|
|||
CDS archive(s) not mapped |
|||
Compressed class space mapped at: 0x0000000100000000-0x0000000140000000, reserved size: 1073741824 |
|||
Narrow klass base: 0x0000000000000000, Narrow klass shift: 3, Narrow klass range: 0x140000000 |
|||
|
|||
GC Precious Log: |
|||
CPUs: 4 total, 4 available |
|||
Memory: 8087M |
|||
Large Page Support: Disabled |
|||
NUMA Support: Disabled |
|||
Compressed Oops: Enabled (32-bit) |
|||
Heap Region Size: 1M |
|||
Heap Min Capacity: 8M |
|||
Heap Initial Capacity: 128M |
|||
Heap Max Capacity: 2022M |
|||
Pre-touch: Disabled |
|||
Parallel Workers: 4 |
|||
Concurrent Workers: 1 |
|||
Concurrent Refinement Workers: 4 |
|||
Periodic GC: Disabled |
|||
|
|||
Heap: |
|||
garbage-first heap total 119808K, used 81977K [0x0000000081a00000, 0x0000000100000000) |
|||
region size 1024K, 2 young (2048K), 1 survivors (1024K) |
|||
Metaspace used 28012K, committed 28224K, reserved 1114112K |
|||
class space used 2963K, committed 3072K, reserved 1048576K |
|||
|
|||
Heap Regions: E=young(eden), S=young(survivor), O=old, HS=humongous(starts), HC=humongous(continues), CS=collection set, F=free, OA=open archive, CA=closed archive, TAMS=top-at-mark-start (previous, next) |
|||
| 0|0x0000000081a00000, 0x0000000081b00000, 0x0000000081b00000|100%| O| |TAMS 0x0000000081b00000, 0x0000000081a00000| Untracked |
|||
| 1|0x0000000081b00000, 0x0000000081c00000, 0x0000000081c00000|100%| O| |TAMS 0x0000000081c00000, 0x0000000081b00000| Untracked |
|||
| 2|0x0000000081c00000, 0x0000000081d00000, 0x0000000081d00000|100%| O| |TAMS 0x0000000081d00000, 0x0000000081c00000| Untracked |
|||
| 3|0x0000000081d00000, 0x0000000081e00000, 0x0000000081e00000|100%| O| |TAMS 0x0000000081e00000, 0x0000000081d00000| Untracked |
|||
| 4|0x0000000081e00000, 0x0000000081f00000, 0x0000000081f00000|100%| O| |TAMS 0x0000000081f00000, 0x0000000081e00000| Untracked |
|||
| 5|0x0000000081f00000, 0x0000000082000000, 0x0000000082000000|100%| O| |TAMS 0x0000000082000000, 0x0000000081f00000| Untracked |
|||
| 6|0x0000000082000000, 0x0000000082100000, 0x0000000082100000|100%| O| |TAMS 0x0000000082100000, 0x0000000082000000| Updating |
|||
| 7|0x0000000082100000, 0x0000000082200000, 0x0000000082200000|100%| O| |TAMS 0x0000000082200000, 0x0000000082100000| Untracked |
|||
| 8|0x0000000082200000, 0x0000000082300000, 0x0000000082300000|100%| O| |TAMS 0x0000000082300000, 0x0000000082200000| Untracked |
|||
| 9|0x0000000082300000, 0x0000000082400000, 0x0000000082400000|100%| O| |TAMS 0x0000000082400000, 0x0000000082300000| Untracked |
|||
| 10|0x0000000082400000, 0x0000000082500000, 0x0000000082500000|100%| O| |TAMS 0x0000000082500000, 0x0000000082400000| Untracked |
|||
| 11|0x0000000082500000, 0x0000000082600000, 0x0000000082600000|100%| O| |TAMS 0x0000000082600000, 0x0000000082500000| Untracked |
|||
| 12|0x0000000082600000, 0x0000000082700000, 0x0000000082700000|100%| O| |TAMS 0x0000000082700000, 0x0000000082600000| Untracked |
|||
| 13|0x0000000082700000, 0x0000000082800000, 0x0000000082800000|100%| O| |TAMS 0x0000000082800000, 0x0000000082700000| Untracked |
|||
| 14|0x0000000082800000, 0x0000000082900000, 0x0000000082900000|100%|HS| |TAMS 0x0000000082900000, 0x0000000082800000| Complete |
|||
| 15|0x0000000082900000, 0x0000000082a00000, 0x0000000082a00000|100%|HC| |TAMS 0x0000000082a00000, 0x0000000082900000| Complete |
|||
| 16|0x0000000082a00000, 0x0000000082b00000, 0x0000000082b00000|100%|HC| |TAMS 0x0000000082b00000, 0x0000000082a00000| Complete |
|||
| 17|0x0000000082b00000, 0x0000000082c00000, 0x0000000082c00000|100%|HC| |TAMS 0x0000000082c00000, 0x0000000082b00000| Complete |
|||
| 18|0x0000000082c00000, 0x0000000082d00000, 0x0000000082d00000|100%|HC| |TAMS 0x0000000082d00000, 0x0000000082c00000| Complete |
|||
| 19|0x0000000082d00000, 0x0000000082e00000, 0x0000000082e00000|100%|HC| |TAMS 0x0000000082e00000, 0x0000000082d00000| Complete |
|||
| 20|0x0000000082e00000, 0x0000000082f00000, 0x0000000082f00000|100%|HC| |TAMS 0x0000000082f00000, 0x0000000082e00000| Complete |
|||
| 21|0x0000000082f00000, 0x0000000083000000, 0x0000000083000000|100%|HC| |TAMS 0x0000000083000000, 0x0000000082f00000| Complete |
|||
| 22|0x0000000083000000, 0x0000000083100000, 0x0000000083100000|100%|HS| |TAMS 0x0000000083100000, 0x0000000083000000| Complete |
|||
| 23|0x0000000083100000, 0x0000000083200000, 0x0000000083200000|100%|HC| |TAMS 0x0000000083200000, 0x0000000083100000| Complete |
|||
| 24|0x0000000083200000, 0x0000000083300000, 0x0000000083300000|100%|HC| |TAMS 0x0000000083300000, 0x0000000083200000| Complete |
|||
| 25|0x0000000083300000, 0x0000000083400000, 0x0000000083400000|100%|HC| |TAMS 0x0000000083400000, 0x0000000083300000| Complete |
|||
| 26|0x0000000083400000, 0x0000000083500000, 0x0000000083500000|100%|HC| |TAMS 0x0000000083500000, 0x0000000083400000| Complete |
|||
| 27|0x0000000083500000, 0x0000000083600000, 0x0000000083600000|100%|HC| |TAMS 0x0000000083600000, 0x0000000083500000| Complete |
|||
| 28|0x0000000083600000, 0x0000000083700000, 0x0000000083700000|100%|HC| |TAMS 0x0000000083700000, 0x0000000083600000| Complete |
|||
| 29|0x0000000083700000, 0x0000000083800000, 0x0000000083800000|100%|HC| |TAMS 0x0000000083800000, 0x0000000083700000| Complete |
|||
| 30|0x0000000083800000, 0x0000000083900000, 0x0000000083900000|100%|HC| |TAMS 0x0000000083900000, 0x0000000083800000| Complete |
|||
| 31|0x0000000083900000, 0x0000000083a00000, 0x0000000083a00000|100%|HC| |TAMS 0x0000000083a00000, 0x0000000083900000| Complete |
|||
| 32|0x0000000083a00000, 0x0000000083b00000, 0x0000000083b00000|100%|HC| |TAMS 0x0000000083b00000, 0x0000000083a00000| Complete |
|||
| 33|0x0000000083b00000, 0x0000000083c00000, 0x0000000083c00000|100%|HC| |TAMS 0x0000000083c00000, 0x0000000083b00000| Complete |
|||
| 34|0x0000000083c00000, 0x0000000083d00000, 0x0000000083d00000|100%| O| |TAMS 0x0000000083d00000, 0x0000000083c00000| Untracked |
|||
| 35|0x0000000083d00000, 0x0000000083d39600, 0x0000000083e00000| 22%| O| |TAMS 0x0000000083d39600, 0x0000000083d00000| Updating |
|||
| 36|0x0000000083e00000, 0x0000000083f00000, 0x0000000083f00000|100%|HS| |TAMS 0x0000000083e00000, 0x0000000083e00000| Complete |
|||
| 37|0x0000000083f00000, 0x0000000084000000, 0x0000000084000000|100%|HC| |TAMS 0x0000000083f00000, 0x0000000083f00000| Complete |
|||
| 38|0x0000000084000000, 0x0000000084100000, 0x0000000084100000|100%|HC| |TAMS 0x0000000084000000, 0x0000000084000000| Complete |
|||
| 39|0x0000000084100000, 0x0000000084200000, 0x0000000084200000|100%|HC| |TAMS 0x0000000084100000, 0x0000000084100000| Complete |
|||
| 40|0x0000000084200000, 0x0000000084300000, 0x0000000084300000|100%|HC| |TAMS 0x0000000084200000, 0x0000000084200000| Complete |
|||
| 41|0x0000000084300000, 0x0000000084400000, 0x0000000084400000|100%|HC| |TAMS 0x0000000084300000, 0x0000000084300000| Complete |
|||
| 42|0x0000000084400000, 0x0000000084500000, 0x0000000084500000|100%|HC| |TAMS 0x0000000084400000, 0x0000000084400000| Complete |
|||
| 43|0x0000000084500000, 0x0000000084600000, 0x0000000084600000|100%|HC| |TAMS 0x0000000084500000, 0x0000000084500000| Complete |
|||
| 44|0x0000000084600000, 0x0000000084700000, 0x0000000084700000|100%|HC| |TAMS 0x0000000084600000, 0x0000000084600000| Complete |
|||
| 45|0x0000000084700000, 0x0000000084800000, 0x0000000084800000|100%|HC| |TAMS 0x0000000084700000, 0x0000000084700000| Complete |
|||
| 46|0x0000000084800000, 0x0000000084900000, 0x0000000084900000|100%|HC| |TAMS 0x0000000084800000, 0x0000000084800000| Complete |
|||
| 47|0x0000000084900000, 0x0000000084a00000, 0x0000000084a00000|100%|HC| |TAMS 0x0000000084900000, 0x0000000084900000| Complete |
|||
| 48|0x0000000084a00000, 0x0000000084b00000, 0x0000000084b00000|100%|HS| |TAMS 0x0000000084a00000, 0x0000000084a00000| Complete |
|||
| 49|0x0000000084b00000, 0x0000000084c00000, 0x0000000084c00000|100%|HC| |TAMS 0x0000000084b00000, 0x0000000084b00000| Complete |
|||
| 50|0x0000000084c00000, 0x0000000084d00000, 0x0000000084d00000|100%|HC| |TAMS 0x0000000084c00000, 0x0000000084c00000| Complete |
|||
| 51|0x0000000084d00000, 0x0000000084e00000, 0x0000000084e00000|100%|HC| |TAMS 0x0000000084d00000, 0x0000000084d00000| Complete |
|||
| 52|0x0000000084e00000, 0x0000000084f00000, 0x0000000084f00000|100%|HC| |TAMS 0x0000000084e00000, 0x0000000084e00000| Complete |
|||
| 53|0x0000000084f00000, 0x0000000085000000, 0x0000000085000000|100%|HC| |TAMS 0x0000000084f00000, 0x0000000084f00000| Complete |
|||
| 54|0x0000000085000000, 0x0000000085100000, 0x0000000085100000|100%|HC| |TAMS 0x0000000085000000, 0x0000000085000000| Complete |
|||
| 55|0x0000000085100000, 0x0000000085200000, 0x0000000085200000|100%|HC| |TAMS 0x0000000085100000, 0x0000000085100000| Complete |
|||
| 56|0x0000000085200000, 0x0000000085300000, 0x0000000085300000|100%|HS| |TAMS 0x0000000085200000, 0x0000000085200000| Complete |
|||
| 57|0x0000000085300000, 0x0000000085400000, 0x0000000085400000|100%|HC| |TAMS 0x0000000085300000, 0x0000000085300000| Complete |
|||
| 58|0x0000000085400000, 0x0000000085500000, 0x0000000085500000|100%|HC| |TAMS 0x0000000085400000, 0x0000000085400000| Complete |
|||
| 59|0x0000000085500000, 0x0000000085600000, 0x0000000085600000|100%|HC| |TAMS 0x0000000085500000, 0x0000000085500000| Complete |
|||
| 60|0x0000000085600000, 0x0000000085700000, 0x0000000085700000|100%|HC| |TAMS 0x0000000085600000, 0x0000000085600000| Complete |
|||
| 61|0x0000000085700000, 0x0000000085800000, 0x0000000085800000|100%|HC| |TAMS 0x0000000085700000, 0x0000000085700000| Complete |
|||
| 62|0x0000000085800000, 0x0000000085900000, 0x0000000085900000|100%|HC| |TAMS 0x0000000085800000, 0x0000000085800000| Complete |
|||
| 63|0x0000000085900000, 0x0000000085a00000, 0x0000000085a00000|100%|HC| |TAMS 0x0000000085900000, 0x0000000085900000| Complete |
|||
| 64|0x0000000085a00000, 0x0000000085b00000, 0x0000000085b00000|100%|HC| |TAMS 0x0000000085a00000, 0x0000000085a00000| Complete |
|||
| 65|0x0000000085b00000, 0x0000000085c00000, 0x0000000085c00000|100%|HC| |TAMS 0x0000000085b00000, 0x0000000085b00000| Complete |
|||
| 66|0x0000000085c00000, 0x0000000085d00000, 0x0000000085d00000|100%|HC| |TAMS 0x0000000085c00000, 0x0000000085c00000| Complete |
|||
| 67|0x0000000085d00000, 0x0000000085e00000, 0x0000000085e00000|100%|HC| |TAMS 0x0000000085d00000, 0x0000000085d00000| Complete |
|||
| 68|0x0000000085e00000, 0x0000000085f00000, 0x0000000085f00000|100%|HS| |TAMS 0x0000000085e00000, 0x0000000085e00000| Complete |
|||
| 69|0x0000000085f00000, 0x0000000086000000, 0x0000000086000000|100%|HC| |TAMS 0x0000000085f00000, 0x0000000085f00000| Complete |
|||
| 70|0x0000000086000000, 0x0000000086100000, 0x0000000086100000|100%|HC| |TAMS 0x0000000086000000, 0x0000000086000000| Complete |
|||
| 71|0x0000000086100000, 0x0000000086200000, 0x0000000086200000|100%|HC| |TAMS 0x0000000086100000, 0x0000000086100000| Complete |
|||
| 72|0x0000000086200000, 0x0000000086300000, 0x0000000086300000|100%|HC| |TAMS 0x0000000086200000, 0x0000000086200000| Complete |
|||
| 73|0x0000000086300000, 0x0000000086400000, 0x0000000086400000|100%|HC| |TAMS 0x0000000086300000, 0x0000000086300000| Complete |
|||
| 74|0x0000000086400000, 0x0000000086500000, 0x0000000086500000|100%|HC| |TAMS 0x0000000086400000, 0x0000000086400000| Complete |
|||
| 75|0x0000000086500000, 0x0000000086600000, 0x0000000086600000|100%|HC| |TAMS 0x0000000086500000, 0x0000000086500000| Complete |
|||
| 76|0x0000000086600000, 0x0000000086700000, 0x0000000086700000|100%|HC| |TAMS 0x0000000086600000, 0x0000000086600000| Complete |
|||
| 77|0x0000000086700000, 0x0000000086800000, 0x0000000086800000|100%|HC| |TAMS 0x0000000086700000, 0x0000000086700000| Complete |
|||
| 78|0x0000000086800000, 0x0000000086900000, 0x0000000086900000|100%|HC| |TAMS 0x0000000086800000, 0x0000000086800000| Complete |
|||
| 79|0x0000000086900000, 0x0000000086a00000, 0x0000000086a00000|100%|HC| |TAMS 0x0000000086900000, 0x0000000086900000| Complete |
|||
| 80|0x0000000086a00000, 0x0000000086a00000, 0x0000000086b00000| 0%| F| |TAMS 0x0000000086a00000, 0x0000000086a00000| Untracked |
|||
| 81|0x0000000086b00000, 0x0000000086b00000, 0x0000000086c00000| 0%| F| |TAMS 0x0000000086b00000, 0x0000000086b00000| Untracked |
|||
| 82|0x0000000086c00000, 0x0000000086c00000, 0x0000000086d00000| 0%| F| |TAMS 0x0000000086c00000, 0x0000000086c00000| Untracked |
|||
| 83|0x0000000086d00000, 0x0000000086d00000, 0x0000000086e00000| 0%| F| |TAMS 0x0000000086d00000, 0x0000000086d00000| Untracked |
|||
| 84|0x0000000086e00000, 0x0000000086e00000, 0x0000000086f00000| 0%| F| |TAMS 0x0000000086e00000, 0x0000000086e00000| Untracked |
|||
| 85|0x0000000086f00000, 0x0000000086f00000, 0x0000000087000000| 0%| F| |TAMS 0x0000000086f00000, 0x0000000086f00000| Untracked |
|||
| 86|0x0000000087000000, 0x0000000087000000, 0x0000000087100000| 0%| F| |TAMS 0x0000000087000000, 0x0000000087000000| Untracked |
|||
| 87|0x0000000087100000, 0x0000000087100000, 0x0000000087200000| 0%| F| |TAMS 0x0000000087100000, 0x0000000087100000| Untracked |
|||
| 88|0x0000000087200000, 0x0000000087200000, 0x0000000087300000| 0%| F| |TAMS 0x0000000087200000, 0x0000000087200000| Untracked |
|||
| 89|0x0000000087300000, 0x0000000087300000, 0x0000000087400000| 0%| F| |TAMS 0x0000000087300000, 0x0000000087300000| Untracked |
|||
| 90|0x0000000087400000, 0x0000000087400000, 0x0000000087500000| 0%| F| |TAMS 0x0000000087400000, 0x0000000087400000| Untracked |
|||
| 91|0x0000000087500000, 0x0000000087500000, 0x0000000087600000| 0%| F| |TAMS 0x0000000087500000, 0x0000000087500000| Untracked |
|||
| 92|0x0000000087600000, 0x0000000087600000, 0x0000000087700000| 0%| F| |TAMS 0x0000000087600000, 0x0000000087600000| Untracked |
|||
| 93|0x0000000087700000, 0x0000000087700000, 0x0000000087800000| 0%| F| |TAMS 0x0000000087700000, 0x0000000087700000| Untracked |
|||
| 94|0x0000000087800000, 0x0000000087800000, 0x0000000087900000| 0%| F| |TAMS 0x0000000087800000, 0x0000000087800000| Untracked |
|||
| 95|0x0000000087900000, 0x0000000087900000, 0x0000000087a00000| 0%| F| |TAMS 0x0000000087900000, 0x0000000087900000| Untracked |
|||
| 96|0x0000000087a00000, 0x0000000087a00000, 0x0000000087b00000| 0%| F| |TAMS 0x0000000087a00000, 0x0000000087a00000| Untracked |
|||
| 97|0x0000000087b00000, 0x0000000087b00000, 0x0000000087c00000| 0%| F| |TAMS 0x0000000087b00000, 0x0000000087b00000| Untracked |
|||
| 98|0x0000000087c00000, 0x0000000087c00000, 0x0000000087d00000| 0%| F| |TAMS 0x0000000087c00000, 0x0000000087c00000| Untracked |
|||
| 99|0x0000000087d00000, 0x0000000087d00000, 0x0000000087e00000| 0%| F| |TAMS 0x0000000087d00000, 0x0000000087d00000| Untracked |
|||
| 100|0x0000000087e00000, 0x0000000087e00000, 0x0000000087f00000| 0%| F| |TAMS 0x0000000087e00000, 0x0000000087e00000| Untracked |
|||
| 101|0x0000000087f00000, 0x0000000087f00000, 0x0000000088000000| 0%| F| |TAMS 0x0000000087f00000, 0x0000000087f00000| Untracked |
|||
| 102|0x0000000088000000, 0x0000000088000000, 0x0000000088100000| 0%| F| |TAMS 0x0000000088000000, 0x0000000088000000| Untracked |
|||
| 103|0x0000000088100000, 0x0000000088100000, 0x0000000088200000| 0%| F| |TAMS 0x0000000088100000, 0x0000000088100000| Untracked |
|||
| 104|0x0000000088200000, 0x0000000088200000, 0x0000000088300000| 0%| F| |TAMS 0x0000000088200000, 0x0000000088200000| Untracked |
|||
| 105|0x0000000088300000, 0x0000000088300000, 0x0000000088400000| 0%| F| |TAMS 0x0000000088300000, 0x0000000088300000| Untracked |
|||
| 106|0x0000000088400000, 0x0000000088400000, 0x0000000088500000| 0%| F| |TAMS 0x0000000088400000, 0x0000000088400000| Untracked |
|||
| 107|0x0000000088500000, 0x0000000088500000, 0x0000000088600000| 0%| F| |TAMS 0x0000000088500000, 0x0000000088500000| Untracked |
|||
| 108|0x0000000088600000, 0x0000000088600000, 0x0000000088700000| 0%| F| |TAMS 0x0000000088600000, 0x0000000088600000| Untracked |
|||
| 109|0x0000000088700000, 0x0000000088700000, 0x0000000088800000| 0%| F| |TAMS 0x0000000088700000, 0x0000000088700000| Untracked |
|||
| 110|0x0000000088800000, 0x0000000088800000, 0x0000000088900000| 0%| F| |TAMS 0x0000000088800000, 0x0000000088800000| Untracked |
|||
| 111|0x0000000088900000, 0x0000000088900000, 0x0000000088a00000| 0%| F| |TAMS 0x0000000088900000, 0x0000000088900000| Untracked |
|||
| 112|0x0000000088a00000, 0x0000000088a00000, 0x0000000088b00000| 0%| F| |TAMS 0x0000000088a00000, 0x0000000088a00000| Untracked |
|||
| 113|0x0000000088b00000, 0x0000000088b00000, 0x0000000088c00000| 0%| F| |TAMS 0x0000000088b00000, 0x0000000088b00000| Untracked |
|||
| 114|0x0000000088c00000, 0x0000000088c00000, 0x0000000088d00000| 0%| F| |TAMS 0x0000000088c00000, 0x0000000088c00000| Untracked |
|||
| 115|0x0000000088d00000, 0x0000000088dd5188, 0x0000000088e00000| 83%| S|CS|TAMS 0x0000000088d00000, 0x0000000088d00000| Complete |
|||
| 127|0x0000000089900000, 0x0000000089980000, 0x0000000089a00000| 50%| E| |TAMS 0x0000000089900000, 0x0000000089900000| Complete |
|||
|
|||
Card table byte_map: [0x0000014aaa8e0000,0x0000014aaace0000] _byte_map_base: 0x0000014aaa4d3000 |
|||
|
|||
Marking Bits (Prev, Next): (CMBitMap*) 0x0000014a97e687d0, (CMBitMap*) 0x0000014a97e68810 |
|||
Prev Bits: [0x0000014aab0e0000, 0x0000014aad078000) |
|||
Next Bits: [0x0000014aad080000, 0x0000014aaf018000) |
|||
|
|||
Polling page: 0x0000014a95d10000 |
|||
|
|||
Metaspace: |
|||
|
|||
Usage: |
|||
Non-class: 24.46 MB used. |
|||
Class: 2.89 MB used. |
|||
Both: 27.36 MB used. |
|||
|
|||
Virtual space: |
|||
Non-class space: 64.00 MB reserved, 24.56 MB ( 38%) committed, 1 nodes. |
|||
Class space: 1.00 GB reserved, 3.00 MB ( <1%) committed, 1 nodes. |
|||
Both: 1.06 GB reserved, 27.56 MB ( 3%) committed. |
|||
|
|||
Chunk freelists: |
|||
Non-Class: 6.62 MB |
|||
Class: 12.88 MB |
|||
Both: 19.50 MB |
|||
|
|||
MaxMetaspaceSize: unlimited |
|||
CompressedClassSpaceSize: 1.00 GB |
|||
Initial GC threshold: 21.00 MB |
|||
Current GC threshold: 35.12 MB |
|||
CDS: off |
|||
MetaspaceReclaimPolicy: balanced |
|||
- commit_granule_bytes: 65536. |
|||
- commit_granule_words: 8192. |
|||
- virtual_space_node_default_size: 8388608. |
|||
- enlarge_chunks_in_place: 1. |
|||
- new_chunks_are_fully_committed: 0. |
|||
- uncommit_free_chunks: 1. |
|||
- use_allocation_guard: 0. |
|||
- handle_deallocations: 1. |
|||
|
|||
|
|||
Internal statistics: |
|||
|
|||
num_allocs_failed_limit: 3. |
|||
num_arena_births: 124. |
|||
num_arena_deaths: 0. |
|||
num_vsnodes_births: 2. |
|||
num_vsnodes_deaths: 0. |
|||
num_space_committed: 441. |
|||
num_space_uncommitted: 0. |
|||
num_chunks_returned_to_freelist: 3. |
|||
num_chunks_taken_from_freelist: 778. |
|||
num_chunk_merges: 3. |
|||
num_chunk_splits: 509. |
|||
num_chunks_enlarged: 393. |
|||
num_inconsistent_stats: 0. |
|||
|
|||
CodeHeap 'non-profiled nmethods': size=120000Kb used=2476Kb max_used=2476Kb free=117523Kb |
|||
bounds [0x0000014aa2fb0000, 0x0000014aa3220000, 0x0000014aaa4e0000] |
|||
CodeHeap 'profiled nmethods': size=120000Kb used=9967Kb max_used=9967Kb free=110032Kb |
|||
bounds [0x0000014a9b4e0000, 0x0000014a9bea0000, 0x0000014aa2a10000] |
|||
CodeHeap 'non-nmethods': size=5760Kb used=1190Kb max_used=1258Kb free=4569Kb |
|||
bounds [0x0000014aa2a10000, 0x0000014aa2c80000, 0x0000014aa2fb0000] |
|||
total_blobs=5105 nmethods=4616 adapters=401 |
|||
compilation: enabled |
|||
stopped_count=0, restarted_count=0 |
|||
full_count=0 |
|||
|
|||
Compilation events (20 events): |
|||
Event: 12.312 Thread 0x0000014ab16db500 nmethod 4607 0x0000014a9be96390 code [0x0000014a9be96540, 0x0000014a9be968e8] |
|||
Event: 12.312 Thread 0x0000014ab16db500 4608 ! 3 java.io.BufferedReader::mark (57 bytes) |
|||
Event: 12.313 Thread 0x0000014ab16db500 nmethod 4608 0x0000014a9be96a10 code [0x0000014a9be96be0, 0x0000014a9be97058] |
|||
Event: 12.313 Thread 0x0000014ab16db500 4603 1 org.codehaus.plexus.interpolation.multi.DelimiterSpecification::getBegin (5 bytes) |
|||
Event: 12.313 Thread 0x0000014ab16db500 nmethod 4603 0x0000014aa321ad90 code [0x0000014aa321af20, 0x0000014aa321aff8] |
|||
Event: 12.356 Thread 0x0000014ab16db500 4612 3 java.util.StringTokenizer::<init> (52 bytes) |
|||
Event: 12.357 Thread 0x0000014ab16db500 nmethod 4612 0x0000014a9be97290 code [0x0000014a9be97460, 0x0000014a9be977c8] |
|||
Event: 12.357 Thread 0x0000014ab16db500 4613 3 java.util.StringTokenizer::setMaxDelimCodePoint (156 bytes) |
|||
Event: 12.359 Thread 0x0000014ab16db500 nmethod 4613 0x0000014a9be97990 code [0x0000014a9be97c00, 0x0000014a9be98978] |
|||
Event: 12.359 Thread 0x0000014ab16db500 4614 3 java.util.StringTokenizer::<init> (8 bytes) |
|||
Event: 12.359 Thread 0x0000014ab166fd10 4615 4 org.codehaus.plexus.util.SelectorUtils::match (520 bytes) |
|||
Event: 12.359 Thread 0x0000014ab16db500 nmethod 4614 0x0000014a9be98e90 code [0x0000014a9be99020, 0x0000014a9be99168] |
|||
Event: 12.360 Thread 0x0000014ab16db500 4616 3 org.codehaus.plexus.util.MatchPatterns::matches (49 bytes) |
|||
Event: 12.360 Thread 0x0000014ab16db500 nmethod 4616 0x0000014a9be99210 code [0x0000014a9be99420, 0x0000014a9be99a78] |
|||
Event: 12.360 Thread 0x0000014ab16db500 4617 3 java.io.File::isDirectory (34 bytes) |
|||
Event: 12.361 Thread 0x0000014ab16db500 nmethod 4617 0x0000014a9be99e10 code [0x0000014a9be9a000, 0x0000014a9be9a528] |
|||
Event: 12.363 Thread 0x0000014ab16db500 4618 3 sun.nio.fs.WindowsFileSystemProvider::readAttributes (63 bytes) |
|||
Event: 12.364 Thread 0x0000014ab16db500 nmethod 4618 0x0000014a9be9a690 code [0x0000014a9be9a900, 0x0000014a9be9b358] |
|||
Event: 12.364 Thread 0x0000014ab16db500 4619 3 java.nio.file.Files::readAttributes (11 bytes) |
|||
Event: 12.364 Thread 0x0000014ab16db500 nmethod 4619 0x0000014a9be9b710 code [0x0000014a9be9b8c0, 0x0000014a9be9bb48] |
|||
|
|||
GC Heap History (20 events): |
|||
Event: 6.400 GC heap before |
|||
{Heap before GC invocations=6 (full 0): |
|||
garbage-first heap total 27648K, used 8994K [0x0000000081a00000, 0x0000000100000000) |
|||
region size 1024K, 5 young (5120K), 4 survivors (4096K) |
|||
Metaspace used 24616K, committed 24896K, reserved 1114112K |
|||
class space used 2684K, committed 2816K, reserved 1048576K |
|||
} |
|||
Event: 6.414 GC heap after |
|||
{Heap after GC invocations=7 (full 0): |
|||
garbage-first heap total 27648K, used 8490K [0x0000000081a00000, 0x0000000100000000) |
|||
region size 1024K, 1 young (1024K), 1 survivors (1024K) |
|||
Metaspace used 24616K, committed 24896K, reserved 1114112K |
|||
class space used 2684K, committed 2816K, reserved 1048576K |
|||
} |
|||
Event: 7.000 GC heap before |
|||
{Heap before GC invocations=7 (full 0): |
|||
garbage-first heap total 27648K, used 17706K [0x0000000081a00000, 0x0000000100000000) |
|||
region size 1024K, 11 young (11264K), 1 survivors (1024K) |
|||
Metaspace used 25238K, committed 25472K, reserved 1114112K |
|||
class space used 2738K, committed 2816K, reserved 1048576K |
|||
} |
|||
Event: 7.007 GC heap after |
|||
{Heap after GC invocations=8 (full 0): |
|||
garbage-first heap total 27648K, used 9340K [0x0000000081a00000, 0x0000000100000000) |
|||
region size 1024K, 2 young (2048K), 2 survivors (2048K) |
|||
Metaspace used 25238K, committed 25472K, reserved 1114112K |
|||
class space used 2738K, committed 2816K, reserved 1048576K |
|||
} |
|||
Event: 7.391 GC heap before |
|||
{Heap before GC invocations=8 (full 0): |
|||
garbage-first heap total 27648K, used 18556K [0x0000000081a00000, 0x0000000100000000) |
|||
region size 1024K, 11 young (11264K), 2 survivors (2048K) |
|||
Metaspace used 25343K, committed 25472K, reserved 1114112K |
|||
class space used 2739K, committed 2816K, reserved 1048576K |
|||
} |
|||
Event: 7.399 GC heap after |
|||
{Heap after GC invocations=9 (full 0): |
|||
garbage-first heap total 27648K, used 10703K [0x0000000081a00000, 0x0000000100000000) |
|||
region size 1024K, 2 young (2048K), 2 survivors (2048K) |
|||
Metaspace used 25343K, committed 25472K, reserved 1114112K |
|||
class space used 2739K, committed 2816K, reserved 1048576K |
|||
} |
|||
Event: 7.667 GC heap before |
|||
{Heap before GC invocations=9 (full 0): |
|||
garbage-first heap total 27648K, used 19919K [0x0000000081a00000, 0x0000000100000000) |
|||
region size 1024K, 11 young (11264K), 2 survivors (2048K) |
|||
Metaspace used 25766K, committed 25984K, reserved 1114112K |
|||
class space used 2787K, committed 2880K, reserved 1048576K |
|||
} |
|||
Event: 7.674 GC heap after |
|||
{Heap after GC invocations=10 (full 0): |
|||
garbage-first heap total 79872K, used 11818K [0x0000000081a00000, 0x0000000100000000) |
|||
region size 1024K, 2 young (2048K), 2 survivors (2048K) |
|||
Metaspace used 25766K, committed 25984K, reserved 1114112K |
|||
class space used 2787K, committed 2880K, reserved 1048576K |
|||
} |
|||
Event: 9.306 GC heap before |
|||
{Heap before GC invocations=10 (full 0): |
|||
garbage-first heap total 79872K, used 50730K [0x0000000081a00000, 0x0000000100000000) |
|||
region size 1024K, 40 young (40960K), 2 survivors (2048K) |
|||
Metaspace used 26293K, committed 26560K, reserved 1114112K |
|||
class space used 2811K, committed 2944K, reserved 1048576K |
|||
} |
|||
Event: 9.322 GC heap after |
|||
{Heap after GC invocations=11 (full 0): |
|||
garbage-first heap total 79872K, used 14866K [0x0000000081a00000, 0x0000000100000000) |
|||
region size 1024K, 5 young (5120K), 5 survivors (5120K) |
|||
Metaspace used 26293K, committed 26560K, reserved 1114112K |
|||
class space used 2811K, committed 2944K, reserved 1048576K |
|||
} |
|||
Event: 11.427 GC heap before |
|||
{Heap before GC invocations=11 (full 0): |
|||
garbage-first heap total 79872K, used 52754K [0x0000000081a00000, 0x0000000100000000) |
|||
region size 1024K, 42 young (43008K), 5 survivors (5120K) |
|||
Metaspace used 26786K, committed 27008K, reserved 1114112K |
|||
class space used 2832K, committed 2944K, reserved 1048576K |
|||
} |
|||
Event: 11.442 GC heap after |
|||
{Heap after GC invocations=12 (full 0): |
|||
garbage-first heap total 79872K, used 15888K [0x0000000081a00000, 0x0000000100000000) |
|||
region size 1024K, 3 young (3072K), 3 survivors (3072K) |
|||
Metaspace used 26786K, committed 27008K, reserved 1114112K |
|||
class space used 2832K, committed 2944K, reserved 1048576K |
|||
} |
|||
Event: 12.260 GC heap before |
|||
{Heap before GC invocations=12 (full 0): |
|||
garbage-first heap total 79872K, used 43536K [0x0000000081a00000, 0x0000000100000000) |
|||
region size 1024K, 11 young (11264K), 3 survivors (3072K) |
|||
Metaspace used 27979K, committed 28224K, reserved 1114112K |
|||
class space used 2961K, committed 3072K, reserved 1048576K |
|||
} |
|||
Event: 12.268 GC heap after |
|||
{Heap after GC invocations=13 (full 0): |
|||
garbage-first heap total 79872K, used 37011K [0x0000000081a00000, 0x0000000100000000) |
|||
region size 1024K, 3 young (3072K), 3 survivors (3072K) |
|||
Metaspace used 27979K, committed 28224K, reserved 1114112K |
|||
class space used 2961K, committed 3072K, reserved 1048576K |
|||
} |
|||
Event: 12.285 GC heap before |
|||
{Heap before GC invocations=13 (full 0): |
|||
garbage-first heap total 79872K, used 49299K [0x0000000081a00000, 0x0000000100000000) |
|||
region size 1024K, 4 young (4096K), 3 survivors (3072K) |
|||
Metaspace used 28001K, committed 28224K, reserved 1114112K |
|||
class space used 2963K, committed 3072K, reserved 1048576K |
|||
} |
|||
Event: 12.292 GC heap after |
|||
{Heap after GC invocations=14 (full 0): |
|||
garbage-first heap total 79872K, used 16613K [0x0000000081a00000, 0x0000000100000000) |
|||
region size 1024K, 1 young (1024K), 1 survivors (1024K) |
|||
Metaspace used 28001K, committed 28224K, reserved 1114112K |
|||
class space used 2963K, committed 3072K, reserved 1048576K |
|||
} |
|||
Event: 12.293 GC heap before |
|||
{Heap before GC invocations=14 (full 0): |
|||
garbage-first heap total 79872K, used 24805K [0x0000000081a00000, 0x0000000100000000) |
|||
region size 1024K, 2 young (2048K), 1 survivors (1024K) |
|||
Metaspace used 28001K, committed 28224K, reserved 1114112K |
|||
class space used 2963K, committed 3072K, reserved 1048576K |
|||
} |
|||
Event: 12.296 GC heap after |
|||
{Heap after GC invocations=15 (full 0): |
|||
garbage-first heap total 79872K, used 24668K [0x0000000081a00000, 0x0000000100000000) |
|||
region size 1024K, 1 young (1024K), 1 survivors (1024K) |
|||
Metaspace used 28001K, committed 28224K, reserved 1114112K |
|||
class space used 2963K, committed 3072K, reserved 1048576K |
|||
} |
|||
Event: 12.297 GC heap before |
|||
{Heap before GC invocations=15 (full 0): |
|||
garbage-first heap total 79872K, used 36956K [0x0000000081a00000, 0x0000000100000000) |
|||
region size 1024K, 2 young (2048K), 1 survivors (1024K) |
|||
Metaspace used 28003K, committed 28224K, reserved 1114112K |
|||
class space used 2963K, committed 3072K, reserved 1048576K |
|||
} |
|||
Event: 12.300 GC heap after |
|||
{Heap after GC invocations=16 (full 0): |
|||
garbage-first heap total 79872K, used 36921K [0x0000000081a00000, 0x0000000100000000) |
|||
region size 1024K, 1 young (1024K), 1 survivors (1024K) |
|||
Metaspace used 28003K, committed 28224K, reserved 1114112K |
|||
class space used 2963K, committed 3072K, reserved 1048576K |
|||
} |
|||
|
|||
Dll operation events (7 events): |
|||
Event: 0.012 Loaded shared library C:\Users\ADMIN\.p2\pool\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.9.v20231028-0858\jre\bin\java.dll |
|||
Event: 0.255 Loaded shared library C:\Users\ADMIN\.p2\pool\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.9.v20231028-0858\jre\bin\net.dll |
|||
Event: 0.259 Loaded shared library C:\Users\ADMIN\.p2\pool\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.9.v20231028-0858\jre\bin\nio.dll |
|||
Event: 0.274 Loaded shared library C:\Users\ADMIN\.p2\pool\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.9.v20231028-0858\jre\bin\zip.dll |
|||
Event: 0.662 Loaded shared library C:\Users\ADMIN\.p2\pool\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.9.v20231028-0858\jre\bin\jimage.dll |
|||
Event: 1.367 Loaded shared library C:\Users\ADMIN\AppData\Local\Temp\jansi-2.4.1-a238f63e1322e53e-jansi.dll |
|||
Event: 1.915 Loaded shared library C:\Users\ADMIN\.p2\pool\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.9.v20231028-0858\jre\bin\verify.dll |
|||
|
|||
Deoptimization events (20 events): |
|||
Event: 11.800 Thread 0x0000014a97e0ea20 Uncommon trap: trap_request=0xffffffc6 fr.pc=0x0000014aa30ae82c relative=0x000000000000008c |
|||
Event: 11.800 Thread 0x0000014a97e0ea20 Uncommon trap: reason=bimorphic_or_optimized_type_check action=maybe_recompile pc=0x0000014aa30ae82c method=com.google.inject.internal.LinkedBindingImpl.acceptTargetVisitor(Lcom/google/inject/spi/BindingTargetVisitor;)Ljava/lang/Object; @ 2 c2 |
|||
Event: 11.800 Thread 0x0000014a97e0ea20 DEOPT PACKING pc=0x0000014aa30ae82c sp=0x0000002feb9fd020 |
|||
Event: 11.800 Thread 0x0000014a97e0ea20 DEOPT UNPACKING pc=0x0000014aa2a669a3 sp=0x0000002feb9fcfa8 mode 2 |
|||
Event: 11.820 Thread 0x0000014a97e0ea20 Uncommon trap: trap_request=0xffffffc6 fr.pc=0x0000014aa30ae82c relative=0x000000000000008c |
|||
Event: 11.820 Thread 0x0000014a97e0ea20 Uncommon trap: reason=bimorphic_or_optimized_type_check action=maybe_recompile pc=0x0000014aa30ae82c method=com.google.inject.internal.LinkedBindingImpl.acceptTargetVisitor(Lcom/google/inject/spi/BindingTargetVisitor;)Ljava/lang/Object; @ 2 c2 |
|||
Event: 11.820 Thread 0x0000014a97e0ea20 DEOPT PACKING pc=0x0000014aa30ae82c sp=0x0000002feb9fd020 |
|||
Event: 11.820 Thread 0x0000014a97e0ea20 DEOPT UNPACKING pc=0x0000014aa2a669a3 sp=0x0000002feb9fcfa8 mode 2 |
|||
Event: 11.822 Thread 0x0000014a97e0ea20 Uncommon trap: trap_request=0xffffffc6 fr.pc=0x0000014aa30ae82c relative=0x000000000000008c |
|||
Event: 11.822 Thread 0x0000014a97e0ea20 Uncommon trap: reason=bimorphic_or_optimized_type_check action=maybe_recompile pc=0x0000014aa30ae82c method=com.google.inject.internal.LinkedBindingImpl.acceptTargetVisitor(Lcom/google/inject/spi/BindingTargetVisitor;)Ljava/lang/Object; @ 2 c2 |
|||
Event: 11.822 Thread 0x0000014a97e0ea20 DEOPT PACKING pc=0x0000014aa30ae82c sp=0x0000002feb9fd020 |
|||
Event: 11.822 Thread 0x0000014a97e0ea20 DEOPT UNPACKING pc=0x0000014aa2a669a3 sp=0x0000002feb9fcfa8 mode 2 |
|||
Event: 12.062 Thread 0x0000014a97e0ea20 Uncommon trap: trap_request=0xffffff45 fr.pc=0x0000014aa30a3594 relative=0x00000000000007b4 |
|||
Event: 12.062 Thread 0x0000014a97e0ea20 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000014aa30a3594 method=java.util.HashMap.hash(Ljava/lang/Object;)I @ 1 c2 |
|||
Event: 12.062 Thread 0x0000014a97e0ea20 DEOPT PACKING pc=0x0000014aa30a3594 sp=0x0000002feb9fb660 |
|||
Event: 12.062 Thread 0x0000014a97e0ea20 DEOPT UNPACKING pc=0x0000014aa2a669a3 sp=0x0000002feb9fb5e0 mode 2 |
|||
Event: 12.177 Thread 0x0000014a97e0ea20 Uncommon trap: trap_request=0xffffff45 fr.pc=0x0000014aa31fe7fc relative=0x000000000000025c |
|||
Event: 12.177 Thread 0x0000014a97e0ea20 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000014aa31fe7fc method=java.util.regex.Pattern.qtype()Ljava/util/regex/Pattern$Qtype; @ 8 c2 |
|||
Event: 12.177 Thread 0x0000014a97e0ea20 DEOPT PACKING pc=0x0000014aa31fe7fc sp=0x0000002feb9fcd30 |
|||
Event: 12.177 Thread 0x0000014a97e0ea20 DEOPT UNPACKING pc=0x0000014aa2a669a3 sp=0x0000002feb9fcbc8 mode 2 |
|||
|
|||
Classes unloaded (0 events): |
|||
No events |
|||
|
|||
Classes redefined (0 events): |
|||
No events |
|||
|
|||
Internal exceptions (20 events): |
|||
Event: 4.754 Thread 0x0000014a97e0ea20 Exception <a 'java/lang/ExceptionInInitializerError'{0x0000000088f1ef98}> (0x0000000088f1ef98) |
|||
thrown [s\src\hotspot\share\oops\instanceKlass.cpp, line 1218] |
|||
Event: 4.858 Thread 0x0000014a97e0ea20 Implicit null exception at 0x0000014aa303dbaf to 0x0000014aa303dd0c |
|||
Event: 4.860 Thread 0x0000014a97e0ea20 Exception <a 'java/lang/NoSuchMethodError'{0x0000000088e32d08}: 'java.lang.Object java.lang.invoke.Invokers$Holder.invokeExact_MT(java.lang.Object, int, java.lang.Object)'> (0x0000000088e32d08) |
|||
thrown [s\src\hotspot\share\interpreter\linkResolver.cpp, line 759] |
|||
Event: 4.879 Thread 0x0000014a97e0ea20 Exception <a 'java/lang/NoSuchMethodError'{0x0000000088eac968}: 'int java.lang.invoke.DirectMethodHandle$Holder.invokeSpecial(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object)'> (0x0000000088eac968) |
|||
thrown [s\src\hotspot\share\interpreter\linkResolver.cpp, line 759] |
|||
Event: 5.677 Thread 0x0000014a97e0ea20 Exception <a 'java/lang/NoClassDefFoundError'{0x00000000829476c0}: com/google/inject/servlet/ServletModuleTargetVisitor> (0x00000000829476c0) |
|||
thrown [s\src\hotspot\share\classfile\systemDictionary.cpp, line 245] |
|||
Event: 5.956 Thread 0x0000014a97e0ea20 Exception <a 'java/lang/NoSuchMethodError'{0x00000000828e6638}: 'void java.lang.invoke.DirectMethodHandle$Holder.invokeVirtual(java.lang.Object, java.lang.Object)'> (0x00000000828e6638) |
|||
thrown [s\src\hotspot\share\interpreter\linkResolver.cpp, line 759] |
|||
Event: 5.991 Thread 0x0000014a97e0ea20 Exception <a 'java/lang/NoSuchMethodError'{0x0000000082723990}: 'java.lang.Object java.lang.invoke.DirectMethodHandle$Holder.invokeStaticInit(java.lang.Object, int, int, int, int)'> (0x0000000082723990) |
|||
thrown [s\src\hotspot\share\interpreter\linkResolver.cpp, line 759] |
|||
Event: 6.235 Thread 0x0000014a97e0ea20 Implicit null exception at 0x0000014aa2fd4372 to 0x0000014aa2fd498c |
|||
Event: 6.235 Thread 0x0000014a97e0ea20 Implicit null exception at 0x0000014aa2fee472 to 0x0000014aa2feeaac |
|||
Event: 6.336 Thread 0x0000014a97e0ea20 Exception <a 'java/lang/NoSuchMethodError'{0x00000000823f0270}: 'void java.lang.invoke.DirectMethodHandle$Holder.invokeSpecial(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object)'> (0x00000000823f0270) |
|||
thrown [s\src\hotspot\share\interpreter\linkResolver.cpp, line 759] |
|||
Event: 6.356 Thread 0x0000014a97e0ea20 Exception <a 'java/lang/NoSuchMethodError'{0x000000008990ada0}: 'void java.lang.invoke.DirectMethodHandle$Holder.invokeSpecial(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object)'> (0x000000008990ada0) |
|||
thrown [s\src\hotspot\share\interpreter\linkResolver.cpp, line 759] |
|||
Event: 6.416 Thread 0x0000014a97e0ea20 Exception <a 'java/lang/NoSuchMethodError'{0x00000000899148b8}: 'java.lang.Object java.lang.invoke.DirectMethodHandle$Holder.invokeVirtual(java.lang.Object, java.lang.Object, java.lang.Object)'> (0x00000000899148b8) |
|||
thrown [s\src\hotspot\share\interpreter\linkResolver.cpp, line 759] |
|||
Event: 10.558 Thread 0x0000014a97e0ea20 Implicit null exception at 0x0000014aa317456f to 0x0000014aa3174730 |
|||
Event: 10.558 Thread 0x0000014a97e0ea20 Implicit null exception at 0x0000014aa30dec0f to 0x0000014aa30dec89 |
|||
Event: 11.145 Thread 0x0000014a97e0ea20 Exception <a 'java/lang/NoSuchMethodError'{0x0000000084680528}: 'java.lang.Object java.lang.invoke.DirectMethodHandle$Holder.newInvokeSpecial(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object)'> (0x0000000084680528) |
|||
thrown [s\src\hotspot\share\interpreter\linkResolver.cpp, line 759] |
|||
Event: 11.145 Thread 0x0000014a97e0ea20 Exception <a 'java/lang/NoSuchMethodError'{0x0000000084685078}: 'java.lang.Object java.lang.invoke.Invokers$Holder.linkToTargetMethod(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object)'> (0x0000000084685078) |
|||
thrown [s\src\hotspot\share\interpreter\linkResolver.cpp, line 759] |
|||
Event: 11.147 Thread 0x0000014a97e0ea20 Implicit null exception at 0x0000014aa31d1ec6 to 0x0000014aa31d2990 |
|||
Event: 11.948 Thread 0x0000014a97e0ea20 Exception <a 'java/lang/NoSuchMethodError'{0x00000000863bfd18}: 'int java.lang.invoke.DirectMethodHandle$Holder.invokeVirtual(java.lang.Object, java.lang.Object)'> (0x00000000863bfd18) |
|||
thrown [s\src\hotspot\share\interpreter\linkResolver.cpp, line 759] |
|||
Event: 12.062 Thread 0x0000014a97e0ea20 Implicit null exception at 0x0000014aa30a2e20 to 0x0000014aa30a357a |
|||
Event: 12.176 Thread 0x0000014a97e0ea20 Exception <a 'java/lang/NoSuchMethodError'{0x00000000861b27c0}: 'int java.lang.invoke.DirectMethodHandle$Holder.invokeStatic(java.lang.Object, java.lang.Object, int)'> (0x00000000861b27c0) |
|||
thrown [s\src\hotspot\share\interpreter\linkResolver.cpp, line 759] |
|||
|
|||
VM Operations (20 events): |
|||
Event: 7.674 Executing VM operation: G1CollectForAllocation done |
|||
Event: 8.676 Executing VM operation: Cleanup |
|||
Event: 8.676 Executing VM operation: Cleanup done |
|||
Event: 9.306 Executing VM operation: G1CollectForAllocation |
|||
Event: 9.322 Executing VM operation: G1CollectForAllocation done |
|||
Event: 10.322 Executing VM operation: Cleanup |
|||
Event: 10.322 Executing VM operation: Cleanup done |
|||
Event: 11.330 Executing VM operation: Cleanup |
|||
Event: 11.330 Executing VM operation: Cleanup done |
|||
Event: 11.427 Executing VM operation: G1CollectForAllocation |
|||
Event: 11.442 Executing VM operation: G1CollectForAllocation done |
|||
Event: 12.260 Executing VM operation: G1TryInitiateConcMark |
|||
Event: 12.268 Executing VM operation: G1TryInitiateConcMark done |
|||
Event: 12.285 Executing VM operation: G1TryInitiateConcMark |
|||
Event: 12.292 Executing VM operation: G1TryInitiateConcMark done |
|||
Event: 12.293 Executing VM operation: G1TryInitiateConcMark |
|||
Event: 12.296 Executing VM operation: G1TryInitiateConcMark done |
|||
Event: 12.297 Executing VM operation: G1TryInitiateConcMark |
|||
Event: 12.300 Executing VM operation: G1TryInitiateConcMark done |
|||
Event: 12.368 Executing VM operation: G1PauseRemark |
|||
|
|||
Events (20 events): |
|||
Event: 12.064 loading class java/time/zone/ZoneRulesProvider |
|||
Event: 12.065 loading class java/time/zone/ZoneRulesProvider done |
|||
Event: 12.065 loading class java/time/zone/ZoneRulesProvider$1 |
|||
Event: 12.065 loading class java/time/zone/ZoneRulesProvider$1 done |
|||
Event: 12.065 loading class java/time/zone/TzdbZoneRulesProvider |
|||
Event: 12.065 loading class java/time/zone/TzdbZoneRulesProvider done |
|||
Event: 12.068 loading class java/time/zone/Ser |
|||
Event: 12.068 loading class java/io/Externalizable |
|||
Event: 12.068 loading class java/io/Externalizable done |
|||
Event: 12.068 loading class java/time/zone/Ser done |
|||
Event: 12.117 loading class jdk/internal/reflect/UnsafeBooleanFieldAccessorImpl |
|||
Event: 12.117 loading class jdk/internal/reflect/UnsafeBooleanFieldAccessorImpl done |
|||
Event: 12.141 loading class java/lang/Character$UnicodeBlock |
|||
Event: 12.143 loading class java/lang/Character$Subset |
|||
Event: 12.143 loading class java/lang/Character$Subset done |
|||
Event: 12.143 loading class java/lang/Character$UnicodeBlock done |
|||
Event: 12.284 loading class java/nio/BufferMismatch |
|||
Event: 12.284 loading class java/nio/BufferMismatch done |
|||
Event: 12.284 loading class java/nio/file/attribute/PosixFileAttributes |
|||
Event: 12.284 loading class java/nio/file/attribute/PosixFileAttributes done |
|||
|
|||
|
|||
Dynamic libraries: |
|||
0x00007ff6d4ea0000 - 0x00007ff6d4eae000 C:\Users\ADMIN\.p2\pool\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.9.v20231028-0858\jre\bin\javaw.exe |
|||
0x00007ffb17cf0000 - 0x00007ffb17ee8000 C:\Windows\SYSTEM32\ntdll.dll |
|||
0x00007ffb17460000 - 0x00007ffb17522000 C:\Windows\System32\KERNEL32.DLL |
|||
0x00007ffb15530000 - 0x00007ffb15826000 C:\Windows\System32\KERNELBASE.dll |
|||
0x00007ffb15a60000 - 0x00007ffb15b60000 C:\Windows\System32\ucrtbase.dll |
|||
0x00007ffb0f470000 - 0x00007ffb0f487000 C:\Users\ADMIN\.p2\pool\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.9.v20231028-0858\jre\bin\jli.dll |
|||
0x00007ffb17100000 - 0x00007ffb172a1000 C:\Windows\System32\USER32.dll |
|||
0x00007ffb15a30000 - 0x00007ffb15a52000 C:\Windows\System32\win32u.dll |
|||
0x00007ffb17530000 - 0x00007ffb1755b000 C:\Windows\System32\GDI32.dll |
|||
0x00007ffb15380000 - 0x00007ffb15499000 C:\Windows\System32\gdi32full.dll |
|||
0x00007ffb15830000 - 0x00007ffb158cd000 C:\Windows\System32\msvcp_win.dll |
|||
0x00007ffb0f1a0000 - 0x00007ffb0f1bb000 C:\Users\ADMIN\.p2\pool\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.9.v20231028-0858\jre\bin\VCRUNTIME140.dll |
|||
0x00007ffb00f20000 - 0x00007ffb011bb000 C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.19041.6456_none_60b8a6cb71f64256\COMCTL32.dll |
|||
0x00007ffb17360000 - 0x00007ffb173fe000 C:\Windows\System32\msvcrt.dll |
|||
0x00007ffb17560000 - 0x00007ffb1758f000 C:\Windows\System32\IMM32.DLL |
|||
0x00007ffb0f2f0000 - 0x00007ffb0f2fc000 C:\Users\ADMIN\.p2\pool\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.9.v20231028-0858\jre\bin\vcruntime140_1.dll |
|||
0x00007ffb097b0000 - 0x00007ffb0983d000 C:\Users\ADMIN\.p2\pool\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.9.v20231028-0858\jre\bin\msvcp140.dll |
|||
0x00007ffaf6cf0000 - 0x00007ffaf7951000 C:\Users\ADMIN\.p2\pool\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.9.v20231028-0858\jre\bin\server\jvm.dll |
|||
0x00007ffb16e30000 - 0x00007ffb16ee1000 C:\Windows\System32\ADVAPI32.dll |
|||
0x00007ffb17590000 - 0x00007ffb1762f000 C:\Windows\System32\sechost.dll |
|||
0x00007ffb16a60000 - 0x00007ffb16b80000 C:\Windows\System32\RPCRT4.dll |
|||
0x00007ffb15c10000 - 0x00007ffb15c37000 C:\Windows\System32\bcrypt.dll |
|||
0x00007ffb15130000 - 0x00007ffb1517b000 C:\Windows\SYSTEM32\POWRPROF.dll |
|||
0x00007ffb09710000 - 0x00007ffb09719000 C:\Windows\SYSTEM32\WSOCK32.dll |
|||
0x00007ffb17c40000 - 0x00007ffb17cab000 C:\Windows\System32\WS2_32.dll |
|||
0x00007ffb011d0000 - 0x00007ffb011f7000 C:\Windows\SYSTEM32\WINMM.dll |
|||
0x00007ffb0e2f0000 - 0x00007ffb0e2fa000 C:\Windows\SYSTEM32\VERSION.dll |
|||
0x00007ffb15110000 - 0x00007ffb15122000 C:\Windows\SYSTEM32\UMPDC.dll |
|||
0x00007ffb13b90000 - 0x00007ffb13ba2000 C:\Windows\SYSTEM32\kernel.appcore.dll |
|||
0x00007ffb0eee0000 - 0x00007ffb0eeea000 C:\Users\ADMIN\.p2\pool\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.9.v20231028-0858\jre\bin\jimage.dll |
|||
0x00007ffb13080000 - 0x00007ffb13281000 C:\Windows\SYSTEM32\DBGHELP.DLL |
|||
0x00007ffb0beb0000 - 0x00007ffb0bee4000 C:\Windows\SYSTEM32\dbgcore.DLL |
|||
0x00007ffb154a0000 - 0x00007ffb15522000 C:\Windows\System32\bcryptPrimitives.dll |
|||
0x00007ffb0e1d0000 - 0x00007ffb0e1f5000 C:\Users\ADMIN\.p2\pool\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.9.v20231028-0858\jre\bin\java.dll |
|||
0x00007ffb0e060000 - 0x00007ffb0e078000 C:\Users\ADMIN\.p2\pool\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.9.v20231028-0858\jre\bin\zip.dll |
|||
0x00007ffb15d10000 - 0x00007ffb16480000 C:\Windows\System32\SHELL32.dll |
|||
0x00007ffb132b0000 - 0x00007ffb13a55000 C:\Windows\SYSTEM32\windows.storage.dll |
|||
0x00007ffb16480000 - 0x00007ffb167d4000 C:\Windows\System32\combase.dll |
|||
0x00007ffb14cd0000 - 0x00007ffb14cfb000 C:\Windows\SYSTEM32\Wldp.dll |
|||
0x00007ffb167f0000 - 0x00007ffb168bd000 C:\Windows\System32\OLEAUT32.dll |
|||
0x00007ffb16f70000 - 0x00007ffb1701d000 C:\Windows\System32\SHCORE.dll |
|||
0x00007ffb16f10000 - 0x00007ffb16f6b000 C:\Windows\System32\shlwapi.dll |
|||
0x00007ffb152b0000 - 0x00007ffb152d4000 C:\Windows\SYSTEM32\profapi.dll |
|||
0x00007ffb0df10000 - 0x00007ffb0df29000 C:\Users\ADMIN\.p2\pool\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.9.v20231028-0858\jre\bin\net.dll |
|||
0x00007ffb0b630000 - 0x00007ffb0b73a000 C:\Windows\SYSTEM32\WINHTTP.dll |
|||
0x00007ffb14a30000 - 0x00007ffb14a9a000 C:\Windows\system32\mswsock.dll |
|||
0x00007ffb0def0000 - 0x00007ffb0df06000 C:\Users\ADMIN\.p2\pool\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.9.v20231028-0858\jre\bin\nio.dll |
|||
0x00007ffb0e110000 - 0x00007ffb0e134000 C:\Users\ADMIN\AppData\Local\Temp\jansi-2.4.1-a238f63e1322e53e-jansi.dll |
|||
0x00007ffb0e030000 - 0x00007ffb0e040000 C:\Users\ADMIN\.p2\pool\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.9.v20231028-0858\jre\bin\verify.dll |
|||
0x00007ffb14710000 - 0x00007ffb1474b000 C:\Windows\SYSTEM32\IPHLPAPI.DLL |
|||
0x00007ffb16c70000 - 0x00007ffb16c78000 C:\Windows\System32\NSI.dll |
|||
0x00007ffb0bde0000 - 0x00007ffb0bdf7000 C:\Windows\SYSTEM32\dhcpcsvc6.DLL |
|||
0x00007ffb0be80000 - 0x00007ffb0be9d000 C:\Windows\SYSTEM32\dhcpcsvc.DLL |
|||
0x00007ffb14750000 - 0x00007ffb1481a000 C:\Windows\SYSTEM32\DNSAPI.dll |
|||
|
|||
dbghelp: loaded successfully - version: 4.0.5 - missing functions: none |
|||
symbol engine: initialized successfully - sym options: 0x614 - pdb path: .;C:\Users\ADMIN\.p2\pool\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.9.v20231028-0858\jre\bin;C:\Windows\SYSTEM32;C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.19041.6456_none_60b8a6cb71f64256;C:\Users\ADMIN\.p2\pool\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.9.v20231028-0858\jre\bin\server;C:\Users\ADMIN\AppData\Local\Temp |
|||
|
|||
VM Arguments: |
|||
jvm_args: -Dmaven.home=EMBEDDED -Dclassworlds.conf=D:\projects\New2\.metadata\.plugins\org.eclipse.m2e.launching\launches\m2conf4771384238088312615.tmp -Dmaven.multiModuleProjectDirectory=D:\PGR Update\public_grievance_updated -Dm2e.build.project.data.socket.port=62566 -Dfile.encoding=UTF-8 -Dstdout.encoding=UTF-8 -Dstderr.encoding=UTF-8 -XX:+ShowCodeDetailsInExceptionMessages |
|||
java_command: org.codehaus.plexus.classworlds.launcher.Launcher -B -Dstyle.color=always install |
|||
java_class_path (initial): C:\Users\ADMIN\.p2\pool\plugins\org.eclipse.m2e.maven.runtime_3.9.900.20250220-2013\jars\plexus-classworlds-2.8.0.jar |
|||
Launcher Type: SUN_STANDARD |
|||
|
|||
[Global flags] |
|||
intx CICompilerCount = 3 {product} {ergonomic} |
|||
uint ConcGCThreads = 1 {product} {ergonomic} |
|||
uint G1ConcRefinementThreads = 4 {product} {ergonomic} |
|||
size_t G1HeapRegionSize = 1048576 {product} {ergonomic} |
|||
uintx GCDrainStackTargetSize = 64 {product} {ergonomic} |
|||
size_t InitialHeapSize = 134217728 {product} {ergonomic} |
|||
size_t MarkStackSize = 4194304 {product} {ergonomic} |
|||
size_t MaxHeapSize = 2120220672 {product} {ergonomic} |
|||
size_t MaxNewSize = 1271922688 {product} {ergonomic} |
|||
size_t MinHeapDeltaBytes = 1048576 {product} {ergonomic} |
|||
size_t MinHeapSize = 8388608 {product} {ergonomic} |
|||
uintx NonNMethodCodeHeapSize = 5832780 {pd product} {ergonomic} |
|||
uintx NonProfiledCodeHeapSize = 122912730 {pd product} {ergonomic} |
|||
uintx ProfiledCodeHeapSize = 122912730 {pd product} {ergonomic} |
|||
uintx ReservedCodeCacheSize = 251658240 {pd product} {ergonomic} |
|||
bool SegmentedCodeCache = true {product} {ergonomic} |
|||
bool ShowCodeDetailsInExceptionMessages = true {manageable} {command line} |
|||
size_t SoftMaxHeapSize = 2120220672 {manageable} {ergonomic} |
|||
bool UseCompressedClassPointers = true {product lp64_product} {ergonomic} |
|||
bool UseCompressedOops = true {product lp64_product} {ergonomic} |
|||
bool UseG1GC = true {product} {ergonomic} |
|||
bool UseLargePagesIndividualAllocation = false {pd product} {ergonomic} |
|||
|
|||
Logging: |
|||
Log output configuration: |
|||
#0: stdout all=warning uptime,level,tags |
|||
#1: stderr all=off uptime,level,tags |
|||
|
|||
Environment Variables: |
|||
PATH=C:/Users/ADMIN/.p2/pool/plugins/org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_23.0.2.v20250131-0604/jre/bin/server;C:/Users/ADMIN/.p2/pool/plugins/org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_23.0.2.v20250131-0604/jre/bin;C:\Program Files\Common Files\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\Git\cmd;C:\Program Files\nodejs\;C:\Users\ADMIN\AppData\Local\Programs\Python\Python313\Scripts\;C:\Users\ADMIN\AppData\Local\Programs\Python\Python313\;C:\Program Files\MySQL\MySQL Shell 8.0\bin\;C:\Users\ADMIN\AppData\Local\Microsoft\WindowsApps;D:\vscode and mysql installer\Microsoft VS Code\bin;D:\Python\PyCharm 2024.3.2\bin;;C:\Users\ADMIN\AppData\Roaming\npm;C:\Users\ADMIN\AppData\Local\GitHubDesktop\bin;C:\Windows\system32; |
|||
USERNAME=ADMIN |
|||
OS=Windows_NT |
|||
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 78 Stepping 3, GenuineIntel |
|||
TMP=C:\Users\ADMIN\AppData\Local\Temp |
|||
TEMP=C:\Users\ADMIN\AppData\Local\Temp |
|||
|
|||
|
|||
|
|||
Periodic native trim disabled |
|||
|
|||
|
|||
--------------- S Y S T E M --------------- |
|||
|
|||
OS: |
|||
Windows 10 , 64 bit Build 19041 (10.0.19041.5915) |
|||
OS uptime: 22 days 21:24 hours |
|||
|
|||
CPU: total 4 (initial active 4) (2 cores per cpu, 2 threads per core) family 6 model 78 stepping 3 microcode 0xf0, cx8, cmov, fxsr, ht, mmx, 3dnowpref, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, lzcnt, tsc, tscinvbit, avx, avx2, aes, erms, clmul, bmi1, bmi2, rtm, adx, fma, vzeroupper, clflush, clflushopt |
|||
Processor Information for all 4 processors : |
|||
Max Mhz: 2496, Current Mhz: 2496, Mhz Limit: 2496 |
|||
|
|||
Memory: 4k page, system-wide physical 8087M (688M free) |
|||
TotalPageFile size 25396M (AvailPageFile size 6M) |
|||
current process WorkingSet (physical memory assigned to process): 178M, peak: 178M |
|||
current process commit charge ("private bytes"): 239M, peak: 250M |
|||
|
|||
vm_info: OpenJDK 64-Bit Server VM (17.0.9+9) for windows-amd64 JRE (17.0.9+9), built on Oct 26 2023 14:01:42 by "admin" with MS VC++ 16.10 / 16.11 (VS2019) |
|||
|
|||
END. |
|||
@ -0,0 +1,259 @@ |
|||
#!/bin/sh |
|||
# ---------------------------------------------------------------------------- |
|||
# Licensed to the Apache Software Foundation (ASF) under one |
|||
# or more contributor license agreements. See the NOTICE file |
|||
# distributed with this work for additional information |
|||
# regarding copyright ownership. The ASF licenses this file |
|||
# to you under the Apache License, Version 2.0 (the |
|||
# "License"); you may not use this file except in compliance |
|||
# with the License. You may obtain a copy of the License at |
|||
# |
|||
# https://www.apache.org/licenses/LICENSE-2.0 |
|||
# |
|||
# Unless required by applicable law or agreed to in writing, |
|||
# software distributed under the License is distributed on an |
|||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
|||
# KIND, either express or implied. See the License for the |
|||
# specific language governing permissions and limitations |
|||
# under the License. |
|||
# ---------------------------------------------------------------------------- |
|||
|
|||
# ---------------------------------------------------------------------------- |
|||
# Apache Maven Wrapper startup batch script, version 3.3.2 |
|||
# |
|||
# Optional ENV vars |
|||
# ----------------- |
|||
# JAVA_HOME - location of a JDK home dir, required when download maven via java source |
|||
# MVNW_REPOURL - repo url base for downloading maven distribution |
|||
# MVNW_USERNAME/MVNW_PASSWORD - user and password for downloading maven |
|||
# MVNW_VERBOSE - true: enable verbose log; debug: trace the mvnw script; others: silence the output |
|||
# ---------------------------------------------------------------------------- |
|||
|
|||
set -euf |
|||
[ "${MVNW_VERBOSE-}" != debug ] || set -x |
|||
|
|||
# OS specific support. |
|||
native_path() { printf %s\\n "$1"; } |
|||
case "$(uname)" in |
|||
CYGWIN* | MINGW*) |
|||
[ -z "${JAVA_HOME-}" ] || JAVA_HOME="$(cygpath --unix "$JAVA_HOME")" |
|||
native_path() { cygpath --path --windows "$1"; } |
|||
;; |
|||
esac |
|||
|
|||
# set JAVACMD and JAVACCMD |
|||
set_java_home() { |
|||
# For Cygwin and MinGW, ensure paths are in Unix format before anything is touched |
|||
if [ -n "${JAVA_HOME-}" ]; then |
|||
if [ -x "$JAVA_HOME/jre/sh/java" ]; then |
|||
# IBM's JDK on AIX uses strange locations for the executables |
|||
JAVACMD="$JAVA_HOME/jre/sh/java" |
|||
JAVACCMD="$JAVA_HOME/jre/sh/javac" |
|||
else |
|||
JAVACMD="$JAVA_HOME/bin/java" |
|||
JAVACCMD="$JAVA_HOME/bin/javac" |
|||
|
|||
if [ ! -x "$JAVACMD" ] || [ ! -x "$JAVACCMD" ]; then |
|||
echo "The JAVA_HOME environment variable is not defined correctly, so mvnw cannot run." >&2 |
|||
echo "JAVA_HOME is set to \"$JAVA_HOME\", but \"\$JAVA_HOME/bin/java\" or \"\$JAVA_HOME/bin/javac\" does not exist." >&2 |
|||
return 1 |
|||
fi |
|||
fi |
|||
else |
|||
JAVACMD="$( |
|||
'set' +e |
|||
'unset' -f command 2>/dev/null |
|||
'command' -v java |
|||
)" || : |
|||
JAVACCMD="$( |
|||
'set' +e |
|||
'unset' -f command 2>/dev/null |
|||
'command' -v javac |
|||
)" || : |
|||
|
|||
if [ ! -x "${JAVACMD-}" ] || [ ! -x "${JAVACCMD-}" ]; then |
|||
echo "The java/javac command does not exist in PATH nor is JAVA_HOME set, so mvnw cannot run." >&2 |
|||
return 1 |
|||
fi |
|||
fi |
|||
} |
|||
|
|||
# hash string like Java String::hashCode |
|||
hash_string() { |
|||
str="${1:-}" h=0 |
|||
while [ -n "$str" ]; do |
|||
char="${str%"${str#?}"}" |
|||
h=$(((h * 31 + $(LC_CTYPE=C printf %d "'$char")) % 4294967296)) |
|||
str="${str#?}" |
|||
done |
|||
printf %x\\n $h |
|||
} |
|||
|
|||
verbose() { :; } |
|||
[ "${MVNW_VERBOSE-}" != true ] || verbose() { printf %s\\n "${1-}"; } |
|||
|
|||
die() { |
|||
printf %s\\n "$1" >&2 |
|||
exit 1 |
|||
} |
|||
|
|||
trim() { |
|||
# MWRAPPER-139: |
|||
# Trims trailing and leading whitespace, carriage returns, tabs, and linefeeds. |
|||
# Needed for removing poorly interpreted newline sequences when running in more |
|||
# exotic environments such as mingw bash on Windows. |
|||
printf "%s" "${1}" | tr -d '[:space:]' |
|||
} |
|||
|
|||
# parse distributionUrl and optional distributionSha256Sum, requires .mvn/wrapper/maven-wrapper.properties |
|||
while IFS="=" read -r key value; do |
|||
case "${key-}" in |
|||
distributionUrl) distributionUrl=$(trim "${value-}") ;; |
|||
distributionSha256Sum) distributionSha256Sum=$(trim "${value-}") ;; |
|||
esac |
|||
done <"${0%/*}/.mvn/wrapper/maven-wrapper.properties" |
|||
[ -n "${distributionUrl-}" ] || die "cannot read distributionUrl property in ${0%/*}/.mvn/wrapper/maven-wrapper.properties" |
|||
|
|||
case "${distributionUrl##*/}" in |
|||
maven-mvnd-*bin.*) |
|||
MVN_CMD=mvnd.sh _MVNW_REPO_PATTERN=/maven/mvnd/ |
|||
case "${PROCESSOR_ARCHITECTURE-}${PROCESSOR_ARCHITEW6432-}:$(uname -a)" in |
|||
*AMD64:CYGWIN* | *AMD64:MINGW*) distributionPlatform=windows-amd64 ;; |
|||
:Darwin*x86_64) distributionPlatform=darwin-amd64 ;; |
|||
:Darwin*arm64) distributionPlatform=darwin-aarch64 ;; |
|||
:Linux*x86_64*) distributionPlatform=linux-amd64 ;; |
|||
*) |
|||
echo "Cannot detect native platform for mvnd on $(uname)-$(uname -m), use pure java version" >&2 |
|||
distributionPlatform=linux-amd64 |
|||
;; |
|||
esac |
|||
distributionUrl="${distributionUrl%-bin.*}-$distributionPlatform.zip" |
|||
;; |
|||
maven-mvnd-*) MVN_CMD=mvnd.sh _MVNW_REPO_PATTERN=/maven/mvnd/ ;; |
|||
*) MVN_CMD="mvn${0##*/mvnw}" _MVNW_REPO_PATTERN=/org/apache/maven/ ;; |
|||
esac |
|||
|
|||
# apply MVNW_REPOURL and calculate MAVEN_HOME |
|||
# maven home pattern: ~/.m2/wrapper/dists/{apache-maven-<version>,maven-mvnd-<version>-<platform>}/<hash> |
|||
[ -z "${MVNW_REPOURL-}" ] || distributionUrl="$MVNW_REPOURL$_MVNW_REPO_PATTERN${distributionUrl#*"$_MVNW_REPO_PATTERN"}" |
|||
distributionUrlName="${distributionUrl##*/}" |
|||
distributionUrlNameMain="${distributionUrlName%.*}" |
|||
distributionUrlNameMain="${distributionUrlNameMain%-bin}" |
|||
MAVEN_USER_HOME="${MAVEN_USER_HOME:-${HOME}/.m2}" |
|||
MAVEN_HOME="${MAVEN_USER_HOME}/wrapper/dists/${distributionUrlNameMain-}/$(hash_string "$distributionUrl")" |
|||
|
|||
exec_maven() { |
|||
unset MVNW_VERBOSE MVNW_USERNAME MVNW_PASSWORD MVNW_REPOURL || : |
|||
exec "$MAVEN_HOME/bin/$MVN_CMD" "$@" || die "cannot exec $MAVEN_HOME/bin/$MVN_CMD" |
|||
} |
|||
|
|||
if [ -d "$MAVEN_HOME" ]; then |
|||
verbose "found existing MAVEN_HOME at $MAVEN_HOME" |
|||
exec_maven "$@" |
|||
fi |
|||
|
|||
case "${distributionUrl-}" in |
|||
*?-bin.zip | *?maven-mvnd-?*-?*.zip) ;; |
|||
*) die "distributionUrl is not valid, must match *-bin.zip or maven-mvnd-*.zip, but found '${distributionUrl-}'" ;; |
|||
esac |
|||
|
|||
# prepare tmp dir |
|||
if TMP_DOWNLOAD_DIR="$(mktemp -d)" && [ -d "$TMP_DOWNLOAD_DIR" ]; then |
|||
clean() { rm -rf -- "$TMP_DOWNLOAD_DIR"; } |
|||
trap clean HUP INT TERM EXIT |
|||
else |
|||
die "cannot create temp dir" |
|||
fi |
|||
|
|||
mkdir -p -- "${MAVEN_HOME%/*}" |
|||
|
|||
# Download and Install Apache Maven |
|||
verbose "Couldn't find MAVEN_HOME, downloading and installing it ..." |
|||
verbose "Downloading from: $distributionUrl" |
|||
verbose "Downloading to: $TMP_DOWNLOAD_DIR/$distributionUrlName" |
|||
|
|||
# select .zip or .tar.gz |
|||
if ! command -v unzip >/dev/null; then |
|||
distributionUrl="${distributionUrl%.zip}.tar.gz" |
|||
distributionUrlName="${distributionUrl##*/}" |
|||
fi |
|||
|
|||
# verbose opt |
|||
__MVNW_QUIET_WGET=--quiet __MVNW_QUIET_CURL=--silent __MVNW_QUIET_UNZIP=-q __MVNW_QUIET_TAR='' |
|||
[ "${MVNW_VERBOSE-}" != true ] || __MVNW_QUIET_WGET='' __MVNW_QUIET_CURL='' __MVNW_QUIET_UNZIP='' __MVNW_QUIET_TAR=v |
|||
|
|||
# normalize http auth |
|||
case "${MVNW_PASSWORD:+has-password}" in |
|||
'') MVNW_USERNAME='' MVNW_PASSWORD='' ;; |
|||
has-password) [ -n "${MVNW_USERNAME-}" ] || MVNW_USERNAME='' MVNW_PASSWORD='' ;; |
|||
esac |
|||
|
|||
if [ -z "${MVNW_USERNAME-}" ] && command -v wget >/dev/null; then |
|||
verbose "Found wget ... using wget" |
|||
wget ${__MVNW_QUIET_WGET:+"$__MVNW_QUIET_WGET"} "$distributionUrl" -O "$TMP_DOWNLOAD_DIR/$distributionUrlName" || die "wget: Failed to fetch $distributionUrl" |
|||
elif [ -z "${MVNW_USERNAME-}" ] && command -v curl >/dev/null; then |
|||
verbose "Found curl ... using curl" |
|||
curl ${__MVNW_QUIET_CURL:+"$__MVNW_QUIET_CURL"} -f -L -o "$TMP_DOWNLOAD_DIR/$distributionUrlName" "$distributionUrl" || die "curl: Failed to fetch $distributionUrl" |
|||
elif set_java_home; then |
|||
verbose "Falling back to use Java to download" |
|||
javaSource="$TMP_DOWNLOAD_DIR/Downloader.java" |
|||
targetZip="$TMP_DOWNLOAD_DIR/$distributionUrlName" |
|||
cat >"$javaSource" <<-END |
|||
public class Downloader extends java.net.Authenticator |
|||
{ |
|||
protected java.net.PasswordAuthentication getPasswordAuthentication() |
|||
{ |
|||
return new java.net.PasswordAuthentication( System.getenv( "MVNW_USERNAME" ), System.getenv( "MVNW_PASSWORD" ).toCharArray() ); |
|||
} |
|||
public static void main( String[] args ) throws Exception |
|||
{ |
|||
setDefault( new Downloader() ); |
|||
java.nio.file.Files.copy( java.net.URI.create( args[0] ).toURL().openStream(), java.nio.file.Paths.get( args[1] ).toAbsolutePath().normalize() ); |
|||
} |
|||
} |
|||
END |
|||
# For Cygwin/MinGW, switch paths to Windows format before running javac and java |
|||
verbose " - Compiling Downloader.java ..." |
|||
"$(native_path "$JAVACCMD")" "$(native_path "$javaSource")" || die "Failed to compile Downloader.java" |
|||
verbose " - Running Downloader.java ..." |
|||
"$(native_path "$JAVACMD")" -cp "$(native_path "$TMP_DOWNLOAD_DIR")" Downloader "$distributionUrl" "$(native_path "$targetZip")" |
|||
fi |
|||
|
|||
# If specified, validate the SHA-256 sum of the Maven distribution zip file |
|||
if [ -n "${distributionSha256Sum-}" ]; then |
|||
distributionSha256Result=false |
|||
if [ "$MVN_CMD" = mvnd.sh ]; then |
|||
echo "Checksum validation is not supported for maven-mvnd." >&2 |
|||
echo "Please disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." >&2 |
|||
exit 1 |
|||
elif command -v sha256sum >/dev/null; then |
|||
if echo "$distributionSha256Sum $TMP_DOWNLOAD_DIR/$distributionUrlName" | sha256sum -c >/dev/null 2>&1; then |
|||
distributionSha256Result=true |
|||
fi |
|||
elif command -v shasum >/dev/null; then |
|||
if echo "$distributionSha256Sum $TMP_DOWNLOAD_DIR/$distributionUrlName" | shasum -a 256 -c >/dev/null 2>&1; then |
|||
distributionSha256Result=true |
|||
fi |
|||
else |
|||
echo "Checksum validation was requested but neither 'sha256sum' or 'shasum' are available." >&2 |
|||
echo "Please install either command, or disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." >&2 |
|||
exit 1 |
|||
fi |
|||
if [ $distributionSha256Result = false ]; then |
|||
echo "Error: Failed to validate Maven distribution SHA-256, your Maven distribution might be compromised." >&2 |
|||
echo "If you updated your Maven version, you need to update the specified distributionSha256Sum property." >&2 |
|||
exit 1 |
|||
fi |
|||
fi |
|||
|
|||
# unzip and move |
|||
if command -v unzip >/dev/null; then |
|||
unzip ${__MVNW_QUIET_UNZIP:+"$__MVNW_QUIET_UNZIP"} "$TMP_DOWNLOAD_DIR/$distributionUrlName" -d "$TMP_DOWNLOAD_DIR" || die "failed to unzip" |
|||
else |
|||
tar xzf${__MVNW_QUIET_TAR:+"$__MVNW_QUIET_TAR"} "$TMP_DOWNLOAD_DIR/$distributionUrlName" -C "$TMP_DOWNLOAD_DIR" || die "failed to untar" |
|||
fi |
|||
printf %s\\n "$distributionUrl" >"$TMP_DOWNLOAD_DIR/$distributionUrlNameMain/mvnw.url" |
|||
mv -- "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain" "$MAVEN_HOME" || [ -d "$MAVEN_HOME" ] || die "fail to move MAVEN_HOME" |
|||
|
|||
clean || : |
|||
exec_maven "$@" |
|||
@ -0,0 +1,149 @@ |
|||
<# : batch portion |
|||
@REM ---------------------------------------------------------------------------- |
|||
@REM Licensed to the Apache Software Foundation (ASF) under one |
|||
@REM or more contributor license agreements. See the NOTICE file |
|||
@REM distributed with this work for additional information |
|||
@REM regarding copyright ownership. The ASF licenses this file |
|||
@REM to you under the Apache License, Version 2.0 (the |
|||
@REM "License"); you may not use this file except in compliance |
|||
@REM with the License. You may obtain a copy of the License at |
|||
@REM |
|||
@REM https://www.apache.org/licenses/LICENSE-2.0 |
|||
@REM |
|||
@REM Unless required by applicable law or agreed to in writing, |
|||
@REM software distributed under the License is distributed on an |
|||
@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
|||
@REM KIND, either express or implied. See the License for the |
|||
@REM specific language governing permissions and limitations |
|||
@REM under the License. |
|||
@REM ---------------------------------------------------------------------------- |
|||
|
|||
@REM ---------------------------------------------------------------------------- |
|||
@REM Apache Maven Wrapper startup batch script, version 3.3.2 |
|||
@REM |
|||
@REM Optional ENV vars |
|||
@REM MVNW_REPOURL - repo url base for downloading maven distribution |
|||
@REM MVNW_USERNAME/MVNW_PASSWORD - user and password for downloading maven |
|||
@REM MVNW_VERBOSE - true: enable verbose log; others: silence the output |
|||
@REM ---------------------------------------------------------------------------- |
|||
|
|||
@IF "%__MVNW_ARG0_NAME__%"=="" (SET __MVNW_ARG0_NAME__=%~nx0) |
|||
@SET __MVNW_CMD__= |
|||
@SET __MVNW_ERROR__= |
|||
@SET __MVNW_PSMODULEP_SAVE=%PSModulePath% |
|||
@SET PSModulePath= |
|||
@FOR /F "usebackq tokens=1* delims==" %%A IN (`powershell -noprofile "& {$scriptDir='%~dp0'; $script='%__MVNW_ARG0_NAME__%'; icm -ScriptBlock ([Scriptblock]::Create((Get-Content -Raw '%~f0'))) -NoNewScope}"`) DO @( |
|||
IF "%%A"=="MVN_CMD" (set __MVNW_CMD__=%%B) ELSE IF "%%B"=="" (echo %%A) ELSE (echo %%A=%%B) |
|||
) |
|||
@SET PSModulePath=%__MVNW_PSMODULEP_SAVE% |
|||
@SET __MVNW_PSMODULEP_SAVE= |
|||
@SET __MVNW_ARG0_NAME__= |
|||
@SET MVNW_USERNAME= |
|||
@SET MVNW_PASSWORD= |
|||
@IF NOT "%__MVNW_CMD__%"=="" (%__MVNW_CMD__% %*) |
|||
@echo Cannot start maven from wrapper >&2 && exit /b 1 |
|||
@GOTO :EOF |
|||
: end batch / begin powershell #> |
|||
|
|||
$ErrorActionPreference = "Stop" |
|||
if ($env:MVNW_VERBOSE -eq "true") { |
|||
$VerbosePreference = "Continue" |
|||
} |
|||
|
|||
# calculate distributionUrl, requires .mvn/wrapper/maven-wrapper.properties |
|||
$distributionUrl = (Get-Content -Raw "$scriptDir/.mvn/wrapper/maven-wrapper.properties" | ConvertFrom-StringData).distributionUrl |
|||
if (!$distributionUrl) { |
|||
Write-Error "cannot read distributionUrl property in $scriptDir/.mvn/wrapper/maven-wrapper.properties" |
|||
} |
|||
|
|||
switch -wildcard -casesensitive ( $($distributionUrl -replace '^.*/','') ) { |
|||
"maven-mvnd-*" { |
|||
$USE_MVND = $true |
|||
$distributionUrl = $distributionUrl -replace '-bin\.[^.]*$',"-windows-amd64.zip" |
|||
$MVN_CMD = "mvnd.cmd" |
|||
break |
|||
} |
|||
default { |
|||
$USE_MVND = $false |
|||
$MVN_CMD = $script -replace '^mvnw','mvn' |
|||
break |
|||
} |
|||
} |
|||
|
|||
# apply MVNW_REPOURL and calculate MAVEN_HOME |
|||
# maven home pattern: ~/.m2/wrapper/dists/{apache-maven-<version>,maven-mvnd-<version>-<platform>}/<hash> |
|||
if ($env:MVNW_REPOURL) { |
|||
$MVNW_REPO_PATTERN = if ($USE_MVND) { "/org/apache/maven/" } else { "/maven/mvnd/" } |
|||
$distributionUrl = "$env:MVNW_REPOURL$MVNW_REPO_PATTERN$($distributionUrl -replace '^.*'+$MVNW_REPO_PATTERN,'')" |
|||
} |
|||
$distributionUrlName = $distributionUrl -replace '^.*/','' |
|||
$distributionUrlNameMain = $distributionUrlName -replace '\.[^.]*$','' -replace '-bin$','' |
|||
$MAVEN_HOME_PARENT = "$HOME/.m2/wrapper/dists/$distributionUrlNameMain" |
|||
if ($env:MAVEN_USER_HOME) { |
|||
$MAVEN_HOME_PARENT = "$env:MAVEN_USER_HOME/wrapper/dists/$distributionUrlNameMain" |
|||
} |
|||
$MAVEN_HOME_NAME = ([System.Security.Cryptography.MD5]::Create().ComputeHash([byte[]][char[]]$distributionUrl) | ForEach-Object {$_.ToString("x2")}) -join '' |
|||
$MAVEN_HOME = "$MAVEN_HOME_PARENT/$MAVEN_HOME_NAME" |
|||
|
|||
if (Test-Path -Path "$MAVEN_HOME" -PathType Container) { |
|||
Write-Verbose "found existing MAVEN_HOME at $MAVEN_HOME" |
|||
Write-Output "MVN_CMD=$MAVEN_HOME/bin/$MVN_CMD" |
|||
exit $? |
|||
} |
|||
|
|||
if (! $distributionUrlNameMain -or ($distributionUrlName -eq $distributionUrlNameMain)) { |
|||
Write-Error "distributionUrl is not valid, must end with *-bin.zip, but found $distributionUrl" |
|||
} |
|||
|
|||
# prepare tmp dir |
|||
$TMP_DOWNLOAD_DIR_HOLDER = New-TemporaryFile |
|||
$TMP_DOWNLOAD_DIR = New-Item -Itemtype Directory -Path "$TMP_DOWNLOAD_DIR_HOLDER.dir" |
|||
$TMP_DOWNLOAD_DIR_HOLDER.Delete() | Out-Null |
|||
trap { |
|||
if ($TMP_DOWNLOAD_DIR.Exists) { |
|||
try { Remove-Item $TMP_DOWNLOAD_DIR -Recurse -Force | Out-Null } |
|||
catch { Write-Warning "Cannot remove $TMP_DOWNLOAD_DIR" } |
|||
} |
|||
} |
|||
|
|||
New-Item -Itemtype Directory -Path "$MAVEN_HOME_PARENT" -Force | Out-Null |
|||
|
|||
# Download and Install Apache Maven |
|||
Write-Verbose "Couldn't find MAVEN_HOME, downloading and installing it ..." |
|||
Write-Verbose "Downloading from: $distributionUrl" |
|||
Write-Verbose "Downloading to: $TMP_DOWNLOAD_DIR/$distributionUrlName" |
|||
|
|||
$webclient = New-Object System.Net.WebClient |
|||
if ($env:MVNW_USERNAME -and $env:MVNW_PASSWORD) { |
|||
$webclient.Credentials = New-Object System.Net.NetworkCredential($env:MVNW_USERNAME, $env:MVNW_PASSWORD) |
|||
} |
|||
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 |
|||
$webclient.DownloadFile($distributionUrl, "$TMP_DOWNLOAD_DIR/$distributionUrlName") | Out-Null |
|||
|
|||
# If specified, validate the SHA-256 sum of the Maven distribution zip file |
|||
$distributionSha256Sum = (Get-Content -Raw "$scriptDir/.mvn/wrapper/maven-wrapper.properties" | ConvertFrom-StringData).distributionSha256Sum |
|||
if ($distributionSha256Sum) { |
|||
if ($USE_MVND) { |
|||
Write-Error "Checksum validation is not supported for maven-mvnd. `nPlease disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." |
|||
} |
|||
Import-Module $PSHOME\Modules\Microsoft.PowerShell.Utility -Function Get-FileHash |
|||
if ((Get-FileHash "$TMP_DOWNLOAD_DIR/$distributionUrlName" -Algorithm SHA256).Hash.ToLower() -ne $distributionSha256Sum) { |
|||
Write-Error "Error: Failed to validate Maven distribution SHA-256, your Maven distribution might be compromised. If you updated your Maven version, you need to update the specified distributionSha256Sum property." |
|||
} |
|||
} |
|||
|
|||
# unzip and move |
|||
Expand-Archive "$TMP_DOWNLOAD_DIR/$distributionUrlName" -DestinationPath "$TMP_DOWNLOAD_DIR" | Out-Null |
|||
Rename-Item -Path "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain" -NewName $MAVEN_HOME_NAME | Out-Null |
|||
try { |
|||
Move-Item -Path "$TMP_DOWNLOAD_DIR/$MAVEN_HOME_NAME" -Destination $MAVEN_HOME_PARENT | Out-Null |
|||
} catch { |
|||
if (! (Test-Path -Path "$MAVEN_HOME" -PathType Container)) { |
|||
Write-Error "fail to move MAVEN_HOME" |
|||
} |
|||
} finally { |
|||
try { Remove-Item $TMP_DOWNLOAD_DIR -Recurse -Force | Out-Null } |
|||
catch { Write-Warning "Cannot remove $TMP_DOWNLOAD_DIR" } |
|||
} |
|||
|
|||
Write-Output "MVN_CMD=$MAVEN_HOME/bin/$MVN_CMD" |
|||
@ -0,0 +1,77 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<project xmlns="http://maven.apache.org/POM/4.0.0" |
|||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
|||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> |
|||
<modelVersion>4.0.0</modelVersion> |
|||
<parent> |
|||
<groupId>org.springframework.boot</groupId> |
|||
<artifactId>spring-boot-starter-parent</artifactId> |
|||
<version>3.3.2</version> |
|||
<relativePath /> <!-- lookup parent from repository --> |
|||
</parent> |
|||
<groupId>com.gcc</groupId> |
|||
<artifactId>publicgrievance</artifactId> |
|||
<version>0.0.1-SNAPSHOT</version> |
|||
<name>publicgrievance</name> |
|||
<description>public Grievance Project developed by GCC</description> |
|||
<url /> |
|||
<licenses> |
|||
<license /> |
|||
</licenses> |
|||
<developers> |
|||
<developer /> |
|||
</developers> |
|||
<scm> |
|||
<connection /> |
|||
<developerConnection /> |
|||
<tag /> |
|||
<url /> |
|||
</scm> |
|||
<properties> |
|||
<java.version>17</java.version> |
|||
</properties> |
|||
<dependencies> |
|||
<dependency> |
|||
<groupId>org.springframework.boot</groupId> |
|||
<artifactId>spring-boot-starter-thymeleaf</artifactId> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.springframework.boot</groupId> |
|||
<artifactId>spring-boot-starter-web</artifactId> |
|||
</dependency> |
|||
|
|||
<dependency> |
|||
<groupId>org.springframework.boot</groupId> |
|||
<artifactId>spring-boot-devtools</artifactId> |
|||
<scope>runtime</scope> |
|||
<optional>true</optional> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.springframework.boot</groupId> |
|||
<artifactId>spring-boot-starter-test</artifactId> |
|||
<scope>test</scope> |
|||
</dependency> |
|||
|
|||
|
|||
<!-- <dependency> |
|||
<groupId>com.example</groupId> |
|||
<artifactId>erp</artifactId> |
|||
<version>0.0.1-SNAPSHOT</version> |
|||
</dependency>--> |
|||
<dependency> |
|||
<groupId>in.gov.chennaicorporation</groupId> |
|||
<artifactId>gccoffice</artifactId> |
|||
<version>0.0.1</version> |
|||
</dependency> |
|||
</dependencies> |
|||
|
|||
<build> |
|||
<plugins> |
|||
<plugin> |
|||
<groupId>org.springframework.boot</groupId> |
|||
<artifactId>spring-boot-maven-plugin</artifactId> |
|||
</plugin> |
|||
</plugins> |
|||
</build> |
|||
|
|||
</project> |
|||
@ -0,0 +1,14 @@ |
|||
package com.gcc.publicgrievance; |
|||
|
|||
import org.springframework.boot.SpringApplication; |
|||
import org.springframework.boot.autoconfigure.SpringBootApplication; |
|||
|
|||
@SpringBootApplication |
|||
public class PublicgrievanceApplication { |
|||
|
|||
public static void main(String[] args) { |
|||
System.out.println("ready........."); |
|||
SpringApplication.run(PublicgrievanceApplication.class, args); |
|||
} |
|||
|
|||
} |
|||
@ -0,0 +1,105 @@ |
|||
package com.gcc.publicgrievance.Service; |
|||
|
|||
import java.time.LocalDate; |
|||
import java.util.ArrayList; |
|||
import java.util.Collections; |
|||
import java.util.HashMap; |
|||
|
|||
import java.util.List; |
|||
import java.util.Map; |
|||
import java.util.Random; |
|||
|
|||
import com.fasterxml.jackson.core.type.TypeReference; |
|||
import com.fasterxml.jackson.databind.ObjectMapper; |
|||
|
|||
import org.springframework.jdbc.core.JdbcTemplate; |
|||
import org.springframework.stereotype.Service; |
|||
import org.springframework.web.client.RestTemplate; |
|||
|
|||
@Service |
|||
public class ComplaintService { |
|||
|
|||
private final JdbcTemplate jdbcTemplate; |
|||
|
|||
public ComplaintService(JdbcTemplate jdbcTemplate) { |
|||
this.jdbcTemplate = jdbcTemplate; |
|||
} |
|||
|
|||
private final String baseUrl = "https://erp.chennaicorporation.gov.in/pgr/newmobileservice"; |
|||
|
|||
public String fetchComplaintCategories() { |
|||
RestTemplate restTemplate = new RestTemplate(); |
|||
String url = baseUrl + "?serviceId=getComplCategory&ComplaintGroupId=null"; |
|||
return restTemplate.getForObject(url, String.class); |
|||
} |
|||
|
|||
public String fetchComplaintSubTypes(String groupId) { |
|||
RestTemplate restTemplate = new RestTemplate(); |
|||
String url = baseUrl + "?serviceId=getComplCategory&ComplaintGroupId=" + groupId; |
|||
return restTemplate.getForObject(url, String.class); |
|||
} |
|||
|
|||
public List<Map<String, Object>> fetchComplaintDetailsById(String complaintId) { |
|||
RestTemplate restTemplate = new RestTemplate(); |
|||
String url = baseUrl + "?serviceId=getComplaintByID&ComplaintId=" + complaintId; |
|||
String response = restTemplate.getForObject(url, String.class); |
|||
|
|||
try { |
|||
ObjectMapper objectMapper = new ObjectMapper(); |
|||
return objectMapper.readValue(response, new TypeReference<List<Map<String, Object>>>() { |
|||
}); |
|||
} catch (Exception e) { |
|||
e.printStackTrace(); |
|||
return null; |
|||
} |
|||
} |
|||
|
|||
public List<Map<String, Object>> fetchComplaintDetailsByMobile(String mobileNo, String fromDateStr, String toDateStr, String yearStr) { |
|||
RestTemplate restTemplate = new RestTemplate(); |
|||
String url = baseUrl |
|||
+ "?serviceId=getComplaintListWithImg&From_date=" + fromDateStr |
|||
+ "&To_date=" + toDateStr |
|||
+ "&jsonResp=Yes&UserType=Public&MobileNo=" + mobileNo |
|||
+ "&PageIndex=null&Status=null&repYear=" + yearStr; |
|||
|
|||
String response = restTemplate.getForObject(url, String.class); |
|||
|
|||
try { |
|||
ObjectMapper objectMapper = new ObjectMapper(); |
|||
return objectMapper.readValue(response, new TypeReference<List<Map<String, Object>>>() { |
|||
}); |
|||
} catch (Exception e) { |
|||
e.printStackTrace(); |
|||
return null; |
|||
} |
|||
} |
|||
|
|||
|
|||
private final ObjectMapper objectMapper = new ObjectMapper(); |
|||
|
|||
public String getComplaintCategories() { |
|||
String sql = "SELECT category_id, category_name, label_name " + |
|||
"FROM category WHERE is_active = 1 and is_delete = 0"; |
|||
try { |
|||
List<Map<String, Object>> result = jdbcTemplate.queryForList(sql); |
|||
return objectMapper.writeValueAsString(result); |
|||
} catch (Exception e) { |
|||
e.printStackTrace(); |
|||
return "[]"; |
|||
} |
|||
} |
|||
|
|||
public String getComplaintSubTypes(String categoryId) { |
|||
String sql = "SELECT subcategory_id, subcategory_name, category_id " + |
|||
"FROM subcategory WHERE is_active = 1 and is_delete = 0 " + |
|||
"AND category_id = ?"; |
|||
try { |
|||
List<Map<String, Object>> result = jdbcTemplate.queryForList(sql, categoryId); |
|||
return objectMapper.writeValueAsString(result); |
|||
} catch (Exception e) { |
|||
e.printStackTrace(); |
|||
return "[]"; |
|||
} |
|||
} |
|||
|
|||
} |
|||
@ -0,0 +1,47 @@ |
|||
package com.gcc.publicgrievance.config; |
|||
|
|||
import org.springframework.boot.context.properties.ConfigurationProperties; |
|||
import org.springframework.stereotype.Component; |
|||
|
|||
@Component |
|||
@ConfigurationProperties(prefix = "app") |
|||
public class AppConfigur { |
|||
|
|||
private String title; |
|||
private String baseUrl; |
|||
private String getOtpUrl; |
|||
private String erpUrl; |
|||
|
|||
public String getTitle() { |
|||
return title; |
|||
} |
|||
|
|||
public void setTitle(String title) { |
|||
this.title = title; |
|||
} |
|||
|
|||
public String getBaseUrl() { |
|||
return baseUrl; |
|||
} |
|||
|
|||
public void setBaseUrl(String baseUrl) { |
|||
this.baseUrl = baseUrl; |
|||
} |
|||
|
|||
public String getGetOtpUrl() { |
|||
return getOtpUrl; |
|||
} |
|||
|
|||
public void setGetOtpUrl(String getOtpUrl) { |
|||
this.getOtpUrl = getOtpUrl; |
|||
} |
|||
|
|||
public String getErpUrl() { |
|||
return erpUrl; |
|||
} |
|||
|
|||
public void setErpUrl(String erpUrl) { |
|||
this.erpUrl = erpUrl; |
|||
} |
|||
|
|||
} |
|||
@ -0,0 +1,15 @@ |
|||
|
|||
package com.gcc.publicgrievance.configuration; |
|||
|
|||
import org.springframework.context.annotation.Bean; |
|||
import org.springframework.context.annotation.Configuration; |
|||
import org.springframework.web.client.RestTemplate; |
|||
|
|||
@Configuration public class AppConfig { |
|||
|
|||
@Bean |
|||
public RestTemplate restTemplate() { |
|||
return new RestTemplate(); |
|||
} |
|||
|
|||
} |
|||
@ -0,0 +1,77 @@ |
|||
package com.gcc.publicgrievance.configuration; |
|||
|
|||
import java.util.Properties; |
|||
|
|||
import org.hibernate.jpa.HibernatePersistenceProvider; |
|||
import org.springframework.beans.factory.annotation.Qualifier; |
|||
import org.springframework.context.annotation.Bean; |
|||
import org.springframework.context.annotation.Configuration; |
|||
import org.springframework.context.annotation.Primary; |
|||
import org.springframework.data.jpa.repository.config.EnableJpaRepositories; |
|||
import org.springframework.jdbc.datasource.DriverManagerDataSource; |
|||
import org.springframework.orm.jpa.JpaTransactionManager; |
|||
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; |
|||
import org.springframework.transaction.PlatformTransactionManager; |
|||
import org.springframework.transaction.annotation.EnableTransactionManagement; |
|||
import org.springframework.web.client.RestTemplate; |
|||
|
|||
import javax.sql.DataSource; |
|||
|
|||
@Configuration |
|||
@EnableTransactionManagement |
|||
public class DataSourceConfig { |
|||
|
|||
// //private static String dbpassword = "gccroot"; |
|||
// private static String host = "localhost"; |
|||
// private static String dbpassword = "root"; |
|||
|
|||
// AWS |
|||
private static String host = "gcc-facial-db-instance-1.cf48eqcciziq.ap-south-1.rds.amazonaws.com:3306"; |
|||
private static String dbpassword = "gcc-facial-password"; |
|||
|
|||
@Configuration |
|||
@EnableTransactionManagement |
|||
@EnableJpaRepositories( |
|||
entityManagerFactoryRef = "appEntityManagerFactory", |
|||
transactionManagerRef = "appTransactionManager", |
|||
basePackages = {"com.gcc.publicgrievance"} |
|||
) |
|||
|
|||
public static class MysqlAppDataSourceConfig { |
|||
@Primary |
|||
@Bean(name = "mysqlAppDataSource") |
|||
public DataSource mysqlAppDataSource() { |
|||
DriverManagerDataSource dataSource = new DriverManagerDataSource(); |
|||
dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver"); |
|||
dataSource.setUrl("jdbc:mysql://"+host+"/gcc_rest_services"); |
|||
dataSource.setUsername("root"); |
|||
dataSource.setPassword(dbpassword); |
|||
return dataSource; |
|||
} |
|||
|
|||
@Primary |
|||
@Bean(name="appEntityManagerFactory") |
|||
public LocalContainerEntityManagerFactoryBean entityManagerFactory( |
|||
@Qualifier("mysqlAppDataSource") DataSource dataSource) { |
|||
LocalContainerEntityManagerFactoryBean entityManagerFactoryBean = new LocalContainerEntityManagerFactoryBean(); |
|||
entityManagerFactoryBean.setDataSource(dataSource); |
|||
entityManagerFactoryBean.setPackagesToScan("com.gcc.publicgrievance"); |
|||
entityManagerFactoryBean.setPersistenceProviderClass(HibernatePersistenceProvider.class); |
|||
Properties properties = new Properties(); |
|||
properties.setProperty("hibernate.hbm2ddl.auto", "update"); |
|||
entityManagerFactoryBean.setJpaProperties(properties); |
|||
|
|||
return entityManagerFactoryBean; |
|||
} |
|||
|
|||
@Primary |
|||
@Bean(name = "appTransactionManager") |
|||
public PlatformTransactionManager transactionManager(@Qualifier("appEntityManagerFactory") jakarta.persistence.EntityManagerFactory entityManagerFactory) { |
|||
return new JpaTransactionManager(entityManagerFactory); |
|||
} |
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
} |
|||
@ -0,0 +1,24 @@ |
|||
package com.gcc.publicgrievance.configuration; |
|||
|
|||
import org.springframework.context.annotation.Bean; |
|||
import org.springframework.context.annotation.Configuration; |
|||
import org.springframework.security.config.annotation.web.builders.HttpSecurity; |
|||
import org.springframework.security.web.SecurityFilterChain; |
|||
|
|||
@Configuration |
|||
public class SecurityConfig { |
|||
|
|||
@Bean |
|||
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { |
|||
http |
|||
.csrf(csrf -> csrf.disable()) |
|||
.authorizeHttpRequests(auth -> auth |
|||
.requestMatchers("/pgr/api/**").permitAll() |
|||
.anyRequest().permitAll() |
|||
) |
|||
.formLogin(form -> form.disable()) |
|||
.httpBasic(httpBasic -> httpBasic.disable()); |
|||
|
|||
return http.build(); |
|||
} |
|||
} |
|||
@ -0,0 +1,33 @@ |
|||
package com.gcc.publicgrievance.configuration; |
|||
|
|||
import java.util.Arrays; |
|||
import java.util.List; |
|||
|
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Component; |
|||
import org.springframework.web.servlet.HandlerInterceptor; |
|||
|
|||
import com.gcc.publicgrievance.config.AppConfigur; |
|||
|
|||
import jakarta.servlet.http.HttpServletRequest; |
|||
import jakarta.servlet.http.HttpServletResponse; |
|||
|
|||
@Component |
|||
public class UserSessionInterceptor implements HandlerInterceptor { |
|||
|
|||
|
|||
|
|||
@Autowired |
|||
private AppConfigur appConfig; |
|||
|
|||
@Override |
|||
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { |
|||
// Get the current request URL |
|||
String requestUrl = request.getRequestURI(); |
|||
request.setAttribute("baseURL", appConfig.getBaseUrl()); |
|||
|
|||
return true; // Allow the request to proceed |
|||
} |
|||
|
|||
|
|||
} |
|||
@ -0,0 +1,24 @@ |
|||
//package com.gcc.publicgrievance.configuration; |
|||
// |
|||
//import org.springframework.context.annotation.Bean; |
|||
//import org.springframework.context.annotation.Configuration; |
|||
//import org.springframework.web.servlet.config.annotation.CorsRegistry; |
|||
//import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; |
|||
// |
|||
//@Configuration |
|||
//public class WebConfig { |
|||
// |
|||
// @Bean |
|||
// public WebMvcConfigurer corsConfigurer() { |
|||
// return new WebMvcConfigurer() { |
|||
// @Override |
|||
// public void addCorsMappings(CorsRegistry registry) { |
|||
// registry.addMapping("/**") // Allow all paths |
|||
// .allowedOrigins("http://localhost:8080/registercomplaints") // Allow your front-end URL |
|||
// .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS") // Specify allowed methods |
|||
// .allowedHeaders("*") // Allow all headers |
|||
// .allowCredentials(true); // Allow credentials |
|||
// } |
|||
// }; |
|||
// } |
|||
//} |
|||
@ -0,0 +1,123 @@ |
|||
package com.gcc.publicgrievance.controller; |
|||
|
|||
import java.io.BufferedReader; |
|||
import java.io.IOException; |
|||
import java.io.InputStreamReader; |
|||
import java.io.OutputStream; |
|||
import java.net.HttpURLConnection; |
|||
import java.net.URL; |
|||
import java.net.URLEncoder; |
|||
import java.time.LocalDateTime; |
|||
import java.time.format.DateTimeFormatter; |
|||
import java.util.Date; |
|||
import java.util.Random; |
|||
|
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.http.HttpMethod; |
|||
import org.springframework.http.HttpStatus; |
|||
import org.springframework.http.ResponseEntity; |
|||
import org.springframework.web.bind.annotation.GetMapping; |
|||
import org.springframework.web.bind.annotation.PostMapping; |
|||
import org.springframework.web.bind.annotation.RequestMapping; |
|||
import org.springframework.web.bind.annotation.RequestParam; |
|||
import org.springframework.web.bind.annotation.RequestPart; |
|||
import org.springframework.web.bind.annotation.RestController; |
|||
import org.springframework.web.client.RestTemplate; |
|||
import org.springframework.web.multipart.MultipartFile; |
|||
|
|||
import com.fasterxml.jackson.databind.JsonNode; |
|||
import com.fasterxml.jackson.databind.ObjectMapper; // Import Jackson's ObjectMapper |
|||
import com.fasterxml.jackson.databind.node.ObjectNode; |
|||
import com.gcc.publicgrievance.config.AppConfigur; |
|||
|
|||
import jakarta.servlet.http.HttpServletRequest; |
|||
import jakarta.servlet.http.HttpSession; |
|||
|
|||
@RequestMapping("/pgr/api") |
|||
@RestController |
|||
public class APIController { |
|||
|
|||
@Autowired |
|||
private AppConfigur appConfig; |
|||
|
|||
@GetMapping(value = "/sendOTP") |
|||
public String sendOtp(HttpServletRequest request, |
|||
@RequestParam String mobileNo, |
|||
@RequestParam(defaultValue = "5") int otpLength, |
|||
@RequestParam(defaultValue = "false") boolean mobilenocheck) { |
|||
|
|||
String bodyMessage = ""; |
|||
|
|||
try { |
|||
// Validate Mobile Number |
|||
if (mobileNo.length() != 10) { |
|||
throw new IllegalArgumentException("Invalid Mobile Number. It must be 10 digits."); |
|||
} |
|||
|
|||
// New SMS API URL |
|||
String urlString = "https://gccservices.in/gccofficialapp/api/sendOTP?mobileNo=" + mobileNo + |
|||
"&otpLength=" + otpLength + "&mobilenocheck=" + mobilenocheck; |
|||
|
|||
System.out.println("\nurlString---: " + urlString); |
|||
|
|||
// Send the OTP using the new SMS API |
|||
RestTemplate restTemplate = new RestTemplate(); |
|||
ResponseEntity<String> response = restTemplate.exchange(urlString, HttpMethod.GET, null, String.class); |
|||
|
|||
// Log full response and status code |
|||
System.out.println("\nResponse Status Code: " + response.getStatusCode()); |
|||
System.out.println("\nResponse Body: " + response.getBody()); |
|||
|
|||
// Parse the response to extract the OTP from the API response |
|||
ObjectMapper objectMapper = new ObjectMapper(); |
|||
JsonNode jsonResponse = objectMapper.readTree(response.getBody()); |
|||
String apiOtp = jsonResponse.get(0).get("OTP").asText(); // Extract OTP from the response |
|||
int statusCode = jsonResponse.get(0).get("status").asInt(); // Extract status code |
|||
String message = jsonResponse.get(0).get("message").asText(); // Extract message |
|||
|
|||
// Store the OTP in the session |
|||
HttpSession session = request.getSession(); |
|||
session.setAttribute("otp", apiOtp); // Use the OTP from the API response |
|||
|
|||
// Construct the bodyMessage with status, mobileNo, and OTP |
|||
bodyMessage = "[{\"Status\": " + statusCode + " , \"Mobile No\": " + mobileNo + " , \"OTP\": " + apiOtp + " , \"Message\": \"" + message + "\"}]"; |
|||
System.out.println("OTP sent successfully!"); |
|||
|
|||
} catch (IllegalArgumentException e) { |
|||
// Catch validation error for mobile number |
|||
System.out.println("ERROR---: " + e.getMessage()); |
|||
bodyMessage = "Error: " + e.getMessage(); |
|||
} catch (Exception e) { |
|||
// Catch general errors |
|||
System.out.println("ERROR---: " + e); |
|||
bodyMessage = "There was a problem sending OTP. Try again."; |
|||
} |
|||
|
|||
return bodyMessage; |
|||
} |
|||
|
|||
@GetMapping(value = "/verifyOTP") |
|||
public String verifyOtp(HttpServletRequest request, @RequestParam String otp) { |
|||
HttpSession session = request.getSession(); |
|||
try { |
|||
String sessionOtp = (String) session.getAttribute("otp"); // Get OTP from session |
|||
System.out.println("sessionOtp---:" + sessionOtp); |
|||
String enteredOtp = otp.trim(); // OTP entered by user |
|||
|
|||
if (sessionOtp != null && sessionOtp.equals(enteredOtp)) { |
|||
System.out.println("Entered OTP Correct"); |
|||
session.setAttribute("verifiedotp", "success"); |
|||
return "Success"; // OTP is correct |
|||
} else { |
|||
System.out.println("Incorrect OTP. Please enter correct OTP."); |
|||
session.setAttribute("verifiedotp", "error"); |
|||
return "Error"; // OTP mismatch |
|||
} |
|||
} catch (Exception e) { |
|||
System.out.println("Error verifying OTP: " + e.getMessage()); |
|||
return "Error"; // Handle any exceptions |
|||
} |
|||
} |
|||
|
|||
|
|||
} |
|||
@ -0,0 +1,811 @@ |
|||
package com.gcc.publicgrievance.controller; |
|||
|
|||
import java.time.LocalDate; |
|||
import java.time.format.DateTimeFormatter; |
|||
import java.util.*; |
|||
|
|||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; |
|||
import com.fasterxml.jackson.annotation.JsonProperty; |
|||
import com.fasterxml.jackson.databind.JsonNode; |
|||
import com.fasterxml.jackson.databind.ObjectMapper; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
|
|||
import org.springframework.web.bind.annotation.CrossOrigin; |
|||
import org.springframework.web.bind.annotation.GetMapping; |
|||
|
|||
import org.springframework.web.bind.annotation.RequestParam; |
|||
import org.springframework.web.bind.annotation.ResponseBody; |
|||
import org.springframework.web.bind.annotation.RestController; |
|||
import org.springframework.web.client.RestTemplate; |
|||
import org.springframework.web.multipart.MultipartFile; |
|||
import org.springframework.web.util.UriComponentsBuilder; |
|||
import org.springframework.web.util.UriUtils; |
|||
import org.springframework.http.HttpStatus; |
|||
import org.springframework.http.ResponseEntity; |
|||
import org.springframework.util.LinkedMultiValueMap; |
|||
import org.springframework.util.MultiValueMap; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
import java.io.BufferedReader; |
|||
import java.io.IOException; |
|||
import java.io.InputStreamReader; |
|||
import java.io.OutputStream; |
|||
import java.net.HttpURLConnection; |
|||
import java.net.URL; |
|||
import java.net.URLEncoder; |
|||
import java.nio.charset.StandardCharsets; |
|||
|
|||
import org.springframework.http.*; |
|||
|
|||
import com.gcc.publicgrievance.Service.ComplaintService; |
|||
|
|||
import org.slf4j.Logger; |
|||
import org.slf4j.LoggerFactory; |
|||
|
|||
|
|||
import org.springframework.web.multipart.MultipartFile; |
|||
import java.awt.Graphics2D; |
|||
import java.awt.image.BufferedImage; |
|||
import java.io.ByteArrayOutputStream; |
|||
import java.io.IOException; |
|||
import javax.imageio.ImageIO; |
|||
import javax.management.modelmbean.RequiredModelMBean; |
|||
|
|||
import java.util.Base64; |
|||
import java.util.stream.Collectors; |
|||
|
|||
//@CrossOrigin |
|||
@RestController |
|||
@RequestMapping("/pgr/api") |
|||
public class ComplaintController { |
|||
|
|||
private final RestTemplate restTemplate; |
|||
|
|||
public ComplaintController(RestTemplate restTemplate) { |
|||
this.restTemplate = restTemplate; |
|||
} |
|||
|
|||
@Autowired |
|||
private ComplaintService complaintService; |
|||
|
|||
@GetMapping("/getComplaintCategories") |
|||
public @ResponseBody String getComplaintCategories() { |
|||
return complaintService.fetchComplaintCategories(); |
|||
} |
|||
|
|||
|
|||
@GetMapping("/getComplaintSubTypes") |
|||
public @ResponseBody String getComplaintSubTypes(@RequestParam String groupId) { |
|||
return complaintService.fetchComplaintSubTypes(groupId); |
|||
} |
|||
|
|||
@GetMapping("/ComplaintCategories") |
|||
public @ResponseBody String ComplaintCategories() { |
|||
return complaintService.getComplaintCategories(); |
|||
} |
|||
|
|||
@GetMapping("/ComplaintSubTypes") |
|||
public @ResponseBody String ComplaintSubTypes(@RequestParam String categoryId) { |
|||
return complaintService.getComplaintSubTypes(categoryId); |
|||
} |
|||
|
|||
@GetMapping("/getComplaintDetailsbyId") |
|||
public List<Map<String, Object>> getComplaintDetailsById(@RequestParam String complaintid) { |
|||
return complaintService.fetchComplaintDetailsById(complaintid); |
|||
} |
|||
|
|||
@GetMapping("/getComplaintDetailsByMobile") |
|||
public List<Map<String, Object>> getComplaintDetailsByMobile(@RequestParam String mobileNo) |
|||
{ |
|||
|
|||
// // Get current date |
|||
// LocalDate toDate = LocalDate.now(); |
|||
// |
|||
// // Get current year |
|||
// int year = toDate.getYear(); |
|||
// |
|||
// // Get start date of current year (Jan 1) |
|||
// LocalDate fromDate = LocalDate.of(year, 1, 1); |
|||
// |
|||
// // Convert to String if your SQL query needs it (yyyy-MM-dd format) |
|||
// String fromDateStr = fromDate.toString(); |
|||
// String toDateStr = toDate.toString(); |
|||
// String yearStr = String.valueOf(year); |
|||
|
|||
// Get current date |
|||
LocalDate toDate = LocalDate.now(); |
|||
|
|||
// Get current year |
|||
int year = toDate.getYear(); |
|||
|
|||
// Get start date of current year (Jan 1) |
|||
LocalDate fromDate = LocalDate.of(year, 1, 1); |
|||
|
|||
// Define formatter for DD/MM/YYYY |
|||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy"); |
|||
|
|||
// Format dates |
|||
String fromDateStr = fromDate.format(formatter); |
|||
String toDateStr = toDate.format(formatter); |
|||
String yearStr = String.valueOf(year); |
|||
|
|||
|
|||
// Example: print or pass these to your query |
|||
System.out.println("Mobile No: " + mobileNo); |
|||
System.out.println("From Date: " + fromDateStr); |
|||
System.out.println("To Date: " + toDateStr); |
|||
System.out.println("Year: " + yearStr); |
|||
|
|||
List<Map<String, Object>> result = complaintService.fetchComplaintDetailsByMobile(mobileNo, fromDateStr, toDateStr, yearStr); |
|||
|
|||
// If the result is empty, return a response with "No data found" message |
|||
if (result == null || result.isEmpty()) { |
|||
// Create a response map to indicate no data found |
|||
Map<String, Object> noDataResponse = new HashMap<>(); |
|||
noDataResponse.put("message", "No data found"); |
|||
noDataResponse.put("status", "404"); |
|||
|
|||
// Return the no data response in a list |
|||
return Collections.singletonList(noDataResponse); |
|||
} |
|||
|
|||
return result; |
|||
} |
|||
|
|||
@PostMapping("/register") |
|||
public ResponseEntity<?> registerComplaint( |
|||
@RequestParam(value = "ComplainantName", required = false) String complainantName, |
|||
@RequestParam(value = "ComplainantAddr", required = false) String complainantAddr, |
|||
@RequestParam(value = "MobileNo", required = false) String mobileNo, |
|||
@RequestParam(value = "Email", required = false) String email, |
|||
@RequestParam(value = "ComplaintType", required = false) String complaintType, |
|||
@RequestParam(value = "ComplaintTitle", required = false) String complaintTitle, |
|||
@RequestParam(value = "ComplaintDetails", required = false) String complaintDetails, |
|||
@RequestParam(value = "StreetId", required = false) String streetId, |
|||
@RequestParam(value = "Comp_Image", required = false) MultipartFile compImage, |
|||
@RequestParam(value = "latitude", required = false) String latitude, |
|||
@RequestParam(value = "longtitude", required = false) String longtitude, |
|||
@RequestParam(value = "Landmark", required = false) String landmark, |
|||
@RequestParam(value = "gender", required = false) String gender) { |
|||
|
|||
String externalUrl = "https://erp.chennaicorporation.gov.in/pgr/external/mobileservice"; |
|||
|
|||
try { |
|||
URL url = new URL(externalUrl); |
|||
HttpURLConnection conn = (HttpURLConnection) url.openConnection(); |
|||
conn.setRequestMethod("POST"); |
|||
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); |
|||
conn.setDoOutput(true); |
|||
|
|||
// 1) Convert MultipartFile to Base64 string |
|||
String compImageBase64 = ""; |
|||
if (compImage != null && !compImage.isEmpty()) { |
|||
byte[] bytes = compImage.getBytes(); |
|||
compImageBase64 = Base64.getEncoder().encodeToString(bytes); |
|||
} |
|||
System.out.println("compImage.."+compImage); |
|||
|
|||
String params = "serviceId=RegComplaint" + |
|||
"&ComplainantName=" + URLEncoder.encode(complainantName != null ? complainantName : "", "UTF-8") + |
|||
"&ComplainantAddr=" + URLEncoder.encode(complainantAddr != null ? complainantAddr : "", "UTF-8") + |
|||
"&MobileNo=" + URLEncoder.encode(mobileNo != null ? mobileNo : "", "UTF-8") + |
|||
"&Email=" + URLEncoder.encode(email != null ? email : "", "UTF-8") + |
|||
"&ComplaintType=" + URLEncoder.encode(complaintType != null ? complaintType : "", "UTF-8") + |
|||
"&ComplaintTitle=" + URLEncoder.encode(complaintTitle != null ? complaintTitle : "", "UTF-8") + |
|||
"&ComplaintDetails=" + URLEncoder.encode(complaintDetails != null ? complaintDetails : "", "UTF-8") + |
|||
"&StreetId=" + URLEncoder.encode(streetId != null ? streetId : "", "UTF-8") + |
|||
"&Comp_Image=" + URLEncoder.encode(compImageBase64 , "UTF-8")+ |
|||
"&latitude=" + URLEncoder.encode(latitude != null ? latitude : "", "UTF-8") + |
|||
"&longtitude=" + URLEncoder.encode(longtitude != null ? longtitude : "", "UTF-8") + |
|||
"&Landmark=" + URLEncoder.encode(landmark != null ? landmark : "", "UTF-8") + |
|||
"&gender=" + URLEncoder.encode(gender != null ? gender : "", "UTF-8") + |
|||
"&compmode=2"; |
|||
|
|||
try (OutputStream os = conn.getOutputStream()) { |
|||
byte[] input = params.getBytes("UTF-8"); |
|||
os.write(input, 0, input.length); |
|||
} |
|||
|
|||
int responseCode = conn.getResponseCode(); |
|||
BufferedReader reader; |
|||
if (responseCode == HttpURLConnection.HTTP_OK) { |
|||
reader = new BufferedReader(new InputStreamReader(conn.getInputStream())); |
|||
} else { |
|||
reader = new BufferedReader(new InputStreamReader(conn.getErrorStream())); |
|||
} |
|||
|
|||
StringBuilder response = new StringBuilder(); |
|||
String line; |
|||
while ((line = reader.readLine()) != null) { |
|||
response.append(line); |
|||
} |
|||
reader.close(); |
|||
|
|||
// ✅ Parse and return only the complaint number |
|||
ObjectMapper mapper = new ObjectMapper(); |
|||
Map<String, String> responseMap = mapper.readValue(response.toString(), Map.class); |
|||
|
|||
String complaintNo = responseMap.getOrDefault("Complaint Number", "N/A"); |
|||
System.out.println("complaintNo===="+complaintNo); |
|||
|
|||
return ResponseEntity.ok() |
|||
.contentType(MediaType.APPLICATION_JSON) |
|||
.body(Map.of("complaintNumber", complaintNo)); |
|||
|
|||
} catch (IOException e) { |
|||
e.printStackTrace(); |
|||
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR) |
|||
.body(Map.of("error", "An error occurred while processing the request.")); |
|||
} |
|||
} |
|||
|
|||
@PostMapping("/updateComplaint") |
|||
public ResponseEntity<String> updateComplaint(@RequestParam("ComplaintId") String complaintId, |
|||
@RequestParam(value = "Message", required = false) String message, |
|||
@RequestParam(value = "Status") String status, |
|||
@RequestPart(value = "Comp_Image", required = false) MultipartFile compImage) { |
|||
|
|||
String userType = "Public"; |
|||
|
|||
System.out.println("message:-" + message + "\n UserType:-" + userType + "\n Status:-" + status); |
|||
System.out.println(compImage == null); |
|||
String externalUrl = "https://erp.chennaicorporation.gov.in/pgr/newmobileservice"; |
|||
|
|||
try { |
|||
String base64Image = null; |
|||
if (compImage != null && !compImage.isEmpty()) { |
|||
base64Image = compressAndEncodeToBase64(compImage); |
|||
System.out.println("imageee" + base64Image); |
|||
} |
|||
|
|||
// Construct the POST body with parameters |
|||
String params = "serviceId=UpdateComplaint" + "&ComplaintId=" |
|||
+ URLEncoder.encode(complaintId != null ? complaintId : "", "UTF-8") + "&Message=" |
|||
+ URLEncoder.encode(message != null ? message : "", "UTF-8") + "&UserType=" |
|||
+ URLEncoder.encode(userType, "UTF-8") + "&Status=" |
|||
+ URLEncoder.encode(status != null ? status : "", "UTF-8") + "&Comp_Image=" |
|||
+ URLEncoder.encode(compImage != null ? base64Image : "", "UTF-8") |
|||
+ "&Token=718333469976265947044293"; |
|||
// Open connection and send POST request |
|||
URL url = new URL(externalUrl); |
|||
HttpURLConnection conn = (HttpURLConnection) url.openConnection(); |
|||
conn.setRequestMethod("POST"); |
|||
conn.setDoOutput(true); |
|||
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); |
|||
|
|||
// Send parameters |
|||
OutputStream os = conn.getOutputStream(); |
|||
os.write(params.getBytes()); |
|||
os.flush(); |
|||
os.close(); |
|||
|
|||
// Handle the response |
|||
int responseCode = conn.getResponseCode(); |
|||
BufferedReader reader; |
|||
if (responseCode == HttpURLConnection.HTTP_OK) { |
|||
reader = new BufferedReader(new InputStreamReader(conn.getInputStream())); |
|||
} else { |
|||
reader = new BufferedReader(new InputStreamReader(conn.getErrorStream())); |
|||
} |
|||
|
|||
StringBuilder response = new StringBuilder(); |
|||
String line; |
|||
while ((line = reader.readLine()) != null) { |
|||
response.append(line); |
|||
} |
|||
reader.close(); |
|||
|
|||
return ResponseEntity.status(responseCode).body(response.toString()); |
|||
|
|||
} catch (IOException e) { |
|||
e.printStackTrace(); |
|||
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR) |
|||
.body("An error occurred while processing the request."); |
|||
} |
|||
} |
|||
|
|||
private String compressAndEncodeToBase64(MultipartFile file) throws IOException { |
|||
// Convert MultipartFile to BufferedImage |
|||
BufferedImage originalImage = ImageIO.read(file.getInputStream()); |
|||
|
|||
// Resize/Compress the image |
|||
int targetWidth = 800; // You can adjust the width as needed |
|||
int targetHeight = (int) (originalImage.getHeight() * (800.0 / originalImage.getWidth())); // Preserve aspect |
|||
// ratio |
|||
|
|||
BufferedImage resizedImage = new BufferedImage(targetWidth, targetHeight, BufferedImage.TYPE_INT_RGB); |
|||
Graphics2D g = resizedImage.createGraphics(); |
|||
g.drawImage(originalImage, 0, 0, targetWidth, targetHeight, null); |
|||
g.dispose(); |
|||
|
|||
// Compress the image by writing it to a ByteArrayOutputStream in JPEG format |
|||
ByteArrayOutputStream baos = new ByteArrayOutputStream(); |
|||
ImageIO.write(resizedImage, "jpg", baos); // You can change the format to "png" or "jpg" |
|||
byte[] compressedBytes = baos.toByteArray(); |
|||
|
|||
// Convert the compressed image to base64 |
|||
return Base64.getEncoder().encodeToString(compressedBytes); |
|||
} |
|||
@GetMapping("/getdetails") |
|||
public ResponseEntity<?> getComplaintMatch( |
|||
@RequestParam("mobileNo") String mobileNo, |
|||
@RequestParam("complaintId") String complaintId, |
|||
@RequestParam("streetName") String streetName |
|||
) { |
|||
try { |
|||
// 1. Map complaintId to complaint title |
|||
Map<String, String> complaintIdToTitle = new HashMap<>(); |
|||
complaintIdToTitle.put("97", "Removal of Garbage"); |
|||
complaintIdToTitle.put("98", "Overflowing of Garbage Bin"); |
|||
complaintIdToTitle.put("99", "Removal of Debris"); |
|||
complaintIdToTitle.put("100", "Absenteeism of Sweepers"); |
|||
complaintIdToTitle.put("101", "Absenteeism of Door to door garbage Collector"); |
|||
complaintIdToTitle.put("102", "Improper Sweeping"); |
|||
complaintIdToTitle.put("103", "Provison of Garbage Bin"); |
|||
complaintIdToTitle.put("104", "Broken Bin"); |
|||
complaintIdToTitle.put("105", "Shifting of Garbage Bin"); |
|||
complaintIdToTitle.put("106", "Cleaning of Water Table"); |
|||
complaintIdToTitle.put("107", "Nuisance by Garbage Tractor/Truck"); |
|||
complaintIdToTitle.put("108", "Burning of Garbage"); |
|||
complaintIdToTitle.put("109", "Garbage Lorry without Net"); |
|||
complaintIdToTitle.put("110", "Spilling of Garbage from Lorry"); |
|||
complaintIdToTitle.put("111", "Burning of Garbage at Dumping Ground"); |
|||
complaintIdToTitle.put("112", "Pot hole fill up / Repairs to the damaged surface"); |
|||
complaintIdToTitle.put("113", "Relaying of Road"); |
|||
complaintIdToTitle.put("114", "Formation of New Road"); |
|||
complaintIdToTitle.put("115", "Repairs to existing Footpath"); |
|||
complaintIdToTitle.put("116", "Request to provide Footpath"); |
|||
complaintIdToTitle.put("117", "Removal of Shops in the Footpath"); |
|||
complaintIdToTitle.put("118", "Mosquito Menace"); |
|||
complaintIdToTitle.put("119", "Street Dogs"); |
|||
complaintIdToTitle.put("120", "Stray Cattle"); |
|||
complaintIdToTitle.put("121", "Stray Pigs"); |
|||
complaintIdToTitle.put("122", "Death of Stray Animals"); |
|||
complaintIdToTitle.put("123", "Public Health / Dengue / Malaria / Gastro Enteritis"); |
|||
complaintIdToTitle.put("124", "Transfer Station Smell"); |
|||
complaintIdToTitle.put("125", "Flies Menace from Dumping Ground"); |
|||
complaintIdToTitle.put("126", "Open Defecation"); |
|||
complaintIdToTitle.put("127", "Illegal Draining of Sewage to SWD / Open Site"); |
|||
complaintIdToTitle.put("128", "Complaints regarding unhygenic Restaurants"); |
|||
complaintIdToTitle.put("129", "Complaints regarding quality of food in hotels"); |
|||
complaintIdToTitle.put("130", "Road Side Eateries"); |
|||
complaintIdToTitle.put("131", "Slaughter House related complaints"); |
|||
complaintIdToTitle.put("132", "Unauthorized Sale of Meat and Meat products"); |
|||
complaintIdToTitle.put("133", "Illegal Slaughtering"); |
|||
complaintIdToTitle.put("134", "Unhygenic and Improper Transport of Meat and Livestock"); |
|||
complaintIdToTitle.put("135", "Biomedical waste / Health hazard waste removal"); |
|||
complaintIdToTitle.put("136", "Complaints regarding Corporation Hospitals"); |
|||
complaintIdToTitle.put("137", "Complaints regarding CDH"); |
|||
complaintIdToTitle.put("138", "Stagnation of Water"); |
|||
complaintIdToTitle.put("139", "Obstruction of Water Flow"); |
|||
complaintIdToTitle.put("140", "Desilting of Drain"); |
|||
complaintIdToTitle.put("141", "Desilting of Canal"); |
|||
complaintIdToTitle.put("142", "Repairs to Storm Water Drain"); |
|||
complaintIdToTitle.put("143", "Covering Manholes of Storm Water Drain"); |
|||
complaintIdToTitle.put("144", "New Drain Construction"); |
|||
complaintIdToTitle.put("145", "Disposal of Removed Silt on the Road"); |
|||
complaintIdToTitle.put("146", "Non burning of Street lights"); |
|||
complaintIdToTitle.put("147", "Electric shock due to street light"); |
|||
complaintIdToTitle.put("148", "Damage to the Electric pole"); |
|||
complaintIdToTitle.put("149", "New Street lights"); |
|||
complaintIdToTitle.put("150", "Shifting of Street light pole"); |
|||
complaintIdToTitle.put("151", "Overhead cable wires running in a haphazard manner"); |
|||
complaintIdToTitle.put("152", "Removal of Fallen Trees"); |
|||
complaintIdToTitle.put("153", "Complaints regarding Park"); |
|||
complaintIdToTitle.put("154", "Complaints regarding Playground"); |
|||
complaintIdToTitle.put("155", "Complaints regarding Centre Median"); |
|||
complaintIdToTitle.put("156", "Complaints regarding Traffic Island"); |
|||
complaintIdToTitle.put("157", "Unauthorized Tree Cutting"); |
|||
complaintIdToTitle.put("158", "Obstruction of Trees"); |
|||
complaintIdToTitle.put("159", "Complaints regarding Public Toilets"); |
|||
complaintIdToTitle.put("160", "Complaints regarding Free Usage of Public Toilets"); |
|||
complaintIdToTitle.put("161", "Complaints regarding Cleanliness of Toilets in Theatre"); |
|||
complaintIdToTitle.put("162", "Complaints regarding Cleanliness of Toilets in Shopping Complex"); |
|||
complaintIdToTitle.put("163", "Building Plan Sanction"); |
|||
complaintIdToTitle.put("164", "Violation of DCR/Building By laws"); |
|||
complaintIdToTitle.put("165", "Unauthorized / Illegal Construction"); |
|||
complaintIdToTitle.put("166", "Complaints related to Property Tax"); |
|||
complaintIdToTitle.put("167", "Complaints related to Professional Tax"); |
|||
complaintIdToTitle.put("168", "Complaints related to Trade Licence"); |
|||
complaintIdToTitle.put("174", "Name Error (Spelling Related)"); |
|||
complaintIdToTitle.put("175", "Change of Address in Electoral Roll"); |
|||
complaintIdToTitle.put("176", "Issue of Voter ID"); |
|||
complaintIdToTitle.put("177", "Inclusion, Deletion, Correction in Voter List"); |
|||
complaintIdToTitle.put("178", "Complaints regarding Voter List"); |
|||
complaintIdToTitle.put("179", "Name not found in the Electoral Roll"); |
|||
complaintIdToTitle.put("180", "Issue of Birth and Death Certificate"); |
|||
complaintIdToTitle.put("181", "Encroachment on the Public Property"); |
|||
complaintIdToTitle.put("182", " Complaints related to Schools"); |
|||
complaintIdToTitle.put("183", "Sanction of Financial Assistance under Moovalaur Thirumana Thittam"); |
|||
complaintIdToTitle.put("184", "Complaints related to issue of all types of Registration Certificate"); |
|||
complaintIdToTitle.put("185", "Slow Progress of Work"); |
|||
complaintIdToTitle.put("186", "Poor Quality of Work"); |
|||
complaintIdToTitle.put("187", "Unauthorized Advertisement Boards"); |
|||
complaintIdToTitle.put("188", "Complaints regarding Bridges / Flyovers / Subways"); |
|||
complaintIdToTitle.put("189", "Complaints related Shopping Complex"); |
|||
complaintIdToTitle.put("190", "Complaints regarding Community Hall"); |
|||
complaintIdToTitle.put("191", "Complaints regarding Burial Ground"); |
|||
complaintIdToTitle.put("192", "Complaints regarding any other CoC building"); |
|||
complaintIdToTitle.put("193", "Parking Issue"); |
|||
complaintIdToTitle.put("195", "Complaints Regarding Plastics"); |
|||
complaintIdToTitle.put("196", "No electricity in public toilet"); |
|||
complaintIdToTitle.put("197", "No water supply in public toilet"); |
|||
complaintIdToTitle.put("198", "Public toilet blockage"); |
|||
complaintIdToTitle.put("199", "Public toilet cleaning"); |
|||
complaintIdToTitle.put("200", "Burning of street light in daytime"); |
|||
complaintIdToTitle.put("201", "Illegal Parking on foot path"); |
|||
complaintIdToTitle.put("202", "Complaints regarding non availability of Doctors"); |
|||
complaintIdToTitle.put("203", "Complaints regarding non availability of medicines"); |
|||
complaintIdToTitle.put("204", "Complaints regarding laboratory issues"); |
|||
complaintIdToTitle.put("205", "Issues regarding amma baby care kits (After Delivery)"); |
|||
complaintIdToTitle.put("206", "Issues regarding Amma nutrition kit for pregnant woman"); |
|||
complaintIdToTitle.put("207", "Issues regarding Muthulakshmi Reddy Maternity Benefit Scheme (MRMBS)"); |
|||
complaintIdToTitle.put("208", "Issues regarding janani suraksha yojana scheme (JSY)"); |
|||
complaintIdToTitle.put("209", "Travel pass related complaints"); |
|||
complaintIdToTitle.put("210", "Food related complaints"); |
|||
complaintIdToTitle.put("212", "Covid Health Related Queries"); |
|||
complaintIdToTitle.put("213", "Hospital and Covid care centre(CCC) Related Queries"); |
|||
complaintIdToTitle.put("214", "Medical Emergencies"); |
|||
complaintIdToTitle.put("215", "Essentials and Medicines"); |
|||
complaintIdToTitle.put("216", "PSYCHO-SOCIO support"); |
|||
complaintIdToTitle.put("218", "Quarantine and isolation Related Queries"); |
|||
complaintIdToTitle.put("219", "General Health Queries"); |
|||
complaintIdToTitle.put("220", "Disinfection request"); |
|||
complaintIdToTitle.put("221", "Non Covid Health Related Queries"); |
|||
complaintIdToTitle.put("222", "Milling/Scraping of Road before Relaying of Road"); |
|||
complaintIdToTitle.put("226", "Food Requirement"); |
|||
complaintIdToTitle.put("227", "Relief Center Requirement"); |
|||
complaintIdToTitle.put("228", "Covid19 Ambulance Service"); |
|||
complaintIdToTitle.put("229", "Air Quality"); |
|||
complaintIdToTitle.put("230", "Online Payment Issue"); |
|||
complaintIdToTitle.put("231", "General Revision Objection"); |
|||
complaintIdToTitle.put("232", "Water Mixed with Sewarage"); |
|||
complaintIdToTitle.put("233", "Sewerage Overflow"); |
|||
complaintIdToTitle.put("234", "Drinking water supply"); |
|||
complaintIdToTitle.put("235", "Electricity Shock"); |
|||
complaintIdToTitle.put("236", "Electricity Unavailability"); |
|||
complaintIdToTitle.put("237", "Insufficient Barricading"); |
|||
complaintIdToTitle.put("238", "Fallen poles/towers/hoardings/other infra"); |
|||
complaintIdToTitle.put("239", "Fallen EB cables"); |
|||
complaintIdToTitle.put("240", "Project information not provided (Thiruvotriyur High Road)"); |
|||
complaintIdToTitle.put("241", "Project information not provided (Arunachaleshwar Road)"); |
|||
complaintIdToTitle.put("242", "Project information not provided (MC Road)"); |
|||
complaintIdToTitle.put("243", "Project information not provided (Washermenpet Metro)"); |
|||
complaintIdToTitle.put("244", "Project information not provided (Khadar Nawas Khan Road)"); |
|||
complaintIdToTitle.put("245", "Project information not provided (Race Course road + Guindy MMI)"); |
|||
complaintIdToTitle.put("246", "Advance information on consultation not provided (Thiruvotriyur High Road)"); |
|||
complaintIdToTitle.put("247", "Advance information on consultation not provided (Arunachaleshwar Road)"); |
|||
complaintIdToTitle.put("248", "Advance information on consultation not provided (MC Road)"); |
|||
complaintIdToTitle.put("249", "Advance information on consultation not provided (Washermenpet Metro)"); |
|||
complaintIdToTitle.put("250", "Advance information on consultation not provided (Khadar Nawas Khan Road)"); |
|||
complaintIdToTitle.put("251", "Advance information on consultation not provided (Race Course road + Guindy MMI)"); |
|||
complaintIdToTitle.put("252", "Location and area of consultation not provided (Thiruvotriyur High Road)"); |
|||
complaintIdToTitle.put("253", "Location and area of consultation not provided (Arunachaleshwar Road)"); |
|||
complaintIdToTitle.put("254", "Location and area of consultation not provided (MC Road)"); |
|||
complaintIdToTitle.put("255", "Location and area of consultation not provided (Washermenpet Metro)"); |
|||
complaintIdToTitle.put("256", "Location and area of consultation not provided (Khadar Nawas Khan Road)"); |
|||
complaintIdToTitle.put("257", "Location and area of consultation not provided (Race Course road + Guindy MMI)"); |
|||
complaintIdToTitle.put("258", "Information on detailed work plan not provided (Thiruvotriyur High Road)"); |
|||
complaintIdToTitle.put("259", "Information on detailed work plan not provided (Arunachaleshwar Road)"); |
|||
complaintIdToTitle.put("260", "Information on detailed work plan not provided (MC Road)"); |
|||
complaintIdToTitle.put("261", "Information on detailed work plan not provided (Washermenpet Metro)"); |
|||
complaintIdToTitle.put("262", "Information on detailed work plan not provided (Khadar Nawas Khan Road)"); |
|||
complaintIdToTitle.put("263", "Information on detailed work plan not provided (Race Course road + Guindy MMI)"); |
|||
complaintIdToTitle.put("264", "Others (Thiruvotriyur High Road)"); |
|||
complaintIdToTitle.put("265", "Others (Arunachaleshwar Road)"); |
|||
complaintIdToTitle.put("266", "Others (MC Road)"); |
|||
complaintIdToTitle.put("267", "Others (Washermenpet Metro)"); |
|||
complaintIdToTitle.put("268", "Others (Khadar Nawas Khan Road)"); |
|||
complaintIdToTitle.put("269", "Others (Race Course road + Guindy MMI)"); |
|||
complaintIdToTitle.put("270", "No information in advance provided on the date and time of civil works (Thiruvotriyur High Road)"); |
|||
complaintIdToTitle.put("271", "No information in advance provided on the date and time of civil works (Arunachaleshwar Road)"); |
|||
complaintIdToTitle.put("272", "No information in advance provided on the date and time of civil works (MC Road)"); |
|||
complaintIdToTitle.put("273", "No information in advance provided on the date and time of civil works (Washermenpet Metro)"); |
|||
complaintIdToTitle.put("274", "No information in advance provided on the date and time of civil works (Khadar Nawas Khan Road)"); |
|||
complaintIdToTitle.put("275", "No information in advance provided on the date and time of civil works (Race Course road + Guindy MMI)"); |
|||
complaintIdToTitle.put("276", "No information provided on the nature and schedule of civil work (Thiruvotriyur High Road)"); |
|||
complaintIdToTitle.put("277", "No information provided on the nature and schedule of civil work (Arunachaleshwar Road)"); |
|||
complaintIdToTitle.put("278", "No information provided on the nature and schedule of civil work (MC Road)"); |
|||
complaintIdToTitle.put("279", "No information provided on the nature and schedule of civil work (Washermenpet Metro)"); |
|||
complaintIdToTitle.put("280", "No information provided on the nature and schedule of civil work (Khadar Nawas Khan Road)"); |
|||
complaintIdToTitle.put("281", "No information provided on the nature and schedule of civil work (Race Course road + Guindy MMI)"); |
|||
complaintIdToTitle.put("282", "No consultation carried out with the people affected by the civil works (Thiruvotriyur High Road)"); |
|||
complaintIdToTitle.put("283", "No consultation carried out with the people affected by the civil works (Arunachaleshwar Road)"); |
|||
complaintIdToTitle.put("284", "No consultation carried out with the people affected by the civil works (MC Road)"); |
|||
complaintIdToTitle.put("285", "No consultation carried out with the people affected by the civil works (Washermenpet Metro)"); |
|||
complaintIdToTitle.put("286", "No consultation carried out with the people affected by the civil works (Khadar Nawas Khan Road)"); |
|||
complaintIdToTitle.put("287", "No consultation carried out with the people affected by the civil works (Race Course road + Guindy MMI)"); |
|||
complaintIdToTitle.put("288", "No arrangement made for temporary displacement (Thiruvotriyur High Road)"); |
|||
complaintIdToTitle.put("289", "No arrangement made for temporary displacement (Arunachaleshwar Road)"); |
|||
complaintIdToTitle.put("290", "No arrangement made for temporary displacement (MC Road)"); |
|||
complaintIdToTitle.put("291", "No arrangement made for temporary displacement (Washermenpet Metro)"); |
|||
complaintIdToTitle.put("292", "No arrangement made for temporary displacement (Khadar Nawas Khan Road)"); |
|||
complaintIdToTitle.put("293", "No arrangement made for temporary displacement (Race Course road + Guindy MMI)"); |
|||
complaintIdToTitle.put("294", "No display board on the project installed at work site (Thiruvotriyur High Road)"); |
|||
complaintIdToTitle.put("295", "No display board on the project installed at work site (Arunachaleshwar Road)"); |
|||
complaintIdToTitle.put("296", "No display board on the project installed at work site (MC Road)"); |
|||
complaintIdToTitle.put("297", "No display board on the project installed at work site (Washermenpet Metro)"); |
|||
complaintIdToTitle.put("298", "No display board on the project installed at work site (Khadar Nawas Khan Road)"); |
|||
complaintIdToTitle.put("299", "No display board on the project installed at work site (Race Course road + Guindy MMI)"); |
|||
complaintIdToTitle.put("300", "Temporary access to structures not provided and or not adequate (Thiruvotriyur High Road)"); |
|||
complaintIdToTitle.put("301", "Temporary access to structures not provided and or not adequate (Arunachaleshwar Road)"); |
|||
complaintIdToTitle.put("302", "Temporary access to structures not provided and or not adequate (MC Road)"); |
|||
complaintIdToTitle.put("303", "Temporary access to structures not provided and or not adequate (Washermenpet Metro)"); |
|||
complaintIdToTitle.put("304", "Temporary access to structures not provided and or not adequate (Khadar Nawas Khan Road)"); |
|||
complaintIdToTitle.put("305", "Temporary access to structures not provided and or not adequate (Race Course road + Guindy MMI)"); |
|||
complaintIdToTitle.put("306", "No safety measures taken at worksite (Thiruvotriyur High Road)"); |
|||
complaintIdToTitle.put("307", "No safety measures taken at worksite (Arunachaleshwar Road)"); |
|||
complaintIdToTitle.put("308", "No safety measures taken at worksite (MC Road)"); |
|||
complaintIdToTitle.put("309", "No safety measures taken at worksite (Washermenpet Metro)"); |
|||
complaintIdToTitle.put("310", "No safety measures taken at worksite (Khadar Nawas Khan Road)"); |
|||
complaintIdToTitle.put("311", "No safety measures taken at worksite (Race Course road + Guindy MMI)"); |
|||
complaintIdToTitle.put("312", "Water supply disrupted and alternate arrangement not provided (Thiruvotriyur High Road)"); |
|||
complaintIdToTitle.put("313", "Water supply disrupted and alternate arrangement not provided (Arunachaleshwar Road)"); |
|||
complaintIdToTitle.put("314", "Water supply disrupted and alternate arrangement not provided (MC Road)"); |
|||
complaintIdToTitle.put("315", "Water supply disrupted and alternate arrangement not provided (Washermenpet Metro)"); |
|||
complaintIdToTitle.put("316", "Water supply disrupted and alternate arrangement not provided (Khadar Nawas Khan Road)"); |
|||
complaintIdToTitle.put("317", "Water supply disrupted and alternate arrangement not provided (Race Course road + Guindy MMI)"); |
|||
complaintIdToTitle.put("318", "Electricity supply disrupted and alternate arrangement not provided (Thiruvotriyur High Road)"); |
|||
complaintIdToTitle.put("319", "Electricity supply disrupted and alternate arrangement not provided (Arunachaleshwar Road)"); |
|||
complaintIdToTitle.put("320", "Electricity supply disrupted and alternate arrangement not provided (MC Road)"); |
|||
complaintIdToTitle.put("321", "Electricity supply disrupted and alternate arrangement not provided (Washermenpet Metro)"); |
|||
complaintIdToTitle.put("322", "Electricity supply disrupted and alternate arrangement not provided (Khadar Nawas Khan Road)"); |
|||
complaintIdToTitle.put("323", "Electricity supply disrupted and alternate arrangement not provided (Race Course road + Guindy MMI)"); |
|||
complaintIdToTitle.put("324", "Disposal of debris not appropriately managed (Thiruvotriyur High Road)"); |
|||
complaintIdToTitle.put("325", "Disposal of debris not appropriately managed (Arunachaleshwar Road)"); |
|||
complaintIdToTitle.put("326", "Disposal of debris not appropriately managed (MC Road)"); |
|||
complaintIdToTitle.put("327", "Disposal of debris not appropriately managed (Washermenpet Metro)"); |
|||
complaintIdToTitle.put("328", "Disposal of debris not appropriately managed (Khadar Nawas Khan Road)"); |
|||
complaintIdToTitle.put("329", "Disposal of debris not appropriately managed (Race Course road + Guindy MMI)"); |
|||
complaintIdToTitle.put("330", " Temporary arrangement for parking not provided (Thiruvotriyur High Road)"); |
|||
complaintIdToTitle.put("331", " Temporary arrangement for parking not provided (Arunachaleshwar Road)"); |
|||
complaintIdToTitle.put("332", " Temporary arrangement for parking not provided (MC Road)"); |
|||
complaintIdToTitle.put("333", " Temporary arrangement for parking not provided (Washermenpet Metro)"); |
|||
complaintIdToTitle.put("334", " Temporary arrangement for parking not provided (Khadar Nawas Khan Road)"); |
|||
complaintIdToTitle.put("335", " Temporary arrangement for parking not provided (Race Course road + Guindy MMI)"); |
|||
complaintIdToTitle.put("336", "GRM and helpline numbers not displayed at worksite (Thiruvotriyur High Road)"); |
|||
complaintIdToTitle.put("337", "GRM and helpline numbers not displayed at worksite (Arunachaleshwar Road)"); |
|||
complaintIdToTitle.put("338", "GRM and helpline numbers not displayed at worksite (MC Road)"); |
|||
complaintIdToTitle.put("339", "GRM and helpline numbers not displayed at worksite (Washermenpet Metro)"); |
|||
complaintIdToTitle.put("340", "GRM and helpline numbers not displayed at worksite (Khadar Nawas Khan Road)"); |
|||
complaintIdToTitle.put("341", "GRM and helpline numbers not displayed at worksite (Race Course road + Guindy MMI)"); |
|||
complaintIdToTitle.put("342", "Drinking water/ other basic needs for Labour not available at worksite (Thiruvotriyur High Road)"); |
|||
complaintIdToTitle.put("343", "Drinking water/ other basic needs for Labour not available at worksite (Arunachaleshwar Road)"); |
|||
complaintIdToTitle.put("344", "Drinking water/ other basic needs for Labour not available at worksite (MC Road)"); |
|||
complaintIdToTitle.put("345", "Drinking water/ other basic needs for Labour not available at worksite (Washermenpet Metro)"); |
|||
complaintIdToTitle.put("346", "Drinking water/ other basic needs for Labour not available at worksite (Khadar Nawas Khan Road)"); |
|||
complaintIdToTitle.put("347", "Drinking water/ other basic needs for Labour not available at worksite (Race Course road + Guindy MMI)"); |
|||
complaintIdToTitle.put("348", "Noise levels are very high (Thiruvotriyur High Road)"); |
|||
complaintIdToTitle.put("349", "Noise levels are very high (Arunachaleshwar Road)"); |
|||
complaintIdToTitle.put("350", "Noise levels are very high (MC Road)"); |
|||
complaintIdToTitle.put("351", "Noise levels are very high (Washermenpet Metro)"); |
|||
complaintIdToTitle.put("352", "Noise levels are very high (Khadar Nawas Khan Road)"); |
|||
complaintIdToTitle.put("353", "Noise levels are very high (Race Course road + Guindy MMI)"); |
|||
complaintIdToTitle.put("354", " Sprinkling of water at worksite not carried out (Thiruvotriyur High Road)"); |
|||
complaintIdToTitle.put("355", " Sprinkling of water at worksite not carried out (Arunachaleshwar Road)"); |
|||
complaintIdToTitle.put("356", " Sprinkling of water at worksite not carried out (MC Road)"); |
|||
complaintIdToTitle.put("357", " Sprinkling of water at worksite not carried out (Washermenpet Metro)"); |
|||
complaintIdToTitle.put("358", " Sprinkling of water at worksite not carried out (Khadar Nawas Khan Road)"); |
|||
complaintIdToTitle.put("359", " Sprinkling of water at worksite not carried out (Race Course road + Guindy MMI)"); |
|||
complaintIdToTitle.put("360", "The worksite is not barricaded; (Thiruvotriyur High Road)"); |
|||
complaintIdToTitle.put("361", "The worksite is not barricaded; (Arunachaleshwar Road)"); |
|||
complaintIdToTitle.put("362", "The worksite is not barricaded; (MC Road)"); |
|||
complaintIdToTitle.put("363", "The worksite is not barricaded; (Washermenpet Metro)"); |
|||
complaintIdToTitle.put("364", "The worksite is not barricaded; (Khadar Nawas Khan Road)"); |
|||
complaintIdToTitle.put("365", "The worksite is not barricaded; (Race Course road + Guindy MMI)"); |
|||
complaintIdToTitle.put("366", " No information on number of labour working at the site (Thiruvotriyur High Road)"); |
|||
complaintIdToTitle.put("367", " No information on number of labour working at the site (Arunachaleshwar Road)"); |
|||
complaintIdToTitle.put("368", " No information on number of labour working at the site (MC Road)"); |
|||
complaintIdToTitle.put("369", " No information on number of labour working at the site (Washermenpet Metro)"); |
|||
complaintIdToTitle.put("370", " No information on number of labour working at the site (Khadar Nawas Khan Road)"); |
|||
complaintIdToTitle.put("371", " No information on number of labour working at the site (Race Course road + Guindy MMI)"); |
|||
complaintIdToTitle.put("372", "Labourer not using the safety equipment (Thiruvotriyur High Road)"); |
|||
complaintIdToTitle.put("373", "Labourer not using the safety equipment (Arunachaleshwar Road)"); |
|||
complaintIdToTitle.put("374", "Labourer not using the safety equipment (MC Road)"); |
|||
complaintIdToTitle.put("375", "Labourer not using the safety equipment (Washermenpet Metro)"); |
|||
complaintIdToTitle.put("376", "Labourer not using the safety equipment (Khadar Nawas Khan Road)"); |
|||
complaintIdToTitle.put("377", "Labourer not using the safety equipment (Race Course road + Guindy MMI)"); |
|||
complaintIdToTitle.put("378", "Sewerage pipe is damaged (Thiruvotriyur High Road)"); |
|||
complaintIdToTitle.put("379", "Sewerage pipe is damaged (Arunachaleshwar Road)"); |
|||
complaintIdToTitle.put("380", "Sewerage pipe is damaged (MC Road)"); |
|||
complaintIdToTitle.put("381", "Sewerage pipe is damaged (Washermenpet Metro)"); |
|||
complaintIdToTitle.put("382", "Sewerage pipe is damaged (Khadar Nawas Khan Road)"); |
|||
complaintIdToTitle.put("383", "Sewerage pipe is damaged (Race Course road + Guindy MMI)"); |
|||
complaintIdToTitle.put("384", "Others (Thiruvotriyur High Road)"); |
|||
complaintIdToTitle.put("385", "Others (Arunachaleshwar Road)"); |
|||
complaintIdToTitle.put("386", "Others (MC Road)"); |
|||
complaintIdToTitle.put("387", "Others (Washermenpet Metro)"); |
|||
complaintIdToTitle.put("388", "Others (Khadar Nawas Khan Road)"); |
|||
complaintIdToTitle.put("389", "Others (Race Course road + Guindy MMI)"); |
|||
complaintIdToTitle.put("390", "Insufficient Barricading (Thiruvotriyur High Road)"); |
|||
complaintIdToTitle.put("391", "Insufficient Barricading (Arunachaleshwar Road)"); |
|||
complaintIdToTitle.put("392", "Insufficient Barricading (MC Road)"); |
|||
complaintIdToTitle.put("393", "Insufficient Barricading (Washermenpet Metro)"); |
|||
complaintIdToTitle.put("394", "Insufficient Barricading (Khadar Nawas Khan Road)"); |
|||
complaintIdToTitle.put("395", "Insufficient Barricading (Race Course road + Guindy MMI)"); |
|||
complaintIdToTitle.put("396", "Non Removal of Debris (Thiruvotriyur High Road)"); |
|||
complaintIdToTitle.put("397", "Non Removal of Debris (Arunachaleshwar Road)"); |
|||
complaintIdToTitle.put("398", "Non Removal of Debris (MC Road)"); |
|||
complaintIdToTitle.put("399", "Non Removal of Debris (Washermenpet Metro)"); |
|||
complaintIdToTitle.put("400", "Non Removal of Debris (Khadar Nawas Khan Road)"); |
|||
complaintIdToTitle.put("401", "Non Removal of Debris (Race Course road + Guindy MMI)"); |
|||
complaintIdToTitle.put("402", "Potholes fill up (Thiruvotriyur High Road)"); |
|||
complaintIdToTitle.put("403", "Potholes fill up (Arunachaleshwar Road)"); |
|||
complaintIdToTitle.put("404", "Potholes fill up (MC Road)"); |
|||
complaintIdToTitle.put("405", "Potholes fill up (Washermenpet Metro)"); |
|||
complaintIdToTitle.put("406", "Potholes fill up (Khadar Nawas Khan Road)"); |
|||
complaintIdToTitle.put("407", "Potholes fill up (Race Course road + Guindy MMI)"); |
|||
complaintIdToTitle.put("408", "Damage to utilities (TNEB, CMWSSB, BSNL) (Thiruvotriyur High Road)"); |
|||
complaintIdToTitle.put("409", "Damage to utilities (TNEB, CMWSSB, BSNL) (Arunachaleshwar Road)"); |
|||
complaintIdToTitle.put("410", "Damage to utilities (TNEB, CMWSSB, BSNL) (MC Road)"); |
|||
complaintIdToTitle.put("411", "Damage to utilities (TNEB, CMWSSB, BSNL) (Washermenpet Metro)"); |
|||
complaintIdToTitle.put("412", "Damage to utilities (TNEB, CMWSSB, BSNL) (Khadar Nawas Khan Road)"); |
|||
complaintIdToTitle.put("413", "Damage to utilities (TNEB, CMWSSB, BSNL) (Race Course road + Guindy MMI)"); |
|||
complaintIdToTitle.put("414", "Encroaching Public Space (Thiruvotriyur High Road)"); |
|||
complaintIdToTitle.put("415", "Encroaching Public Space (Arunachaleshwar Road)"); |
|||
complaintIdToTitle.put("416", "Encroaching Public Space (MC Road)"); |
|||
complaintIdToTitle.put("417", "Encroaching Public Space (Washermenpet Metro)"); |
|||
complaintIdToTitle.put("418", "Encroaching Public Space (Khadar Nawas Khan Road)"); |
|||
complaintIdToTitle.put("419", "Encroaching Public Space (Race Course road + Guindy MMI)"); |
|||
complaintIdToTitle.put("420", "Need Pathway ramp (Thiruvotriyur High Road)"); |
|||
complaintIdToTitle.put("421", "Need Pathway ramp (Arunachaleshwar Road)"); |
|||
complaintIdToTitle.put("422", "Need Pathway ramp (MC Road)"); |
|||
complaintIdToTitle.put("423", "Need Pathway ramp (Washermenpet Metro)"); |
|||
complaintIdToTitle.put("424", "Need Pathway ramp (Khadar Nawas Khan Road)"); |
|||
complaintIdToTitle.put("425", "Need Pathway ramp (Race Course road + Guindy MMI)"); |
|||
complaintIdToTitle.put("426", "Cleanliness in Parks"); |
|||
complaintIdToTitle.put("427", "Greenary in Parks"); |
|||
complaintIdToTitle.put("428", "Play Equipment"); |
|||
complaintIdToTitle.put("429", "Opening and closing hours"); |
|||
complaintIdToTitle.put("430", "Toilets in parks"); |
|||
complaintIdToTitle.put("431", "Non functional lights/ no lights in parks"); |
|||
complaintIdToTitle.put("432", "Safety in parks/playgrounds"); |
|||
complaintIdToTitle.put("433", "Women related safety issues in parks"); |
|||
complaintIdToTitle.put("434", "Availability or cleanliness of dustbins in public toilets"); |
|||
complaintIdToTitle.put("435", "Cleanliness/ water supply in toilets"); |
|||
complaintIdToTitle.put("436", "Broken sinks, toilets or urinals and doors"); |
|||
complaintIdToTitle.put("437", "Request for new toilet"); |
|||
complaintIdToTitle.put("438", "Illegal activities in toilet"); |
|||
complaintIdToTitle.put("439", "Toilets not in use/ closed"); |
|||
complaintIdToTitle.put("440", "Inadequate lighting in and around the toilet"); |
|||
complaintIdToTitle.put("441", "Safety in public toilets"); |
|||
complaintIdToTitle.put("442", "Cleanliness in footpath"); |
|||
complaintIdToTitle.put("443", "Electrical wires/obstruction on footpath"); |
|||
complaintIdToTitle.put("444", "Unsafe dark spots/ corners"); |
|||
complaintIdToTitle.put("445", "Public defecation/urination"); |
|||
complaintIdToTitle.put("446", "Women related safety issues "); |
|||
complaintIdToTitle.put("447", "Inadequate light in a particular location or spot/ dark spots"); |
|||
|
|||
String expectedType; |
|||
if (complaintIdToTitle.containsKey(complaintId)) { |
|||
expectedType = complaintIdToTitle.get(complaintId).trim().toLowerCase(); |
|||
} else { |
|||
// Fallback: Use sub-type text directly if not found in map (i.e. for "Others") |
|||
expectedType = complaintId.trim().toLowerCase(); |
|||
} |
|||
|
|||
// 2. Date range: last 7 days |
|||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy"); |
|||
LocalDate today = LocalDate.now(); |
|||
String endDate = today.format(formatter); |
|||
String startDate = today.minusDays(7).format(formatter); |
|||
int repYear = today.getYear(); |
|||
|
|||
// 3. Construct external URL |
|||
String externalUrl = String.format( |
|||
"https://erp.chennaicorporation.gov.in/pgr/newmobileservice?serviceId=getComplaintListWithImg" + |
|||
"&From_date=%s&To_date=%s&jsonResp=Yes&UserType=Public&Token=&PageIndex=null&Status=null&repYear=%d&MobileNo=%s", |
|||
startDate, endDate, repYear, mobileNo |
|||
); |
|||
|
|||
System.out.println("External API URL: " + externalUrl); |
|||
|
|||
// 4. Fetch and parse response |
|||
RestTemplate restTemplate = new RestTemplate(); |
|||
String json = restTemplate.getForObject(externalUrl, String.class); |
|||
ObjectMapper mapper = new ObjectMapper(); |
|||
JsonNode rootArray = mapper.readTree(json); |
|||
|
|||
boolean found = false; |
|||
|
|||
if (rootArray.isArray() && rootArray.size() > 0) { |
|||
JsonNode complaintList = rootArray.get(0).path("ComplaintListHistory"); |
|||
|
|||
if (complaintList.isArray()) { |
|||
for (JsonNode item : complaintList) { |
|||
String type = item.path("complainttype").asText("").trim().toLowerCase(); |
|||
String street = item.path("Street").asText("").trim().toLowerCase(); |
|||
|
|||
System.out.println("Complaint type in data: " + type); |
|||
System.out.println("Expected complaint type: " + expectedType); |
|||
System.out.println("Street in data: " + street); |
|||
System.out.println("Given street name: " + streetName.trim().toLowerCase()); |
|||
|
|||
if (type.equals(expectedType) && |
|||
street.equals(streetName.trim().toLowerCase())) { |
|||
found = true; |
|||
break; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
|
|||
// 5. Return response |
|||
Map<String, Object> response = new HashMap<>(); |
|||
response.put("duplicate", found); |
|||
return ResponseEntity.ok(response); |
|||
|
|||
} catch (Exception e) { |
|||
e.printStackTrace(); |
|||
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR) |
|||
.body(Collections.singletonMap("error", "Failed to process the request")); |
|||
} |
|||
} |
|||
|
|||
/* |
|||
* private static final Logger log = |
|||
* LoggerFactory.getLogger(ComplaintController.class); |
|||
* |
|||
* |
|||
* @GetMapping("/getStreets") public ResponseEntity<?> getStreets( |
|||
* |
|||
* @RequestParam double lat, |
|||
* |
|||
* @RequestParam double lon ) throws Exception { // 1) raw ESRI geometry JSON |
|||
* String geomJson = String.format("{\"x\":%f,\"y\":%f}", lon, lat); |
|||
* |
|||
* // 2) build & encode the full query URL in one go String url = |
|||
* UriComponentsBuilder .fromHttpUrl("https://gisgcc.chennaicorporation.gov.in" |
|||
* + "/server/rest/services/GCCDepts/EDPMobile2025/FeatureServer/0/query") |
|||
* .queryParam("where", "") .queryParam("geometry", geomJson) // <<< raw JSON |
|||
* here .queryParam("geometryType", "esriGeometryPoint") .queryParam("inSR", |
|||
* "4326") .queryParam("spatialRel", "esriSpatialRelIntersects") |
|||
* .queryParam("distance", "25") .queryParam("units", "esriSRUnit_Meter") |
|||
* .queryParam("outFields", |
|||
* "region,new_zone,new_ward,road_id,road_name,gis_id,type") |
|||
* .queryParam("returnGeometry", "false") .queryParam("f", "geojson") .build() |
|||
* .encode() // <<< encode once .toUriString(); |
|||
* |
|||
* log.info("Calling ESRI: {}", url); |
|||
* |
|||
* // 3) fetch the raw JSON String rawJson = restTemplate.getForObject(url, |
|||
* String.class); log.info("ESRI raw response: {}", rawJson); |
|||
* |
|||
* // 4) detect ESRI-level errors JsonNode root = new |
|||
* ObjectMapper().readTree(rawJson); if (root.has("error")) { String msg = |
|||
* root.path("error").path("message").asText(); return ResponseEntity |
|||
* .status(HttpStatus.BAD_GATEWAY) .body(Map.of("message", |
|||
* "ESRI service error: " + msg)); } |
|||
* |
|||
* // 5) now safe to bind only the “features” array FeatureCollection fc = new |
|||
* ObjectMapper() .readerFor(FeatureCollection.class) .readValue(root); |
|||
* |
|||
* List<Feature> feats = Optional.ofNullable(fc.getFeatures()) |
|||
* .orElse(List.of()); |
|||
* |
|||
* if (feats.isEmpty()) { return ResponseEntity.noContent().build(); } |
|||
* |
|||
* // 6) extract unique road names List<String> streets = feats.stream() .map(f |
|||
* -> f.getProperties().getRoadName()) .filter(Objects::nonNull) .distinct() |
|||
* .toList(); |
|||
* |
|||
* return ResponseEntity.ok(Map.of("streets", streets)); } |
|||
* |
|||
* @JsonIgnoreProperties(ignoreUnknown = true) public static class |
|||
* FeatureCollection { private List<Feature> features; public List<Feature> |
|||
* getFeatures() { return features; } public void setFeatures(List<Feature> |
|||
* features) { this.features = features; } } |
|||
* |
|||
* @JsonIgnoreProperties(ignoreUnknown = true) public static class Feature { |
|||
* private Properties properties; public Properties getProperties() { return |
|||
* properties; } public void setProperties(Properties properties) { |
|||
* this.properties = properties; } } |
|||
* |
|||
* @JsonIgnoreProperties(ignoreUnknown = true) public static class Properties { |
|||
* |
|||
* @JsonProperty("road_name") private String roadName; public String |
|||
* getRoadName() { return roadName; } public void setRoadName(String roadName) { |
|||
* this.roadName = roadName; } } |
|||
*/ |
|||
|
|||
} |
|||
@ -0,0 +1,41 @@ |
|||
package com.gcc.publicgrievance.controller; |
|||
|
|||
import org.springframework.stereotype.Controller; |
|||
import org.springframework.ui.Model; |
|||
import org.springframework.web.bind.annotation.GetMapping; |
|||
import org.springframework.web.bind.annotation.RequestMapping; |
|||
|
|||
@Controller |
|||
@RequestMapping("/pgr") |
|||
public class UserController { |
|||
|
|||
@GetMapping({"/","", "/home"}) |
|||
public String home(Model model) { |
|||
return "User/home"; |
|||
} |
|||
@GetMapping("/registercomplaints") |
|||
public String registercomplaints(Model model) { |
|||
return "User/registercomplaints"; |
|||
} |
|||
@GetMapping("/officercomplaint") |
|||
public String officercomplaint(Model model) { |
|||
return "officer/officercomplaint"; |
|||
} |
|||
@GetMapping("/checklistofficer") |
|||
public String checklistofficer(Model model) { |
|||
return "checklistofficer/checklistofficer"; |
|||
} |
|||
@GetMapping("/checkofficerhome") |
|||
public String checkofficerhome(Model model) { |
|||
return "officer/checkofficerhome"; |
|||
} |
|||
@GetMapping("/staffcomplaint") |
|||
public String staffcomplaint(Model model) { |
|||
return "staff/staffcomplaint"; |
|||
} |
|||
@GetMapping("/staffhome") |
|||
public String staffhome(Model model) { |
|||
return "staff/staffhome"; |
|||
} |
|||
|
|||
} |
|||
@ -0,0 +1,20 @@ |
|||
spring.application.name=publicgrievance |
|||
# Sets the session timeout to 60 seconds |
|||
#server.servlet.session.timeout=60s |
|||
|
|||
# Sets the async request timeout to 5000 milliseconds (5 seconds) |
|||
#spring.mvc.async.request-timeout=5000ms |
|||
|
|||
server.port=8072 |
|||
#server.port=8061 |
|||
|
|||
app.baseUrl=http://localhost:8072 |
|||
|
|||
#For development |
|||
#assets.baseUrl=/ |
|||
|
|||
|
|||
app.getOtpUrl=https://tmegov.onex-aura.com/api/sms? |
|||
|
|||
app.erpUrl=https://erp.chennaicorporation.gov.in/pgr/newmobileservice? |
|||
app.title=GREATER CHENNAI CORPORATION - PGR |
|||
@ -0,0 +1,27 @@ |
|||
spring.application.name=publicgrievance |
|||
# Sets the session timeout to 60 seconds |
|||
#server.servlet.session.timeout=60s |
|||
|
|||
# Sets the async request timeout to 5000 milliseconds (5 seconds) |
|||
#spring.mvc.async.request-timeout=5000ms |
|||
|
|||
server.port=8072 |
|||
#server.port=8061 |
|||
|
|||
#app.baseUrl=https://gccservices.chennaicorporation.gov.in/pgr/ |
|||
app.baseUrl=https://gccservices.in/pgr/ |
|||
|
|||
|
|||
|
|||
#For Production |
|||
#assets.baseUrl=/pgr |
|||
|
|||
|
|||
app.getOtpUrl=https://tmegov.onex-aura.com/api/sms? |
|||
|
|||
app.erpUrl=https://erp.chennaicorporation.gov.in/pgr/newmobileservice? |
|||
app.title=GREATER CHENNAI CORPORATION - PGR |
|||
|
|||
# Disable DataSource auto-configuration since no database is being used |
|||
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration |
|||
|
|||
@ -0,0 +1 @@ |
|||
spring.profiles.active= prod |
|||
|
After Width: 64 | Height: 64 | Size: 7.6 KiB |
@ -0,0 +1,494 @@ |
|||
%PDF-1.3 |
|||
%ºß¬à |
|||
3 0 obj |
|||
<</Type /Page |
|||
/Parent 1 0 R |
|||
/Resources 2 0 R |
|||
/MediaBox [0 0 595.2799999999999727 841.8899999999999864] |
|||
/Contents 4 0 R |
|||
>> |
|||
endobj |
|||
4 0 obj |
|||
<< |
|||
/Length 4438 |
|||
>> |
|||
stream |
|||
0.5670000000000001 w |
|||
0 G |
|||
BT |
|||
/F9 10 Tf |
|||
11.5 TL |
|||
0 g |
|||
56.6929133858267775 813.5435433070865656 Td |
|||
(Information) Tj |
|||
ET |
|||
0.09 0.63 0.52 rg |
|||
0.78 G |
|||
0. w |
|||
40. 785.1970866141731449 265.9382208588956473 -21.4999999999999964 re |
|||
f |
|||
BT |
|||
/F10 10 Tf |
|||
11.5 TL |
|||
1. g |
|||
45. 771.6970866141732586 Td |
|||
(Company) Tj |
|||
ET |
|||
0.09 0.63 0.52 rg |
|||
0.78 G |
|||
0. w |
|||
305.9382208588956473 785.1970866141731449 156.283159509202477 -21.4999999999999964 re |
|||
f |
|||
BT |
|||
/F10 10 Tf |
|||
11.5 TL |
|||
1. g |
|||
310.9382208588956473 771.6970866141732586 Td |
|||
(Contact) Tj |
|||
ET |
|||
0.09 0.63 0.52 rg |
|||
0.78 G |
|||
0. w |
|||
462.2213803680980959 785.1970866141731449 93.0586196319018342 -21.4999999999999964 re |
|||
f |
|||
BT |
|||
/F10 10 Tf |
|||
11.5 TL |
|||
1. g |
|||
467.2213803680980959 771.6970866141732586 Td |
|||
(Country) Tj |
|||
ET |
|||
1. g |
|||
0.78 G |
|||
0.2834645669291339 w |
|||
40. 763.6970866141731449 265.9382208588956473 -21.4999999999999964 re |
|||
B |
|||
BT |
|||
/F9 10 Tf |
|||
11.5 TL |
|||
0.314 g |
|||
45. 750.1970866141732586 Td |
|||
(Alfreds Futterkiste) Tj |
|||
ET |
|||
1. g |
|||
0.78 G |
|||
0.2834645669291339 w |
|||
305.9382208588956473 763.6970866141731449 156.283159509202477 -21.4999999999999964 re |
|||
B |
|||
BT |
|||
/F9 10 Tf |
|||
11.5 TL |
|||
0.314 g |
|||
310.9382208588956473 750.1970866141732586 Td |
|||
(’ªÍªÁ•È) Tj |
|||
ET |
|||
1. g |
|||
0.78 G |
|||
0.2834645669291339 w |
|||
462.2213803680980959 763.6970866141731449 93.0586196319018342 -21.4999999999999964 re |
|||
B |
|||
BT |
|||
/F9 10 Tf |
|||
11.5 TL |
|||
0.314 g |
|||
467.2213803680980959 750.1970866141732586 Td |
|||
(Germany) Tj |
|||
ET |
|||
1. g |
|||
0.78 G |
|||
0.2834645669291339 w |
|||
40. 742.1970866141732586 265.9382208588956473 -21.4999999999999964 re |
|||
B |
|||
BT |
|||
/F9 10 Tf |
|||
11.5 TL |
|||
0.314 g |
|||
45. 728.6970866141732586 Td |
|||
(Centro comercial Moctezuma) Tj |
|||
ET |
|||
1. g |
|||
0.78 G |
|||
0.2834645669291339 w |
|||
305.9382208588956473 742.1970866141732586 156.283159509202477 -21.4999999999999964 re |
|||
B |
|||
BT |
|||
/F9 10 Tf |
|||
11.5 TL |
|||
0.314 g |
|||
310.9382208588956473 728.6970866141732586 Td |
|||
(Francisco Chang) Tj |
|||
ET |
|||
1. g |
|||
0.78 G |
|||
0.2834645669291339 w |
|||
462.2213803680980959 742.1970866141732586 93.0586196319018342 -21.4999999999999964 re |
|||
B |
|||
BT |
|||
/F9 10 Tf |
|||
11.5 TL |
|||
0.314 g |
|||
467.2213803680980959 728.6970866141732586 Td |
|||
(’ªÍªÁ•È) Tj |
|||
ET |
|||
1. g |
|||
0.78 G |
|||
0.2834645669291339 w |
|||
40. 720.6970866141731449 265.9382208588956473 -21.4999999999999964 re |
|||
B |
|||
BT |
|||
/F9 10 Tf |
|||
11.5 TL |
|||
0.314 g |
|||
45. 707.1970866141732586 Td |
|||
(Ernst Handel) Tj |
|||
ET |
|||
1. g |
|||
0.78 G |
|||
0.2834645669291339 w |
|||
305.9382208588956473 720.6970866141731449 156.283159509202477 -21.4999999999999964 re |
|||
B |
|||
BT |
|||
/F9 10 Tf |
|||
11.5 TL |
|||
0.314 g |
|||
310.9382208588956473 707.1970866141732586 Td |
|||
(Roland Mendel) Tj |
|||
ET |
|||
1. g |
|||
0.78 G |
|||
0.2834645669291339 w |
|||
462.2213803680980959 720.6970866141731449 93.0586196319018342 -21.4999999999999964 re |
|||
B |
|||
BT |
|||
/F9 10 Tf |
|||
11.5 TL |
|||
0.314 g |
|||
467.2213803680980959 707.1970866141732586 Td |
|||
(Austria) Tj |
|||
ET |
|||
1. g |
|||
0.78 G |
|||
0.2834645669291339 w |
|||
40. 699.1970866141732586 265.9382208588956473 -21.4999999999999964 re |
|||
B |
|||
BT |
|||
/F9 10 Tf |
|||
11.5 TL |
|||
0.314 g |
|||
45. 685.6970866141732586 Td |
|||
(Island Trading) Tj |
|||
ET |
|||
1. g |
|||
0.78 G |
|||
0.2834645669291339 w |
|||
305.9382208588956473 699.1970866141732586 156.283159509202477 -21.4999999999999964 re |
|||
B |
|||
BT |
|||
/F9 10 Tf |
|||
11.5 TL |
|||
0.314 g |
|||
310.9382208588956473 685.6970866141732586 Td |
|||
(Helen Bennett) Tj |
|||
ET |
|||
1. g |
|||
0.78 G |
|||
0.2834645669291339 w |
|||
462.2213803680980959 699.1970866141732586 93.0586196319018342 -21.4999999999999964 re |
|||
B |
|||
BT |
|||
/F9 10 Tf |
|||
11.5 TL |
|||
0.314 g |
|||
467.2213803680980959 685.6970866141732586 Td |
|||
(UK) Tj |
|||
ET |
|||
1. g |
|||
0.78 G |
|||
0.2834645669291339 w |
|||
40. 677.6970866141732586 265.9382208588956473 -21.4999999999999964 re |
|||
B |
|||
BT |
|||
/F9 10 Tf |
|||
11.5 TL |
|||
0.314 g |
|||
45. 664.1970866141732586 Td |
|||
(Laughing Bacchus Winecellars) Tj |
|||
ET |
|||
1. g |
|||
0.78 G |
|||
0.2834645669291339 w |
|||
305.9382208588956473 677.6970866141732586 156.283159509202477 -21.4999999999999964 re |
|||
B |
|||
BT |
|||
/F9 10 Tf |
|||
11.5 TL |
|||
0.314 g |
|||
310.9382208588956473 664.1970866141732586 Td |
|||
(Yoshi Tannamuri) Tj |
|||
ET |
|||
1. g |
|||
0.78 G |
|||
0.2834645669291339 w |
|||
462.2213803680980959 677.6970866141732586 93.0586196319018342 -21.4999999999999964 re |
|||
B |
|||
BT |
|||
/F9 10 Tf |
|||
11.5 TL |
|||
0.314 g |
|||
467.2213803680980959 664.1970866141732586 Td |
|||
(Canada) Tj |
|||
ET |
|||
1. g |
|||
0.78 G |
|||
0.2834645669291339 w |
|||
40. 656.1970866141732586 265.9382208588956473 -21.4999999999999964 re |
|||
B |
|||
BT |
|||
/F9 10 Tf |
|||
11.5 TL |
|||
0.314 g |
|||
45. 642.6970866141732586 Td |
|||
(Magazzini Alimentari Riuniti) Tj |
|||
ET |
|||
1. g |
|||
0.78 G |
|||
0.2834645669291339 w |
|||
305.9382208588956473 656.1970866141732586 156.283159509202477 -21.4999999999999964 re |
|||
B |
|||
BT |
|||
/F9 10 Tf |
|||
11.5 TL |
|||
0.314 g |
|||
310.9382208588956473 642.6970866141732586 Td |
|||
(Giovanni Rovelli) Tj |
|||
ET |
|||
1. g |
|||
0.78 G |
|||
0.2834645669291339 w |
|||
462.2213803680980959 656.1970866141732586 93.0586196319018342 -21.4999999999999964 re |
|||
B |
|||
BT |
|||
/F9 10 Tf |
|||
11.5 TL |
|||
0.314 g |
|||
467.2213803680980959 642.6970866141732586 Td |
|||
(Italy) Tj |
|||
ET |
|||
0.78 G |
|||
0. w |
|||
endstream |
|||
endobj |
|||
1 0 obj |
|||
<</Type /Pages |
|||
/Kids [3 0 R ] |
|||
/Count 1 |
|||
>> |
|||
endobj |
|||
5 0 obj |
|||
<< |
|||
/Type /Font |
|||
/BaseFont /Helvetica |
|||
/Subtype /Type1 |
|||
/Encoding /WinAnsiEncoding |
|||
/FirstChar 32 |
|||
/LastChar 255 |
|||
>> |
|||
endobj |
|||
6 0 obj |
|||
<< |
|||
/Type /Font |
|||
/BaseFont /Helvetica-Bold |
|||
/Subtype /Type1 |
|||
/Encoding /WinAnsiEncoding |
|||
/FirstChar 32 |
|||
/LastChar 255 |
|||
>> |
|||
endobj |
|||
7 0 obj |
|||
<< |
|||
/Type /Font |
|||
/BaseFont /Helvetica-Oblique |
|||
/Subtype /Type1 |
|||
/Encoding /WinAnsiEncoding |
|||
/FirstChar 32 |
|||
/LastChar 255 |
|||
>> |
|||
endobj |
|||
8 0 obj |
|||
<< |
|||
/Type /Font |
|||
/BaseFont /Helvetica-BoldOblique |
|||
/Subtype /Type1 |
|||
/Encoding /WinAnsiEncoding |
|||
/FirstChar 32 |
|||
/LastChar 255 |
|||
>> |
|||
endobj |
|||
9 0 obj |
|||
<< |
|||
/Type /Font |
|||
/BaseFont /Courier |
|||
/Subtype /Type1 |
|||
/Encoding /WinAnsiEncoding |
|||
/FirstChar 32 |
|||
/LastChar 255 |
|||
>> |
|||
endobj |
|||
10 0 obj |
|||
<< |
|||
/Type /Font |
|||
/BaseFont /Courier-Bold |
|||
/Subtype /Type1 |
|||
/Encoding /WinAnsiEncoding |
|||
/FirstChar 32 |
|||
/LastChar 255 |
|||
>> |
|||
endobj |
|||
11 0 obj |
|||
<< |
|||
/Type /Font |
|||
/BaseFont /Courier-Oblique |
|||
/Subtype /Type1 |
|||
/Encoding /WinAnsiEncoding |
|||
/FirstChar 32 |
|||
/LastChar 255 |
|||
>> |
|||
endobj |
|||
12 0 obj |
|||
<< |
|||
/Type /Font |
|||
/BaseFont /Courier-BoldOblique |
|||
/Subtype /Type1 |
|||
/Encoding /WinAnsiEncoding |
|||
/FirstChar 32 |
|||
/LastChar 255 |
|||
>> |
|||
endobj |
|||
13 0 obj |
|||
<< |
|||
/Type /Font |
|||
/BaseFont /Times-Roman |
|||
/Subtype /Type1 |
|||
/Encoding /WinAnsiEncoding |
|||
/FirstChar 32 |
|||
/LastChar 255 |
|||
>> |
|||
endobj |
|||
14 0 obj |
|||
<< |
|||
/Type /Font |
|||
/BaseFont /Times-Bold |
|||
/Subtype /Type1 |
|||
/Encoding /WinAnsiEncoding |
|||
/FirstChar 32 |
|||
/LastChar 255 |
|||
>> |
|||
endobj |
|||
15 0 obj |
|||
<< |
|||
/Type /Font |
|||
/BaseFont /Times-Italic |
|||
/Subtype /Type1 |
|||
/Encoding /WinAnsiEncoding |
|||
/FirstChar 32 |
|||
/LastChar 255 |
|||
>> |
|||
endobj |
|||
16 0 obj |
|||
<< |
|||
/Type /Font |
|||
/BaseFont /Times-BoldItalic |
|||
/Subtype /Type1 |
|||
/Encoding /WinAnsiEncoding |
|||
/FirstChar 32 |
|||
/LastChar 255 |
|||
>> |
|||
endobj |
|||
17 0 obj |
|||
<< |
|||
/Type /Font |
|||
/BaseFont /ZapfDingbats |
|||
/Subtype /Type1 |
|||
/FirstChar 32 |
|||
/LastChar 255 |
|||
>> |
|||
endobj |
|||
18 0 obj |
|||
<< |
|||
/Type /Font |
|||
/BaseFont /Symbol |
|||
/Subtype /Type1 |
|||
/FirstChar 32 |
|||
/LastChar 255 |
|||
>> |
|||
endobj |
|||
2 0 obj |
|||
<< |
|||
/ProcSet [/PDF /Text /ImageB /ImageC /ImageI] |
|||
/Font << |
|||
/F1 5 0 R |
|||
/F2 6 0 R |
|||
/F3 7 0 R |
|||
/F4 8 0 R |
|||
/F5 9 0 R |
|||
/F6 10 0 R |
|||
/F7 11 0 R |
|||
/F8 12 0 R |
|||
/F9 13 0 R |
|||
/F10 14 0 R |
|||
/F11 15 0 R |
|||
/F12 16 0 R |
|||
/F13 17 0 R |
|||
/F14 18 0 R |
|||
>> |
|||
/XObject << |
|||
>> |
|||
>> |
|||
endobj |
|||
19 0 obj |
|||
<< |
|||
/Producer (jsPDF 2.4.0) |
|||
/CreationDate (D:20240904105942+05'30') |
|||
>> |
|||
endobj |
|||
20 0 obj |
|||
<< |
|||
/Type /Catalog |
|||
/Pages 1 0 R |
|||
/OpenAction [3 0 R /FitH null] |
|||
/PageLayout /OneColumn |
|||
>> |
|||
endobj |
|||
xref |
|||
0 21 |
|||
0000000000 65535 f |
|||
0000004642 00000 n |
|||
0000006459 00000 n |
|||
0000000015 00000 n |
|||
0000000152 00000 n |
|||
0000004699 00000 n |
|||
0000004824 00000 n |
|||
0000004954 00000 n |
|||
0000005087 00000 n |
|||
0000005224 00000 n |
|||
0000005347 00000 n |
|||
0000005476 00000 n |
|||
0000005608 00000 n |
|||
0000005744 00000 n |
|||
0000005872 00000 n |
|||
0000005999 00000 n |
|||
0000006128 00000 n |
|||
0000006261 00000 n |
|||
0000006363 00000 n |
|||
0000006707 00000 n |
|||
0000006793 00000 n |
|||
trailer |
|||
<< |
|||
/Size 21 |
|||
/Root 20 0 R |
|||
/Info 19 0 R |
|||
/ID [ <3A32A17A0E0AEAFDBC2A7A55641F52D9> <3A32A17A0E0AEAFDBC2A7A55641F52D9> ] |
|||
>> |
|||
startxref |
|||
6897 |
|||
%%EOF |
|||
|
After Width: 512 | Height: 512 | Size: 36 KiB |
|
After Width: 1255 | Height: 199 | Size: 80 KiB |
|
After Width: 512 | Height: 512 | Size: 10 KiB |
|
After Width: 225 | Height: 228 | Size: 82 KiB |
|
After Width: 512 | Height: 512 | Size: 26 KiB |
|
After Width: 512 | Height: 512 | Size: 30 KiB |
|
After Width: 600 | Height: 450 | Size: 32 KiB |
|
After Width: 820 | Height: 515 | Size: 96 KiB |
|
After Width: 325 | Height: 435 | Size: 204 KiB |
|
After Width: 512 | Height: 512 | Size: 17 KiB |
|
After Width: 512 | Height: 512 | Size: 16 KiB |
|
After Width: 512 | Height: 512 | Size: 17 KiB |
|
After Width: 512 | Height: 512 | Size: 31 KiB |
|
After Width: 1102 | Height: 1020 | Size: 234 KiB |
|
After Width: 512 | Height: 512 | Size: 4.6 KiB |
|
After Width: 512 | Height: 512 | Size: 27 KiB |
|
After Width: 512 | Height: 512 | Size: 25 KiB |
|
After Width: 512 | Height: 512 | Size: 13 KiB |
|
After Width: 512 | Height: 512 | Size: 35 KiB |
|
After Width: 512 | Height: 512 | Size: 29 KiB |
|
After Width: 512 | Height: 512 | Size: 18 KiB |
|
After Width: 1280 | Height: 640 | Size: 117 KiB |
|
After Width: 512 | Height: 512 | Size: 33 KiB |
|
After Width: 512 | Height: 512 | Size: 9.7 KiB |
|
After Width: 512 | Height: 512 | Size: 30 KiB |
|
After Width: 512 | Height: 512 | Size: 16 KiB |
|
After Width: 512 | Height: 512 | Size: 20 KiB |
|
After Width: 529 | Height: 470 | Size: 138 KiB |
|
After Width: 512 | Height: 512 | Size: 52 KiB |
|
After Width: 512 | Height: 512 | Size: 32 KiB |
@ -0,0 +1,3 @@ |
|||
function invertColors() { |
|||
document.body.classList.toggle('inverted'); |
|||
} |
|||
@ -0,0 +1,44 @@ |
|||
// speech.js
|
|||
|
|||
let isSpeechEnabled = false; // Start with speech disabled
|
|||
|
|||
// Function to handle the speech synthesis
|
|||
function speakText(text) { |
|||
if (isSpeechEnabled) { |
|||
const speech = new SpeechSynthesisUtterance(text); |
|||
speech.lang = 'en-US'; // Set language as needed
|
|||
window.speechSynthesis.speak(speech); |
|||
} |
|||
} |
|||
|
|||
// Function to add event listeners to all relevant elements for speech
|
|||
function addSpeechListeners() { |
|||
const elementsToRead = document.querySelectorAll('label, button, input, h1, h2, h3, h4,h5,h6, p, .card-footer'); // Add any additional selectors as needed
|
|||
elementsToRead.forEach(function(element) { |
|||
element.addEventListener('mouseover', function() { |
|||
// Check if it's an input field and read the placeholder if it exists
|
|||
if (element.tagName.toLowerCase() === 'input') { |
|||
const placeholder = element.getAttribute('placeholder'); |
|||
if (placeholder) { |
|||
speakText(placeholder.trim()); |
|||
} |
|||
} else { |
|||
speakText(element.textContent.trim()); // Speak the element's text when hovered
|
|||
} |
|||
}); |
|||
}); |
|||
} |
|||
|
|||
document.addEventListener('DOMContentLoaded', function() { |
|||
addSpeechListeners(); // Add speech listeners when the document is loaded
|
|||
|
|||
// Add event listener to the toggle button
|
|||
const toggleButton = document.getElementById('toggleSpeech'); |
|||
toggleButton.addEventListener('click', function() { |
|||
isSpeechEnabled = !isSpeechEnabled; // Toggle the speech feature
|
|||
|
|||
// Update button text based on the state, preserving the image
|
|||
const buttonText = isSpeechEnabled ? 'Turn Off Speech' : 'Turn On Speech'; |
|||
toggleButton.innerHTML = `<img src="images/output-onlinepngtools.png" alt="Accessibility Icon" style="height: 30px;"> ${buttonText}`; |
|||
}); |
|||
}); |
|||
@ -0,0 +1,591 @@ |
|||
<!DOCTYPE html> |
|||
<html xmlns:th="http://www.thymeleaf.org"> |
|||
|
|||
<head> |
|||
<meta charset="UTF-8"> |
|||
<title>Main Page</title> |
|||
<!--Google Font --> |
|||
<link href="https://fonts.googleapis.com/css2?family=Lato:wght@400;700&display=swap" rel="stylesheet"> |
|||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.6.0/css/all.min.css" |
|||
integrity="sha512-Kc323vGBEqzTmouAECnVceyQqyqdsSiqLQISBL29aUW4U/M7pSPA/gEUZQqv1cwx4OnYxTxve5UMg5GT6L4JJg==" |
|||
crossorigin="anonymous" referrerpolicy="no-referrer" /> |
|||
<!--Bootstrap CSS--> |
|||
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet"> |
|||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script> |
|||
<script th:src="@{/js/invertcolor.js}"></script> |
|||
<style> |
|||
body { |
|||
font-family: 'Lato', sans-serif; |
|||
background-color: white; |
|||
} |
|||
|
|||
body.inverted { |
|||
background-color: black; |
|||
color: white; |
|||
filter: invert(1); |
|||
} |
|||
|
|||
.card { |
|||
border-radius: 15px; |
|||
border: none; |
|||
padding: 20px; |
|||
background-color: #f0f4ff; |
|||
text-align: center; |
|||
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); |
|||
display: flex; |
|||
flex-direction: column; |
|||
height: 100%; |
|||
/* Make sure cards take up full height of the column */ |
|||
} |
|||
|
|||
.card-body { |
|||
flex: 1; |
|||
/* Allow card-body to grow and take up available space */ |
|||
} |
|||
|
|||
.card-img { |
|||
width: 40px; |
|||
margin-bottom: 15px; |
|||
} |
|||
|
|||
.card-title { |
|||
font-size: 1.2rem; |
|||
font-weight: bold; |
|||
} |
|||
|
|||
.card-text { |
|||
color: #666; |
|||
margin-bottom: 20px; |
|||
} |
|||
|
|||
.card-footer { |
|||
font-weight: bold; |
|||
color: #007bff; |
|||
display: flex; |
|||
align-items: center; |
|||
justify-content: center; |
|||
} |
|||
|
|||
.card-footer i { |
|||
margin-left: 5px; |
|||
} |
|||
|
|||
.row { |
|||
display: flex; |
|||
flex-wrap: wrap; |
|||
margin-bottom: 30px; |
|||
} |
|||
|
|||
.col-md-4 { |
|||
display: flex; |
|||
/* Ensure columns use Flexbox to distribute space evenly */ |
|||
padding: 0 15px; |
|||
/* Adjust padding to fit full width */ |
|||
} |
|||
|
|||
.container { |
|||
max-width: 1200px; |
|||
} |
|||
|
|||
.container .row .col-md-4 { |
|||
padding: 0 15px; |
|||
/* Adjust padding to fit full width */ |
|||
display: flex; |
|||
flex-direction: column; |
|||
} |
|||
|
|||
.card { |
|||
flex-grow: 1; |
|||
/* Ensure all cards have the same height */ |
|||
} |
|||
|
|||
.container .row .col-md-12 { |
|||
padding: 0 15px; |
|||
} |
|||
|
|||
.card-link { |
|||
text-decoration: none; |
|||
/* Remove the underline from the link */ |
|||
color: inherit; |
|||
/* Inherit the text color */ |
|||
display: block; |
|||
/* Make the link cover the entire card */ |
|||
} |
|||
|
|||
.card-link:hover .card { |
|||
box-shadow: 0 6px 12px rgba(0, 0, 0, 0.2); |
|||
/* Optional: add hover effect */ |
|||
} |
|||
|
|||
/* Style for reader button */ |
|||
|
|||
|
|||
#reader-btn.active { |
|||
background-color: #28a745; |
|||
} |
|||
|
|||
/*header css*/ |
|||
.header { |
|||
background-color: #3b4858; |
|||
padding: 10px 20px; |
|||
display: flex; |
|||
align-items: center; |
|||
justify-content: space-between; |
|||
color: white; |
|||
} |
|||
|
|||
.header .logo-left img { |
|||
height: 60px; |
|||
} |
|||
|
|||
.header .title { |
|||
text-align: center; |
|||
flex-grow: 1; |
|||
} |
|||
|
|||
.header .title h2 { |
|||
margin: 0; |
|||
font-size: 1.5rem; |
|||
} |
|||
|
|||
.header .logos-right img { |
|||
height: 60px; |
|||
margin-left: 10px; |
|||
} |
|||
|
|||
/*header buttons*/ |
|||
.header { |
|||
display: flex; |
|||
align-items: center; |
|||
justify-content: space-between; |
|||
/* Space out the items within the header */ |
|||
} |
|||
|
|||
.header-buttons { |
|||
padding-left: 5px; |
|||
display: flex; |
|||
align-items: center; |
|||
gap: 10px; |
|||
/* Adjust spacing between buttons */ |
|||
} |
|||
|
|||
#reader-btn, |
|||
#invertColorBtn { |
|||
padding: 5px 10px; |
|||
font-size: 14px; |
|||
cursor: pointer; |
|||
} |
|||
|
|||
/*for radio button style*/ |
|||
.radio-group { |
|||
display: flex; |
|||
align-items: center; |
|||
/* Ensures all items are aligned to the center */ |
|||
} |
|||
|
|||
.radio-item { |
|||
display: flex; |
|||
align-items: center; |
|||
margin-right: 20px; |
|||
/* Adds space between each radio item */ |
|||
} |
|||
|
|||
.radio-item input[type="radio"] { |
|||
margin-right: 10px; |
|||
/* Adds space between the radio button and its label */ |
|||
vertical-align: middle; |
|||
/* Ensures vertical alignment */ |
|||
} |
|||
|
|||
.radio-item label { |
|||
margin: 0; |
|||
/* Removes any default margins that might affect alignment */ |
|||
} |
|||
</style> |
|||
</head> |
|||
|
|||
|
|||
<body> |
|||
<div th:insert="~{fragments/accessibility :: accessibility}"></div> |
|||
|
|||
|
|||
<!-- <div class="header"> |
|||
|
|||
<div class="logo-left"> |
|||
<img src="images/gcc1.png" alt="Greater Chennai Corporation Logo"> |
|||
</div> |
|||
<div class="header-buttons"> |
|||
<button id="reader-btn" onclick="toggleReader()">Enable Reader</button> |
|||
<button id="invertColorBtn" onclick="invertColors()">Invert Colors</button> |
|||
</div> |
|||
<div class="title"> |
|||
<h2>Public Grievance and Redressal System</h2> |
|||
</div> |
|||
<div class="logos-right"> |
|||
<img src="images/tamil.jpg" alt="Tamil Nadu Logo"> |
|||
<img src="images/bt-logo.png" style="width: 100px;height: 50px;" alt="bonton Logo"> |
|||
</div> |
|||
</div>--> |
|||
|
|||
|
|||
|
|||
<!-- Insert the header fragment --> |
|||
<div th:insert="~{fragments/header :: headerFragment}"></div> |
|||
<!--<button id="reader-btn" onclick="toggleReader()">Enable Reader</button>--> |
|||
|
|||
<br> |
|||
<a href="https://chennaicorporation.gov.in/gcc/" class="btn btn-secondary" target="_blank" style="font-size: 17px;"> |
|||
Back </i> |
|||
</a> |
|||
<!-- Cards Section --> |
|||
<div class="container mt-3"> |
|||
|
|||
<div id="loader" style="display: none; text-align: center;"> |
|||
<img src="/pgr/images/Thin broken ring.gif" alt="Loading..." /> |
|||
</div> |
|||
<!--<button id="invertColorBtn" onclick="invertColors()">Invert Colors</button>--> |
|||
<div class="row"> |
|||
<div class="col-md-4"> |
|||
<a href="/pgr/registercomplaints" class="card-link"> |
|||
<div class="card content"> |
|||
<div class="card-body"> |
|||
<img src="/pgr/images/register.png" alt="register" class="card-img"> |
|||
<div class="card-content"> |
|||
<h5 class="card-title">Register Your<br> Complaints</h5> |
|||
<p class="card-text">Register Complaints<br> Via Internet</p> |
|||
</div> |
|||
</div> |
|||
<div class="card-footer"> |
|||
Get Started <i class="fa fa-arrow-right"></i> |
|||
</div> |
|||
</div> |
|||
</a> |
|||
</div> |
|||
|
|||
<div class="col-md-4"> |
|||
<div class="card readable"> |
|||
<div class="card-body"> |
|||
<img src="/pgr/images/phone-call.png" alt="Phone" class="card-img"> |
|||
<div class="card-content"> |
|||
<h5 class="card-title">Register Complaint via Phone</h5> |
|||
<p class="card-text">Call 1913 to register your complaint.</p> |
|||
</div> |
|||
</div> |
|||
<div class="card-footer"> |
|||
Call Now <i class="fa fa-arrow-right"></i> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="col-md-4"> |
|||
<div class="card readable"> |
|||
<div class="card-body"> |
|||
<img src="/pgr/images/contract.png" alt="Paper" class="card-img"> |
|||
<div class="card-content"> |
|||
<h5 class="card-title">Complaint via Paper Form</h5> |
|||
<p class="card-text">Send your Grievance to<br><strong>The Commissioner,<br>Greater Chennai |
|||
Corporation,<br>Ripon Building, EVR Salai, Chennai - 600003.</strong></p> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
|
|||
<!-- Form to Check by Complaint Number --> |
|||
<div class="col-md-12"> |
|||
<div class="card readable"> |
|||
<div class="card-body"> |
|||
<img src="/pgr/images/search.png" alt="Status" class="card-img"> |
|||
<div class="card-content"> |
|||
<h5 class="card-title">Check Your Complaint Status</h5> |
|||
<div class="form-group"> |
|||
<input type="radio" id="c_number" name="check_method" value="c_number" checked |
|||
onchange="toggleInput()"> |
|||
<label class="readable">Check By Complaint Number</label> |
|||
|
|||
<input type="radio" id="m_number" name="check_method" value="m_number" |
|||
onchange="toggleInput()"> |
|||
<label class="readable">Check By Mobile Number</label> |
|||
</div> |
|||
|
|||
<!-- Input for Complaint Number --> |
|||
<div class="form-group" id="complaint-number-input"> |
|||
<input type="text" class="form-control" id="complaint-number" |
|||
placeholder="Enter Complaint Number"> |
|||
</div> |
|||
|
|||
<!-- Input for Mobile Number (hidden by default) --> |
|||
<div class="form-group" id="complaint-mobile-input" style="display: none;"> |
|||
<input type="text" class="form-control" id="complaint-mobile" minlength="10" maxlength="10" |
|||
placeholder="Enter Mobile Number"> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="card-footer"> |
|||
<!-- Button for Complaint Number --> |
|||
<button class="btn btn-danger" id="check-now-btn">Check Now <i |
|||
class="fa fa-arrow-right"></i></button> |
|||
|
|||
<!-- Button for Mobile Number (hidden by default) --> |
|||
<button class="btn btn-primary readable" id="check-mobile-btn" style="display: none;">Check Now <i |
|||
class="fa fa-arrow-right"></i></button> |
|||
|
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<br> |
|||
<br> |
|||
<br> |
|||
<br> |
|||
<br> |
|||
<br> |
|||
|
|||
<!-- Form to Check by Mobile Number --> |
|||
<!--<div class="col-md-6"> |
|||
<div class="card readable"> |
|||
<div class="card-body"> |
|||
<img src="images/search.png" alt="Status" class="card-img"> |
|||
<div class="card-content"> |
|||
<h5 class="card-title">Check Your Complaint Status</h5> |
|||
<div class="form-group"> |
|||
<label class="readable">Check By Mobile Number</label> |
|||
</div> |
|||
<div class="form-group"> |
|||
<input type="text" class="form-control" id="complaint-mobile" |
|||
placeholder="Enter Mobile Number"> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="card-footer"> |
|||
<button class="btn btn-primary readable" id="check-mobile-btn">Check Now <i |
|||
class="fa fa-arrow-right"></i></button> |
|||
</div> |
|||
</div> |
|||
</div>--> |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
</div> |
|||
|
|||
|
|||
|
|||
<div class="modal fade" id="complaintDetailsModal" tabindex="-1" role="dialog" |
|||
aria-labelledby="complaintDetailsLabel" aria-hidden="true"> |
|||
<div class="modal-dialog modal-lg" role="document"> |
|||
<div class="modal-content"> |
|||
<div class="modal-header" style="background-color: #3c4959;color: white;"> |
|||
<h5 class="modal-title" id="complaintDetailsLabel">Complaint Details</h5> |
|||
<button type="button" class="close" data-dismiss="modal" aria-label="Close" style="color: white;"> |
|||
<span aria-hidden="true">×</span> |
|||
</button> |
|||
</div> |
|||
<div class="modal-body"> |
|||
<table class="table"> |
|||
<thead style="background-color: #3c4959;color: white;"> |
|||
<tr> |
|||
<th>Complaint Number</th> |
|||
<th>Complaint Type</th> |
|||
<th>View</th> <!-- New column for the eye icon --> |
|||
</tr> |
|||
</thead> |
|||
<tbody> |
|||
<!-- Dynamic rows will be appended here by JavaScript --> |
|||
</tbody> |
|||
</table> |
|||
</div> |
|||
<div class="modal-footer"> |
|||
<button type="button" class="btn btn-secondary" data-dismiss="modal" |
|||
style="background-color:#3c4959 ;">Close</button> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
<div th:insert="~{fragments/footer :: footerFragment}"></div> |
|||
|
|||
<!-- Replace Slim jQuery with Full jQuery --> |
|||
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script> |
|||
|
|||
<!-- Popper.js (for Bootstrap tooltips, popovers, etc.) --> |
|||
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js"></script> |
|||
|
|||
<!-- Bootstrap JS --> |
|||
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script> |
|||
|
|||
<!-- Font Awesome for Icons --> |
|||
<script src="https://kit.fontawesome.com/a076d05399.js"></script> |
|||
|
|||
<script> |
|||
|
|||
|
|||
$(document).ready(function () { |
|||
// Check by complaint number |
|||
$('#check-now-btn').click(function () { |
|||
var complaintNumber = $('#complaint-number').val(); |
|||
if (complaintNumber) { |
|||
window.location.href = '/pgr/checklistofficer?complaintno=' + encodeURIComponent(complaintNumber); |
|||
} else { |
|||
alert('Please enter a complaint number.'); |
|||
} |
|||
}); |
|||
|
|||
|
|||
|
|||
}); |
|||
|
|||
|
|||
|
|||
|
|||
function toggleInput() { |
|||
const checkByComplaint = document.getElementById('c_number').checked; |
|||
const complaintInput = document.getElementById('complaint-number-input'); |
|||
const mobileInput = document.getElementById('complaint-mobile-input'); |
|||
const checkNowBtn = document.getElementById('check-now-btn'); |
|||
const checkMobileBtn = document.getElementById('check-mobile-btn'); |
|||
|
|||
if (checkByComplaint) { |
|||
complaintInput.style.display = 'block'; |
|||
checkNowBtn.style.display = 'block'; |
|||
mobileInput.style.display = 'none'; |
|||
checkMobileBtn.style.display = 'none'; |
|||
} else { |
|||
complaintInput.style.display = 'none'; |
|||
checkNowBtn.style.display = 'none'; |
|||
mobileInput.style.display = 'block'; |
|||
checkMobileBtn.style.display = 'block'; |
|||
} |
|||
} |
|||
|
|||
// ✅ Mobile number validation as user types |
|||
$('#complaint-mobile').on('input', function () { |
|||
let value = this.value; |
|||
|
|||
// Allow only digits |
|||
value = value.replace(/[^0-9]/g, ''); |
|||
|
|||
// Prevent starting with 0 |
|||
if (value.startsWith('0')) { |
|||
value = ''; |
|||
//showSnackbar("Mobile number cannot start with 0."); |
|||
} |
|||
|
|||
// Limit to 10 digits |
|||
if (value.length > 10) { |
|||
value = value.slice(0, 10); |
|||
} |
|||
|
|||
this.value = value; |
|||
|
|||
// Check for all repeating digits |
|||
if (/^(\d)\1{9}$/.test(value)) { |
|||
$(this).addClass('is-invalid'); |
|||
showSnackbar("Mobile number cannot be all repeating digits."); |
|||
} else { |
|||
$(this).removeClass('is-invalid'); |
|||
} |
|||
}); |
|||
|
|||
$(document).ready(function () { |
|||
|
|||
|
|||
|
|||
// Trigger modal and load complaint list based on mobile number |
|||
$('#check-mobile-btn').on('click', function () { |
|||
const mobileNumber = $('#complaint-mobile').val(); // Get the entered mobile number |
|||
|
|||
if (mobileNumber === "") { |
|||
alert("Please enter a mobile number."); |
|||
return; |
|||
} |
|||
|
|||
if (mobileNumber.length !== 10 || !/^\d{10}$/.test(mobileNumber) || mobileNumber.startsWith('0') || /^(\d)\1{9}$/.test(mobileNumber)) { |
|||
alert("Enter a valid 10-digit mobile number."); |
|||
return; |
|||
} |
|||
|
|||
$('#loader').show(); |
|||
// AJAX request to fetch complaint details by mobile number |
|||
$.ajax({ |
|||
url: '/pgr/api/getComplaintDetailsByMobile', |
|||
method: 'GET', |
|||
data: {mobileNo: mobileNumber}, |
|||
success: function (response) { |
|||
$('#loader').hide(); |
|||
const complaintList = response[0]?.ComplaintListHistory; // Assuming data is inside ComplaintListHistory |
|||
|
|||
// Clear the table before adding new rows |
|||
const tableBody = $('#complaintDetailsModal tbody'); |
|||
tableBody.empty(); |
|||
|
|||
// Check if there are complaints |
|||
if (complaintList && complaintList.length > 0) { |
|||
// Loop through each complaint and add to the table |
|||
complaintList.forEach(function (complaint) { |
|||
const complaintId = complaint.complaintid || 'N/A'; // Fallback to N/A if complaintid is null |
|||
const complaintType = complaint.complainttype || 'N/A'; |
|||
|
|||
const newRow = ` |
|||
<tr> |
|||
<td>${complaintId}</td> |
|||
<td>${complaintType}</td> |
|||
|
|||
<td> |
|||
<button class="btn btn-link view-complaint" data-complaintid="${complaintId}"> |
|||
<i style="color:#3c4959" class="fa fa-eye"></i> |
|||
</button> |
|||
</td> |
|||
</tr>`; |
|||
tableBody.append(newRow); // Append the new row to the table |
|||
}); |
|||
} else { |
|||
// No complaints found for the mobile number |
|||
tableBody.append('<tr><td colspan="2">No complaints found for this mobile number.</td></tr>'); |
|||
} |
|||
|
|||
// Display the modal after fetching the data |
|||
$('#complaintDetailsModal').modal('show'); |
|||
}, |
|||
error: function (error) { |
|||
console.log('Error fetching complaints:', error); |
|||
alert('There was an error fetching the complaint details. Please try again.'); |
|||
$('#loader').hide(); |
|||
} |
|||
}); |
|||
}); |
|||
|
|||
|
|||
|
|||
|
|||
// Event delegation to handle click on dynamically generated eye icons |
|||
$(document).on('click', '.view-complaint', function () { |
|||
var complaintId = $(this).data('complaintid'); |
|||
if (complaintId) { |
|||
// Redirect to the complaint details page using complaintId |
|||
window.location.href = '/pgr/checklistofficer?complaintno=' + encodeURIComponent(complaintId); |
|||
} else { |
|||
alert('Complaint ID not found.'); |
|||
} |
|||
}); |
|||
|
|||
|
|||
}); |
|||
|
|||
</script> |
|||
<script th:src="@{/js/screenreader.js}"></script> |
|||
</body> |
|||
|
|||
</html> |
|||
2432
src/main/resources/templates/User/registercomplaints.html
File diff suppressed because it is too large
View File
@ -0,0 +1,615 @@ |
|||
<!DOCTYPE html> |
|||
<html xmlns:th="http://www.thymeleaf.org"> |
|||
|
|||
<head> |
|||
<meta charset="UTF-8"> |
|||
<title>CheckList User</title> |
|||
<!-- Google Font --> |
|||
<link href="https://fonts.googleapis.com/css2?family=Lato:wght@400;700&display=swap" rel="stylesheet"> |
|||
<!-- Bootstrap CSS --> |
|||
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet"> |
|||
|
|||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script> |
|||
<link rel="stylesheet" href="https://unpkg.com/leaflet/dist/leaflet.css" /> |
|||
<script src="https://unpkg.com/leaflet/dist/leaflet.js"></script> |
|||
<style> |
|||
/*rating style for css*/ |
|||
.rating { |
|||
direction: rtl; |
|||
display: inline-flex; |
|||
font-size: 24px; |
|||
} |
|||
|
|||
.rating input { |
|||
display: none; |
|||
} |
|||
|
|||
.rating label { |
|||
color: #ddd; |
|||
cursor: pointer; |
|||
margin: 0; |
|||
} |
|||
|
|||
.rating input:checked~label { |
|||
color: #414f69; |
|||
} |
|||
|
|||
.rating label:hover, |
|||
.rating label:hover~label { |
|||
color: #414f69; |
|||
} |
|||
|
|||
/* Style for resizing content */ |
|||
.resizable-content { |
|||
font-size: medium; |
|||
transition: font-size 0.3s ease; |
|||
} |
|||
|
|||
|
|||
.comment-table { |
|||
width: 100%; |
|||
border-collapse: collapse; |
|||
} |
|||
|
|||
.comment-table td { |
|||
padding: 0.5rem; |
|||
border: 1px solid #ddd; |
|||
/* Light border color */ |
|||
} |
|||
|
|||
.comment-table td:first-child { |
|||
width: 25%; |
|||
/* Adjust as needed for label column width */ |
|||
font-weight: bold; |
|||
} |
|||
|
|||
.comment-table td:nth-child(2) { |
|||
width: 75%; |
|||
/* Adjust as needed for value column width */ |
|||
} |
|||
</style> |
|||
</head> |
|||
|
|||
<body> |
|||
|
|||
<!-- Insert the header fragment --> |
|||
|
|||
<div th:insert="~{fragments/header :: headerFragment}"></div> |
|||
|
|||
<div class="container mt-4"> |
|||
<!-- Loader GIF --> |
|||
<div id="loader" style="display: none; text-align: center;"> |
|||
<img src="images/Thin broken ring.gif" alt="Loading..." /> |
|||
</div> |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
<div class="mt-1"> |
|||
<div class="row align-items-center justify-content-center"> |
|||
<h4 class="title resizable-content" style="color: #414f69;">Check Complaint Status</h4> |
|||
</div> |
|||
</div> |
|||
<!-- Card Section --> |
|||
<div class="card p-3 resizable-content" style="margin-bottom: 8px;color: #414f69;"> |
|||
<div class="card mb-3 resizable-content"> |
|||
<div class="card-header text-white" style="background-color: #414f69;">1. Complaining Person's Details |
|||
</div> |
|||
<div class="card-body"> |
|||
<div class="row"> |
|||
<div class="col-md-6"> |
|||
<label>Complainant ID:</label> |
|||
<input type="text" id="complaintid" class="form-control" value="" disabled> |
|||
</div> |
|||
<div class="col-md-6"> |
|||
<label>Complainant Mobile Number:</label> |
|||
<input type="text" id="complaint-mobile-number" class="form-control" value="" disabled> |
|||
</div> |
|||
<div class="col-md-6"> |
|||
<label>Complainant Name:</label> |
|||
<input type="text" id="complaint-customer-name" class="form-control" value="" disabled> |
|||
</div> |
|||
|
|||
|
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="card mb-3 resizable-content"> |
|||
<div class="card-header text-white" style="background-color: #414f69;">2. Complaint Location Details |
|||
</div> |
|||
<div class="card-body"> |
|||
<div class="row"> |
|||
<div class="col-md-4"> |
|||
<label>Complainant Street:</label> |
|||
<input type="text" id="street" class="form-control" disabled> |
|||
</div> |
|||
<div class="col-md-4"> |
|||
<label>Complainant Zone:</label> |
|||
<input type="text" class="form-control" id="zone" disabled> |
|||
</div> |
|||
<div class="col-md-4"> |
|||
<label>Complainant Ward:</label> |
|||
<input type="text" class="form-control" id="ward" disabled> |
|||
</div> |
|||
<div class="col-md-4"> |
|||
<label>Complainant Area:</label> |
|||
<input type="text" class="form-control" id="area" disabled> |
|||
</div> |
|||
<div class="col-md-4"> |
|||
<label>Complainant Locality:</label> |
|||
<input type="text" class="form-control" id="location" disabled> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="card resizable-content"> |
|||
<div class="card-header text-white" style="background-color: #414f69;">3. Complaint Type</div> |
|||
<div class="card-body"> |
|||
<div class="row"> |
|||
<div class="col-md-4"> |
|||
<label>Complainant Type:</label> |
|||
<input type="text" class="form-control" id="complaintType" disabled> |
|||
</div> |
|||
|
|||
<!--<div class="col-md-4"> |
|||
Complainant Sub-Type: |
|||
<input type="text" class="form-control" disabled> |
|||
</div> |
|||
<div class="col-md-4"> |
|||
Complainant Title: |
|||
<input type="text" class="form-control" disabled> |
|||
</div>--> |
|||
<div class="col-md-12"> |
|||
<label>Complainant Description:</label> |
|||
<input type="text" class="form-control" id="complaintdesc" disabled> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="card mb-3 resizable-content"> |
|||
<div class="card-header text-white" style="background-color: #414f69;">Complaint Action</div> |
|||
<div class="card-body"> |
|||
<div class="row"> |
|||
|
|||
|
|||
<div class="col-md-4"> |
|||
<label>Complaint Closed Date:</label> |
|||
|
|||
<input type="text" class="form-control" id="commentDate" disabled> |
|||
</div> |
|||
<div class="col-md-4"> |
|||
<label>Official Name:</label> |
|||
<input type="text" class="form-control" id="commentuser" disabled> |
|||
</div> |
|||
|
|||
<div class="col-md-4"> |
|||
<label>Status:</label> |
|||
<input type="text" class="form-control" id="statusshow" |
|||
style="background-color: #414f69;color: white;" disabled> |
|||
</div> |
|||
</div> |
|||
|
|||
|
|||
</div> |
|||
</div> |
|||
|
|||
|
|||
<div class="card mb-3 resizable-content"> |
|||
<div class="card-header text-white" style="background-color: #414f69;">Complaint Action History</div> |
|||
<div class="card-body"> |
|||
<div id="comments-container"></div> <!-- Container for comments --> |
|||
</div> |
|||
</div> |
|||
|
|||
|
|||
|
|||
<div id="complaintActionDiv" class="card mb-3 resizable-content"> |
|||
<div class="card-header text-white" style="background-color: #414f69;">Update Complaint</div> |
|||
<div class="card-body"> |
|||
<div class="row"> |
|||
<div class="col-md-6"> |
|||
<label>Change Complaint Status:</label> |
|||
<select class="form-control" name="complaintStatusID" id="complaintStatus"> |
|||
|
|||
</select> |
|||
</div> |
|||
|
|||
<div class="col-md-6" id="img" style="display: none;"> |
|||
<label>Photo:</label> |
|||
<input type="file" class="form-control" id="photo"> |
|||
</div> |
|||
</div> |
|||
<div class="row"> |
|||
<div class="col-md-12"> |
|||
<label>Details of Complaint:</label> |
|||
<textarea class="form-control" id="othercomplaint-details" rows="3" |
|||
placeholder="Enter complaint details" maxlength="400" required></textarea> |
|||
</div> |
|||
</div> |
|||
<div class="row align-items-center justify-content-center" style="margin-top: 5px;"> |
|||
<button class="btn btn-sm" style="background-color: #414f69;color: white;">Submit</button> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
|
|||
|
|||
|
|||
<!--loader--> |
|||
<div id="loaders" style="display: none; text-align: center; margin-bottom: 50px;"> |
|||
<img src="images/Thin broken ring.gif" alt="Loading..." /> |
|||
</div> |
|||
<!--loader--> |
|||
|
|||
</div> |
|||
|
|||
|
|||
|
|||
<!-- Bootstrap JS --> |
|||
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> |
|||
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js"></script> |
|||
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script> |
|||
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script> |
|||
|
|||
<script> |
|||
|
|||
</script> |
|||
|
|||
|
|||
<!-- JavaScript to handle button clicks --> |
|||
<script> |
|||
|
|||
// /api/getComplaintDetailsbyId |
|||
$(document).ready(function () { |
|||
var urlParams = new URLSearchParams(window.location.search); |
|||
var complaintNo = urlParams.get('complaintno'); |
|||
|
|||
if (complaintNo) { |
|||
$('#loader').show(); |
|||
|
|||
$.ajax({ |
|||
url: '/pgr/api/getComplaintDetailsbyId', // Replace with your actual API endpoint |
|||
type: 'GET', |
|||
data: {complaintid: complaintNo}, |
|||
success: function (response) { |
|||
console.log('API response:', response); |
|||
$('#loader').hide(); |
|||
|
|||
if (Array.isArray(response) && response.length > 0) { |
|||
var complaintListHistory = response[0].ComplaintListHistory; |
|||
|
|||
if (Array.isArray(complaintListHistory) && complaintListHistory.length > 0) { |
|||
var complaintDetails = complaintListHistory[0]; |
|||
|
|||
// Decode HTML entities before populating fields |
|||
function decodeHtmlEntities(str) { |
|||
var txt = document.createElement('textarea'); |
|||
txt.innerHTML = str; |
|||
return txt.value; |
|||
} |
|||
|
|||
// Populate other form fields |
|||
document.getElementById("complaintid").value = complaintDetails.complaintid || ''; |
|||
document.getElementById("complaint-mobile-number").value = complaintDetails.CustomerMobile || ''; |
|||
document.getElementById("complaint-customer-name").value = complaintDetails.CustomerName || ''; |
|||
document.getElementById("street").value = complaintDetails.Street || ''; |
|||
document.getElementById("zone").value = complaintDetails.Zone || ''; |
|||
document.getElementById("ward").value = complaintDetails.Division || ''; |
|||
document.getElementById("area").value = complaintDetails.Area || ''; |
|||
document.getElementById("location").value = complaintDetails.Location || ''; |
|||
document.getElementById("complaintType").value = complaintDetails.complainttype || ''; |
|||
|
|||
// Decode and populate complaint description |
|||
document.getElementById("complaintdesc").value = decodeHtmlEntities(complaintDetails.complaintdetails || ''); |
|||
|
|||
document.getElementById("commentDate").value = complaintDetails.complaintcloseddate || ''; |
|||
document.getElementById("commentuser").value = complaintDetails.Officialname || ''; |
|||
let complaintCurrentStatus = complaintDetails.complaintcurrentstatus || ''; |
|||
|
|||
// Get the dropdown element |
|||
let complaintStatusDropdown = document.getElementById("complaintStatus"); |
|||
|
|||
// Function to add options to the select element |
|||
function addOption(text, value) { |
|||
let option = document.createElement("option"); |
|||
option.text = text; |
|||
option.value = value; |
|||
complaintStatusDropdown.add(option); |
|||
} |
|||
|
|||
// Check the current status and add the respective options |
|||
if (complaintCurrentStatus === 'REGISTERED') { |
|||
addOption('REGISTERED', '2'); |
|||
addOption('WITHDRAWN', '8'); |
|||
} else if (complaintCurrentStatus === 'WITHDRAWN') { |
|||
addOption('WITHDRAWN', '8'); |
|||
addOption('REOPENED', '9'); |
|||
} |
|||
else if (complaintCurrentStatus === 'CLOSE') { |
|||
addOption('CLOSE', '10'); |
|||
addOption('REOPENED', '9'); |
|||
} |
|||
else if (complaintCurrentStatus === 'REOPENED') { |
|||
addOption('REOPENED', '9'); |
|||
addOption('WITHDRAWN', '8'); |
|||
} |
|||
else if (complaintCurrentStatus === 'FINAL_CLOSURE') { |
|||
document.getElementById('complaintActionDiv').style.display = 'none'; |
|||
//addOption('FINAL_CLOSURE', '11'); |
|||
//addOption('REOPENED', '9'); |
|||
} |
|||
|
|||
document.getElementById("statusshow").value = complaintDetails.complaintcurrentstatus || ''; |
|||
|
|||
// Handle nested Comments array |
|||
if (Array.isArray(complaintDetails.Comments) && complaintDetails.Comments.length > 0) { |
|||
var commentsContainer = $('#comments-container'); |
|||
commentsContainer.empty(); // Clear the container |
|||
|
|||
var comments = complaintDetails.Comments; |
|||
var lastComment = comments[comments.length - 1]; |
|||
|
|||
// Decode HTML entities for last comment |
|||
function decodeHtmlEntities(str) { |
|||
var txt = document.createElement('textarea'); |
|||
txt.innerHTML = str; |
|||
return txt.value; |
|||
} |
|||
|
|||
// Convert image URL to Base64 |
|||
function convertImageToBase64(url, callback) { |
|||
var xhr = new XMLHttpRequest(); |
|||
xhr.onload = function () { |
|||
var reader = new FileReader(); |
|||
reader.onloadend = function () { |
|||
callback(reader.result); |
|||
}; |
|||
reader.readAsDataURL(xhr.response); |
|||
}; |
|||
xhr.open('GET', url); |
|||
xhr.responseType = 'blob'; |
|||
xhr.send(); |
|||
} |
|||
|
|||
// Compress the Base64 image using canvas |
|||
function compressImage(base64Str, callback, quality = 0.7, maxWidth = 800) { |
|||
var img = new Image(); |
|||
img.onload = function () { |
|||
var canvas = document.createElement('canvas'); |
|||
var ctx = canvas.getContext('2d'); |
|||
|
|||
var width = img.width; |
|||
var height = img.height; |
|||
|
|||
// Adjust the image size for compression |
|||
if (width > maxWidth) { |
|||
height *= maxWidth / width; |
|||
width = maxWidth; |
|||
} |
|||
|
|||
canvas.width = width; |
|||
canvas.height = height; |
|||
|
|||
// Draw the image onto the canvas |
|||
ctx.drawImage(img, 0, 0, width, height); |
|||
|
|||
// Convert the canvas back to Base64 with the specified quality (compression) |
|||
var compressedBase64 = canvas.toDataURL('image/jpeg', quality); |
|||
callback(compressedBase64); |
|||
}; |
|||
img.src = base64Str; |
|||
} |
|||
|
|||
// Handle last comment |
|||
var userImageHtml = ''; |
|||
if (Array.isArray(lastComment.userimages) && lastComment.userimages.length > 0) { |
|||
var imageUrl = lastComment.userimages[0].Comp_Image; |
|||
if (imageUrl && imageUrl !== 'null') { |
|||
convertImageToBase64(imageUrl, function (base64Image) { |
|||
compressImage(base64Image, function (compressedImage) { |
|||
userImageHtml = ` |
|||
<div class="col-md-12"> |
|||
<img src="${compressedImage}" alt="User Image" class="img-fluid"> |
|||
</div>`; |
|||
commentsContainer.append(lastCommentHtml); |
|||
}); |
|||
}); |
|||
} |
|||
} |
|||
|
|||
var lastCommentHtml = ` |
|||
<div class="row mb-3"> |
|||
<table class="comment-table"> |
|||
<tr> |
|||
<td style="color:#3c4959">User:</td> |
|||
<td>${lastComment.user || ''}</td> |
|||
</tr> |
|||
<tr> |
|||
<td style="color:#3c4959">Message:</td> |
|||
<td>${lastComment.message || ''}</td> |
|||
</tr> |
|||
<tr> |
|||
<td style="color:#3c4959">Comment Date:</td> |
|||
<td>${lastComment.comment_date || ''}</td> |
|||
</tr> |
|||
${userImageHtml} |
|||
</table> |
|||
</div> |
|||
<hr>`; |
|||
|
|||
// Add the comment section with the compressed Base64 image |
|||
commentsContainer.append(lastCommentHtml); |
|||
|
|||
// Add dropdown button for other comments |
|||
if (comments.length > 1) { |
|||
var dropdownHtml = ` |
|||
<button id="show-all-comments" class="btn mt-3" style="margin-bottom: 10px;background-color: #3c4959; color: white;">Show All Comments</button> |
|||
<div id="all-comments" style="display:none;">`; |
|||
|
|||
// Add all comments to dropdown |
|||
comments.forEach(function (comment, index) { |
|||
if (index < comments.length - 1) { // Skip the last comment |
|||
var userImageHtml = ''; |
|||
if (Array.isArray(comment.userimages) && comment.userimages.length > 0) { |
|||
var imageUrl = comment.userimages[0].Comp_Image; |
|||
if (imageUrl && imageUrl !== 'null') { |
|||
convertImageToBase64(imageUrl, function (base64Image) { |
|||
compressImage(base64Image, function (compressedImage) { |
|||
userImageHtml = ` |
|||
<div class="col-md-12"> |
|||
<img src="${compressedImage}" alt="User Image" class="img-fluid"> |
|||
</div>`; |
|||
}); |
|||
}); |
|||
} |
|||
} |
|||
|
|||
dropdownHtml += ` |
|||
<div class="row mb-3"> |
|||
<table class="comment-table"> |
|||
<tr> |
|||
<td style="color:#3c4959">User:</td> |
|||
<td>${comment.user || ''}</td> |
|||
</tr> |
|||
<tr> |
|||
<td style="color:#3c4959">Message:</td> |
|||
<td>${comment.message || ''}</td> |
|||
</tr> |
|||
<tr> |
|||
<td style="color:#3c4959">Comment Date:</td> |
|||
<td>${comment.comment_date || ''}</td> |
|||
</tr> |
|||
${userImageHtml} |
|||
</table> |
|||
</div> |
|||
<hr>`; |
|||
} |
|||
}); |
|||
|
|||
dropdownHtml += '</div>'; |
|||
|
|||
commentsContainer.append(dropdownHtml); |
|||
|
|||
// Toggle display of all comments |
|||
$('#show-all-comments').click(function () { |
|||
$('#all-comments').toggle(); |
|||
$(this).text($(this).text() === 'Show All Comments' ? 'Hide Comments' : 'Show All Comments'); |
|||
}); |
|||
} |
|||
} else { |
|||
$('#comments-container').html('<p>No comments found.</p>'); |
|||
} |
|||
} else { |
|||
alert('No complaint details found in ComplaintListHistory.'); |
|||
} |
|||
} else { |
|||
alert('Unexpected response structure.'); |
|||
} |
|||
}, |
|||
error: function (xhr, status, error) { |
|||
console.log('Error:', xhr.responseText); |
|||
alert('An error occurred while fetching complaint details.'); |
|||
$('#loader').hide(); |
|||
} |
|||
}); |
|||
} else { |
|||
alert('No complaint number provided.'); |
|||
} |
|||
}); |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
$(document).ready(function () { |
|||
$('#complaintStatus').change(function () { |
|||
if ($(this).val() == '9') { // Show the image field if 'REOPENED' is selected |
|||
$('#img').show(); |
|||
} else { |
|||
$('#img').hide(); |
|||
} |
|||
}); |
|||
|
|||
$('.btn').click(function (e) { |
|||
e.preventDefault(); |
|||
|
|||
var complaintId = $('#complaintid').val(); |
|||
var complaintStatus = $('#complaintStatus').val(); |
|||
var message = $('#othercomplaint-details').val(); |
|||
|
|||
// Validate "Details of Complaint" field |
|||
if (message.trim() === "") { |
|||
Swal.fire({ |
|||
title: 'Validation Error!', |
|||
text: 'Please enter the details of the complaint.', |
|||
icon: 'warning', |
|||
confirmButtonText: 'OK' |
|||
}); |
|||
return; |
|||
} |
|||
|
|||
if (complaintStatus == '0') { |
|||
Swal.fire({ |
|||
title: 'Validation Error!', |
|||
text: 'Please select a valid complaint status.', |
|||
icon: 'warning', |
|||
confirmButtonText: 'OK' |
|||
}); |
|||
return; |
|||
} |
|||
|
|||
var formData = new FormData(); |
|||
formData.append("ComplaintId", complaintId); |
|||
formData.append("Message", message); |
|||
formData.append("Status", complaintStatus); |
|||
|
|||
var imageFile = $('#photo')[0].files[0]; |
|||
if (imageFile) { |
|||
formData.append("Comp_Image", imageFile); |
|||
} |
|||
$('#loaders').show(); |
|||
$.ajax({ |
|||
url: '/pgr/api/updateComplaint', |
|||
type: 'POST', |
|||
data: formData, |
|||
processData: false, |
|||
contentType: false, |
|||
success: function (response) { |
|||
$('#loaders').hide(); |
|||
console.log(imageFile, complaintId, message, complaintStatus); |
|||
Swal.fire({ |
|||
title: 'Success!', |
|||
text: 'Complaint updated successfully.', |
|||
icon: 'success', |
|||
confirmButtonText: 'OK' |
|||
}).then((result) => { |
|||
if (result.isConfirmed) { |
|||
window.location.href = 'home'; |
|||
} |
|||
}); |
|||
}, |
|||
error: function (xhr, status, error) { |
|||
console.error('Error updating complaint:', error); |
|||
$('#loaders').hide(); |
|||
let errorMessage = xhr.responseText ? xhr.responseText : 'An error occurred while updating the complaint.'; |
|||
Swal.fire({ |
|||
title: 'Error!', |
|||
text: errorMessage, |
|||
icon: 'error', |
|||
confirmButtonText: 'OK' |
|||
}); |
|||
} |
|||
}); |
|||
}); |
|||
}); |
|||
|
|||
</script> |
|||
</body> |
|||
|
|||
</html> |
|||
@ -0,0 +1,164 @@ |
|||
<!DOCTYPE html> |
|||
<html lang="en"> |
|||
<head> |
|||
<meta charset="UTF-8"> |
|||
<title>Title</title> |
|||
<base th:href="${baseURL}" /> |
|||
|
|||
</head> |
|||
<body> |
|||
<div th:fragment="accessibility"> |
|||
<!-- accessibility panel --> |
|||
<link rel="stylesheet" |
|||
href="https://img1.digitallocker.gov.in/ux4g/UX4G-CDN-accessibility/css/accesibility-style-v2.1.css"> |
|||
<div class="uwaw uw-light-theme gradient-head uwaw-initial paid_widget" id="uw-main"> |
|||
<div class="relative second-panel"><h3>Accessibility options by Bonton.</h3> |
|||
<div class="uwaw-close" onclick="closeMain()"></div> |
|||
</div> |
|||
<div class="uwaw-body"> |
|||
<div class="h-scroll"> |
|||
<div class="uwaw-features"> |
|||
<div class="uwaw-features__item reset-feature" id="featureItem_sp"> |
|||
<button id="speak" class="uwaw-features__item__i" |
|||
data-uw-reader-content="Enable the UserWay screen reader" |
|||
aria-label="Enable the UserWay screen reader" aria-pressed="false"><span |
|||
class="uwaw-features__item__icon"> <span |
|||
class="ux4g-icon icon-speaker"> </span> </span> <span |
|||
class="uwaw-features__item__name">Text To Speech</span> <span |
|||
class="tick-active uwaw-features__item__enabled reset-tick" id="tickIcon_sp" |
|||
style="display: none"> </span></button> |
|||
</div> |
|||
<div class="uwaw-features__item reset-feature" id="featureItem"> |
|||
<button id="btn-s9" class="uwaw-features__item__i" |
|||
data-uw-reader-content="Enable the UserWay screen reader" |
|||
aria-label="Enable the UserWay screen reader" aria-pressed="false"><span |
|||
class="uwaw-features__item__icon"> <span |
|||
class="ux4g-icon icon-bigger-text"> </span> </span><span class="uwaw-features__item__name">Bigger Text</span> |
|||
<div class="uwaw-features__item__steps reset-steps" id="featureSteps"> |
|||
<!-- Steps span tags will be dynamically added here --> </div> |
|||
<span class="tick-active uwaw-features__item__enabled reset-tick" id="tickIcon" |
|||
style="display: none"> </span></button> |
|||
</div> |
|||
<div class="uwaw-features__item reset-feature" id="featureItem-st"> |
|||
<button id="btn-small-text" class="uwaw-features__item__i" |
|||
data-uw-reader-content="Enable the UserWay screen reader" |
|||
aria-label="Enable the UserWay screen reader" aria-pressed="false"><span |
|||
class="uwaw-features__item__icon"> <span |
|||
class="ux4g-icon icon-small-text"> </span> </span><span class="uwaw-features__item__name">Small Text</span> |
|||
<div class="uwaw-features__item__steps reset-steps" id="featureSteps-st"> |
|||
<!-- Steps span tags will be dynamically added here --> </div> |
|||
<span class="tick-active uwaw-features__item__enabled reset-tick" id="tickIcon-st" |
|||
style="display: none"> </span></button> |
|||
</div> |
|||
<div class="uwaw-features__item reset-feature" id="featureItem-lh"> |
|||
<button id="btn-s12" class="uwaw-features__item__i" |
|||
data-uw-reader-content="Enable the UserWay screen reader" |
|||
aria-label="Enable the UserWay screen reader" aria-pressed="false"><span |
|||
class="uwaw-features__item__icon"> <span |
|||
class="ux4g-icon icon-line-hight"> </span> </span> <span |
|||
class="uwaw-features__item__name">Line Height</span> |
|||
<div class="uwaw-features__item__steps reset-steps" id="featureSteps-lh"> |
|||
<!-- Steps span tags will be dynamically added here --> </div> |
|||
<span class="tick-active uwaw-features__item__enabled reset-tick" id="tickIcon-lh" |
|||
style="display: none"> </span></button> |
|||
</div> |
|||
<div class="uwaw-features__item reset-feature" id="featureItem-ht"> |
|||
<button id="btn-s10" onclick="highlightLinks()" class="uwaw-features__item__i" |
|||
data-uw-reader-content="Enable the UserWay screen reader" |
|||
aria-label="Enable the UserWay screen reader" aria-pressed="false"><span |
|||
class="uwaw-features__item__icon"> <span |
|||
class="ux4g-icon icon-highlight-links"> </span> </span> <span |
|||
class="uwaw-features__item__name">Highlight Links</span> <span |
|||
class="tick-active uwaw-features__item__enabled reset-tick" id="tickIcon-ht" |
|||
style="display: none"> </span></button> |
|||
</div> |
|||
<div class="uwaw-features__item reset-feature" id="featureItem-ts"> |
|||
<button id="btn-s13" onclick="increaseAndReset()" class="uwaw-features__item__i" |
|||
data-uw-reader-content="Enable the UserWay screen reader" |
|||
aria-label="Enable the UserWay screen reader" aria-pressed="false"><span |
|||
class="uwaw-features__item__icon"> <span |
|||
class="ux4g-icon icon-text-spacing"> </span> </span> <span |
|||
class="uwaw-features__item__name">Text Spacing</span> |
|||
<div class="uwaw-features__item__steps reset-steps" id="featureSteps-ts"> |
|||
<!-- Steps span tags will be dynamically added here --> </div> |
|||
<span class="tick-active uwaw-features__item__enabled reset-tick" id="tickIcon-ts" |
|||
style="display: none"> </span></button> |
|||
</div> |
|||
<div class="uwaw-features__item reset-feature" id="featureItem-df"> |
|||
<button id="btn-df" onclick="toggleFontFeature()" class="uwaw-features__item__i" |
|||
data-uw-reader-content="Enable the UserWay screen reader" |
|||
aria-label="Enable the UserWay screen reader" aria-pressed="false"><span |
|||
class="uwaw-features__item__icon"> <span |
|||
class="ux4g-icon icon-dyslexia-font"> </span> </span> <span |
|||
class="uwaw-features__item__name">Dyslexia Friendly</span> <span |
|||
class="tick-active uwaw-features__item__enabled reset-tick" id="tickIcon-df" |
|||
style="display: none"> </span></button> |
|||
</div> |
|||
<div class="uwaw-features__item reset-feature" id="featureItem-hi"> |
|||
<button id="btn-s11" onclick="toggleImages()" class="uwaw-features__item__i" |
|||
data-uw-reader-content="Enable the UserWay screen reader" |
|||
aria-label="Enable the UserWay screen reader" aria-pressed="false"><span |
|||
class="uwaw-features__item__icon"> <span |
|||
class="ux4g-icon icon-hide-images"> </span> </span> <span |
|||
class="uwaw-features__item__name">Hide Images</span> <span |
|||
class="tick-active uwaw-features__item__enabled reset-tick" id="tickIcon-hi" |
|||
style="display: none"> </span></button> |
|||
</div> |
|||
<div class="uwaw-features__item reset-feature" id="featureItem-Cursor"> |
|||
<button id="btn-cursor" onclick="toggleCursorFeature()" class="uwaw-features__item__i" |
|||
data-uw-reader-content="Enable the UserWay screen reader" |
|||
aria-label="Enable the UserWay screen reader" aria-pressed="false"><span |
|||
class="uwaw-features__item__icon"> <span |
|||
class="ux4g-icon icon-cursor"> </span> </span> <span |
|||
class="uwaw-features__item__name">Cursor</span> <span |
|||
class="tick-active uwaw-features__item__enabled reset-tick" id="tickIcon-cursor" |
|||
style="display: none"> </span></button> |
|||
</div> |
|||
<div class="uwaw-features__item reset-feature" id="featureItem-ht-dark"> |
|||
<button id="dark-btn" class="uwaw-features__item__i" |
|||
data-uw-reader-content="Enable the UserWay screen reader" |
|||
aria-label="Enable the UserWay screen reader" aria-pressed="false"><span |
|||
class="uwaw-features__item__name"> <span class="light_dark_icon"> <input |
|||
type="checkbox" class="light_mode uwaw-featugres__item__i" id="checkbox"/> <label |
|||
for="checkbox" class="checkbox-label"> <!-- <i class="fas fa-moon-stars"></i> --> <i |
|||
class="fas fa-moon-stars"> <span |
|||
class="ux4g-icon icon-moon"></span> </i> <i |
|||
class="fas fa-sun"> <span class="ux4g-icon icon-sun"></span> </i> <span |
|||
class="ball"></span> </label> </span> <span |
|||
class="uwaw-features__item__name">Light-Dark</span> </span> <span |
|||
class="tick-active uwaw-features__item__enabled reset-tick" id="tickIcon-ht-dark" |
|||
style="display: none; pointer-events: none"> </span></button> |
|||
</div> <!-- Invert Colors Widget --> |
|||
<div class="uwaw-features__item reset-feature" id="featureItem-ic"> |
|||
<button id="btn-invert" class="uwaw-features__item__i" |
|||
data-uw-reader-content="Enable the UserWay screen reader" |
|||
aria-label="Enable the UserWay screen reader" aria-pressed="false"><span |
|||
class="uwaw-features__item__icon"> <span |
|||
class="ux4g-icon icon-invert"> </span> </span> <span |
|||
class="uwaw-features__item__name">Invert Colors</span> <span |
|||
class="tick-active uwaw-features__item__enabled reset-tick" id="tickIcon-ic" |
|||
style="display: none"> </span></button> |
|||
</div> |
|||
</div> |
|||
</div> <!-- Reset Button --> </div> |
|||
<div class="reset-panel"> <!-- copyright accessibility bar --> |
|||
<div class="copyrights-accessibility"> |
|||
<button class="btn-reset-all" id="reset-all" onclick="resetAll()"><span class="reset-icon"> </span> <span |
|||
class="reset-btn-text">Reset All Settings</span></button> |
|||
<a href="https://www.ux4g.gov.in" target="_blank" class="copyright-text" contenteditable="false" |
|||
style="cursor: pointer;"> <span |
|||
class="uwaw-features__item__name ux4g-copy ux4g-copyright">Created by Bonton</span> </a></div> |
|||
</div> |
|||
</div> |
|||
<button id="uw-widget-custom-trigger" class="uw-widget-custom-trigger" aria-label="Accessibility Widget" |
|||
data-uw-trigger="true" aria-haspopup="dialog" style="margin-bottom: 50px;"><img |
|||
src="data:image/svg+xml,%0A%3Csvg width='32' height='32' viewBox='0 0 32 32' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0_1_1506)'%3E%3Cpath d='M16 7C15.3078 7 14.6311 6.79473 14.0555 6.41015C13.4799 6.02556 13.0313 5.47894 12.7664 4.83939C12.5015 4.19985 12.4322 3.49612 12.5673 2.81719C12.7023 2.13825 13.0356 1.51461 13.5251 1.02513C14.0146 0.535644 14.6383 0.202301 15.3172 0.0672531C15.9961 -0.0677952 16.6999 0.00151652 17.3394 0.266423C17.9789 0.53133 18.5256 0.979934 18.9101 1.55551C19.2947 2.13108 19.5 2.80777 19.5 3.5C19.499 4.42796 19.1299 5.31762 18.4738 5.97378C17.8176 6.62994 16.928 6.99901 16 7Z' fill='white'/%3E%3Cpath d='M27 7.05L26.9719 7.0575L26.9456 7.06563C26.8831 7.08313 26.8206 7.10188 26.7581 7.12125C25.595 7.4625 19.95 9.05375 15.9731 9.05375C12.2775 9.05375 7.14313 7.67875 5.50063 7.21188C5.33716 7.14867 5.17022 7.09483 5.00063 7.05063C3.81313 6.73813 3.00063 7.94438 3.00063 9.04688C3.00063 10.1388 3.98188 10.6588 4.9725 11.0319V11.0494L10.9238 12.9081C11.5319 13.1413 11.6944 13.3794 11.7738 13.5856C12.0319 14.2475 11.8256 15.5581 11.7525 16.0156L11.39 18.8281L9.37813 29.84C9.37188 29.87 9.36625 29.9006 9.36125 29.9319L9.34688 30.0112C9.20188 31.0206 9.94313 32 11.3469 32C12.5719 32 13.1125 31.1544 13.3469 30.0037C13.5813 28.8531 15.0969 20.1556 15.9719 20.1556C16.8469 20.1556 18.6494 30.0037 18.6494 30.0037C18.8838 31.1544 19.4244 32 20.6494 32C22.0569 32 22.7981 31.0162 22.6494 30.0037C22.6363 29.9175 22.6206 29.8325 22.6019 29.75L20.5625 18.8294L20.2006 16.0169C19.9387 14.3788 20.1494 13.8375 20.2206 13.7106C20.2225 13.7076 20.2242 13.7045 20.2256 13.7013C20.2931 13.5763 20.6006 13.2963 21.3181 13.0269L26.8981 11.0763C26.9324 11.0671 26.9662 11.0563 26.9994 11.0438C27.9994 10.6688 28.9994 10.15 28.9994 9.04813C28.9994 7.94625 28.1875 6.73813 27 7.05Z' fill='white'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_1_1506'%3E%3Crect width='32' height='32' fill='white'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E%0A"><span>Accessibility Options</span> |
|||
</button><!-- accessibility panel end--> |
|||
|
|||
<script src="https://img1.digitallocker.gov.in/ux4g/UX4G-CDN-accessibility/js/weights-v1.js"></script> |
|||
<script> |
|||
document.getElementById('uw-widget-custom-trigger2').addEventListener('click', function() { openMain(); }); |
|||
</script> |
|||
</div> |
|||
</body> |
|||
</html> |
|||
@ -0,0 +1,56 @@ |
|||
<!DOCTYPE html> |
|||
<html xmlns:th="http://www.thymeleaf.org"> |
|||
|
|||
<head> |
|||
<div th:fragment="footerFragment" class="footer"> |
|||
<meta charset="UTF-8"> |
|||
<title>Footer Fragment</title> |
|||
<style> |
|||
.footer { |
|||
background-color: #414f69; |
|||
color: white; |
|||
position: fixed; |
|||
bottom: 0; |
|||
width: 100%; |
|||
padding: 10px 0; |
|||
} |
|||
|
|||
.footer-content { |
|||
position: relative; |
|||
text-align: center; |
|||
font-size: 14px; |
|||
} |
|||
|
|||
.footer-image { |
|||
position: absolute; |
|||
top: 50%; |
|||
transform: translateY(-50%); |
|||
opacity: 0.2; /* Light opacity */ |
|||
} |
|||
|
|||
.left-image { |
|||
left: 10px; |
|||
} |
|||
|
|||
.right-image { |
|||
right: 10px; |
|||
} |
|||
|
|||
|
|||
</style> |
|||
</head> |
|||
|
|||
<body> |
|||
<div class="footer"> |
|||
|
|||
<div class="footer-content"> |
|||
<img src="/pgr/images/ripon.jpg" style="height: 51px; width: 155px;margin-top: 10px;" alt="Left Image" class="footer-image left-image"> |
|||
<p>Public Grievance System provided to Greater Chennai Corporation by Bonton Software Private Limited.</p> |
|||
<img src="/pgr/images/ripon.jpg" style="height: 51px; width: 155px;margin-top: 10px;" alt="Right Image" class="footer-image right-image"> |
|||
</div> |
|||
</div> |
|||
|
|||
|
|||
</body> |
|||
|
|||
</html> |
|||
@ -0,0 +1,73 @@ |
|||
<!DOCTYPE html> |
|||
<html lang="en" xmlns:th="http://www.w3.org/1999/xhtml"> |
|||
|
|||
<head> |
|||
<title>Header Fragment</title> |
|||
<base th:href="${baseURL}" /> |
|||
</head> |
|||
|
|||
|
|||
<body> |
|||
<div th:fragment="headerFragment"> |
|||
<style> |
|||
.header { |
|||
background-color: #3b4858; |
|||
padding: 10px 20px; |
|||
display: flex; |
|||
align-items: center; |
|||
justify-content: space-between; |
|||
color: white; |
|||
} |
|||
|
|||
.header .logo-left img { |
|||
height: 60px; |
|||
} |
|||
|
|||
.header .title { |
|||
text-align: center; |
|||
flex-grow: 1; |
|||
} |
|||
|
|||
.header .title h2 { |
|||
margin: 0; |
|||
font-size: 1.5rem; |
|||
} |
|||
|
|||
.header .logos-right img { |
|||
height: 60px; |
|||
margin-left: 10px; |
|||
} |
|||
|
|||
#toggleSpeech { |
|||
background-color: white; |
|||
color: black; |
|||
margin: 3px; |
|||
} |
|||
|
|||
#toggleSpeech img { |
|||
height: 30px; |
|||
/* Set height for the image */ |
|||
margin-right: 8px; |
|||
/* Add some space between the image and text */ |
|||
} |
|||
</style> |
|||
<div class="header"> |
|||
<div class="logo-left"> |
|||
<img src="/pgr/images/gcc1.png" alt="Greater Chennai Corporation Logo"> |
|||
<!--<button id="toggleSpeech" class="btn btn-secondary"> |
|||
<img src="/staffcomplaint/images/message.png" alt="Accessibility Icon">Turn On Speech</button>--> |
|||
|
|||
</div> |
|||
<div class="title"> |
|||
<h2>Public Grievance and Redressal System</h2> |
|||
</div> |
|||
<!--<button id="screenReaderButton">Read Screen</button>--> |
|||
<div class="logos-right"> |
|||
<img src="/pgr/images/tamil.jpg" alt="Tamil Nadu Logo"> |
|||
<!--<img src="images/bt-logo.png" style="width: 100px;height: 50px;" alt="bonton Logo">--> |
|||
</div> |
|||
</div> |
|||
<script th:src="@{/js/screenreader.js}"></script> |
|||
</body> |
|||
|
|||
</html> |
|||
@ -0,0 +1,258 @@ |
|||
<!DOCTYPE html> |
|||
<html xmlns:th="http://www.thymeleaf.org"> |
|||
|
|||
<head> |
|||
<meta charset="UTF-8"> |
|||
<title>Main Page</title> |
|||
<!--Google Font --> |
|||
<link href="https://fonts.googleapis.com/css2?family=Lato:wght@400;700&display=swap" rel="stylesheet"> |
|||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.6.0/css/all.min.css" |
|||
integrity="sha512-Kc323vGBEqzTmouAECnVceyQqyqdsSiqLQISBL29aUW4U/M7pSPA/gEUZQqv1cwx4OnYxTxve5UMg5GT6L4JJg==" |
|||
crossorigin="anonymous" referrerpolicy="no-referrer" /> |
|||
<!--Bootstrap CSS--> |
|||
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet"> |
|||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script> |
|||
<script th:src="@{/js/invertcolor.js}"></script> |
|||
<style> |
|||
body { |
|||
font-family: 'Lato', sans-serif; |
|||
background-color: white; |
|||
} |
|||
|
|||
body.inverted { |
|||
background-color: black; |
|||
color: white; |
|||
filter: invert(1); |
|||
} |
|||
|
|||
.card { |
|||
border-radius: 15px; |
|||
border: none; |
|||
padding: 20px; |
|||
background-color: #f0f4ff; |
|||
text-align: center; |
|||
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); |
|||
display: flex; |
|||
flex-direction: column; |
|||
height: 100%; |
|||
/* Make sure cards take up full height of the column */ |
|||
} |
|||
|
|||
.card-body { |
|||
flex: 1; |
|||
/* Allow card-body to grow and take up available space */ |
|||
} |
|||
|
|||
.card-img { |
|||
width: 40px; |
|||
margin-bottom: 15px; |
|||
} |
|||
|
|||
.card-title { |
|||
font-size: 1.2rem; |
|||
font-weight: bold; |
|||
} |
|||
|
|||
.card-text { |
|||
color: #666; |
|||
margin-bottom: 20px; |
|||
} |
|||
|
|||
.card-footer { |
|||
font-weight: bold; |
|||
color: #007bff; |
|||
display: flex; |
|||
align-items: center; |
|||
justify-content: center; |
|||
} |
|||
|
|||
.card-footer i { |
|||
margin-left: 5px; |
|||
} |
|||
|
|||
.row { |
|||
display: flex; |
|||
flex-wrap: wrap; |
|||
margin-bottom: 30px; |
|||
} |
|||
|
|||
.col-md-4 { |
|||
display: flex; |
|||
/* Ensure columns use Flexbox to distribute space evenly */ |
|||
padding: 0 15px; |
|||
/* Adjust padding to fit full width */ |
|||
} |
|||
|
|||
.container { |
|||
max-width: 1200px; |
|||
} |
|||
|
|||
.container .row .col-md-4 { |
|||
padding: 0 15px; |
|||
/* Adjust padding to fit full width */ |
|||
display: flex; |
|||
flex-direction: column; |
|||
} |
|||
|
|||
.card { |
|||
flex-grow: 1; |
|||
/* Ensure all cards have the same height */ |
|||
} |
|||
|
|||
.container .row .col-md-12 { |
|||
padding: 0 15px; |
|||
} |
|||
|
|||
.card-link { |
|||
text-decoration: none; |
|||
/* Remove the underline from the link */ |
|||
color: inherit; |
|||
/* Inherit the text color */ |
|||
display: block; |
|||
/* Make the link cover the entire card */ |
|||
} |
|||
|
|||
.card-link:hover .card { |
|||
box-shadow: 0 6px 12px rgba(0, 0, 0, 0.2); |
|||
/* Optional: add hover effect */ |
|||
} |
|||
|
|||
/* Style for reader button */ |
|||
|
|||
|
|||
#reader-btn.active { |
|||
background-color: #28a745; |
|||
} |
|||
|
|||
/*header css*/ |
|||
.header { |
|||
background-color: #3b4858; |
|||
padding: 10px 20px; |
|||
display: flex; |
|||
align-items: center; |
|||
justify-content: space-between; |
|||
color: white; |
|||
} |
|||
|
|||
.header .logo-left img { |
|||
height: 60px; |
|||
} |
|||
|
|||
.header .title { |
|||
text-align: center; |
|||
flex-grow: 1; |
|||
} |
|||
|
|||
.header .title h2 { |
|||
margin: 0; |
|||
font-size: 1.5rem; |
|||
} |
|||
|
|||
.header .logos-right img { |
|||
height: 60px; |
|||
margin-left: 10px; |
|||
} |
|||
|
|||
/*header buttons*/ |
|||
.header { |
|||
display: flex; |
|||
align-items: center; |
|||
justify-content: space-between; |
|||
/* Space out the items within the header */ |
|||
} |
|||
|
|||
.header-buttons { |
|||
padding-left: 5px; |
|||
display: flex; |
|||
align-items: center; |
|||
gap: 10px; |
|||
/* Adjust spacing between buttons */ |
|||
} |
|||
|
|||
#reader-btn, |
|||
#invertColorBtn { |
|||
padding: 5px 10px; |
|||
font-size: 14px; |
|||
cursor: pointer; |
|||
} |
|||
|
|||
/*for radio button style*/ |
|||
.radio-group { |
|||
display: flex; |
|||
align-items: center; |
|||
/* Ensures all items are aligned to the center */ |
|||
} |
|||
|
|||
.radio-item { |
|||
display: flex; |
|||
align-items: center; |
|||
margin-right: 20px; |
|||
/* Adds space between each radio item */ |
|||
} |
|||
|
|||
.radio-item input[type="radio"] { |
|||
margin-right: 10px; |
|||
/* Adds space between the radio button and its label */ |
|||
vertical-align: middle; |
|||
/* Ensures vertical alignment */ |
|||
} |
|||
|
|||
.radio-item label { |
|||
margin: 0; |
|||
/* Removes any default margins that might affect alignment */ |
|||
} |
|||
</style> |
|||
</head> |
|||
|
|||
|
|||
<body> |
|||
<div th:insert="~{fragments/accessibility :: accessibility}"></div> |
|||
|
|||
<!-- Insert the header fragment --> |
|||
<div th:insert="fragments/header :: headerFragment"></div> |
|||
|
|||
|
|||
|
|||
<!-- Cards Section --> |
|||
<!-- Cards Section --> |
|||
<div class="container d-flex justify-content-center align-items-center" style="height: 100vh;"> |
|||
<!--card to register complaint--> |
|||
<div class="col-md-12"> |
|||
<a href="/pgr/registercomplaints" class="card-link"> |
|||
<div class="card content" style="margin-bottom: 12%;"> |
|||
<div class="card-body"> |
|||
<img src="images/register.png" alt="register" class="card-img"> |
|||
<div class="card-content"> |
|||
<h5 class="card-title">Register Your<br> Complaints</h5> |
|||
<p class="card-text">Register Complaints<br> Via Internet</p> |
|||
</div> |
|||
</div> |
|||
<div class="card-footer"> |
|||
Get Started <i class="fa fa-arrow-right"></i> |
|||
</div> |
|||
</div> |
|||
</a> |
|||
</div> |
|||
</div> |
|||
|
|||
|
|||
|
|||
<div th:insert="fragments/footer :: footerFragment"></div> |
|||
|
|||
<script th:src="@{/js/screenreader.js}"></script> |
|||
|
|||
<!-- Replace Slim jQuery with Full jQuery --> |
|||
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script> |
|||
|
|||
<!-- Popper.js (for Bootstrap tooltips, popovers, etc.) --> |
|||
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js"></script> |
|||
|
|||
<!-- Bootstrap JS --> |
|||
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script> |
|||
|
|||
<!-- Font Awesome for Icons --> |
|||
<script src="https://kit.fontawesome.com/a076d05399.js"></script> |
|||
|
|||
</body> |
|||
|
|||
</html> |
|||
@ -0,0 +1,528 @@ |
|||
<!DOCTYPE html> |
|||
<html xmlns:th="http://www.thymeleaf.org"> |
|||
|
|||
<head> |
|||
<meta charset="UTF-8"> |
|||
<title>CheckList User</title> |
|||
<!-- Google Font --> |
|||
<link href="https://fonts.googleapis.com/css2?family=Lato:wght@400;700&display=swap" rel="stylesheet"> |
|||
<!-- Bootstrap CSS --> |
|||
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet"> |
|||
|
|||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script> |
|||
<link rel="stylesheet" href="https://unpkg.com/leaflet/dist/leaflet.css" /> |
|||
<script src="https://unpkg.com/leaflet/dist/leaflet.js"></script> |
|||
<style> |
|||
/*rating style for css*/ |
|||
.rating { |
|||
direction: rtl; |
|||
display: inline-flex; |
|||
font-size: 24px; |
|||
} |
|||
|
|||
.rating input { |
|||
display: none; |
|||
} |
|||
|
|||
.rating label { |
|||
color: #ddd; |
|||
cursor: pointer; |
|||
margin: 0; |
|||
} |
|||
|
|||
.rating input:checked~label { |
|||
color: #414f69; |
|||
} |
|||
|
|||
.rating label:hover, |
|||
.rating label:hover~label { |
|||
color: #414f69; |
|||
} |
|||
|
|||
/* Style for resizing content */ |
|||
.resizable-content { |
|||
font-size: medium; |
|||
transition: font-size 0.3s ease; |
|||
} |
|||
|
|||
|
|||
.comment-table { |
|||
width: 100%; |
|||
border-collapse: collapse; |
|||
} |
|||
|
|||
.comment-table td { |
|||
padding: 0.5rem; |
|||
border: 1px solid #ddd; |
|||
/* Light border color */ |
|||
} |
|||
|
|||
.comment-table td:first-child { |
|||
width: 25%; |
|||
/* Adjust as needed for label column width */ |
|||
font-weight: bold; |
|||
} |
|||
|
|||
.comment-table td:nth-child(2) { |
|||
width: 75%; |
|||
/* Adjust as needed for value column width */ |
|||
} |
|||
</style> |
|||
</head> |
|||
|
|||
<body> |
|||
|
|||
<!-- Insert the header fragment --> |
|||
|
|||
<div th:insert="~{fragments/header :: headerFragment}"></div> |
|||
|
|||
<div class="container mt-4"> |
|||
<!-- Loader GIF --> |
|||
<div id="loader" style="display: none; text-align: center;"> |
|||
<img src="images/Thin broken ring.gif" alt="Loading..." /> |
|||
</div> |
|||
|
|||
|
|||
|
|||
<div class="mt-1"> |
|||
<div class="row align-items-center justify-content-center"> |
|||
<h4 class="title resizable-content" style="color: #414f69;">Check Complaint Status</h4> |
|||
</div> |
|||
</div> |
|||
<!-- Card Section --> |
|||
<div class="card p-3 resizable-content" style="margin-bottom: 8px;color: #414f69;"> |
|||
<div class="card mb-3 resizable-content"> |
|||
<div class="card-header text-white" style="background-color: #414f69;">1. Complaining Person's Details |
|||
</div> |
|||
<div class="card-body"> |
|||
<div class="row"> |
|||
<div class="col-md-6"> |
|||
Complainant ID: |
|||
<input type="text" id="complaintid" class="form-control" value="" disabled> |
|||
</div> |
|||
<div class="col-md-6"> |
|||
Complainant Mobile Number: |
|||
<input type="text" id="complaint-mobile-number" class="form-control" value="" disabled> |
|||
</div> |
|||
<div class="col-md-6"> |
|||
Complainant Name: |
|||
<input type="text" id="complaint-customer-name" class="form-control" value="" disabled> |
|||
</div> |
|||
|
|||
<!--<div class="col-md-6"> |
|||
Gender: |
|||
<select class="form-control" id="gender" disabled> |
|||
<option value="0">Select Gender</option> |
|||
<option value="male">Male</option> |
|||
<option value="female">Female</option> |
|||
<option value="transgender">Transgender</option> |
|||
</select> |
|||
</div>--> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="card mb-3 resizable-content"> |
|||
<div class="card-header text-white" style="background-color: #414f69;">2. Complaint Location Details |
|||
</div> |
|||
<div class="card-body"> |
|||
<div class="row"> |
|||
<div class="col-md-4"> |
|||
Complainant Street: |
|||
<input type="text" id="street" class="form-control" disabled> |
|||
</div> |
|||
<div class="col-md-4"> |
|||
Complainant Zone: |
|||
<input type="text" class="form-control" id="zone" disabled> |
|||
</div> |
|||
<div class="col-md-4"> |
|||
Complainant Ward: |
|||
<input type="text" class="form-control" id="ward" disabled> |
|||
</div> |
|||
<div class="col-md-4"> |
|||
Complainant Area: |
|||
<input type="text" class="form-control" id="area" disabled> |
|||
</div> |
|||
<div class="col-md-4"> |
|||
Complainant Locality: |
|||
<input type="text" class="form-control" id="location" disabled> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="card resizable-content"> |
|||
<div class="card-header text-white" style="background-color: #414f69;">3. Complaint Type</div> |
|||
<div class="card-body"> |
|||
<div class="row"> |
|||
<div class="col-md-4"> |
|||
Complainant Type: |
|||
<input type="text" class="form-control" id="complaintType" disabled> |
|||
</div> |
|||
|
|||
<!--<div class="col-md-4"> |
|||
Complainant Sub-Type: |
|||
<input type="text" class="form-control" disabled> |
|||
</div> |
|||
<div class="col-md-4"> |
|||
Complainant Title: |
|||
<input type="text" class="form-control" disabled> |
|||
</div>--> |
|||
<div class="col-md-12"> |
|||
Complainant Description: |
|||
<input type="text" class="form-control" id="complaintdesc" disabled> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="card mb-3 resizable-content"> |
|||
<div class="card-header text-white" style="background-color: #414f69;">Complaint Action</div> |
|||
<div class="card-body"> |
|||
<div class="row"> |
|||
|
|||
|
|||
<div class="col-md-4"> |
|||
Complaint Closed Date: |
|||
|
|||
<input type="text" class="form-control" id="commentDate" disabled> |
|||
</div> |
|||
<div class="col-md-4"> |
|||
Official Name: |
|||
<input type="text" class="form-control" id="commentuser" disabled> |
|||
</div> |
|||
|
|||
<div class="col-md-4"> |
|||
Status: |
|||
<input type="text" class="form-control" id="statusshow" |
|||
style="background-color: #414f69;color: white;" disabled> |
|||
</div> |
|||
</div> |
|||
|
|||
|
|||
</div> |
|||
</div> |
|||
|
|||
|
|||
<div class="card mb-3 resizable-content"> |
|||
<div class="card-header text-white" style="background-color: #414f69;">Complaint Action History</div> |
|||
<div class="card-body"> |
|||
<div id="comments-container"></div> <!-- Container for comments --> |
|||
</div> |
|||
</div> |
|||
|
|||
|
|||
|
|||
<div class="card mb-3 resizable-content"> |
|||
<div class="card-header text-white" style="background-color: #414f69;">Update Complaint</div> |
|||
<div class="card-body"> |
|||
<div class="row"> |
|||
<div class="col-md-6"> |
|||
Change Complaint Status: |
|||
<select class="form-control" name="complaintStatusID" id="complaintStatus"> |
|||
<option value="0">Choose</option> |
|||
<option value="8">WITHDRAW</option> |
|||
<option value="9">REOPENED</option> |
|||
|
|||
</select> |
|||
</div> |
|||
|
|||
<div class="col-md-6" id="img" style="display: none;"> |
|||
Photo: |
|||
<input type="file" class="form-control" id="photo"> |
|||
</div> |
|||
</div> |
|||
<div class="row"> |
|||
<div class="col-md-12"> |
|||
Details of Complaint: |
|||
<textarea class="form-control" id="othercomplaint-details" rows="3" |
|||
placeholder="Enter complaint details" maxlength="400" required></textarea> |
|||
</div> |
|||
</div> |
|||
<div class="row align-items-center justify-content-center" style="margin-top: 5px;"> |
|||
<button class="btn btn-sm" style="background-color: #414f69;color: white;">Submit</button> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
|
|||
|
|||
|
|||
</div> |
|||
|
|||
|
|||
|
|||
<!-- Bootstrap JS --> |
|||
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> |
|||
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js"></script> |
|||
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script> |
|||
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script> |
|||
|
|||
<script> |
|||
|
|||
</script> |
|||
|
|||
|
|||
<!-- JavaScript to handle button clicks --> |
|||
<script> |
|||
|
|||
// /api/getComplaintDetailsbyId |
|||
$(document).ready(function () { |
|||
var urlParams = new URLSearchParams(window.location.search); |
|||
var complaintNo = urlParams.get('complaintno'); |
|||
|
|||
if (complaintNo) { |
|||
$('#loader').show(); |
|||
|
|||
$.ajax({ |
|||
url: '/pgr/api/getComplaintDetailsbyId', // Replace with your actual API endpoint |
|||
type: 'GET', |
|||
data: {complaintid: complaintNo}, |
|||
success: function (response) { |
|||
console.log('API response:', response); |
|||
$('#loader').hide(); |
|||
|
|||
if (Array.isArray(response) && response.length > 0) { |
|||
var complaintListHistory = response[0].ComplaintListHistory; |
|||
|
|||
if (Array.isArray(complaintListHistory) && complaintListHistory.length > 0) { |
|||
var complaintDetails = complaintListHistory[0]; |
|||
|
|||
// Decode HTML entities before populating fields |
|||
function decodeHtmlEntities(str) { |
|||
var txt = document.createElement('textarea'); |
|||
txt.innerHTML = str; |
|||
return txt.value; |
|||
} |
|||
|
|||
// Populate other form fields |
|||
document.getElementById("complaintid").value = complaintDetails.complaintid || ''; |
|||
document.getElementById("complaint-mobile-number").value = complaintDetails.CustomerMobile || ''; |
|||
document.getElementById("complaint-customer-name").value = complaintDetails.CustomerName || ''; |
|||
document.getElementById("street").value = complaintDetails.Street || ''; |
|||
document.getElementById("zone").value = complaintDetails.Zone || ''; |
|||
document.getElementById("ward").value = complaintDetails.Division || ''; |
|||
document.getElementById("area").value = complaintDetails.Area || ''; |
|||
document.getElementById("location").value = complaintDetails.Location || ''; |
|||
document.getElementById("complaintType").value = complaintDetails.complainttype || ''; |
|||
|
|||
// Decode and populate complaint description |
|||
document.getElementById("complaintdesc").value = decodeHtmlEntities(complaintDetails.complaintdetails || ''); |
|||
|
|||
document.getElementById("commentDate").value = complaintDetails.complaintcloseddate || ''; |
|||
document.getElementById("commentuser").value = complaintDetails.Officialname || ''; |
|||
document.getElementById("statusshow").value = complaintDetails.complaintcurrentstatus || ''; |
|||
|
|||
// Handle nested Comments array |
|||
if (Array.isArray(complaintDetails.Comments) && complaintDetails.Comments.length > 0) { |
|||
var commentsContainer = $('#comments-container'); |
|||
commentsContainer.empty(); // Clear the container |
|||
|
|||
var comments = complaintDetails.Comments; |
|||
var lastComment = comments[comments.length - 1]; |
|||
|
|||
// Decode HTML entities for last comment |
|||
function decodeHtmlEntities(str) { |
|||
var txt = document.createElement('textarea'); |
|||
txt.innerHTML = str; |
|||
return txt.value; |
|||
} |
|||
|
|||
// Handle last comment |
|||
var userImageHtml = ''; |
|||
if (Array.isArray(lastComment.userimages) && lastComment.userimages.length > 0) { |
|||
var imageUrl = lastComment.userimages[0].Comp_Image; |
|||
if (imageUrl && imageUrl !== 'null') { |
|||
userImageHtml = ` |
|||
<div class="col-md-12"> |
|||
<img src="${imageUrl}" alt="User Image" class="img-fluid"> |
|||
</div>`; |
|||
} |
|||
} |
|||
|
|||
var lastCommentHtml = ` |
|||
<div class="row mb-3"> |
|||
<table class="comment-table"> |
|||
<tr> |
|||
<td style="color:#3c4959">User:</td> |
|||
<td>${lastComment.user || ''}</td> |
|||
</tr> |
|||
<tr> |
|||
<td style="color:#3c4959">Message:</td> |
|||
<td>${lastComment.message || ''}</td> |
|||
</tr> |
|||
<tr> |
|||
<td style="color:#3c4959">Comment Date:</td> |
|||
<td>${lastComment.comment_date || ''}</td> |
|||
</tr> |
|||
${userImageHtml} |
|||
</table> |
|||
</div> |
|||
<hr>`; |
|||
|
|||
commentsContainer.append(lastCommentHtml); |
|||
|
|||
// Add dropdown button for other comments |
|||
if (comments.length > 1) { |
|||
var dropdownHtml = ` |
|||
<button id="show-all-comments" class="btn mt-3" style="margin-bottom: 10px;background-color: #3c4959; |
|||
color: white;">Show All Comments</button> |
|||
<div id="all-comments" style="display:none;">`; |
|||
|
|||
// Add all comments to dropdown |
|||
comments.forEach(function (comment, index) { |
|||
if (index < comments.length - 1) { // Skip the last comment |
|||
var userImageHtml = ''; |
|||
if (Array.isArray(comment.userimages) && comment.userimages.length > 0) { |
|||
var imageUrl = comment.userimages[0].Comp_Image; |
|||
if (imageUrl && imageUrl !== 'null') { |
|||
userImageHtml = ` |
|||
<div class="col-md-12"> |
|||
<img src="${imageUrl}" alt="User Image" class="img-fluid"> |
|||
</div>`; |
|||
} |
|||
} |
|||
|
|||
dropdownHtml += ` |
|||
<div class="row mb-3"> |
|||
<table class="comment-table"> |
|||
<tr> |
|||
<td style="color:#3c4959">User:</td> |
|||
<td>${comment.user || ''}</td> |
|||
</tr> |
|||
<tr> |
|||
<td style="color:#3c4959">Message:</td> |
|||
<td>${comment.message || ''}</td> |
|||
</tr> |
|||
<tr> |
|||
<td style="color:#3c4959">Comment Date:</td> |
|||
<td>${comment.comment_date || ''}</td> |
|||
</tr> |
|||
${userImageHtml} |
|||
</table> |
|||
</div> |
|||
<hr>`; |
|||
} |
|||
}); |
|||
|
|||
dropdownHtml += '</div>'; |
|||
|
|||
commentsContainer.append(dropdownHtml); |
|||
|
|||
// Toggle display of all comments |
|||
$('#show-all-comments').click(function () { |
|||
$('#all-comments').toggle(); |
|||
$(this).text($(this).text() === 'Show All Comments' ? 'Hide Comments' : 'Show All Comments'); |
|||
}); |
|||
} |
|||
} else { |
|||
$('#comments-container').html('<p>No comments found.</p>'); |
|||
} |
|||
} else { |
|||
alert('No complaint details found in ComplaintListHistory.'); |
|||
} |
|||
} else { |
|||
alert('Unexpected response structure.'); |
|||
} |
|||
}, |
|||
error: function (xhr, status, error) { |
|||
console.log('Error:', xhr.responseText); |
|||
alert('An error occurred while fetching complaint details.'); |
|||
$('#loader').hide(); |
|||
} |
|||
}); |
|||
} else { |
|||
alert('No complaint number provided.'); |
|||
} |
|||
}); |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
$(document).ready(function () { |
|||
$('#complaintStatus').change(function () { |
|||
if ($(this).val() == '9') { // Show the image field if 'REOPENED' is selected |
|||
$('#img').show(); |
|||
} else { |
|||
$('#img').hide(); |
|||
} |
|||
}); |
|||
|
|||
$('.btn').click(function (e) { |
|||
e.preventDefault(); |
|||
|
|||
var complaintId = $('#complaintid').val(); |
|||
var complaintStatus = $('#complaintStatus').val(); |
|||
var message = $('#othercomplaint-details').val(); |
|||
|
|||
// Validate "Details of Complaint" field |
|||
if (message.trim() === "") { |
|||
Swal.fire({ |
|||
title: 'Validation Error!', |
|||
text: 'Please enter the details of the complaint.', |
|||
icon: 'warning', |
|||
confirmButtonText: 'OK' |
|||
}); |
|||
return; |
|||
} |
|||
|
|||
if (complaintStatus == '0') { |
|||
Swal.fire({ |
|||
title: 'Validation Error!', |
|||
text: 'Please select a valid complaint status.', |
|||
icon: 'warning', |
|||
confirmButtonText: 'OK' |
|||
}); |
|||
return; |
|||
} |
|||
|
|||
var formData = new FormData(); |
|||
formData.append("ComplaintId", complaintId); |
|||
formData.append("Message", message); |
|||
formData.append("Status", complaintStatus); |
|||
|
|||
var imageFile = $('#photo')[0].files[0]; |
|||
if (imageFile) { |
|||
formData.append("Comp_Image", imageFile); |
|||
} |
|||
|
|||
$.ajax({ |
|||
url: '/publicgrievance/updateComplaint', |
|||
type: 'POST', |
|||
data: formData, |
|||
processData: false, |
|||
contentType: false, |
|||
success: function (response) { |
|||
console.log(imageFile,complaintId,message,complaintStatus); |
|||
Swal.fire({ |
|||
title: 'Success!', |
|||
text: 'Complaint updated successfully.', |
|||
icon: 'success', |
|||
confirmButtonText: 'OK' |
|||
}).then((result) => { |
|||
if (result.isConfirmed) { |
|||
window.location.href = 'home'; |
|||
} |
|||
}); |
|||
}, |
|||
error: function (xhr, status, error) { |
|||
console.error('Error updating complaint:', error); |
|||
let errorMessage = xhr.responseText ? xhr.responseText : 'An error occurred while updating the complaint.'; |
|||
Swal.fire({ |
|||
title: 'Error!', |
|||
text: errorMessage, |
|||
icon: 'error', |
|||
confirmButtonText: 'OK' |
|||
}); |
|||
} |
|||
}); |
|||
}); |
|||
}); |
|||
|
|||
</script> |
|||
<script th:src="@{/js/screenreader.js}"></script> |
|||
</body> |
|||
|
|||
</html> |
|||
@ -0,0 +1,614 @@ |
|||
<!DOCTYPE html> |
|||
<html xmlns:th="http://www.thymeleaf.org"> |
|||
|
|||
<head> |
|||
<meta charset="UTF-8"> |
|||
<title>CheckList User</title> |
|||
<!-- Google Font --> |
|||
<link href="https://fonts.googleapis.com/css2?family=Lato:wght@400;700&display=swap" rel="stylesheet"> |
|||
<!-- Bootstrap CSS --> |
|||
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet"> |
|||
|
|||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script> |
|||
<link rel="stylesheet" href="https://unpkg.com/leaflet/dist/leaflet.css" /> |
|||
<script src="https://unpkg.com/leaflet/dist/leaflet.js"></script> |
|||
<style> |
|||
/*rating style for css*/ |
|||
.rating { |
|||
direction: rtl; |
|||
display: inline-flex; |
|||
font-size: 24px; |
|||
} |
|||
|
|||
.rating input { |
|||
display: none; |
|||
} |
|||
|
|||
.rating label { |
|||
color: #ddd; |
|||
cursor: pointer; |
|||
margin: 0; |
|||
} |
|||
|
|||
.rating input:checked~label { |
|||
color: #414f69; |
|||
} |
|||
|
|||
.rating label:hover, |
|||
.rating label:hover~label { |
|||
color: #414f69; |
|||
} |
|||
|
|||
/* Style for resizing content */ |
|||
.resizable-content { |
|||
font-size: medium; |
|||
transition: font-size 0.3s ease; |
|||
} |
|||
|
|||
|
|||
.comment-table { |
|||
width: 100%; |
|||
border-collapse: collapse; |
|||
} |
|||
|
|||
.comment-table td { |
|||
padding: 0.5rem; |
|||
border: 1px solid #ddd; |
|||
/* Light border color */ |
|||
} |
|||
|
|||
.comment-table td:first-child { |
|||
width: 25%; |
|||
/* Adjust as needed for label column width */ |
|||
font-weight: bold; |
|||
} |
|||
|
|||
.comment-table td:nth-child(2) { |
|||
width: 75%; |
|||
/* Adjust as needed for value column width */ |
|||
} |
|||
</style> |
|||
</head> |
|||
|
|||
<body> |
|||
|
|||
<!-- Insert the header fragment --> |
|||
|
|||
<div th:insert="~{fragments/header :: headerFragment}"></div> |
|||
|
|||
<div class="container mt-4"> |
|||
<!-- Loader GIF --> |
|||
<div id="loader" style="display: none; text-align: center;"> |
|||
<img src="images/Thin broken ring.gif" alt="Loading..." /> |
|||
</div> |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
<div class="mt-1"> |
|||
<div class="row align-items-center justify-content-center"> |
|||
<h4 class="title resizable-content" style="color: #414f69;">Check Complaint Status</h4> |
|||
</div> |
|||
</div> |
|||
<!-- Card Section --> |
|||
<div class="card p-3 resizable-content" style="margin-bottom: 8px;color: #414f69;"> |
|||
<div class="card mb-3 resizable-content"> |
|||
<div class="card-header text-white" style="background-color: #414f69;">1. Complaining Person's Details |
|||
</div> |
|||
<div class="card-body"> |
|||
<div class="row"> |
|||
<div class="col-md-6"> |
|||
<label>Complainant ID:</label> |
|||
<input type="text" id="complaintid" class="form-control" value="" disabled> |
|||
</div> |
|||
<div class="col-md-6"> |
|||
<label>Complainant Mobile Number:</label> |
|||
<input type="text" id="complaint-mobile-number" class="form-control" value="" disabled> |
|||
</div> |
|||
<div class="col-md-6"> |
|||
<label>Complainant Name:</label> |
|||
<input type="text" id="complaint-customer-name" class="form-control" value="" disabled> |
|||
</div> |
|||
|
|||
|
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="card mb-3 resizable-content"> |
|||
<div class="card-header text-white" style="background-color: #414f69;">2. Complaint Location Details |
|||
</div> |
|||
<div class="card-body"> |
|||
<div class="row"> |
|||
<div class="col-md-4"> |
|||
<label>Complainant Street:</label> |
|||
<input type="text" id="street" class="form-control" disabled> |
|||
</div> |
|||
<div class="col-md-4"> |
|||
<label>Complainant Zone:</label> |
|||
<input type="text" class="form-control" id="zone" disabled> |
|||
</div> |
|||
<div class="col-md-4"> |
|||
<label>Complainant Ward:</label> |
|||
<input type="text" class="form-control" id="ward" disabled> |
|||
</div> |
|||
<div class="col-md-4"> |
|||
<label>Complainant Area:</label> |
|||
<input type="text" class="form-control" id="area" disabled> |
|||
</div> |
|||
<div class="col-md-4"> |
|||
<label>Complainant Locality:</label> |
|||
<input type="text" class="form-control" id="location" disabled> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="card resizable-content"> |
|||
<div class="card-header text-white" style="background-color: #414f69;">3. Complaint Type</div> |
|||
<div class="card-body"> |
|||
<div class="row"> |
|||
<div class="col-md-4"> |
|||
<label>Complainant Type:</label> |
|||
<input type="text" class="form-control" id="complaintType" disabled> |
|||
</div> |
|||
|
|||
<!--<div class="col-md-4"> |
|||
Complainant Sub-Type: |
|||
<input type="text" class="form-control" disabled> |
|||
</div> |
|||
<div class="col-md-4"> |
|||
Complainant Title: |
|||
<input type="text" class="form-control" disabled> |
|||
</div>--> |
|||
<div class="col-md-12"> |
|||
<label>Complainant Description:</label> |
|||
<input type="text" class="form-control" id="complaintdesc" disabled> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="card mb-3 resizable-content"> |
|||
<div class="card-header text-white" style="background-color: #414f69;">Complaint Action</div> |
|||
<div class="card-body"> |
|||
<div class="row"> |
|||
|
|||
|
|||
<div class="col-md-4"> |
|||
<label>Complaint Closed Date:</label> |
|||
|
|||
<input type="text" class="form-control" id="commentDate" disabled> |
|||
</div> |
|||
<div class="col-md-4"> |
|||
<label>Official Name:</label> |
|||
<input type="text" class="form-control" id="commentuser" disabled> |
|||
</div> |
|||
|
|||
<div class="col-md-4"> |
|||
<label>Status:</label> |
|||
<input type="text" class="form-control" id="statusshow" |
|||
style="background-color: #414f69;color: white;" disabled> |
|||
</div> |
|||
</div> |
|||
|
|||
|
|||
</div> |
|||
</div> |
|||
|
|||
|
|||
<div class="card mb-3 resizable-content"> |
|||
<div class="card-header text-white" style="background-color: #414f69;">Complaint Action History</div> |
|||
<div class="card-body"> |
|||
<div id="comments-container"></div> <!-- Container for comments --> |
|||
</div> |
|||
</div> |
|||
|
|||
|
|||
|
|||
<div class="card mb-3 resizable-content"> |
|||
<div class="card-header text-white" style="background-color: #414f69;">Update Complaint</div> |
|||
<div class="card-body"> |
|||
<div class="row"> |
|||
<div class="col-md-6"> |
|||
<label>Change Complaint Status:</label> |
|||
<select class="form-control" name="complaintStatusID" id="complaintStatus"> |
|||
|
|||
</select> |
|||
</div> |
|||
|
|||
<div class="col-md-6" id="img" style="display: none;"> |
|||
<label>Photo:</label> |
|||
<input type="file" class="form-control" id="photo"> |
|||
</div> |
|||
</div> |
|||
<div class="row"> |
|||
<div class="col-md-12"> |
|||
<label>Details of Complaint:</label> |
|||
<textarea class="form-control" id="othercomplaint-details" rows="3" |
|||
placeholder="Enter complaint details" maxlength="400" required></textarea> |
|||
</div> |
|||
</div> |
|||
<div class="row align-items-center justify-content-center" style="margin-top: 5px;"> |
|||
<button class="btn btn-sm" style="background-color: #414f69;color: white;">Submit</button> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
|
|||
|
|||
|
|||
<!--loader--> |
|||
<div id="loaders" style="display: none; text-align: center; margin-bottom: 50px;"> |
|||
<img src="images/Thin broken ring.gif" alt="Loading..." /> |
|||
</div> |
|||
<!--loader--> |
|||
|
|||
</div> |
|||
|
|||
|
|||
|
|||
<!-- Bootstrap JS --> |
|||
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> |
|||
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js"></script> |
|||
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script> |
|||
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script> |
|||
|
|||
<script> |
|||
|
|||
</script> |
|||
|
|||
|
|||
<!-- JavaScript to handle button clicks --> |
|||
<script> |
|||
|
|||
// /api/getComplaintDetailsbyId |
|||
$(document).ready(function () { |
|||
var urlParams = new URLSearchParams(window.location.search); |
|||
var complaintNo = urlParams.get('complaintno'); |
|||
|
|||
if (complaintNo) { |
|||
$('#loader').show(); |
|||
|
|||
$.ajax({ |
|||
url: '/pgr/api/getComplaintDetailsbyId', // Replace with your actual API endpoint |
|||
type: 'GET', |
|||
data: {complaintid: complaintNo}, |
|||
success: function (response) { |
|||
console.log('API response:', response); |
|||
$('#loader').hide(); |
|||
|
|||
if (Array.isArray(response) && response.length > 0) { |
|||
var complaintListHistory = response[0].ComplaintListHistory; |
|||
|
|||
if (Array.isArray(complaintListHistory) && complaintListHistory.length > 0) { |
|||
var complaintDetails = complaintListHistory[0]; |
|||
|
|||
// Decode HTML entities before populating fields |
|||
function decodeHtmlEntities(str) { |
|||
var txt = document.createElement('textarea'); |
|||
txt.innerHTML = str; |
|||
return txt.value; |
|||
} |
|||
|
|||
// Populate other form fields |
|||
document.getElementById("complaintid").value = complaintDetails.complaintid || ''; |
|||
document.getElementById("complaint-mobile-number").value = complaintDetails.CustomerMobile || ''; |
|||
document.getElementById("complaint-customer-name").value = complaintDetails.CustomerName || ''; |
|||
document.getElementById("street").value = complaintDetails.Street || ''; |
|||
document.getElementById("zone").value = complaintDetails.Zone || ''; |
|||
document.getElementById("ward").value = complaintDetails.Division || ''; |
|||
document.getElementById("area").value = complaintDetails.Area || ''; |
|||
document.getElementById("location").value = complaintDetails.Location || ''; |
|||
document.getElementById("complaintType").value = complaintDetails.complainttype || ''; |
|||
|
|||
// Decode and populate complaint description |
|||
document.getElementById("complaintdesc").value = decodeHtmlEntities(complaintDetails.complaintdetails || ''); |
|||
|
|||
document.getElementById("commentDate").value = complaintDetails.complaintcloseddate || ''; |
|||
document.getElementById("commentuser").value = complaintDetails.Officialname || ''; |
|||
let complaintCurrentStatus = complaintDetails.complaintcurrentstatus || ''; |
|||
|
|||
// Get the dropdown element |
|||
let complaintStatusDropdown = document.getElementById("complaintStatus"); |
|||
|
|||
// Function to add options to the select element |
|||
function addOption(text, value) { |
|||
let option = document.createElement("option"); |
|||
option.text = text; |
|||
option.value = value; |
|||
complaintStatusDropdown.add(option); |
|||
} |
|||
|
|||
// Check the current status and add the respective options |
|||
if (complaintCurrentStatus === 'REGISTERED') { |
|||
addOption('REGISTERED', '2'); |
|||
addOption('WITHDRAWN', '8'); |
|||
} else if (complaintCurrentStatus === 'WITHDRAWN') { |
|||
addOption('WITHDRAWN', '8'); |
|||
addOption('REOPENED', '9'); |
|||
} |
|||
else if (complaintCurrentStatus === 'CLOSE') { |
|||
addOption('CLOSE', '10'); |
|||
addOption('REOPENED', '9'); |
|||
} |
|||
else if (complaintCurrentStatus === 'REOPENED') { |
|||
addOption('REOPENED', '9'); |
|||
addOption('WITHDRAWN', '8'); |
|||
} |
|||
else if (complaintCurrentStatus === 'FINAL_CLOSURE') { |
|||
addOption('FINAL_CLOSURE', '11'); |
|||
addOption('REOPENED', '9'); |
|||
} |
|||
|
|||
document.getElementById("statusshow").value = complaintDetails.complaintcurrentstatus || ''; |
|||
|
|||
// Handle nested Comments array |
|||
if (Array.isArray(complaintDetails.Comments) && complaintDetails.Comments.length > 0) { |
|||
var commentsContainer = $('#comments-container'); |
|||
commentsContainer.empty(); // Clear the container |
|||
|
|||
var comments = complaintDetails.Comments; |
|||
var lastComment = comments[comments.length - 1]; |
|||
|
|||
// Decode HTML entities for last comment |
|||
function decodeHtmlEntities(str) { |
|||
var txt = document.createElement('textarea'); |
|||
txt.innerHTML = str; |
|||
return txt.value; |
|||
} |
|||
|
|||
// Convert image URL to Base64 |
|||
function convertImageToBase64(url, callback) { |
|||
var xhr = new XMLHttpRequest(); |
|||
xhr.onload = function () { |
|||
var reader = new FileReader(); |
|||
reader.onloadend = function () { |
|||
callback(reader.result); |
|||
}; |
|||
reader.readAsDataURL(xhr.response); |
|||
}; |
|||
xhr.open('GET', url); |
|||
xhr.responseType = 'blob'; |
|||
xhr.send(); |
|||
} |
|||
|
|||
// Compress the Base64 image using canvas |
|||
function compressImage(base64Str, callback, quality = 0.7, maxWidth = 800) { |
|||
var img = new Image(); |
|||
img.onload = function () { |
|||
var canvas = document.createElement('canvas'); |
|||
var ctx = canvas.getContext('2d'); |
|||
|
|||
var width = img.width; |
|||
var height = img.height; |
|||
|
|||
// Adjust the image size for compression |
|||
if (width > maxWidth) { |
|||
height *= maxWidth / width; |
|||
width = maxWidth; |
|||
} |
|||
|
|||
canvas.width = width; |
|||
canvas.height = height; |
|||
|
|||
// Draw the image onto the canvas |
|||
ctx.drawImage(img, 0, 0, width, height); |
|||
|
|||
// Convert the canvas back to Base64 with the specified quality (compression) |
|||
var compressedBase64 = canvas.toDataURL('image/jpeg', quality); |
|||
callback(compressedBase64); |
|||
}; |
|||
img.src = base64Str; |
|||
} |
|||
|
|||
// Handle last comment |
|||
var userImageHtml = ''; |
|||
if (Array.isArray(lastComment.userimages) && lastComment.userimages.length > 0) { |
|||
var imageUrl = lastComment.userimages[0].Comp_Image; |
|||
if (imageUrl && imageUrl !== 'null') { |
|||
convertImageToBase64(imageUrl, function (base64Image) { |
|||
compressImage(base64Image, function (compressedImage) { |
|||
userImageHtml = ` |
|||
<div class="col-md-12"> |
|||
<img src="${compressedImage}" alt="User Image" class="img-fluid"> |
|||
</div>`; |
|||
commentsContainer.append(lastCommentHtml); |
|||
}); |
|||
}); |
|||
} |
|||
} |
|||
|
|||
var lastCommentHtml = ` |
|||
<div class="row mb-3"> |
|||
<table class="comment-table"> |
|||
<tr> |
|||
<td style="color:#3c4959">User:</td> |
|||
<td>${lastComment.user || ''}</td> |
|||
</tr> |
|||
<tr> |
|||
<td style="color:#3c4959">Message:</td> |
|||
<td>${lastComment.message || ''}</td> |
|||
</tr> |
|||
<tr> |
|||
<td style="color:#3c4959">Comment Date:</td> |
|||
<td>${lastComment.comment_date || ''}</td> |
|||
</tr> |
|||
${userImageHtml} |
|||
</table> |
|||
</div> |
|||
<hr>`; |
|||
|
|||
// Add the comment section with the compressed Base64 image |
|||
commentsContainer.append(lastCommentHtml); |
|||
|
|||
// Add dropdown button for other comments |
|||
if (comments.length > 1) { |
|||
var dropdownHtml = ` |
|||
<button id="show-all-comments" class="btn mt-3" style="margin-bottom: 10px;background-color: #3c4959; color: white;">Show All Comments</button> |
|||
<div id="all-comments" style="display:none;">`; |
|||
|
|||
// Add all comments to dropdown |
|||
comments.forEach(function (comment, index) { |
|||
if (index < comments.length - 1) { // Skip the last comment |
|||
var userImageHtml = ''; |
|||
if (Array.isArray(comment.userimages) && comment.userimages.length > 0) { |
|||
var imageUrl = comment.userimages[0].Comp_Image; |
|||
if (imageUrl && imageUrl !== 'null') { |
|||
convertImageToBase64(imageUrl, function (base64Image) { |
|||
compressImage(base64Image, function (compressedImage) { |
|||
userImageHtml = ` |
|||
<div class="col-md-12"> |
|||
<img src="${compressedImage}" alt="User Image" class="img-fluid"> |
|||
</div>`; |
|||
}); |
|||
}); |
|||
} |
|||
} |
|||
|
|||
dropdownHtml += ` |
|||
<div class="row mb-3"> |
|||
<table class="comment-table"> |
|||
<tr> |
|||
<td style="color:#3c4959">User:</td> |
|||
<td>${comment.user || ''}</td> |
|||
</tr> |
|||
<tr> |
|||
<td style="color:#3c4959">Message:</td> |
|||
<td>${comment.message || ''}</td> |
|||
</tr> |
|||
<tr> |
|||
<td style="color:#3c4959">Comment Date:</td> |
|||
<td>${comment.comment_date || ''}</td> |
|||
</tr> |
|||
${userImageHtml} |
|||
</table> |
|||
</div> |
|||
<hr>`; |
|||
} |
|||
}); |
|||
|
|||
dropdownHtml += '</div>'; |
|||
|
|||
commentsContainer.append(dropdownHtml); |
|||
|
|||
// Toggle display of all comments |
|||
$('#show-all-comments').click(function () { |
|||
$('#all-comments').toggle(); |
|||
$(this).text($(this).text() === 'Show All Comments' ? 'Hide Comments' : 'Show All Comments'); |
|||
}); |
|||
} |
|||
} else { |
|||
$('#comments-container').html('<p>No comments found.</p>'); |
|||
} |
|||
} else { |
|||
alert('No complaint details found in ComplaintListHistory.'); |
|||
} |
|||
} else { |
|||
alert('Unexpected response structure.'); |
|||
} |
|||
}, |
|||
error: function (xhr, status, error) { |
|||
console.log('Error:', xhr.responseText); |
|||
alert('An error occurred while fetching complaint details.'); |
|||
$('#loader').hide(); |
|||
} |
|||
}); |
|||
} else { |
|||
alert('No complaint number provided.'); |
|||
} |
|||
}); |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
$(document).ready(function () { |
|||
$('#complaintStatus').change(function () { |
|||
if ($(this).val() == '9') { // Show the image field if 'REOPENED' is selected |
|||
$('#img').show(); |
|||
} else { |
|||
$('#img').hide(); |
|||
} |
|||
}); |
|||
|
|||
$('.btn').click(function (e) { |
|||
e.preventDefault(); |
|||
|
|||
var complaintId = $('#complaintid').val(); |
|||
var complaintStatus = $('#complaintStatus').val(); |
|||
var message = $('#othercomplaint-details').val(); |
|||
|
|||
// Validate "Details of Complaint" field |
|||
if (message.trim() === "") { |
|||
Swal.fire({ |
|||
title: 'Validation Error!', |
|||
text: 'Please enter the details of the complaint.', |
|||
icon: 'warning', |
|||
confirmButtonText: 'OK' |
|||
}); |
|||
return; |
|||
} |
|||
|
|||
if (complaintStatus == '0') { |
|||
Swal.fire({ |
|||
title: 'Validation Error!', |
|||
text: 'Please select a valid complaint status.', |
|||
icon: 'warning', |
|||
confirmButtonText: 'OK' |
|||
}); |
|||
return; |
|||
} |
|||
|
|||
var formData = new FormData(); |
|||
formData.append("ComplaintId", complaintId); |
|||
formData.append("Message", message); |
|||
formData.append("Status", complaintStatus); |
|||
|
|||
var imageFile = $('#photo')[0].files[0]; |
|||
if (imageFile) { |
|||
formData.append("Comp_Image", imageFile); |
|||
} |
|||
$('#loaders').show(); |
|||
$.ajax({ |
|||
url: '/updateComplaint', |
|||
type: 'POST', |
|||
data: formData, |
|||
processData: false, |
|||
contentType: false, |
|||
success: function (response) { |
|||
$('#loaders').hide(); |
|||
console.log(imageFile, complaintId, message, complaintStatus); |
|||
Swal.fire({ |
|||
title: 'Success!', |
|||
text: 'Complaint updated successfully.', |
|||
icon: 'success', |
|||
confirmButtonText: 'OK' |
|||
}).then((result) => { |
|||
if (result.isConfirmed) { |
|||
window.location.href = 'home'; |
|||
} |
|||
}); |
|||
}, |
|||
error: function (xhr, status, error) { |
|||
console.error('Error updating complaint:', error); |
|||
$('#loaders').hide(); |
|||
let errorMessage = xhr.responseText ? xhr.responseText : 'An error occurred while updating the complaint.'; |
|||
Swal.fire({ |
|||
title: 'Error!', |
|||
text: errorMessage, |
|||
icon: 'error', |
|||
confirmButtonText: 'OK' |
|||
}); |
|||
} |
|||
}); |
|||
}); |
|||
}); |
|||
|
|||
</script> |
|||
</body> |
|||
|
|||
</html> |
|||
1538
src/main/resources/templates/staff/staffcomplaint.html
File diff suppressed because it is too large
View File
@ -0,0 +1,543 @@ |
|||
<!DOCTYPE html> |
|||
<html xmlns:th="http://www.thymeleaf.org"> |
|||
|
|||
<head> |
|||
<meta charset="UTF-8"> |
|||
<title>Main Page</title> |
|||
<!--Google Font --> |
|||
<link href="https://fonts.googleapis.com/css2?family=Lato:wght@400;700&display=swap" rel="stylesheet"> |
|||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.6.0/css/all.min.css" |
|||
integrity="sha512-Kc323vGBEqzTmouAECnVceyQqyqdsSiqLQISBL29aUW4U/M7pSPA/gEUZQqv1cwx4OnYxTxve5UMg5GT6L4JJg==" |
|||
crossorigin="anonymous" referrerpolicy="no-referrer" /> |
|||
<!--Bootstrap CSS--> |
|||
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet"> |
|||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script> |
|||
<script th:src="@{/js/invertcolor.js}"></script> |
|||
<style> |
|||
body { |
|||
font-family: 'Lato', sans-serif; |
|||
background-color: white; |
|||
} |
|||
|
|||
body.inverted { |
|||
background-color: black; |
|||
color: white; |
|||
filter: invert(1); |
|||
} |
|||
|
|||
.card { |
|||
border-radius: 15px; |
|||
border: none; |
|||
padding: 20px; |
|||
background-color: #f0f4ff; |
|||
text-align: center; |
|||
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); |
|||
display: flex; |
|||
flex-direction: column; |
|||
height: 100%; |
|||
/* Make sure cards take up full height of the column */ |
|||
} |
|||
|
|||
.card-body { |
|||
flex: 1; |
|||
/* Allow card-body to grow and take up available space */ |
|||
} |
|||
|
|||
.card-img { |
|||
width: 40px; |
|||
margin-bottom: 15px; |
|||
} |
|||
|
|||
.card-title { |
|||
font-size: 1.2rem; |
|||
font-weight: bold; |
|||
} |
|||
|
|||
.card-text { |
|||
color: #666; |
|||
margin-bottom: 20px; |
|||
} |
|||
|
|||
.card-footer { |
|||
font-weight: bold; |
|||
color: #007bff; |
|||
display: flex; |
|||
align-items: center; |
|||
justify-content: center; |
|||
} |
|||
|
|||
.card-footer i { |
|||
margin-left: 5px; |
|||
} |
|||
|
|||
.row { |
|||
display: flex; |
|||
flex-wrap: wrap; |
|||
margin-bottom: 30px; |
|||
} |
|||
|
|||
.col-md-4 { |
|||
display: flex; |
|||
/* Ensure columns use Flexbox to distribute space evenly */ |
|||
padding: 0 15px; |
|||
/* Adjust padding to fit full width */ |
|||
} |
|||
|
|||
.container { |
|||
max-width: 1200px; |
|||
} |
|||
|
|||
.container .row .col-md-4 { |
|||
padding: 0 15px; |
|||
/* Adjust padding to fit full width */ |
|||
display: flex; |
|||
flex-direction: column; |
|||
} |
|||
|
|||
.card { |
|||
flex-grow: 1; |
|||
/* Ensure all cards have the same height */ |
|||
} |
|||
|
|||
.container .row .col-md-12 { |
|||
padding: 0 15px; |
|||
} |
|||
|
|||
.card-link { |
|||
text-decoration: none; |
|||
/* Remove the underline from the link */ |
|||
color: inherit; |
|||
/* Inherit the text color */ |
|||
display: block; |
|||
/* Make the link cover the entire card */ |
|||
} |
|||
|
|||
.card-link:hover .card { |
|||
box-shadow: 0 6px 12px rgba(0, 0, 0, 0.2); |
|||
/* Optional: add hover effect */ |
|||
} |
|||
|
|||
/* Style for reader button */ |
|||
|
|||
|
|||
#reader-btn.active { |
|||
background-color: #28a745; |
|||
} |
|||
|
|||
/*header css*/ |
|||
.header { |
|||
background-color: #3b4858; |
|||
padding: 10px 20px; |
|||
display: flex; |
|||
align-items: center; |
|||
justify-content: space-between; |
|||
color: white; |
|||
} |
|||
|
|||
.header .logo-left img { |
|||
height: 60px; |
|||
} |
|||
|
|||
.header .title { |
|||
text-align: center; |
|||
flex-grow: 1; |
|||
} |
|||
|
|||
.header .title h2 { |
|||
margin: 0; |
|||
font-size: 1.5rem; |
|||
} |
|||
|
|||
.header .logos-right img { |
|||
height: 60px; |
|||
margin-left: 10px; |
|||
} |
|||
|
|||
/*header buttons*/ |
|||
.header { |
|||
display: flex; |
|||
align-items: center; |
|||
justify-content: space-between; |
|||
/* Space out the items within the header */ |
|||
} |
|||
|
|||
.header-buttons { |
|||
padding-left: 5px; |
|||
display: flex; |
|||
align-items: center; |
|||
gap: 10px; |
|||
/* Adjust spacing between buttons */ |
|||
} |
|||
|
|||
#reader-btn, |
|||
#invertColorBtn { |
|||
padding: 5px 10px; |
|||
font-size: 14px; |
|||
cursor: pointer; |
|||
} |
|||
|
|||
/*for radio button style*/ |
|||
.radio-group { |
|||
display: flex; |
|||
align-items: center; |
|||
/* Ensures all items are aligned to the center */ |
|||
} |
|||
|
|||
.radio-item { |
|||
display: flex; |
|||
align-items: center; |
|||
margin-right: 20px; |
|||
/* Adds space between each radio item */ |
|||
} |
|||
|
|||
.radio-item input[type="radio"] { |
|||
margin-right: 10px; |
|||
/* Adds space between the radio button and its label */ |
|||
vertical-align: middle; |
|||
/* Ensures vertical alignment */ |
|||
} |
|||
|
|||
.radio-item label { |
|||
margin: 0; |
|||
/* Removes any default margins that might affect alignment */ |
|||
} |
|||
</style> |
|||
</head> |
|||
|
|||
|
|||
<body> |
|||
<div th:insert="~{fragments/accessibility :: accessibility}"></div> |
|||
|
|||
|
|||
<!-- <div class="header"> |
|||
|
|||
<div class="logo-left"> |
|||
<img src="images/gcc1.png" alt="Greater Chennai Corporation Logo"> |
|||
</div> |
|||
<div class="header-buttons"> |
|||
<button id="reader-btn" onclick="toggleReader()">Enable Reader</button> |
|||
<button id="invertColorBtn" onclick="invertColors()">Invert Colors</button> |
|||
</div> |
|||
<div class="title"> |
|||
<h2>Public Grievance and Redressal System</h2> |
|||
</div> |
|||
<div class="logos-right"> |
|||
<img src="images/tamil.jpg" alt="Tamil Nadu Logo"> |
|||
<img src="images/bt-logo.png" style="width: 100px;height: 50px;" alt="bonton Logo"> |
|||
</div> |
|||
</div>--> |
|||
|
|||
|
|||
|
|||
<!-- Insert the header fragment --> |
|||
<div th:insert="~{fragments/header :: headerFragment}"></div> |
|||
<!--<button id="reader-btn" onclick="toggleReader()">Enable Reader</button>--> |
|||
|
|||
|
|||
<!-- Cards Section --> |
|||
<div class="container mt-3"> |
|||
<div id="loader" style="display: none; text-align: center;"> |
|||
<img src="images/Thin broken ring.gif" alt="Loading..." /> |
|||
</div> |
|||
<!--<button id="invertColorBtn" onclick="invertColors()">Invert Colors</button>--> |
|||
<div class="row"> |
|||
<div class="col-md-4"> |
|||
<a href="staffcomplaint" class="card-link"> |
|||
<div class="card content"> |
|||
<div class="card-body"> |
|||
<img src="images/register.png" alt="register" class="card-img"> |
|||
<div class="card-content"> |
|||
<h5 class="card-title">Register Your<br> Complaints</h5> |
|||
<p class="card-text">Register Complaints<br> Via Internet</p> |
|||
</div> |
|||
</div> |
|||
<div class="card-footer"> |
|||
Get Started <i class="fa fa-arrow-right"></i> |
|||
</div> |
|||
</div> |
|||
</a> |
|||
</div> |
|||
|
|||
<div class="col-md-4"> |
|||
<div class="card readable"> |
|||
<div class="card-body"> |
|||
<img src="images/phone-call.png" alt="Phone" class="card-img"> |
|||
<div class="card-content"> |
|||
<h5 class="card-title">Register Complaint via Phone</h5> |
|||
<p class="card-text">Call 1913 to register your complaint.</p> |
|||
</div> |
|||
</div> |
|||
<div class="card-footer"> |
|||
Call Now <i class="fa fa-arrow-right"></i> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="col-md-4"> |
|||
<div class="card readable"> |
|||
<div class="card-body"> |
|||
<img src="images/contract.png" alt="Paper" class="card-img"> |
|||
<div class="card-content"> |
|||
<h5 class="card-title">Complaint via Paper Form</h5> |
|||
<p class="card-text">Send your Grievance to<br><strong>The Commissioner,<br>Greater Chennai |
|||
Corporation,<br>Ripon Building, EVR Salai, Chennai - 600003.</strong></p> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
|
|||
<!-- Form to Check by Complaint Number --> |
|||
<div class="col-md-12"> |
|||
<div class="card readable"> |
|||
<div class="card-body"> |
|||
<img src="images/search.png" alt="Status" class="card-img"> |
|||
<div class="card-content"> |
|||
<h5 class="card-title">Check Your Complaint Status</h5> |
|||
<div class="form-group"> |
|||
<input type="radio" id="c_number" name="check_method" value="c_number" checked |
|||
onchange="toggleInput()"> |
|||
<label class="readable">Check By Complaint Number</label> |
|||
|
|||
<input type="radio" id="m_number" name="check_method" value="m_number" |
|||
onchange="toggleInput()"> |
|||
<label class="readable">Check By Mobile Number</label> |
|||
</div> |
|||
|
|||
<!-- Input for Complaint Number --> |
|||
<div class="form-group" id="complaint-number-input"> |
|||
<input type="text" class="form-control" id="complaint-number" |
|||
placeholder="Enter Complaint Number"> |
|||
</div> |
|||
|
|||
<!-- Input for Mobile Number (hidden by default) --> |
|||
<div class="form-group" id="complaint-mobile-input" style="display: none;"> |
|||
<input type="text" class="form-control" id="complaint-mobile" |
|||
placeholder="Enter Mobile Number"> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="card-footer"> |
|||
<!-- Button for Complaint Number --> |
|||
<button class="btn btn-danger" id="check-now-btn">Check Now <i |
|||
class="fa fa-arrow-right"></i></button> |
|||
|
|||
<!-- Button for Mobile Number (hidden by default) --> |
|||
<button class="btn btn-primary readable" id="check-mobile-btn" style="display: none;">Check Now <i |
|||
class="fa fa-arrow-right"></i></button> |
|||
|
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
|
|||
<!-- Form to Check by Mobile Number --> |
|||
<!--<div class="col-md-6"> |
|||
<div class="card readable"> |
|||
<div class="card-body"> |
|||
<img src="images/search.png" alt="Status" class="card-img"> |
|||
<div class="card-content"> |
|||
<h5 class="card-title">Check Your Complaint Status</h5> |
|||
<div class="form-group"> |
|||
<label class="readable">Check By Mobile Number</label> |
|||
</div> |
|||
<div class="form-group"> |
|||
<input type="text" class="form-control" id="complaint-mobile" |
|||
placeholder="Enter Mobile Number"> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="card-footer"> |
|||
<button class="btn btn-primary readable" id="check-mobile-btn">Check Now <i |
|||
class="fa fa-arrow-right"></i></button> |
|||
</div> |
|||
</div> |
|||
</div>--> |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
</div> |
|||
|
|||
|
|||
|
|||
<div class="modal fade" id="complaintDetailsModal" tabindex="-1" role="dialog" |
|||
aria-labelledby="complaintDetailsLabel" aria-hidden="true"> |
|||
<div class="modal-dialog modal-lg" role="document"> |
|||
<div class="modal-content"> |
|||
<div class="modal-header" style="background-color: #3c4959;color: white;"> |
|||
<h5 class="modal-title" id="complaintDetailsLabel">Complaint Details</h5> |
|||
<button type="button" class="close" data-dismiss="modal" aria-label="Close" style="color: white;"> |
|||
<span aria-hidden="true">×</span> |
|||
</button> |
|||
</div> |
|||
<div class="modal-body"> |
|||
<table class="table"> |
|||
<thead style="background-color: #3c4959;color: white;"> |
|||
<tr> |
|||
<th>Complaint Number</th> |
|||
<th>Complaint Type</th> |
|||
<th>View</th> <!-- New column for the eye icon --> |
|||
</tr> |
|||
</thead> |
|||
<tbody> |
|||
<!-- Dynamic rows will be appended here by JavaScript --> |
|||
</tbody> |
|||
</table> |
|||
</div> |
|||
<div class="modal-footer"> |
|||
<button type="button" class="btn btn-secondary" data-dismiss="modal" |
|||
style="background-color:#3c4959 ;">Close</button> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
<div th:insert="~{fragments/footer :: footerFragment}"></div> |
|||
|
|||
<!-- Replace Slim jQuery with Full jQuery --> |
|||
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script> |
|||
|
|||
<!-- Popper.js (for Bootstrap tooltips, popovers, etc.) --> |
|||
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js"></script> |
|||
|
|||
<!-- Bootstrap JS --> |
|||
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script> |
|||
|
|||
<!-- Font Awesome for Icons --> |
|||
<script src="https://kit.fontawesome.com/a076d05399.js"></script> |
|||
|
|||
<script> |
|||
|
|||
|
|||
$(document).ready(function () { |
|||
// Check by complaint number |
|||
$('#check-now-btn').click(function () { |
|||
var complaintNumber = $('#complaint-number').val(); |
|||
if (complaintNumber) { |
|||
window.location.href = 'checklistofficer?complaintno=' + encodeURIComponent(complaintNumber); |
|||
} else { |
|||
alert('Please enter a complaint number.'); |
|||
} |
|||
}); |
|||
|
|||
|
|||
|
|||
}); |
|||
|
|||
|
|||
|
|||
|
|||
function toggleInput() { |
|||
const checkByComplaint = document.getElementById('c_number').checked; |
|||
const complaintInput = document.getElementById('complaint-number-input'); |
|||
const mobileInput = document.getElementById('complaint-mobile-input'); |
|||
const checkNowBtn = document.getElementById('check-now-btn'); |
|||
const checkMobileBtn = document.getElementById('check-mobile-btn'); |
|||
|
|||
if (checkByComplaint) { |
|||
complaintInput.style.display = 'block'; |
|||
checkNowBtn.style.display = 'block'; |
|||
mobileInput.style.display = 'none'; |
|||
checkMobileBtn.style.display = 'none'; |
|||
} else { |
|||
complaintInput.style.display = 'none'; |
|||
checkNowBtn.style.display = 'none'; |
|||
mobileInput.style.display = 'block'; |
|||
checkMobileBtn.style.display = 'block'; |
|||
} |
|||
} |
|||
|
|||
$(document).ready(function () { |
|||
// Trigger modal and load complaint list based on mobile number |
|||
$('#check-mobile-btn').on('click', function () { |
|||
const mobileNumber = $('#complaint-mobile').val(); // Get the entered mobile number |
|||
|
|||
if (mobileNumber === "") { |
|||
alert("Please enter a mobile number."); |
|||
return; |
|||
} |
|||
$('#loader').show(); |
|||
// AJAX request to fetch complaint details by mobile number |
|||
$.ajax({ |
|||
url: '/pgr/api/getComplaintDetailsByMobile', // Replace with your correct API path |
|||
method: 'GET', |
|||
data: {mobileNo: mobileNumber}, |
|||
success: function (response) { |
|||
$('#loader').hide(); |
|||
const complaintList = response[0]?.ComplaintListHistory; // Assuming data is inside ComplaintListHistory |
|||
|
|||
// Clear the table before adding new rows |
|||
const tableBody = $('#complaintDetailsModal tbody'); |
|||
tableBody.empty(); |
|||
|
|||
// Check if there are complaints |
|||
if (complaintList && complaintList.length > 0) { |
|||
// Loop through each complaint and add to the table |
|||
complaintList.forEach(function (complaint) { |
|||
const complaintId = complaint.complaintid || 'N/A'; // Fallback to N/A if complaintid is null |
|||
const complaintType = complaint.complainttype || 'N/A'; |
|||
|
|||
const newRow = ` |
|||
<tr> |
|||
<td>${complaintId}</td> |
|||
<td>${complaintType}</td> |
|||
|
|||
<td> |
|||
<button class="btn btn-link view-complaint" data-complaintid="${complaintId}"> |
|||
<i style="color:#3c4959" class="fa fa-eye"></i> |
|||
</button> |
|||
</td> |
|||
</tr>`; |
|||
tableBody.append(newRow); // Append the new row to the table |
|||
}); |
|||
} else { |
|||
// No complaints found for the mobile number |
|||
tableBody.append('<tr><td colspan="2">No complaints found for this mobile number.</td></tr>'); |
|||
} |
|||
|
|||
// Display the modal after fetching the data |
|||
$('#complaintDetailsModal').modal('show'); |
|||
}, |
|||
error: function (error) { |
|||
console.log('Error fetching complaints:', error); |
|||
alert('There was an error fetching the complaint details. Please try again.'); |
|||
$('#loader').hide(); |
|||
} |
|||
}); |
|||
}); |
|||
|
|||
|
|||
|
|||
|
|||
// Event delegation to handle click on dynamically generated eye icons |
|||
$(document).on('click', '.view-complaint', function () { |
|||
var complaintId = $(this).data('complaintid'); |
|||
if (complaintId) { |
|||
// Redirect to the complaint details page using complaintId |
|||
window.location.href = 'checklistofficer?complaintno=' + encodeURIComponent(complaintId); |
|||
} else { |
|||
alert('Complaint ID not found.'); |
|||
} |
|||
}); |
|||
|
|||
|
|||
}); |
|||
|
|||
</script> |
|||
<script th:src="@{/js/screenreader.js}"></script> |
|||
</body> |
|||
|
|||
</html> |
|||
|
After Width: 325 | Height: 435 | Size: 204 KiB |