Детальный дизайн и реализация системы управления приемкой декораций на базе javaSpringboot+mybatis+layui

Spring Boot задняя часть MySQL
Детальный дизайн и реализация системы управления приемкой декораций на базе javaSpringboot+mybatis+layui

​ «Это первый раз, когда я участвовал в более сложном тексте 2022 года на второй день, чтобы увидеть подробности события:Вызов первого обновления 2022 г."

Предисловие:

С прогрессом общества и развитием науки и техники все больше и больше людей ищут новые, уникальные и практичные условия для жизни, работы и обучения. Поэтому в современном архитектурно-декорационном проектировании необходимо учитывать потребности заказчиков, согласование и единство со строительной конструкцией, а также стоимость и организацию строительной организации. быть сделано. При выполнении содержания работы с качеством и количеством также необходимо обеспечить различные стандартные данные для приемки строительства, и в течение периода изучения знаний о разработке, связанных с Java, у меня есть базовое понимание различных технологических процессов и характеристик в строительстве. Процесс с использованием Java Springboot + layui — это просто система управления приемкой украшений, подходящая для простого обучения и использования в качестве справочного материала.

Основной дизайн:

  1. Приемка гидроэнергетики

Основная функция:

(1) Запрос списка

Функция: запрос, добавление, изменение, удаление, экспорт.

Поля запроса: серийный номер, название проекта, тип проекта, адрес проекта, входное лицо, дата ввода, руководитель участка, проектировщик, руководитель, сумма контракта, дата строительства, дата окончания, марка материала, строительный персонал, результаты оценки, замечания.

(2) Деловые документы

Функция: добавить содержание оценки воды и электричества

Рабочие поля: название проекта, тип проекта, адрес проекта, входное лицо, дата ввода, лицо, ответственное за объект, проектировщик, руководитель, сумма контракта, дата строительства, дата окончания, марка материала, строительный персонал, результат оценки, примечания.

  1. Приемка каменщика

(1) Запрос списка

Функция: запрос, добавление, изменение, удаление, экспорт.

Поля запроса: серийный номер, название проекта, тип проекта, адрес проекта, входное лицо, дата ввода, руководитель участка, проектировщик, руководитель, сумма контракта, дата строительства, дата окончания, марка материала, строительный персонал, результаты оценки, замечания.

(2) Деловые документы

Функция: добавление содержимого оценки каменщика.

Рабочие поля: название проекта, тип проекта, адрес проекта, входное лицо, дата ввода, лицо, ответственное за объект, проектировщик, руководитель, сумма контракта, дата строительства, дата окончания, марка материала, строительный персонал, результат оценки, примечания.

  1. Приемка деревообработки

(1) Запрос списка

Функция: запрос, добавление, изменение, удаление, экспорт.

Поля запроса: серийный номер, название проекта, тип проекта, адрес проекта, входное лицо, дата ввода, руководитель участка, проектировщик, руководитель, сумма контракта, дата строительства, дата окончания, марка материала, строительный персонал, результаты оценки, замечания.

(2) Деловые документы

Функция: добавить контент для оценки деревообработки.

Рабочие поля: название проекта, тип проекта, адрес проекта, входное лицо, дата ввода, лицо, ответственное за объект, проектировщик, руководитель, сумма контракта, дата строительства, дата окончания, марка материала, строительный персонал, результат оценки, примечания.

  1. Принятие художника

(1) Запрос списка

Функция: запрос, добавление, изменение, удаление, экспорт.

Поля запроса: серийный номер, название проекта, тип проекта, адрес проекта, входное лицо, дата ввода, руководитель участка, проектировщик, руководитель, сумма контракта, дата строительства, дата окончания, марка материала, строительный персонал, результаты оценки, замечания.

(2) Деловые документы

Функция: добавление содержания оценки краски.

Рабочие поля: название проекта, тип проекта, адрес проекта, входное лицо, дата ввода, лицо, ответственное за объект, проектировщик, руководитель, сумма контракта, дата строительства, дата окончания, марка материала, строительный персонал, результат оценки, примечания.

  1. Приемка окончания строительства

(1) Запрос списка

Функция: запрос, добавление, изменение, удаление, экспорт.

Поля запроса: серийный номер, название проекта, тип проекта, адрес проекта, входное лицо, дата ввода, руководитель участка, проектировщик, руководитель, сумма контракта, дата строительства, дата окончания, марка материала, строительный персонал, результаты оценки, замечания.

(2) Деловые документы

Функция: добавление контента для оценки окончания строительства.

Рабочие поля: название проекта, тип проекта, адрес проекта, входное лицо, дата ввода, лицо, ответственное за объект, проектировщик, руководитель, сумма контракта, дата строительства, дата окончания, марка материала, строительный персонал, результат оценки, примечания.

Функциональный скриншот:

Логин администратора:

Домашняя страница системы:

Управление пользователями:

Управление ролями:

Управление меню:

Мониторинг SQL:

Приемка воды и электричества:

Вывод данных:

Деревообрабатывающее принятие:

изменить пароль:

Код:

Контролер приемки украшений:


@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","水电装修验收");
        PageUtils page = ysWaterervice.queryPage(params);
        return R.ok().put("page", page);
    }
    @RequestMapping("/waterDjList")
    public R waterDjList(@RequestParam Map<String, Object> params){
        params.put("ysType","水电业务单据");
        PageUtils page = ysWaterervice.queryPage(params);
        return R.ok().put("page", page);
    }

    @RequestMapping("/wgList")
    public R wgList(@RequestParam Map<String, Object> params){
        params.put("ysType","瓦工装修验收");
        PageUtils page = ysWaterervice.queryPage(params);
        return R.ok().put("page", page);
    }

    @RequestMapping("/wgDjList")
    public R wgDjList(@RequestParam Map<String, Object> params){
        params.put("ysType","瓦工业务单据");
        PageUtils page = ysWaterervice.queryPage(params);
        return R.ok().put("page", page);
    }

    @RequestMapping("/mgList")
    public R mgList(@RequestParam Map<String, Object> params){
        params.put("ysType","木工装修验收");
        PageUtils page = ysWaterervice.queryPage(params);
        return R.ok().put("page", page);
    }
    @RequestMapping("/mgDjList")
    public R mgDjList(@RequestParam Map<String, Object> params){
        params.put("ysType","木工业务单据");
        PageUtils page = ysWaterervice.queryPage(params);
        return R.ok().put("page", page);
    }
    @RequestMapping("/yqgList")
    public R yqgList(@RequestParam Map<String, Object> params){
        params.put("ysType","油漆工装修验收");
        PageUtils page = ysWaterervice.queryPage(params);
        return R.ok().put("page", page);
    }

    @RequestMapping("/yqgDjList")
    public R yqgDjList(@RequestParam Map<String, Object> params){
        params.put("ysType","油漆工业务单据");
        PageUtils page = ysWaterervice.queryPage(params);
        return R.ok().put("page", page);
    }
    @RequestMapping("/sgjsList")
    public R sgjsList(@RequestParam Map<String, Object> params){
        params.put("ysType","施工结束验收");
        PageUtils page = ysWaterervice.queryPage(params);
        return R.ok().put("page", page);
    }

    @RequestMapping("/sgjsDjList")
    public R sgjsDjList(@RequestParam Map<String, Object> params){
        params.put("ysType","施工结束业务单据");
        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();
    }


    /**
     * 将所有参数组装成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();
    }
}

Разрешение пользователя на блокировку и освобождение:


/**
 * Shiro的配置文件
 *
 */
@Configuration
public class ShiroConfig {

    /**
     * 单机环境,session交给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;
    }

    /**
     * 集群环境,session交给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;
    }
}

Дизайн базы данных:

**Имя базы данных: **renren_zxys

**Версия документации: **V1.0.0

**Описание документа:**Описание дизайна таблицы базы данных приемки ремонта

Таблица sys_config (таблица информации о конфигурации системы)

Нумерация название тип данных длина Десятичные разряды разрешить нули первичный ключ инструкция
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 Статус 0: Скрыт 1: Показан
5 remark varchar 500 0 Y N Примечание

Таблица sys_dept (управление отделом)

Нумерация название тип данных длина Десятичные разряды разрешить нули первичный ключ инструкция
1 dept_id bigint 20 0 N Y
2 parent_id bigint 20 0 Y N ID отдела верхнего уровня, отдела первого уровня 0
3 name varchar 50 0 Y N Название отдела
4 order_num int 10 0 Y N Сортировать
5 del_flag tinyint 4 0 Y N Удалять ли -1: Удалено 0: Обычное

Таблица sys_dict (таблица словаря данных)

Нумерация название тип данных длина Десятичные разряды разрешить нули первичный ключ инструкция
1 id bigint 20 0 N Y
2 name varchar 100 0 N N имя словаря
3 type varchar 100 0 Y N Тип словаря
4 code varchar 100 0 Y N код словаря
5 value varchar 1000 0 Y N значение словаря
6 order_num int 10 0 Y N Сортировать
7 remark varchar 255 0 Y N Примечание
8 del_flag tinyint 4 0 Y N Удалить маркер -1: Удален 0: Обычный

Таблица sys_log (системный журнал)

Нумерация название тип данных длина Десятичные разряды разрешить нули первичный ключ инструкция
1 id bigint 20 0 N Y
2 username varchar 50 0 Y N имя пользователя
3 operation varchar 50 0 Y N Действие пользователя
4 method varchar 200 0 Y N метод запроса
5 params varchar 5000 0 Y N параметр запроса
6 time bigint 20 0 N N Время выполнения (мс)
7 ip varchar 64 0 Y N айпи адрес
8 create_date datetime 19 0 Y N время создания

Таблица sys_menu (управление меню)

Нумерация название тип данных длина Десятичные разряды разрешить нули первичный ключ инструкция
1 menu_id bigint 20 0 N Y
2 parent_id bigint 20 0 Y N ID родительского меню, меню первого уровня 0
3 name varchar 50 0 Y N Название меню
4 url varchar 200 0 Y N URL-адрес меню
5 perms varchar 500 0 Y N Авторизация (несколько разделенных запятыми, например: пользователь:список,пользователь:создать)
6 type int 10 0 Y N Тип 0: Каталог 1: Меню 2: Кнопка
7 icon varchar 50 0 Y N значок меню
8 order_num int 10 0 Y N Сортировать

таблица sys_role (роль)

Нумерация название тип данных длина Десятичные разряды разрешить нули первичный ключ инструкция
1 role_id bigint 20 0 N Y
2 role_name varchar 100 0 Y N Имя роли
3 remark varchar 100 0 Y N Примечание
4 dept_id bigint 20 0 Y N Отдел ID
5 create_time datetime 19 0 Y N время создания

Таблица sys_role_dept (соответствие между ролями и отделами)

Нумерация название тип данных длина Десятичные разряды разрешить нули первичный ключ инструкция
1 id bigint 20 0 N Y
2 role_id bigint 20 0 Y N идентификатор роли
3 dept_id bigint 20 0 Y N Идентификатор отдела

Таблица sys_role_menu (соответствие между ролями и меню)

Нумерация название тип данных длина Десятичные разряды разрешить нули первичный ключ По умолчанию инструкция
1 id bigint 20 0 N Y
2 role_id bigint 20 0 Y N идентификатор роли
3 menu_id bigint 20 0 Y N идентификатор меню

Таблица sys_user (системный пользователь)

Нумерация название тип данных длина Десятичные разряды разрешить нули первичный ключ инструкция
1 user_id bigint 20 0 N Y
2 username varchar 50 0 N N имя пользователя
3 password varchar 100 0 Y N пароль
4 salt varchar 20 0 Y N Соль
5 email varchar 100 0 Y N Почта
6 mobile varchar 100 0 Y N Телефонный номер
7 status tinyint 4 0 Y N Состояние 0: Отключено 1: Обычное
8 dept_id bigint 20 0 Y N Идентификатор отдела
9 create_time datetime 19 0 Y N время создания

Таблица sys_user_role (соответствие роли пользователя)

Нумерация название тип данных длина Десятичные разряды разрешить нули первичный ключ инструкция
1 id bigint 20 0 N Y
2 user_id bigint 20 0 Y N Идентификатор пользователя
3 role_id bigint 20 0 Y N идентификатор роли

таблица ys_water

Нумерация название тип данных длина Десятичные разряды разрешить нули первичный ключ инструкция
1 id int 10 0 N Y
2 name varchar 255 0 Y N название проекта
3 xm_type varchar 255 0 Y N тип проекта
4 xm_dizhi varchar 255 0 Y N адрес проекта
5 username varchar 255 0 Y N вводное лицо
6 lr_time datetime 19 0 Y N Дата ввода
7 gz_username varchar 255 0 Y N менеджер сайта
8 sjs varchar 255 0 Y N дизайнер
9 jlry varchar 255 0 Y N Руководитель
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 марка материала
14 sg_username varchar 255 0 Y N Строители
15 khjg varchar 255 0 Y N Результаты оценки
16 remark varchar 255 0 Y N
17 ys_type varchar 255 0 Y N Тип приемки (ЖКХ, Каменщики, Деревообработка, Маляры)

Персональное резюме:

После недавнего освоения и изучения объектно-ориентированного программирования Java, знаний о интерфейсе и среды JAVA, а также развития этой системы образования и обучения в этот период я ​​стал лучше осознавать важность изучения Java. При разработке этой системы я провел несколько экспериментов и функциональных тестов платформы управления сюжетом.На этапе разработки и обучения системы я понял, что знаком с java, а затем смог самостоятельно использовать связанные технологии. обнаружил, что это действительно так.Есть много удобств.Например, Java объединяет абстракцию и инкапсуляцию, наследование и полиморфизм, реализует повторное использование кода и расширение кода, а также повышает скорость и эффективность разработки программного обеспечения в целом. Например, когда администратор добавляет пользователя, сообщается об исключении java.lang.NullPointException.Решение: проверьте информацию печати консоли, обнаружите, что соответствующая информация не была заполнена при добавлении пользователя, сообщите об исключении java.lang.NullPointException и обнаружить, что информация о пользователе пуста с помощью отладки при отключении питания Элементы данных, полная соответствующая информация о пользователе должна быть заполнена при сохранении во внешнем интерфейсе, или поля настроек базы данных могут быть оставлены пустыми. моей программы обучения состоит в том, чтобы улучшить ключевые навыки и методы программного решения для моих практических задач.

Получение исходного кода:

ВсеНравится, Избранное, Следите, КомментируйтеЭй, если вы заинтересованы, пожалуйста, свяжитесь со мной

Обновление статьи о пунше178/ 365 дней