Design and implementation of decoration acceptance management system based on javaspringboot + mybatis + layui

Time:2022-1-23

Author home page:Li Yangyong

Introduction: a high-quality creator in Java field and a public author of [Java Li Yang Yong] ✌ Resume template, learning materials, interview question bank [pay attention to me and give it to you]

🍅At the end of the article, get the source code, contact and send the book🍅

preface:

With the progress of society and the development of science and technology, more and more people pursue novel, unique and practical living, working and learning environment. Therefore, in today’s architectural decoration engineering, we should not only consider the needs of customers and the coordination and unity with the building structure, but also consider the cost and construction organization arrangement. Therefore, modern decoration engineering is a relatively cumbersome but must be done well. While completing the work content with quality and quantity, we should also ensure the standard data of construction acceptance, basically understand various process flows and characteristics in the construction process through learning java related development knowledge for a period of time, and simply make a decoration acceptance management system by using javaspringboot + layui, which is suitable for simple learning and reference.

Main design:

  1. Hydropower acceptance

Main functions:

(1) List query

Functions: query, add, modify, delete and export.

Query fields: serial number, project name, project type, project address, entered by, entered date, person in charge of the site, designer, supervisor, contract amount, construction date, end date, material brand, construction personnel, appraisal results and remarks.

(2) Business document

Function: add hydropower assessment content

Operation fields: project name, project type, project address, input person, input date, person in charge of the site, designer, supervisor, contract amount, construction date, end date, material brand, construction personnel, assessment results and remarks.

  1. Bricklayer acceptance

(1) List query

Functions: query, add, modify, delete and export.

Query fields: serial number, project name, project type, project address, entered by, entered date, person in charge of the site, designer, supervisor, contract amount, construction date, end date, material brand, construction personnel, appraisal results and remarks.

(2) Business document

Function: add bricklayer assessment content

Operation fields: project name, project type, project address, input person, input date, person in charge of the site, designer, supervisor, contract amount, construction date, end date, material brand, construction personnel, assessment results and remarks.

  1. Woodworking acceptance

(1) List query

Functions: query, add, modify, delete and export.

Query fields: serial number, project name, project type, project address, entered by, entered date, person in charge of the site, designer, supervisor, contract amount, construction date, end date, material brand, construction personnel, appraisal results and remarks.

(2) Business document

Function: add carpentry assessment content

Operation fields: project name, project type, project address, input person, input date, person in charge of the site, designer, supervisor, contract amount, construction date, end date, material brand, construction personnel, assessment results and remarks.

  1. Painter acceptance

(1) List query

Functions: query, add, modify, delete and export.

Query fields: serial number, project name, project type, project address, entered by, entered date, person in charge of the site, designer, supervisor, contract amount, construction date, end date, material brand, construction personnel, appraisal results and remarks.

(2) Business document

Function: add paint assessment content

Operation fields: project name, project type, project address, input person, input date, person in charge of the site, designer, supervisor, contract amount, construction date, end date, material brand, construction personnel, assessment results and remarks.

  1. Acceptance after construction

(1) List query

Functions: query, add, modify, delete and export.

Query fields: serial number, project name, project type, project address, entered by, entered date, person in charge of the site, designer, supervisor, contract amount, construction date, end date, material brand, construction personnel, appraisal results and remarks.

(2) Business document

Function: add construction end assessment content

Operation fields: project name, project type, project address, input person, input date, person in charge of the site, designer, supervisor, contract amount, construction date, end date, material brand, construction personnel, assessment results and remarks.

Function screenshot:

Administrator login:

Design and implementation of decoration acceptance management system based on javaspringboot + mybatis + layui

System home page:

Design and implementation of decoration acceptance management system based on javaspringboot + mybatis + layui

User management:Design and implementation of decoration acceptance management system based on javaspringboot + mybatis + layui

Design and implementation of decoration acceptance management system based on javaspringboot + mybatis + layui

Role management:

Design and implementation of decoration acceptance management system based on javaspringboot + mybatis + layui

Menu management:

Design and implementation of decoration acceptance management system based on javaspringboot + mybatis + layui

SQL monitoring:

Design and implementation of decoration acceptance management system based on javaspringboot + mybatis + layuiHydropower acceptance:

Design and implementation of decoration acceptance management system based on javaspringboot + mybatis + layui

Design and implementation of decoration acceptance management system based on javaspringboot + mybatis + layui

Data export:Design and implementation of decoration acceptance management system based on javaspringboot + mybatis + layui

Woodworking acceptance:

Design and implementation of decoration acceptance management system based on javaspringboot + mybatis + layui

Design and implementation of decoration acceptance management system based on javaspringboot + mybatis + layui

Change Password:

Design and implementation of decoration acceptance management system based on javaspringboot + mybatis + layui

Code implementation:

Decoration acceptance controller:

@RestController
@RequestMapping("/sys/ysWater")
public class YsWaterController extends AbstractController {
    @Autowired
    private YsWaterService ysWaterervice;

    @Autowired
    private YsWaterServiceImpl ysWaterServiceImpl;
    @RequestMapping("/waterList")
    public R waterList(@RequestParam Map<String, Object> params){
        params. Put ("ystype", "hydropower decoration acceptance");
        PageUtils page = ysWaterervice.queryPage(params);
        return R.ok().put("page", page);
    }
    @RequestMapping("/waterDjList")
    public R waterDjList(@RequestParam Map<String, Object> params){
        params. Put ("ystype", "water and electricity business document");
        PageUtils page = ysWaterervice.queryPage(params);
        return R.ok().put("page", page);
    }

    @RequestMapping("/wgList")
    public R wgList(@RequestParam Map<String, Object> params){
        params. Put ("ystype", "bricklayer decoration acceptance");
        PageUtils page = ysWaterervice.queryPage(params);
        return R.ok().put("page", page);
    }

    @RequestMapping("/wgDjList")
    public R wgDjList(@RequestParam Map<String, Object> params){
        params. Put ("ystype", "bricklayer business document");
        PageUtils page = ysWaterervice.queryPage(params);
        return R.ok().put("page", page);
    }

    @RequestMapping("/mgList")
    public R mgList(@RequestParam Map<String, Object> params){
        params. Put ("ystype", "woodworking decoration acceptance");
        PageUtils page = ysWaterervice.queryPage(params);
        return R.ok().put("page", page);
    }
    @RequestMapping("/mgDjList")
    public R mgDjList(@RequestParam Map<String, Object> params){
        params. Put ("ystype", "woodworking business document");
        PageUtils page = ysWaterervice.queryPage(params);
        return R.ok().put("page", page);
    }
    @RequestMapping("/yqgList")
    public R yqgList(@RequestParam Map<String, Object> params){
        params. Put ("ystype", "painter decoration acceptance");
        PageUtils page = ysWaterervice.queryPage(params);
        return R.ok().put("page", page);
    }

    @RequestMapping("/yqgDjList")
    public R yqgDjList(@RequestParam Map<String, Object> params){
        params. Put ("ystype", "painter business document");
        PageUtils page = ysWaterervice.queryPage(params);
        return R.ok().put("page", page);
    }
    @RequestMapping("/sgjsList")
    public R sgjsList(@RequestParam Map<String, Object> params){
        params. Put ("ystype", "construction completion acceptance");
        PageUtils page = ysWaterervice.queryPage(params);
        return R.ok().put("page", page);
    }

    @RequestMapping("/sgjsDjList")
    public R sgjsDjList(@RequestParam Map<String, Object> params){
        params. Put ("ystype", "construction completion business document");
        PageUtils page = ysWaterervice.queryPage(params);
        return R.ok().put("page", page);
    }

    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        YsWater ysWater = ysWaterervice.getById(id);
        return R.ok().put("ysWater", ysWater);
    }
    @RequestMapping("/export")
    public R save(HttpServletResponse response, HttpServletRequest request){
        try {
            ysWaterServiceImpl.outExcelByMealOrReserve(getParametersMap(request),response);
        } catch (Exception e) {
            e.printStackTrace();
        }

        return R.ok();
    }


    /**
     *Assemble all parameters into a map
     * @return
     */
    private   Map<String, String> getParametersMap(HttpServletRequest request) throws UnsupportedEncodingException {
        Map<String, String> map = new HashMap<String, String>();
        Enumeration<String> paramNames = request.getParameterNames();
        String encoding = request.getCharacterEncoding();
        while (paramNames.hasMoreElements()) {
            String paramName = paramNames.nextElement();

            String[] paramValues = request.getParameterValues(paramName);
            if (paramValues.length == 1) {
                String paramValue = paramValues[0];
                if (paramValue.length() != 0) {
                    if (!encoding.toUpperCase().equals("UTF-8")) {
                        map.put(paramName, new String(paramValue.getBytes("ISO-8859-1"),"UTF-8"));
                    } else {
                        map.put(paramName, paramValue);
                    }
                }
            }
        }
        return map;
    }

    @RequestMapping("/save")
    public R save(@RequestBody YsWater ysWater){
        ysWaterervice.save(ysWater);
        return R.ok();
    }
    @RequestMapping("/update")
    public R update(@RequestBody YsWater ysWater){
        ysWaterervice.updateById(ysWater);
        return R.ok();
    }
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        ysWaterervice.removeByIds(Arrays.asList(ids));
        return R.ok();
    }
}

User permission interception and release:

/**
 *Shiro's profile
 *
 */
@Configuration
public class ShiroConfig {

    /**
     *In a stand-alone environment, the session is managed by Shiro
     */
    @Bean
    @ConditionalOnProperty(prefix = "renren", name = "cluster", havingValue = "false")
    public DefaultWebSessionManager sessionManager(@Value("${renren.globalSessionTimeout:3600}") long globalSessionTimeout){
        DefaultWebSessionManager sessionManager = new DefaultWebSessionManager();
        sessionManager.setSessionValidationSchedulerEnabled(true);
        sessionManager.setSessionIdUrlRewritingEnabled(false);
        sessionManager.setSessionValidationInterval(globalSessionTimeout * 1000);
        sessionManager.setGlobalSessionTimeout(globalSessionTimeout * 1000);

        return sessionManager;
    }

    /**
     *In the cluster environment, the session is managed by spring session
     */
    @Bean
    @ConditionalOnProperty(prefix = "renren", name = "cluster", havingValue = "true")
    public ServletContainerSessionManager servletContainerSessionManager() {
        return new ServletContainerSessionManager();
    }

    @Bean("securityManager")
    public SecurityManager securityManager(UserRealm userRealm, SessionManager sessionManager) {
        DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
        securityManager.setCacheManager(new EhCacheManager());
        securityManager.setRealm(userRealm);
        securityManager.setSessionManager(sessionManager);
        securityManager.setRememberMeManager(null);

        return securityManager;
    }


    @Bean("shiroFilter")
    public ShiroFilterFactoryBean shiroFilter(SecurityManager securityManager) {
        ShiroFilterFactoryBean shiroFilter = new ShiroFilterFactoryBean();
        shiroFilter.setSecurityManager(securityManager);
        shiroFilter.setLoginUrl("/login.html");
        shiroFilter.setUnauthorizedUrl("/");

        Map<String, String> filterMap = new LinkedHashMap<>();
        filterMap.put("/swagger/**", "anon");
        filterMap.put("/v2/api-docs", "anon");
        filterMap.put("/swagger-ui.html", "anon");
        filterMap.put("/webjars/**", "anon");
        filterMap.put("/swagger-resources/**", "anon");

        filterMap.put("/statics/**", "anon");
        filterMap.put("/login.html", "anon");
        filterMap.put("/sys/login", "anon");
        filterMap.put("/favicon.ico", "anon");
        filterMap.put("/captcha.jpg", "anon");
        filterMap.put("/**", "authc");
        shiroFilter.setFilterChainDefinitionMap(filterMap);

        return shiroFilter;
    }

    @Bean("lifecycleBeanPostProcessor")
    public LifecycleBeanPostProcessor lifecycleBeanPostProcessor() {
        return new LifecycleBeanPostProcessor();
    }

    @Bean
    public AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(SecurityManager securityManager) {
        AuthorizationAttributeSourceAdvisor advisor = new AuthorizationAttributeSourceAdvisor();
        advisor.setSecurityManager(securityManager);
        return advisor;
    }
}

Database design:

Database name:renren_zxys

Document version:V1.0.0

Document description:Decoration acceptance database table design description

Table sys_ Config (system configuration information table)

number

name

data type

length

Decimal places

Null value allowed

Primary key

explain

1

id

bigint

20

0

N

Y

2

param_key

varchar

50

0

Y

N

key

3

param_value

varchar

2000

0

Y

N

value

4

status

tinyint

4

0

Y

N

Status} 0: hide} 1: Show

5

remark

varchar

500

0

Y

N

remarks

Table sys_ Dept (Department Management)

number

name

data type

length

Decimal places

Null value allowed

Primary key

explain

1

dept_id

bigint

20

0

N

Y

2

parent_id

bigint

20

0

Y

N

Parent department ID, first level department is 0

3

name

varchar

50

0

Y

N

Department name

4

order_num

int

10

0

Y

N

sort

5

del_flag

tinyint

4

0

Y

N

Delete – 1: deleted 0: normal

Table sys_ Dict (data dictionary table)

number

name

data type

length

Decimal places

Null value allowed

Primary key

explain

1

id

bigint

20

0

N

Y

2

name

varchar

100

0

N

N

Dictionary name

3

type

varchar

100

0

Y

N

Dictionary type

4

code

varchar

100

0

Y

N

Dictionary code

5

value

varchar

1000

0

Y

N

Dictionary value

6

order_num

int

10

0

Y

N

sort

7

remark

varchar

255

0

Y

N

remarks

8

del_flag

tinyint

4

0

Y

N

Delete tag – 1: deleted 0: normal

Table sys_ Log (system log)

number

name

data type

length

Decimal places

Null value allowed

Primary key

explain

1

id

bigint

20

0

N

Y

2

username

varchar

50

0

Y

N

user name

3

operation

varchar

50

0

Y

N

User operation

4

method

varchar

200

0

Y

N

Request method

5

params

varchar

5000

0

Y

N

Request parameters

6

time

bigint

20

0

N

N

Execution time (MS)

7

ip

varchar

64

0

Y

N

IP address

8

create_date

datetime

19

0

Y

N

Creation time

Table sys_ Menu (menu management)

number

name

data type

length

Decimal places

Null value allowed

Primary key

explain

1

menu_id

bigint

20

0

N

Y

2

parent_id

bigint

20

0

Y

N

Parent menu ID, first level menu is 0

3

name

varchar

50

0

Y

N

Menu name

4

url

varchar

200

0

Y

N

Menu URL

5

perms

varchar

500

0

Y

N

Authorization (multiple are separated by commas, such as user: list, user: create)

6

type

int

10

0

Y

N

Type 0: Catalog 1: menu 2: button

7

icon

varchar

50

0

Y

N

Menu icon

8

order_num

int

10

0

Y

N

sort

Table sys_ Role

number

name

data type

length

Decimal places

Null value allowed

Primary key

explain

1

role_id

bigint

20

0

N

Y

2

role_name

varchar

100

0

Y

N

Role name

3

remark

varchar

100

0

Y

N

remarks

4

dept_id

bigint

20

0

Y

N

Department ID

5

create_time

datetime

19

0

Y

N

Creation time

Table sys_ role_ Dept (corresponding relationship between role and department)

number

name

data type

length

Decimal places

Null value allowed

Primary key

explain

1

id

bigint

20

0

N

Y

2

role_id

bigint

20

0

Y

N

Role ID

3

dept_id

bigint

20

0

Y

N

Department ID

Table sys_ role_ Menu (corresponding relationship between role and menu)

number

name

data type

length

Decimal places

Null value allowed

Primary key

Default value

explain

1

id

bigint

20

0

N

Y

2

role_id

bigint

20

0

Y

N

Role ID

3

menu_id

bigint

20

0

Y

N

Menu ID

Table sys_ User (system user)

number

name

data type

length

Decimal places

Null value allowed

Primary key

explain

1

user_id

bigint

20

0

N

Y

2

username

varchar

50

0

N

N

user name

3

password

varchar

100

0

Y

N

password

4

salt

varchar

20

0

Y

N

salt

5

email

varchar

100

0

Y

N

mailbox

6

mobile

varchar

100

0

Y

N

cell-phone number

7

status

tinyint

4

0

Y

N

Status # 0: disabled # 1: normal

8

dept_id

bigint

20

0

Y

N

Department ID

9

create_time

datetime

19

0

Y

N

Creation time

Table sys_ user_ Role (corresponding relationship between user and role)

number

name

data type

length

Decimal places

Null value allowed

Primary key

explain

1

id

bigint

20

0

N

Y

2

user_id

bigint

20

0

Y

N

User ID

3

role_id

bigint

20

0

Y

N

Role ID

Table YS_ water

number

name

data type

length

Decimal places

Null value allowed

Primary key

explain

1

id

int

10

0

N

Y

2

name

varchar

255

0

Y

N

entry name

3

xm_type

varchar

255

0

Y

N

Project type

4

xm_dizhi

varchar

255

0

Y

N

Project address

5

username

varchar

255

0

Y

N

Entered by

6

lr_time

datetime

19

0

Y

N

Entry date

7

gz_username

varchar

255

0

Y

N

Site leader

8

sjs

varchar

255

0

Y

N

designer

9

jlry

varchar

255

0

Y

N

Supervision personnel

10

money

varchar

255

0

Y

N

11

sg_time

datetime

19

0

Y

N

12

js_time

datetime

19

0

Y

N

13

clpp

varchar

255

0

Y

N

Material brand

14

sg_username

varchar

255

0

Y

N

Construction personnel

15

khjg

varchar

255

0

Y

N

Assessment results

16

remark

varchar

255

0

Y

N

17

ys_type

varchar

255

0

Y

N

Acceptance type (water and electricity bricklayer, carpenter, painter)

Personal summary:

After the recent mastery and learning of java object-oriented programming, front-end knowledge and Java framework, as well as the development of this education and teaching system during this period, I have better understood the importance of java learning. In developing which system this system is, I have completed many experiments and functional tests of the land management platform. During the system development and learning stage, I learned that I am familiar with Java, and then I can independently use relevant technologies. I found that it does have many conveniences, such as Java integrates abstraction and encapsulation, inheritance and polymorphism, The functions of code reuse and code expansion are realized, and the speed and efficiency of the overall software development are improved. For example, when the administrator adds a user, it reports Java Lang.nullpointexception. Solution: check the console print information, find that relevant information is not filled in when adding, and report to Java Lang.nullpointexception, the data item with empty user information found through power-off debugging, the user’s complete relevant information must be filled in when saving at the front end, or the database setting field can be empty. The main purpose of learning program design is to improve the key skills and technologies of program solutions to my actual problems.

Source code acquisition:

EverybodyLike, collect, follow and commentAhsee👇🏻👇🏻👇🏻WeChat official account for contact information👇🏻👇🏻👇🏻

Punch in article update156 / 365 days

Recommended subscription for wonderful column:stayColumn below👇🏻👇🏻👇🏻👇🏻

Excellent practical case of Java project “100 sets”

Web front end final homework web page practice “100 sets”

Fans in the review area are pumping books

You are welcome to put forward your opinions and suggestions in the comment area! (three high-quality comments and praise books are sent, and the physical picture is as follows)

                                         Design and implementation of decoration acceptance management system based on javaspringboot + mybatis + layui

 Content introduction:

Java multithreading and big data processing practice explains the data processing of Java multithreading and mainstream big data middleware in detail. This book mainly talks about Java’s thread creation method and thread life cycle, which is convenient for us to manage multi-threaded thread groups and thread pools, set thread priorities, set guard threads, learn multi-threaded concurrent, synchronous and asynchronous operations, and understand Java’s multi-threaded concurrent processing tools (such as semaphores and multi-threaded counters). At the same time, the book also introduces spring boot, spring batch, quartz, Kafka and other big data middleware. This provides a good reference for readers learning java multithreading and big data processing. Multithreading and big data processing are the knowledge points that are easy to be asked in many development job interviews. Some important job interviews of front-line development will take multithreading as the final question or important investigation point. Therefore, learning many thread knowledge points is very useful for future development work and interview preparation for front-line development positions.
This book is not only suitable for students majoring in Computer Science in Colleges and universities, but also suitable for junior and intermediate developers engaged in software development related industries

JD self purchase link:

Java multithreading and big data processing practice (Li Jianping) [trial reading of Abstract book review] – Jingdong book

Dangdang self operated purchase link:

Java multithreading and big data processing (Li Jianping) [introduction book review online reading] – Dangdang book

Recommended Today

SuperMap GIS Service acceleration solution

###1. brief introductionSuperMapIn addition to generating a cache for the content requested by the user, the map cache produced in iserver can also be pushed to Iexpress through intelligent cache distribution. Therefore, the service request of the client can be directly responded by Iexpress, so as to improve the service efficiency.####1.1SuperMap acceleration scheme consists of […]