«Это первый раз, когда я участвовал в более сложном тексте 2022 года на второй день, чтобы увидеть подробности события:Вызов первого обновления 2022 г."
Предисловие:
С прогрессом общества и развитием науки и техники все больше и больше людей ищут новые, уникальные и практичные условия для жизни, работы и обучения. Поэтому в современном архитектурно-декорационном проектировании необходимо учитывать потребности заказчиков, согласование и единство со строительной конструкцией, а также стоимость и организацию строительной организации. быть сделано. При выполнении содержания работы с качеством и количеством также необходимо обеспечить различные стандартные данные для приемки строительства, и в течение периода изучения знаний о разработке, связанных с Java, у меня есть базовое понимание различных технологических процессов и характеристик в строительстве. Процесс с использованием Java Springboot + layui — это просто система управления приемкой украшений, подходящая для простого обучения и использования в качестве справочного материала.
Основной дизайн:
- Приемка гидроэнергетики
Основная функция:
(1) Запрос списка
Функция: запрос, добавление, изменение, удаление, экспорт.
Поля запроса: серийный номер, название проекта, тип проекта, адрес проекта, входное лицо, дата ввода, руководитель участка, проектировщик, руководитель, сумма контракта, дата строительства, дата окончания, марка материала, строительный персонал, результаты оценки, замечания.
(2) Деловые документы
Функция: добавить содержание оценки воды и электричества
Рабочие поля: название проекта, тип проекта, адрес проекта, входное лицо, дата ввода, лицо, ответственное за объект, проектировщик, руководитель, сумма контракта, дата строительства, дата окончания, марка материала, строительный персонал, результат оценки, примечания.
- Приемка каменщика
(1) Запрос списка
Функция: запрос, добавление, изменение, удаление, экспорт.
Поля запроса: серийный номер, название проекта, тип проекта, адрес проекта, входное лицо, дата ввода, руководитель участка, проектировщик, руководитель, сумма контракта, дата строительства, дата окончания, марка материала, строительный персонал, результаты оценки, замечания.
(2) Деловые документы
Функция: добавление содержимого оценки каменщика.
Рабочие поля: название проекта, тип проекта, адрес проекта, входное лицо, дата ввода, лицо, ответственное за объект, проектировщик, руководитель, сумма контракта, дата строительства, дата окончания, марка материала, строительный персонал, результат оценки, примечания.
- Приемка деревообработки
(1) Запрос списка
Функция: запрос, добавление, изменение, удаление, экспорт.
Поля запроса: серийный номер, название проекта, тип проекта, адрес проекта, входное лицо, дата ввода, руководитель участка, проектировщик, руководитель, сумма контракта, дата строительства, дата окончания, марка материала, строительный персонал, результаты оценки, замечания.
(2) Деловые документы
Функция: добавить контент для оценки деревообработки.
Рабочие поля: название проекта, тип проекта, адрес проекта, входное лицо, дата ввода, лицо, ответственное за объект, проектировщик, руководитель, сумма контракта, дата строительства, дата окончания, марка материала, строительный персонал, результат оценки, примечания.
- Принятие художника
(1) Запрос списка
Функция: запрос, добавление, изменение, удаление, экспорт.
Поля запроса: серийный номер, название проекта, тип проекта, адрес проекта, входное лицо, дата ввода, руководитель участка, проектировщик, руководитель, сумма контракта, дата строительства, дата окончания, марка материала, строительный персонал, результаты оценки, замечания.
(2) Деловые документы
Функция: добавление содержания оценки краски.
Рабочие поля: название проекта, тип проекта, адрес проекта, входное лицо, дата ввода, лицо, ответственное за объект, проектировщик, руководитель, сумма контракта, дата строительства, дата окончания, марка материала, строительный персонал, результат оценки, примечания.
- Приемка окончания строительства
(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 | 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 дней