1. Trang chủ
  2. » Giáo Dục - Đào Tạo

đề tài hệ thống quản lý tài nguyên thiên nhiên

69 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Hệ thống quản lý tài nguyên thiên nhiên
Tác giả Lê Văn Minh, Cao Danh Khang, Nguyễn Minh Hiếu, Trương Đức Trường, Nguyễn Như Huy
Người hướng dẫn Ths. Vũ Song Tùng
Trường học Đại Học Bách Khoa Hà Nội
Chuyên ngành Kĩ thuật phần mềm ứng dụng
Thể loại Báo Cáo Cuối Kì
Năm xuất bản 2024
Thành phố Hà Nội
Định dạng
Số trang 69
Dung lượng 2,38 MB

Cấu trúc

  • 1.1. Giớithiệuchung (9)
  • 1.2 Cáchoạtđộngtrongkhuônkhổđềtài (9)
  • 1.3 Nhữngcáclàmhiệnnay (9)
  • 1.4 Cáccôngcụđượcsửdụngtrongđềtài (9)
    • 1.4.1. Môhìnhclient-server (9)
    • 1.4.2 Back-end:JavavàSpringFramework (11)
    • 1.4.3. Front-end:HTML,CSS,JavascriptvàVuejs (12)
    • 1.4.4 Cơsởdữliệu vàhệquảntrịcơsởdữliệu (13)
  • 2.1 DFD(DataFlowDiagram) (14)
    • 2.1.1. DFDmứcngữcảnh (14)
    • 2.1.2. DFDmứcđỉnh (15)
    • 2.1.3. DFDmứcdướiđỉnh (16)
  • 2.2 FHD(FunctionHierarchyDiagram) (19)
  • 2.3 ERD(EntityRelationDiagram) (24)
  • 2.4 Kếtluận (24)
  • 3.1 Thiếtkếcơsởdữliệu (25)
    • 3.1.1. Cácthựcthểvàthuộctính (25)
    • 3.1.2. Từđiểndữliệuphaphântích (26)
    • 3.1.3. Bảngdatabase (27)
    • 3.1.4. Phathiếtkế (28)
  • 3.2 Phầncode (34)
    • 3.2.1 Đơnvịhànhchính-Administration (34)
    • 3.2.2 Ngườidùng–User (38)
    • 3.2.3 Cơsởlưutrữđộngvật–AnimalStorageFacilities (41)
    • 3.2.4 Tọađộtrênbảnđồ-CoordinatesDTO (44)
    • 3.2.5 Loàiđộngvật–AnimalSpecies (44)
    • 3.2.6 Loạibiếnđộng–Fluctuation (45)
    • 3.2.7 Thốngkêtheotháng/quý/năm (45)
    • 3.2.8 Cơsởsảnxuấtgiốngcâytrồng-PlantFacilities (52)
    • 3.2.9 Giốngcâytrồng (54)
    • 3.2.10 Cơsởsảnxuấtchếbiếngỗ-WoodFacilities (56)
    • 3.2.11 Loạihìnhsảnxuất–ProductionType (57)
    • 3.2.12 Hìnhthứchoạtđộng–OperationForm (58)
  • 3.3 Giaodiệntrựcquan (59)
    • 3.3.1 Giaodiệnđăngnhập (59)
    • 3.3.2 Giaodiệnchính (60)
    • 3.3.3 Giaodiệnquảnlýđộngvật (61)
    • 3.3.4 Giaodiệnquảnlýgiốngcâytrồng (63)
    • 3.3.5 Giaodiệnquảnlýcơsởsảnxuấtgỗ (64)
    • 3.3.6 GiaodiệnBảnđồ (66)
    • 3.3.7 Quảnlýhệthống (67)
  • 3.4 Kếtluậnchung (68)

Nội dung

Bởi vì Server - máy chủ luôn luôn trong trạng thái sẵn sàng để nhận request từ client nên chỉ cần client gửi yêu cầu tín hiệu vàchấpnhậnyêucầuđóthìserver sẽtrảkếtquả vềphíaclienttrong th

Giớithiệuchung

Bàitoánsửdụngphần mềmquảnlý→quảnlýtàinguyênnhưcsdxgiốngcâytrông,cơ sở sản xuất gỗ, cơ sở lưu trữ động vật → kiểm soát số lượng, thống kê, so sánh,….

Cáchoạtđộngtrongkhuônkhổđềtài

Nhữngcáclàmhiệnnay

Cáccôngcụđượcsửdụngtrongđềtài

Môhìnhclient-server

Mô hình Client Server là mô hình mạng máy tính trong đó các máy tính con được đóngvaitrònhưmộtmáykhách, chúnglàmnhiệmvụgửiyêucầuđếncácmáychủ.Để máy chủ xử lý yêu cầu và trả kết quả về cho máy khách đó.

TrongmôhìnhClient-Server,serverchấpnhậntấtcảcácyêucầuhợplệtừmọinơi khác nhau trên Internet, sau đó trả kết quả về máy tính đã gửi yêu cầu đó

Máy tính được coi là máy khách khi chúng làm nhiệm vụ gửi yêu cầu đến các máy chủ và đợi câu trả lời được gửi về Để máy khách và máy chủ có thể giao tiếp được với nhauthìgiữachúngphảicómộtchuẩnnhấtđịnh,vàchuẩnđóđược gọilàgiaothức.Một số giao thức được sử dụng phổ biến hiện nay như: HTTPS, TCP/IP, FTP,

Nếumáykháchmuốntruyxuấtcác thôngtintừ máychủ,chúngphải tuântheo một giaothứcmàmáychủ đóđưara.Nếuyêucầuđóđượcchấpnhậnthìmáychủsẽ thuthập thông tin và trả về kết quả cho máy khách yêu cầu Bởi vì Server - máy chủ luôn luôn trong trạng thái sẵn sàng để nhận request từ client nên chỉ cần client gửi yêu cầu tín hiệu vàchấpnhậnyêucầu đóthìserver sẽtrảkếtquả vềphíaclienttrong thờigian ngắnnhất. Ưuđiểmcủamôhình:

 Giúp chúng ta có thể làm việc trên bất kì một máy tính nào có hỗ trợ giao thức truyềnthông.Giaothứcchuẩnnàycũnggiúpcácnhàsảnxuấttíchhợplênnhiều sản phẩm khác nhau mà không gặp phải khó khăn gì.

 Có thể có nhiều server cùng làm một dịch vụ, chúng có thể nằm trên nhiều máy tính hoặc một máy tính.

 Chỉmangđặcđiểmcủaphầnmềmmàkhông hềliênquanđếnphần cứng,ngoài yêu cầu duy nhất là server phải có cấu hình cao hơn các client.

 Hỗ trợ người dùng nhiều dịch vụ đa dạng và sự tiện dụng bởi khả năng truy cập từ xa.

 Cung cấp một nền tảng lý tưởng, cho phép cung cấp tích hợp các kỹ thuật hiện đại như mô hình thiết kế hướng đối tượng, hệ chuyên gia, hệ thông tin địa lý(GIS).

 Vấnđề bảomậtdữliệuthôngtinđôikhicònchưađượcan toàndophảitrao đổi dữliệugiữa2máytínhkhácnhauở2khuvựcđịalýcáchxanhau.Vàđâycũng nhượcđiểmduynhấtcủamôhìnhnày.Tuynhiênvấnđềnàycómộtsốgiaothức đã hỗ trợ bảo mật dữ liệu khi truyền tải Giao thức được sử dụng phổ biến nhưHTTPS.

TừmôhìnhClient–Server,giớilậptrìnhviênhiệnđạiđãphântrangwebralàm hai phần để thuận tiện phát triển và quản lý: Front-end -B a c k - e n d

Phầnfront-endcủamộttrangweblàphầntươngtácvớingườidùng.Tấtcảmọithứ ta nhìn thấy khi điều hướng trên Internet, từ các font chữ, màu sắc cho tới các menu xổ xuống và các thanh trượt, là một sự kết hợp của HTML, CSS, và JavaScript được điều khiểnbởitrìnhduyệtmáytínhcủata. Đâu là những phần giúp phần front-end của một trang web có thể hoạt động được? Tất cả dữ liệu sẽ được lưu trữ ở đâu? Đó là phần việc của back end Phần back end của một trang web bao gồm một máy chủ, một ứng dụng, và một cơ sở dữ liệu Một lập trình viênback-endxâydựngvàduytrì côngnghệ màsứcmạnhcủanhữngthànhphầnđó,cho phép phần giao diện người dùng của trang web có thể tồn tại được.

Back-end:JavavàSpringFramework

Microsystems đã được Oracle mua lại vào năm 2010 Ban đầu có tên là Oak, Java được thiết kế vào năm 1991 để sử dụng trong chip nhúng cho các thiết bị điện tử Vào năm 1995, sau khi đổi tên thành Java, nó đã được thiết kế lại để phát triển ứng dụng Web.

Javađãtrở nêncựckỳ phổbiến Sự tăngtrưởngnhanhchóngvà bao phủrộngrãicủanó đến từ các đặc tính thiết kế Java đơn giản, hướng đối tượng, phân tán, diễn giải, mạnh mẽ,antoàn,khôngphụthuộckiếntrúc,diđộng,hiệusuấtcao,đaluồngvàlinhhoạt,đặc biệt Java được tạo ra với tiêu chí “Viết (code) một lần, thực thi khắp nơi” (Write Once, Run

Java là một ngôn ngữ lập trình đa chức năng, tổng quát, được sử dụng để phát triển các ứngdụngquantrọng.Ngàynay,nókhôngchỉđượcsửdụngcholậptrìnhWebmàcònđể phát triển các ứng dụng độc lập hoạt động trên nhiều nền tảng trên máy chủ, máy tính để bàn và thiết bị di động.

SpringFrameworkđượcpháttriểnvàonăm2003bởiRodJohnson.Đâylàmộttrongnhững mãnguồnmởđượcxâydựngdựatrênngônngữlậptrìnhJava.Đếnnay,Springđượchàng triệulậptrìnhviênlựachọnđểsửdụng.Nhờnómàcáclậptrìnhviêncóthểpháttriểnứng dụng Java một cách dễ dàng với tốc độ cao đáng kinh ngạc.

Spring khá nhẹ (version chỉ khoảng 2MB với kích thước nhỏ) và trong suốt (hoạt động trong suốt với lập trình viên) Spring cũng cung cấp và hỗ trợ các cơ sở hạ tầng đã được xácđịnhrõràngđểpháttriểnứngdụngtrongJava.Nóidễhiểuhơn,Springxửlýcơsởhạ tầng để bạn tập trung tối đa vào việc phát triển ứng dụng.

NhữngtínhnăngcốtlõicủaSpringphùhợpđểsửdụngởnhiềumảngkhácnhau.Nócó thể hỗ trợ tốt từ các ứng dụng mobile, desktop đến các ứng dụng Java web.

Front-end:HTML,CSS,JavascriptvàVuejs

HTMLlàviếttắtcủacụmtừHypertextMarkupLanguage(tạmdịchlàNgônngữđánh dấu siêu văn bản).HTMLđược sử dụng để tạo và cấu trúc các thành phần trong trang web hoặc ứng dụng, phân chia các đoạn văn, heading, titles, blockquotes… vàHTMLkhôngphảilàngônngữlậptrình.

MộttàiliệuHTMLđượchìnhthànhbởicácphầntửHTML(HTML Elements)đượcquy định bằng các cặp thẻ (tag và attributes) Các cặp thẻ này được bao bọc bởi một dấu ngoặcngọn (vídụ)vàthườnglàsẽđượckhaibáothànhmộtcặp,baogồmthẻmở vàthẻđóng.Vídụ,chúngtacóthể tạomộtđoạnvănbằng cáchđặt vănbảnvàotrongcặp tag mở và đóng văn bản

:

Nhưngmộtsốthẻđặc biệtlạikhôngcóthẻđóngvàdữliệuđượckhaibáosẽnằmtrong các thuộc tính (ví dụ như thẻ).

ChađẻcủaHTMLlàTimBerners-Lee,cũnglàngườikhaisinhraWorldWideWebvà chủ tịch củaWorld Wide Web Consortium(W3C – tổ chức thiết lập ra các chuẩn trên môi trường Internet) Các thiết lập và cấu trúc HTML được vận hành và phát triển bởi World Wide Web Consortium (W3C).

CSSlà chữ viết tắt của Cascading Style Sheets, nó là một ngôn ngữ được sử dụng đểtìm và định dạnglại các phần tử được tạo ra bởi các ngôn ngữ đánh dấu (HTML) Nói ngắn gọn hơn là ngôn ngữ tạo phong cách cho trang web Bạn có thể hiểu đơn giản rằng, nếu

12 cáctiêuđề,bảng,…thìCSSsẽgiúpchúngtacóthểthêmstylevàocácphầntửHTMLđó như đổi bố cục, màu sắc trang, đổi màu chữ, font chữ, thay đổi cấu trúc…

CSSđượcpháttriểnbởiW3C(WorldWideWebConsortium)vàonăm1996,vìHTML không được thiết kế để gắn tag để giúp định dạng trang web.

PhươngthứchoạtđộngcủaCSSlànósẽtìmdựavàocácvùngchọn,vùngchọncóthểlà tên một thẻ HTML, tên một ID, class hay nhiều kiểu khác Sau đó là nó sẽ áp dụng các thuộc tính cần thay đổi lên vùng chọn đó.

MốitươngquangiữaHTMLvàCSSrất mậtthiết.HTML làngôn ngữ markup(nềntảng củasite)vàCSSđịnhhìnhphongcách(tấtcảnhữnggìtạonêngiaodiệnwebsite),chúng là không thể tách rời.

GọitắtlàVue(phátâmlà/vjuː/,giốngnhưviewtrongtiếngAnh),Vue.jslà mộtframeworklinhđộngdùngđểxâydựnggiaodiệnngườidùng(userinterfaces).Khác với các framework nguyên khối (monolithic), Vue được thiết kế từ đầu theo hướng cho phép và khuyến khích việc phát triển ứng dụng theo từng bước Khi phát triển lớp giao diện(viewlayer),ngườidùngchỉcầndùngthưviệnlõi(core library) củaVue,vốnrấtdễ học và tích hợp với các thư viện hoặc dự án có sẵn Cùng lúc đó, nếu kết hợp với những kĩ thuật hiện đại nhưSFC (single file components)vàcác thư viện hỗ trợ, Vue cũng đáp ứng được dễ dàng nhu cầu xây dựng những ứng dụng một trang (SPA - Single-Page

Cơsởdữliệu vàhệquảntrịcơsởdữliệu

Cơ sở dữ liệu có tên tiếng anh là Database, viết tắt là CSDL Là một tập hợp các dữ liệucótổchức,đượclưutrữvàtruycậptừhệ thốngmáytính.Khicơsởdữliệu phứctạp hơn, chúng sẽ được phát triển bằng cách sử dụng các thiết kế và mô hình hóa hình thức Tóm lại, có sở dữ liệu là hệ thống gồm rất nhiều thông tin, dữ liệu được xây dựng theo một cấu trúc nhất định để đáp ứng nhu cầu khai thác, sử dụng của nhiều người hay chạy nhiều chương trình cùng một lúc Khi áp dụng hình thức lưu trữ này, sẽ khắc phục được những điểm yếu của việc lưu file thông thường trên máy tính Các thông tin dữ liệu đảm bảo được sự nhất quán, hạn chế được việc trùng lặp thông tin.

Từ SQL là viết tắt của cụm Structured Query Language, có nghĩa là loại ngôn ngữ truy vấncócấutrúc.Đây làmộtloạingônngữmáytínhgiúphỗtrợcácthaotáclưutrữ,truy xuất dữ liệu cùng một cơ sở dữ liệu quan hệ một cách nhanh chóng Ngôn ngữ này đã đượcANSI–việntiêuchuẩnquốcgiacủaHoaKỳđặttiêuchuẩnhóa,vàtrởthànhmột ngôn ngữ được sử dụng phổ biến.

Trongphầnnày,trìnhbàyrõràngcácbướctừthiêtkế,phântíchhệthống.Cácnộidung gồm có sơ đồ DFD (DFD mức 1, DFD mức dưới đỉnh, DFD mức đỉnh, DFD mức ngữ cảnh),sơđồFHD,sơđồERD.

DFD(DataFlowDiagram)

DFDmứcngữcảnh

DFDmứcđỉnh

DFDmứcdướiđỉnh

2.1.3.4 Chứcnăng 4: Quản lý cơ sở sảnxuất

Hình 2.8 DFD quản lý hệ thống

FHD(FunctionHierarchyDiagram)

Hình2.13Sơđồ Báo cáo thốngkê

Hình2.16Sơđồ quản lísản xuấtgỗ

ERD(EntityRelationDiagram)

Kếtluận

Nhưvậy,ởchương2,đãhoànthànhbướcphântíchthiếtkế,bao gồmvẽcáccơ đồ DFD (mức đỉnh, mức 1, mức dưới đỉnh), DFD và ERD Từ đó, có một cái nhìn tổng thể, bao quát về những gì phải làm ở bước tiếp theo – bước triển khai.

Sau khi đã phân tích, thiết kế hệ thống ở chương 2, sẽ đến bước triển khai ở chương 3 Ở chươngnày,cáccông việcbaogồmthiếtkếcơsởdữliệu (lậpcácbảngthựcthểvàthuộc tính, từ điển dữ liệu pha phân tích, bảng database, pha thiết kế); viết code và trình bày giao diện web

Thiếtkếcơsởdữliệu

Cácthựcthểvàthuộctính

Administrations code,name,surbordinate,administrativeLevel

Users username, password , firstName , lastName , avatar , email, b i r t h D a t e , a d d r e s s , i s A c t i v e , r o l e , o t p , otpGeneratedTime,administration

Facilities code,name,establishmentDate,capacity,isActive, facilitiesType,adminstration,operationType

AnimalSpecies name,animalType,image,mainFood,mainDisease, fluctuation

ProductionType id,woodType,image,capacity

PlantSeed name , type , image , soilType , mainPest , harvestingPeriod,plantSeason

Statistics id,unit,quantity,date,aggregates

Aggregates rowId,isActice,facilities ,plantSeed, animalSpecies

AccessHistory id,type,decription,username

Từđiểndữliệuphaphântích

Cấpđộhànhchính AdministrativeLevels Lưutrữtênvàcáccấpcủacấpđộ hànhchính Hànhchính Administrations Lưutrữtên,cơsởtrựcthuộc,cấp độhànhchínhcủacơsởhànhchính

Ngườidùng Users Lưu trữ các thông tin cơ bản , tên tài khoản , mật khẩu , email , vai tròvàcơsởhành chính củangười dùng

Cơsở Facilities Lưutrữcácthôngtincơbản,loại cơsở,sứcchứa,cơsởhànhchính của cơ sở

Tọađộ Coordinates Lưutrữkinhđộ,vĩđộcủatọađộ vàcơsởcó tọađộđó Loạibiếnđộng Fluctuation Lưutrữtênvàđặctrưng củaloại biếnđộng Loàiđộngvật AnimalSpecies Lưutrữcácthôngtincơbản,ảnh, loạibiếnđộngcủaloàiđộngvật Loạihìnhsảnxuất ProductionType Lưutrữcácthôngtincơbảnvàảnh củaloạihìnhsảnxuất Giốngcâytrồng PlantSeed Lưutrữcácthôngtincơbảnvàảnh củagiống câytrồng

Sốliệuthốngkê Statistics Lưutrữđơnvị,sốlượngvàngày củasốliệu thốngkê Nhómthốngkê Aggregates Môtảquanhệgiữacơsởvớigiống cây trồng, loài động vật và loại hìnhsảnxuất

Lịchsửtruycập AccessHistory Lưutrữlịchsửtruy cập củangười dùng

Bảngdatabase

Phathiếtkế

HC – cấp độ hành chính)

Giátrịmẫ u Môtả Ghichú id INT 1 MãCĐ

NOT NULL name VARCHAR 100 Tỉnh Tên

Giátrịmẫ u Môtả Ghichú code VARCHAR 50 HC2 MãHC NOT

NULL name VARCHAR 100 HàNam TênHC NOT

NULL surbordinate VARCHAR 50 HC1 Trựcth uộc

NOT NULL administrative_level INT 1 CấpđộHC NOT

Giátrịmẫ u Môtả Ghichú id INT 1 MãVT NOT

NULL name VARCHAR 100 admin TênVT NOT

Chiều dài Giátrịmẫu Môtả Ghi chú username VARCHAR 100 admin Tênđăngn hập

NOT NULL first_name VARCHAR 100 Nguyễn Họ NOT

NULL last_name VARCHAR 100 VănA Tên NOT

NULL password VARCHAR 200 Abc123 Mậtkhẩu NOT

NULL avatar VARCHAR 150 (link_avatar) Avatar NULL birth_date DATE 2023:01:15 Ngàysinh NULL address VARCHAR 100 HàNam Địachỉ NULL is_active TINYINT 1 1 Trạngthái hđ

NOT NULL role INT 1 VaitròcủaN

NOT NULL otp VARCHAR 20 123456 MãOTP NULL otp_generated_time DATE 2023:01:30

Thờigian tạo OTP mã NULL administration_code VARCHAR 50 HC1 Mãhànhc hính

Bảng3.7Cácthuộctínhbảngfacility_types(LCS–loạicơsở)

Môtả Ghichú id INT 1 MãLCS NOT

NULL name VARCHAR 100 Lưu trữ độngvật TênLCS NOT

Giátrịmẫu Môtả Ghi chú code VARCHAR 50 CS1 MãCS NOT

NULL name VARCHAR 100 Cơ sở1 TênCS NOT

NULL establishment_date DATE 2003:01:30 Ngàythàn hlập

NOT NULL capacity INT 10000 Sứcchứa NOT

NULL is_active TINYINT 1 1 Trạng thái

NOT NULL type INT 1 Loạicơ sở NOT

NULL administration_code VARCHAR 50 HC1 Mãhànhch ính

NOT NULL operation_type INT 1 Hình thứchđ NULL

Bảng3.9Cácthuộctínhbảngoperation_types(HTHĐ–hìnhthứchoạtđộng)

Môtả Ghichú id INT 1 MãHTHĐ NOT

NULL name VARCHAR 50 Dândụng Tên

NULL characteristics VARCHAR 100 Dândụng Đặctrưng NOT

Thuộctính Kiểudữliệu Chiềudài Giátrịmẫu Môtả Ghichú lat DEMICAL 1874.667 Vĩđộ NOT

NULL lng DEMICAL 869.352 Kinhđộ NOT

NULL facility_code VARCHAR 50 CS1 Mã cơ sở củatọađộ

Thuộctính Kiểudữliệu Chiềudài Giátrịmẫu Môtả Ghichú

Name VARCHAR 50 Theochukỳ TênLBĐ NOT

NULL Characteristics VARCHAR 100 BĐtheo chu kỳ Đặctrưng NOT

Bảng3.12Cácthuộctínhbảnganimal_species(LĐV–loàiđộngvật)

Chiềudài Giátrịmẫu Môtả Ghichú name VARCHAR 50 Hổ TênLĐV NOT

NULL type VARCHAR 50 ĐVănthịt KiểuLĐV NOT

NULL main_food VARCHAR 50 Thịt Thứcănchín h

NOT NULL main_disease VARCHAR 45 Sốt Bệnh chính

NOT NULL image VARCHAR 100 (link_image) Ảnh NULL fluctuation INT 1 Loạibiếnđộ ng

Bảng3.13Cácthuộctínhbảngproduction_type(LHSX–loạihìnhsảnxuất)

Chiềudài Giátrịmẫu Môtả Ghichú id INT 1 MãLHSX NOT

NULL wood_type VARCHAR 50 Gỗlim Loạigỗ NOT

NULL capacity INT 1000 Khảnăng sản xuất

NOT NULL image VARCHAR 100 (link_image) Ảnh NULL

Bảng3.14Cácthuộctínhbảngplant_seed(GCT–giốngcâytrồng)

Thuộctính Kiểudữliệu Chiều dài Giátrịmẫu Môtả Ghi chú name VARCHAR 50 Nhãn Tên

NOT NULL type VARCHAR 50 Câyănquả Kiểu

NOT NULL soil_type VARCHAR 59 Đấtmàumỡ Loạiđất NOT

NULL main_pest VARCHAR 100 Bọxít

NOT NULL harvesting_period VARCHAR 150 1tháng

NOT NULL planting_season VARCHAR 50 Mùaxuân Mùavụ NOT

NULL image VARCHAR 100 (link_image) Ảnh NULL

Thuộctính Kiểudữliệu Chiềudài Giátrịmẫu Môtả Ghichú id INT 1 MãSLTK NOT

NULL unit VARCHAR 50 Cây Đơnvị NOT

NULL quantity INT 50 Sốlượng NOT

NULL date DATE 2013:05:15 Ngày thốngkê NOT

NULL aggregates_id INT 1 Nhóm thốngkê NOT

Thuộctính Kiểudữ liệu Chiềudài Giátrị mẫu Môtả Ghichú row_id INT 1 MãNTK NOT

NULL is_active TINYINT 1 0 Trạngthái hđ

NOT NULL facility_code VARCHAR 50 CS1 Mã cơsở NOT

NULL seed_name VARCHAR 50 Nhãn Têngiống câytrổng

NOT NULL animal_name VARCHAR 50 Hổ Tênloài độngvật

NOT NULL production_type VARCHAR 50 Gỗlim Loạihình sảnxuất

Bảng3.17C á c thuộctínhaccess_history(LSTC–lịchsửtruycập)

Thuộctính Kiểudữ liệu Chiềudài Giátrị mẫu Môtả Ghichú id INT 1 MãLSTC NOT

NULL type VARCHAR 100 KiểuLSTC NOT

NULL description VARCHAR 200 Chitiết NOT

NULL username VARCHAR 100 admin Têntài khoản

Phầncode

Đơnvịhànhchính-Administration

{Administrationa d m i n i s t r a t i o n = t h i s administratio nRepository. findById(code).orElseThrow(()-> newDataNotFoundException("Notfound administrationw i t h c o d e = " + c o d e ) ) ; returnadministration;

{ Administrationa d m i n i s t r a t i o n = this.administrationRepository.findByName(name)

orElseThrow(()->newDataNotFoundException("Not found administration with name: "+ n a m e ) ) ; returnadministration;}

ListretrieveAllSubAdministr ations(Stringc o d e ) {

orElseThrow(()->newDataNotFoundException("Not found administrationw i t h c o d e = " + c o d e ) ) ; res.add(newAdministrationHierarchyResponse(tmp));fi ndChildren(res); returnres;

= administrationDTO.getAdministrativeLevelName(); if(! administration.getAdministrativeLevel().getName().equals(administrativeLevelNa m e ) ) {

findByName(administrationDTO.getAdministrativeLevelName()) orElseThrow(()->newDataNotFoundException(

+ administrationDTO.getAdministrativeLevelName())); if(administration.getAdministrativeLevel().getLev el()==1

&&a d m i n i s t r a t i o n g e t A d m i n i s t r a t i v e L e v e l ( ) g e t L e v e l ( ) ! = a d m i n i s t r a t i v e L e v e l g e t L e v e l ( ) ) { thrownew InvalidDataException("Đơn vịhành chính cấp Tỉnh không thể đổi c ấ p " );

} if(administration.getAdministrativeLevel().getLev el()==2

"ĐơnvịhànhchínhcấpPhường,Thịtrấn,Xãchỉcóthể đổic h o nhau");

= = n u l l ? "":administrationDTO.getSubordinateCode(); if(administration.getSubordinate()!=null&&

!administration.getSubordinate().getCode().equals(subordinate)){ if(administration.getAdministrativeLevel().getLevel()==1) {thrown e w InvalidDataException(

"Đơnvịhànhchính cấ pTỉnh khôngthể trựcthuộcđơnvị hànhchínhkhác");

"Khôngtìmthấyđơnvịhànhchínhvớimã:"+ subordinate)); if(administration.getAdministrativeLevel().getLevel()==2){if (subordinateAdministration.getAdministrativeLevel().getLevel()! = 1 )

"Đơn vị hành chính cấp Thành phố, Huyện chỉ có thểtrựcthuộcđơnvịhànhchínhcấptỉnh");

} if(administration.getAdministrativeLevel().getLevel()==3){if (subordinateAdministration.getAdministrativeLevel().getLevel()! = 3 )

"ĐơnvịhànhchínhcấpPhường,Thịtrấn,Xãchỉcó thểt r ự c t h u ộ c đ ơ n v ị h à n h c h í n h c ấ p t h à n h p h ố , huyện");

} administration.setName(administrationDTO.getName());administrati onministrationRepository.save(administration);returnadminis tration;

Ngườidùng–User

//Kiểmtrakíchthướcfile if(avatarFile.getSize()>10*1024*1024){//kíchthướcfilephải

newDataNotFoundException("Usernamehoặcmậtkhẩu không chính xác")); if(user.isActive() !=true||

!user.getPassword().equals(loginDTO.getPassword())){ thrownewInvalidDataException("Usernamehoặcmậtkhẩukhôngchính xác");

{Useru s e r = this.userRepository.findByEmail(resetPasswordDTO.getEmail())

Stringotp =otpUtil.generateOtp(); user.setOtp(otp);user.setOtpGeneratedTime(LocalDat eTime.now());this.userRepository.save(user);this.e mailUtil.sendOtpEmail(user.getUsername(), resetPasswordDTO.getEmail(),otp);

Useru s e r = this.userRepository.findByEmail(verifyOtpDTO.getEmail())

Stringotp =user.getOtp(); if(otp.equals(verifyOtpDTO.getOtp())

&&Duration.between(LocalDateTime.now(),u ser.getOtpGeneratedTime()).toSeconds() newDataNotFoundException("cơ sở lưu trữnày khôngc ó l o à i đ ộ n g v ậ t n à o " )); returnlistAnimalSpecies;

Loạibiếnđộng–Fluctuation

Thốngkêtheotháng/quý/năm

Hàmhỗtrợthốngkê publicL o n g g e t M o n t h Q u a n t i t y O f F a c i l i t i e s ( Stringn a m e , i n t m o n t h , i n t y e a r ) { Y e a r M o n t h yearMonth = YearMonth.of(year, month); intd a y = yearMonth.lengthOfMonth();

D a t e v a l u e O f ( l o c a l D a t e ) ; returnthis.asfAsRelationshipRepository.getMonthQuantityOfFacilities(name, date)

"Không tồntạidữliệucủa"+name +"trong tháng"+ month +"năm"+ year));

} publicl o n g g e t M o n t h Q u a n t i t y O f F a c i l i t i e s ( Stringn a m e , L o c a l D a t e d a t e ) { LocalDatedate2=this.caculateDate(date);

= Date.valueOf(date2);try{ longquantity

=this.asfAsRelationshipRepository.getMonthQuantityOfFacilitiesNew(name,date

= Date.valueOf(date2);try{ longquantity

=this.asfAsRelationshipRepository.getMonthQuantityOfFacilitiesNew(name,date

ListfacilitiesQuantities=this.asfAsRelationshipRepos itory

selectAllQuantityOfFacilities(Date.valueOf(date)); if(facilitiesQuantities.isEmpty()){ thrownewDataNotFoundException(

"Dữ liệu trongtháng "+ date.getMonthValue() + " năm

Lista l l D a t a = n e w A r r a y L i s t (); beginDate =t h i s caculateDate(beginDate); endDate= t h i s caculateDate(endDate);i f ( e n d D a t e i s A f t e r ( L o c a l

D a t e n o w ( ) ) ) { endDate= LocalDate.now(); while( b e g i n D a t e i s B e f o r e ( e n d D a t e p l u s D a y s ( 1))) {Listd a t a = this.getQuantityOfFacilitiesBeforeTime(beginDate);

= FacilitiesQuantityInMoth.builder().date(beginDate).data(data).build(); allData.add(tmp); beginDate = beginDate.plusMonths(1); beginDate =t h i s caculateDate(beginDate);

} Listdata=this.getQuantityOfFacilitiesBeforeTime(en dDate);

= FacilitiesQuantityInMoth.builder().date(endDate).data(data).build(); allData.add(tmp);

}e l s e { while( b e g i n D a t e i s B e f o r e ( e n d D a t e p l u s D a y s ( 1))) {Listd a t a = this.getQuantityOfFacilitiesBeforeTime(beginDate);

= FacilitiesQuantityInMoth.builder().date(beginDate).data(data).build(); allData.add(tmp); beginDate = beginDate.plusMonths(1); beginDate =t h i s caculateDate(beginDate);

Stringc h a n g e T o Q u a r t e r ( LocalDated a t e ) { intmonth = date.getMonthValue(); inty e a r = date.getYear(); return(month>=1&&month=4&&month=7&&month

{ LocalDatef i r s t D a y O f Q u a r t e r = date.with(date.getMonth().firstMonthOfQuarter())

with(TemporalAdjusters.lastDayOfMonth());re turnlastDayOfQuarter;

{ LocalDatef i r s t D a y O f Q u a r t e r = date.with(date.getMonth().firstMonthOfQuarter())

with(TemporalAdjusters.firstDayOfMonth());re turnfirstDayOfQuarter;

findAllFacilitiesNameBeforeTime(Date.valueOf(lastDayOfQuarter) ); for( Stringa s f : l i s t A S F )

{ longsum=0; inti=0; for(intj=1;jnewDataNotFoundException("cơ sở sản xuất này không cóg i ố n g c â y t r ồ n g n à o " )); returnplantSeeds;

Cơsởsảnxuấtchếbiếngỗ-WoodFacilities

Thêm1cơsởchếbiếngỗ publicW o o d F a c i l i t i e s a d d W o o d F a c i l i t i e s ( WoodFacilitiesDTOw o o d F a c i l i t i e s D T O , Stringcode){

WoodFacilitiesw o o d Fa ci li t i e s = n e w WoodFacilities();

=this.woodFacilitiesRepository.findById(code); if(tmp1.isPresent()){ thrownewDataAlreadyExistsException( "Đãcócơsởsảnxuấtgỗvới code="+code);

Optionaltmp2=this.woodFacilitiesRepository

findByName(woodFacilitiesDTO.getName());i f(tmp2.isPresent()){ thrownewDataAlreadyExistsException(

"Đã có cơ sở sản xuấtgỗ với tên

retrieveAdministrationByCode(woodFacilitiesDTO.getAdminstr ationCode()); woodFacilities.setAdministration(administration);

= this.getOperationFormByName(woodFacilitiesDTO.getOperationFormName()); woodFacilities.setCode(code);woodFacilities.setName(woodFacilitiesDTO.get Name()); woodFacilities.setCapacity(woodFacilitiesDTO.getCapacity());woodFacilities.se tDate(woodFacilitiesDTO.getDate());woodFacilities.setOperationForm(opera tionForm);

WoodFacilitiesw o o d F a c i l i t i e s = t h i s getWoodFacilitiesByCode(cod e);this.woodFacilitiesRepository.deleteById(woodFacilities.getCode());

Loạihìnhsảnxuất–ProductionType

Thêm1loạihìnhsảnxuất publicProductionTypeaddProductionType(ProductionTypeDTOproductionTypeDTO,Multip artFileimageFile){

=this.productionTypeRepository.findById(productionTypeDTO.getWoodType()); if(tmp.isPresent()){ thrownewDataAlreadyExistsException(

woodType(productionTypeDTO.getWoodType()) capacity(productionTypeDTO.getCapacity()) image(image)

ProductionTypeproductionType=this.getProductionTypeByWoodName(name);thi s.productionTypeRepository.deleteById(productionType.getWoodType());}

52 Truyxuấttoànbộloạihìnhsảnxuấttrong1cơsởchếbiếngỗ publicL i s t g e t A l l P r o d u c t i o n T y p e B y F a c i l i t i e s C o d e ( Stringco de)

ListproductionTypes=this.wfPtRelationshipRepository

selectAllProductionTypeByFacilitiesCode(code) orElseThrow(()->newDataNotFoundException("cơ sở sản xuất nàyk h ô n g c ó l o ạ i h ì n h s ả n x u ấ t n à o " )); returnproductionTypes;

Hìnhthứchoạtđộng–OperationForm

Optionaltmp=this.operationFormRepository.findById(operatio nFormDTO.getName()); if(tmp.isPresent()){ thrownewDataAlreadyExistsException(

name(operationFormDTO.getName()) description(operationFormDTO.getDescription()) build(); returnoperationFormRepository.save(operationForm);

Xóa1hìnhthứchoạtđộng publicvoiddeleteOperationFormByName(Stringname){try{

OperationFormoperationForm=this.getOperationFormByName(name);this.o perationFormRepository.deleteById(operationForm.getName());

}c a t c h ( Exceptione ) { thrownewInvalidDataException("Hình thức hoạt độngnày vẫn đang được sử dụngt r o n g c á c c ơ s ở " );}}

Giaodiệntrựcquan

Giaodiệnđăngnhập

Hình 3.4 Trang chủ, logo dự án

Hình 3.5 Quản lý hành chínhHình3-4Trangchủ,logodựán

Giaodiệnchính

Hình 3.6 Giao diện các loại động vật

Hình 3.7 Giao diện cơ sơ lưu trữ động vật

Giaodiệnquảnlýđộngvật

Hình 3.8 Giao diện biểu đồ thống kê tổng số lượng động vật tại các cơ sở

Hình 3.9 Giao diện các Loại cây trồng

Hình 3.10 Giao diện cơ sở sản xuất giống cây trồng

Giaodiệnquảnlýgiốngcâytrồng

Hình 3.11 Giao diện các Loại hình sản xuất gỗ

Hình 3.12 Giao diện các Hình thức hoạt động cơ sở sản xuất gỗ

Giaodiệnquảnlýcơsởsảnxuấtgỗ

Hình 3.14 Giao diện Biểu đồ tổng số lượng gỗ lưu trữ tại các cơ sở

Hình 3.13 Giao diện các Cơ sở sản xuất gỗ

Hình 3.15 Giao diện Bản đồ phân bố của các cơ sở

GiaodiệnBảnđồ

Hình 3.16 Giao diện tài khoản người dùng

Hình 3.17 Giao diện quản lý Users

Kếtluậnchung

Nhưvậy,ởphần3này, côngviệcđãđượctriểnkhaivàhoànthành.Kếtquảchorađược là một trang web với đầy đủ các tính năng như đã đưa ra ở pha phân tích thiết kế.

Trong môn học Kĩ thuật phần mêm, nhóm đã xây dựng được một hệ thống quản lý tài nguyên thiên nhiên Thông qua việc nghiên cứu phân tích, phát triển và triển khai hệ thống,nhómđãcó kiếnthứcvềcácbướcphân tíchvấnđề;cácphathiếtkế,triểnkhaihệ thống; có khả năng sử dụng những công cụ lập trình hiện nay như JavaScript, Java, HTML, CSS, Spring Framework Ngoài ra là kĩ năng quản lý dự án mềm, teamwork, cáchviếtbáocáo,thuyếttrình.

Hệthốngđượcxâydựngđãđápứngđượchầuhếtcácyêucầuđặtra banđầu.Hệ thống đã được đặt thử nghiệm tại địa chỉ:tại đây(Liên hệ với nhóm để được cấp tài khoản) Tuy nhiên hệ thống còn một vài hạn chế như sau:

 Giaodiệnhệthốngcònđơngiản,chưathểsosánhvớinhữngtrangwebđược thực hiện bởi các công ty outsource có tiếng

Ngày đăng: 15/07/2024, 16:28

HÌNH ẢNH LIÊN QUAN

Hình 2-1.DFDmứcngữcảnh - đề tài hệ thống quản lý tài nguyên thiên nhiên
Hình 2 1.DFDmứcngữcảnh (Trang 14)
Hình 2-3DFDquảnlíhànhchính - đề tài hệ thống quản lý tài nguyên thiên nhiên
Hình 2 3DFDquảnlíhànhchính (Trang 16)
Hình 2-4DFDvềquản lýđộngvật - đề tài hệ thống quản lý tài nguyên thiên nhiên
Hình 2 4DFDvềquản lýđộngvật (Trang 16)
Hình 2-5 DFDquảnlýgiống câytrồng - đề tài hệ thống quản lý tài nguyên thiên nhiên
Hình 2 5 DFDquảnlýgiống câytrồng (Trang 17)
Hình 2-6 DFDquảnlýcơsởsảnxuất - đề tài hệ thống quản lý tài nguyên thiên nhiên
Hình 2 6 DFDquảnlýcơsởsảnxuất (Trang 17)
Hình 2.8 DFD quản lý hệ thống - đề tài hệ thống quản lý tài nguyên thiên nhiên
Hình 2.8 DFD quản lý hệ thống (Trang 18)
Hình 2.19SơđồERD - đề tài hệ thống quản lý tài nguyên thiên nhiên
Hình 2.19 SơđồERD (Trang 24)
Hình 3.4 Trang chủ, logo dự án - đề tài hệ thống quản lý tài nguyên thiên nhiên
Hình 3.4 Trang chủ, logo dự án (Trang 60)
Hình 3.5 Quản lý hành chínhHình3-4Trangchủ,logodựán - đề tài hệ thống quản lý tài nguyên thiên nhiên
Hình 3.5 Quản lý hành chínhHình3-4Trangchủ,logodựán (Trang 60)
Hình 3.6 Giao diện các loại động vật - đề tài hệ thống quản lý tài nguyên thiên nhiên
Hình 3.6 Giao diện các loại động vật (Trang 61)
Hình 3.7 Giao diện cơ sơ lưu trữ động vật - đề tài hệ thống quản lý tài nguyên thiên nhiên
Hình 3.7 Giao diện cơ sơ lưu trữ động vật (Trang 61)
Hình 3.8 Giao diện biểu đồ thống kê tổng số lượng động vật tại các cơ sở - đề tài hệ thống quản lý tài nguyên thiên nhiên
Hình 3.8 Giao diện biểu đồ thống kê tổng số lượng động vật tại các cơ sở (Trang 62)
Hình 3.9 Giao diện các Loại cây trồng - đề tài hệ thống quản lý tài nguyên thiên nhiên
Hình 3.9 Giao diện các Loại cây trồng (Trang 63)
Hình 3.10 Giao diện cơ sở sản xuất giống cây trồng - đề tài hệ thống quản lý tài nguyên thiên nhiên
Hình 3.10 Giao diện cơ sở sản xuất giống cây trồng (Trang 63)
Hình 3.11 Giao diện các Loại hình sản xuất gỗ - đề tài hệ thống quản lý tài nguyên thiên nhiên
Hình 3.11 Giao diện các Loại hình sản xuất gỗ (Trang 64)
Hình 3.14 Giao diện Biểu đồ tổng số lượng gỗ lưu trữ tại các cơ sở - đề tài hệ thống quản lý tài nguyên thiên nhiên
Hình 3.14 Giao diện Biểu đồ tổng số lượng gỗ lưu trữ tại các cơ sở (Trang 65)
Hình 3.13 Giao diện các Cơ sở sản xuất gỗ - đề tài hệ thống quản lý tài nguyên thiên nhiên
Hình 3.13 Giao diện các Cơ sở sản xuất gỗ (Trang 65)
Hình 3.15 Giao diện Bản đồ phân bố của các cơ sở - đề tài hệ thống quản lý tài nguyên thiên nhiên
Hình 3.15 Giao diện Bản đồ phân bố của các cơ sở (Trang 66)
Hình 3.16 Giao diện tài khoản người dùng - đề tài hệ thống quản lý tài nguyên thiên nhiên
Hình 3.16 Giao diện tài khoản người dùng (Trang 67)
Hình 3.17 Giao diện quản lý Users - đề tài hệ thống quản lý tài nguyên thiên nhiên
Hình 3.17 Giao diện quản lý Users (Trang 67)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w