Young Kbt blog Young Kbt blog
首页
  • java基础

    • Java基础
    • Java集合
    • Java反射
    • JavaJUC
    • JavaJVM
  • Java容器

    • JavaWeb
  • Java版本新特性

    • Java新特性
  • SQL 数据库

    • MySQL
    • Oracle
  • NoSQL 数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • ActiveMQ
    • RabbitMQ
    • RocketMQ
    • Kafka
  • 进阶服务

    • Nginx
  • Spring
  • Spring Boot
  • Spring Security
  • 设计模式
  • 算法
  • 知识
  • 管理

    • Maven
    • Git
  • 部署

    • Linux
    • Docker
    • Jenkins
    • Kubernetes
  • 进阶

    • TypeScript
  • 框架

    • React
    • Vue2
    • Vue3
  • 轮子工具
  • 项目工程
  • 友情链接
  • 本站

    • 分类
    • 标签
    • 归档
  • 我的

    • 收藏
    • 关于
    • Vue2-Admin (opens new window)
    • Vue3-Admin(完善) (opens new window)
GitHub (opens new window)

Shp Liu

朝圣的使徒,正在走向编程的至高殿堂!
首页
  • java基础

    • Java基础
    • Java集合
    • Java反射
    • JavaJUC
    • JavaJVM
  • Java容器

    • JavaWeb
  • Java版本新特性

    • Java新特性
  • SQL 数据库

    • MySQL
    • Oracle
  • NoSQL 数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • ActiveMQ
    • RabbitMQ
    • RocketMQ
    • Kafka
  • 进阶服务

    • Nginx
  • Spring
  • Spring Boot
  • Spring Security
  • 设计模式
  • 算法
  • 知识
  • 管理

    • Maven
    • Git
  • 部署

    • Linux
    • Docker
    • Jenkins
    • Kubernetes
  • 进阶

    • TypeScript
  • 框架

    • React
    • Vue2
    • Vue3
  • 轮子工具
  • 项目工程
  • 友情链接
  • 本站

    • 分类
    • 标签
    • 归档
  • 我的

    • 收藏
    • 关于
    • Vue2-Admin (opens new window)
    • Vue3-Admin(完善) (opens new window)
GitHub (opens new window)
  • tbeam

  • 报修系统

    • 报修系统 - 详解
      • 角色
      • 名词翻译
        • 实体类简称
        • 其他简称
        • service类对象简称
      • 名词解释
      • util包
        • 类结构
        • 内容
        • 优化
      • config包
        • 结构
        • 内容
      • constant包
        • 结构
        • 内容
      • exception包
        • 结构
        • 内容
      • filter包
        • 结构
        • 内容
      • response包
        • 结构
        • 内容
      • service包
        • 结构
        • 内容
      • controller包
        • 结构
        • 内容
      • 学到的技巧
    • 报修系统 - 部署
    • 报修系统 - Tomcat问题
  • yonyou

  • 项目工程
  • 报修系统
Young Kbt
2021-10-30
目录

报修系统 - 详解项目

笔记

反规范的命名,唉。

# 角色

审核员2名:审核订单的人。2名都审核通过才会通过

接单人多名:处理订单的人,一对一

申报人多名:报修的人,一般为学生

# 名词翻译

# 实体类简称

Admin:用户

属性详解

id:用户id

account:用户名

password:密码

bxd:报修单

属性详解

id:报修单id

sbsj:申报时间

eid:二维码id

xxdd:详细地点

yysj:预约时间(不是具体时间,是字符串)公共区域不用

bxlb:报修类别

bxnr:报修内容

sp:视频(视频地址)

tp:图片(图片地址)

sbr:申报人

shy1state:0未审核,1审核通过,2审核未通过

sbrxh:申报人学号

hc:耗材使用

gs:工时

jid:接单人ybid

shy1:第一位审核员

sbrsj:申报人手机号码

shy2:第二位审核员

shy2state:0未审核,1审核通过,2审核未通过

wxsj:维修时间(或者是撤销时间)

cxsy:撤销事由

pj:评价星级

pjnr:评价内容

pjzj:评价追加

state:1已派单,2已维修,3撤销单,4已验收,5不通过验收 qy:报修区域

qylb:报修区域列表

xq:校区

ewmdd:二维码所在区域

fgts:返工天数

jdsj:交单时间?

yssj:验收时间

bxqy:报修区域

属性详解

id:区域编号

qy:区域名称

qylb:区域类别

xq:校区

x:后台管理x坐标

y:后台管理Y坐标

ewm:二维码集合

b:保修单集合

countb:

ewm:二维码

属性详解

id:二维码编号

qid:区域编号

xxdd:二维码详细地点(不等于报修的详细地点)

qy:报修区域

hc:耗材

属性详解

id:耗材编号

mc:材料名称

jg:价格

dw:单位

kc:库存

lb:耗材类别

xh:耗材型号

jdr:接单人

属性详解

ybid:易班id

gh:工号

xm:姓名

sj:手机

yx:邮箱

state:1在职,2休假,3离职

ywfw:(业务范围)1,2,4,8,16,32,64

zjds:

dqds:

pjpj:

qdb:签到表

属性详解

id:签到表编号

qdsj:签到时间

shyid:审核员id

xq:校区

state:1签到,2签退

shy:审核员

属性详解

ybid:易班id

gh:工号

xm:姓名

zw:1普通职员,2高级职员

xq:当前校区

x:X坐标

y:Y坐标

# 其他简称

yb:易班

xq:校区

# service类对象简称

bs:报修单的service类对象

es:二维码的service类对象

zdpd:自动派单的service类对象

ss:审核员的service类对象

qs:签到表的service类对象

js:接单人的service类对象

ybmsg:请求易班的service类对象

# 名词解释

标记的名词看不懂,这里有解释,都有标记

审核单:审核员要审核的订单

下班单:审核员下班了,但是还没来得及审核的订单。

笔记

问就是审核员不想加班,到点直接下班 😄

返工天数:接单人处理完订单后,开始对该订单计时。类似于淘宝拿到快递后,却没有去app点击确认收货,但是一定时间后app会自动确认收货

# util包

# 类结构

其他99%不会被修改

config
|—— quartzUtils
	  |—— BxdCheckTask 
	  |—— FgAndPjTask
	  |—— OrderListener
	  |—— ShyCheck
├── AesTra
|── AutoOrder
├── DictItemTree
├── EwmUtil
├── GetInfo
├── GetSqlSession
├── Me
├── ParseUtil
├── PathUtil
├── RealMe
├── UnicodeEncode
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

# 内容

  • quartzUtils包:都是定时任务执行的类

    • BxdCheckTask类:获取未派送的订单,将这些订单分配给有工时的接单人,并在易班推送消息给接单人

      • executeBxdCheck方法:获取未派送的订单,将这些订单分配给有工时的接单人,并在易班推送消息给接单人
    • FgAndPjTask类:返工天数减一以及15天后默认好评

      • reduceFgts方法:返工天数减1。用到两个mapper:一个是获取已完成的订单,一个是给这些完成订单的返工时间减1

      • setPjnr方法:15天后默认好评。用到两个mapper:一个获取已满15天却未验收的订单,一个是给这些未验收订单主动验收,并给好评

        警告

        疑惑:怎么知道已满15天呢,我猜有定时任务,自动加1天吧,目前没看到,如果这条内容没有被删除,代表我没看到加1天的代码

    • OrderListener类:获取工时超过12的接单人的未处理的订单,交给其他人

      • executeGsCheck方法:当总订单派单工时已经超过12的接单人,他的其他订单重新派给未满12的接单人
    • ShyCheck类:获取下班单,随机分配给在上夜班的审核员进行审核

      • executeShyCheck:获取下班单,随机分配给在上夜班的审核员处进行审核
  • AesTra类:加密解密类

    • encrypt方法:传入密钥和密码进行加密。目前没用到该方法
    • decrypt方法:传入密钥和密码进行解密。目前没用到该方法
    • parseByte2HexStr方法:位运算进行加密。由encrypt方法调用
    • parseHexStr2Byte方法:位运算进行解密。由decrypt方法调用
  • AutoOrder类:处理派送订单类

    • zdpd方法:查找符合接单条件的接单人直接派单。条件:在职、工时小于12、在负责的区域里,当天签到了
  • DictItemTree类:维修列表的实体类。存储如物业维修、热随维修、家电维修、空调维修等信息

    警告

    疑惑:为什么放在utils目录下

  • EwmUtil类:二维码工具类

    • generateQRCodeImage方法:生成二维码的条纹格式。用到的BarcodeFormat.QR_CODE枚举代表条纹格式的二维码
  • GetInfo类:与易班进行授权,并获取登录用户的隐私信息(token)和普通信息(用户名,头像)和真实信息(真实姓名)

    • init方法:要求授权并获得token,将token存入session域里,如果授权失败,则返回登录页面继续授权

    • getMe方法:获取用户的基本信息,如用户名,头像,学校名等,存入Me实体类中。

      注意

      项目里并没有用到这个方法!用到下面这个方法

    • getRealMe方法:在getMe方法上,多了一个实体类RealMe,它不仅封装了Me实体类,还有用户其他的真实信息如身份证。都存入session

    • printError方法:获取报错信息,存储session中,key为message

  • GetSqlSession类:获取mybatis的openSession对象。

    注意

    项目没有用到!

  • Me类:用户信息的实体类,如昵称、性别、头像、学校等信息。主要存储与易班请求后得到数据的一个实体类。

  • ParseUtil类:解析报修类型和耗材内容。大部分内容都在数据库的bxd表

    • paraseBxlb方法:参数为数字-数字。如2-2,3-1。根据数字获得不同的报修内容,最终返回的结果是报修类型-具体类型。如 物业报修-家具。

      提示

      其实传来的参数是数字,解析后就是内容。数据库里已经规定一个数字代表一个内容

      点击我查看数字对应的类型

      第一个数字:

      • 1:物业保修

      • 2:水电维修

      • 3:热水维修

      • 4:家电维修

      • 5:空调维修

      • 6:其他维修

      第二个数字:

      1:家具

      2:腻子

      3:墙砖

      ......

      具体数据库,第二个数字有60个左右

    • paraseHc方法:获取耗材的相关信息。和上面方法类似,解析分割传来的参数,获得不同的小参数,去数据库获取内容,具体看源码

    • paraseHc1方法:和paraseHc几乎一样,只不过返回结果前,多加了一个字符串作为标识符

    • getzlb方法:提供保修类型的英文,转化对应的中文,就是上方隐藏的内容

  • PathUtil类:获取存放信息表格的路径,即static所在的路径,分为生产和开发两个路径。前者是resource目录,后者是指定一个本地的文件夹

  • RealMe类:Me类的封装实体类,在Me的基础上多加了一些用户的真实信息

  • UnicodeEncode类:

    警告

    不知道有何用处

# 优化

  1. 命名要规范
  2. GetInfo类的getMe方法和getRealMe方法合并
  3. Me和RealMe和DictItemTree实体类不应该放在util目录下
  4. ParseUtil类有switch,可尝试解构

# config包

# 结构

config
├── CrosConfig
|── QuartzConfiguration
├── RestTemplateConfig
├── Swagger2Config
1
2
3
4
5

# 内容

  • CrosConfig类:解决跨域问题

  • QuartzConfiguration类:定时任务。一共有4个定时任务。分别为

    1. OrderListener类的executeGsCheck方法:当总订单派单工时已经超过12的接单人,他的其他订单重新派给未满12的接单人

      每天9点-18点内 每隔20分钟 执行一次这个方法

    2. ShyCheck类的executeShyCheck方法:获取下班单,随机分配给在上夜班的审核员进行审核

      早上8点-早上10点 每隔15分钟 执行一次这个方法

      警告

      有疑惑,既然获取下班单,那么应该是晚上的夜班才对,怎么是早上

    3. BxdCheckTask类的executeBxdCheck方法:处理没有派送的订单,让这些订单分配给空闲的接单人去处理。轮询查找

      早上9点-早上18点 每隔20分钟 执行一次

    4. FgAndPjTask类的executeFgAndPjTask:返工天数减一以及15天后默认好评

      每天凌晨 3:30 触发一次

  • RestTemplateConfig类:将RestTemplate类放入IOC容器里,该类是restful风格的http。并给该http设置一些参数如请求超时时间,响应超时时间等,因为项目打算用RestTemplate来和易班进行请求。不可能无线请求下去,一定时间内易班不给数据,则撤回请求,并报错,存入日志

  • Swagger2Config类:配置swagger,用于生成接口文档。指定了标题、描述、版本、作者、许可证等

# constant包

# 结构

constant
├── GlmcConstants
1
2

# 内容

  • GlmcConstants类:桂林医学院报修系统的常量类。只有两个内容

    /**
    * 总工时,单位:小时
     */
    public static final double GS = 12.0;
    public static final String HC_APPEND_SYMBOL = "=";
    
    1
    2
    3
    4
    5

# exception包

# 结构

exception
├── GlobalExceptionHandler
1
2

# 内容

  • GlobalExceptionHandler类:全局异常处理类。

    笔记

    用到了@ControllerAdvice注解,指定哪些方法处理哪些异常

# filter包

# 结构

filter
├── AddResponseHeaderFilter
1
2

# 内容

  • AddResponseHeaderFilter类:给响应头配置参数,如UTF-8,保证返回给前端的信息不乱码

    笔记

    该类继承了OncePerRequestFilter类,表示能够确保在一次请求只通过一次filter,而不需要重复执行。

    其实在spring里,每个filter都默认继承OncePerRequestFilter

# response包

# 结构

response
├── ResponseData
1
2

# 内容

  • ResponseData类:封装返回前端信息实体类,有状态码、信息数字、数据

    • 状态status:success、false

    • 信息数字info:

      • 0:未登录授权请登录,
      • 1:程序错误请刷新,
      • 2:无效参数,
      • 3:缺少传递必要参数
      • 其余的info就自己定义

# service包

# 结构

service
|—— impl
	|—— 实现类
├── AdminService
|── BxdService
├── BxqyService
├── EwmService
├── ExportService
├── HcService
├── IDictService
├── JdrService
├── QdbService
├── ShyService
1
2
3
4
5
6
7
8
9
10
11
12
13

# 内容

  • AdminService接口:用户相关操作

    • login 方法:登录
  • BxdService 接口:报修单相关操作

    • selforsbr 方法:根据申报人学号,获取该申报人申报的报修单

    • selbxdforshyid 方法:根据报修单id,获取该报修单,返回内容只要求有审核员、审核员是否同意、接单人id,二维码id的信息

    • selbxdbyadmin 方法:

    • selbxdforeid 方法:根据二维码id,获取由该二维码扫描出的没有完成的报修单

    • selbxdbyjdr 方法:根据接单人的易班id,获取由该接单人处理的报修单,如果报修单的状态不为空、二维码id不为空,也加入判断中

    • selbxdbyshy 方法:根据审核员id,获得该审核员 处理 过的报修单。报修单不包括已撤回的,如果二维码id不为空,获得的报修单是该二维码区域的

    • upbxdbysbr 方法:根据申报人学号、报修单id,来更新该报修单

      更新条件

      1. 如果申报人撤销了,则将报修单状态改为已撤销

      2. 如果申报人进行评价,则将该报修单的评价体系 加上 评价星级和内容

      3. 如果申报人追加评价,则将该报修单的评价体系 加上 该追加评价内容

    • upbxd1byshy 方法:当审核员 1 处理报修单,则根据该报修单 id,来进行更新处理结果

      更新条件

      1. 如果耗材了,则在报修单表加上耗材内容

      2. 如果接单人消耗工时了,则在报修单表加上消耗的工时

      3. 审核员2也处理了报修单,则在报修单表上加上处理结果

    • upbxd2byshy 方法:和上方同理,只是审核员1和审核员2调换位置

    • upbxdhcbyshy 方法:当审核员1或者审核员2处理报修单,则根据该报修单id,来进行更新处理结果

      更新条件

      1. 如果耗材了,则在报修单表加上耗材内容
      2. 如果接单人消耗工时了,则在报修单表加上消耗的工时
    • upbxdbyadmin 方法:只要报修单表的任意字段不为空,则进行更新

    • fg 方法:更新申报时间、交单时间、验收时间,只要报修单表的任意字段不为空,则进行更新

    • upbxdbyjdr 方法:通过接单人id和报修单id,来更新该报修单

    • del 方法:根据报修单id,删除该报修单

    • newbxdbysbr 方法:插入数据到报修单表中

    • selnumforstate 方法:查询不同状态的报修单总数,如已派单的报修单有多少个、已维修的报修单有多少个

    • selnumforpj 方法:查询不同评价星级的报修单总和,如 5星的报修单有多少个

    • allcount 方法:查询一共有多少个报修单,即表里的全部报修单

    • selgs 方法:查询接单人当天 已维修和已验收 报修单的所花费的工时,工时四舍五入计算,保留小数点 12 位

    • tj 方法:获取一些不同状态的报修单数量

    • getsbrbxdnewid 方法:根据申报人学号,获取他最新申报的报修单,可能申报了多个,这方法只获取最新时间的那个

    • upbxdbyysr 方法:更新报修单的状态,如果验收时间不为空,则也进行更新

    • selishc 方法:根据报修单id,查询该报修单的耗材数据

    • selonebxd 方法:根据报修单id,查询该报修单的全部信息

    • xxsjBxd 方法:查看在休息时间内 有一个审核员审核,另一个审核员未审核的报修单的报修单。休息时间:当天 18点 到第二天 10点

    • selwpdbxd 方法:查询前20个未派单的报修单

    • selBxdByMap 方法:根据一个 map,查询符合条件的报修单

      map 内容

      1. 当status状态不为空,则返回对应状态的报修单。支持多个。状态对应: 1已派单,2已维修,3撤销单,4已验收,5不通过验收

      2. 当taskFgts不为空,则获取返工天数大于0的报修单

      3. 当taskPjnr不为空,则获取评价内容为空、评价星级为空、返工天数为0的报修单

    • updateBatch 方法:根据多个id,批量更新对应id的报修单

      更新条件

      1. taskFgts不为空,代表返工天数未满15天,则进行返工天数减少1

      2. taskPjnr不为空,代表返工天数到达15天,则默认五星评价星级评价,内容为好评

    • seljdrforpd 方法:仅查询出有 接单人易班id、业务范围,不同状态的接单人信息,还包括 所有在职的易班id总数

  • BxqyService 接口:报修区域相关操作

    • selbxqy 方法:根据报修区域id,获取该报修区域的数据
    • selallqy 方法:获取所有报修区域的数据
    • ditu 方法:获取某个报修区域的数据
    • newqy 方法:插入一条报修区域的数据
    • upqy 方法:更新一条报修区域的数据
    • selByEwmId 方法:根据二维码id,查询该二维码数据
  • EwmService 接口:二维码相关操作

    • selewm 方法:根据区域id,查询该区域的二维码数据
    • selqyidbyewm 方法:根据二维码id,查询该二维码的数据
    • selqybysbr 方法:根据二维码id,查询该二维码和所在的报修区域的数据
    • newewm 方法:插入一个二维码
    • upewm 方法:更新一个二维码
    • selxxwz 方法:获得二维码的详细地点信息
    • selById 方法:根据二维码id,获取该二维码的数据
    • updQidyAdmin 方法:根据二维码id范围,更新范围内的二维码所处的区域
  • ExportService 接口:将数据以xls文件形式导出

  • HcService 接口:耗材相关操作

    • selall 方法:查询所有耗材表的数据
    • selHcByLb 方法:根据一级类别和二级类别获取耗材表的数据
    • selOneHc 方法:根据耗材id,获取该耗材的数据
    • delhc 方法:根据耗材id,删除该耗材的数据
    • newhc 方法:插入一条耗材数据到耗材表
    • uphc 方法:根据耗材id,更新该耗材的数据
  • JdrService 接口:

    • selalljdr 方法:查询接单人的数据
    • del 方法:根据接单人易班id,删除该接单人的数据
    • newjdr 方法:插入一条接单人的数据
    • upjdr 方法:更新一条接单人的数据
    • selOptimaljdr 方法:
    • selOptimaljdrPC 方法:
  • MsgPushService 接口:发布消息给易班

  • QdbService 接口:

    • selallqy 方法:根据审核员id,查询该审核员的所有签到表
    • qd 方法:插入一条审核员的签到数据到签到表
    • selectOptimalXq 方法:根据审核员id,从签到表查询该审核员签到的校区地点,前提:审核员在职
    • selectOptimalXqForShy 方法:根据审核员id,从签到表查询该审核员签到的校区地点,和上方方法比较:该方法不管审核员是否在职
  • ShyService 接口:

    • selallqy 方法:查询所有的审核员数据
    • del 方法:根据审核员id,删除该审核员
    • newshy 方法:插入一条审核员数据
    • UPshy 方法:根据审核员id,更新该审核员的姓名和职位,职位:1:普通职员、2:高级职员
    • selOptimalShy 方法:根据签到区域,查询今日到第二天早上9点前签到的并且没有签退的审核员
    • selqtShy 方法:根据签到区域,查询今日签退的审核员
    • sellsqdshy 方法:根据签到区域,查询历史签到以及签退的审核员,也有可能是今天的
    • selOneShy 方法:根据易班id,查询id对于的审核员数据

# controller包

# 结构

controller
|—— admin
	|—— AdminLogin
	|—— AdminServlet
├── bxd
	|—— BxdServlet
	|—— Fileload
	|—— VideoController
|── bxqy
	|—— BxqyServlet
├── dict
	|—— DictController
├── ewm
	|—— EwmServlet
├── export
	|—— export
├── hc
	|—— HcServlet
├── jdr
	|—— JdrServlet
├── shy
	|—— ShyServlet
├── Info
├── Login
├── Service
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

# 内容

  • AdminLogin 类:用户相关的controller

    • adminLogin 方法:用户登录相关,成功则存入 session
  • AdminServlet 类:用户的请求处理类

    • adminServlet 方法:获取用户相关的请求,根据请求参数处理内容

    处理内容:

    • adminindex 方法:获取首页数据
    • bxnum 方法:获取报修单总数
    • newewm 方法:插入二维码到数据库
    • newqy 方法:插入一个报修区域到数据
    • upewm 方法:更新二维码到数据库
    • upqy 方法:更新报修区域到数据库
    • selewm 方法:查询一个二维码数据
    • uppeople 方法:根据条件:删除一个审核员、修改一个审核员、删除一个接单人、修改一个接单人
    • newpeople 方法:根据条件:添加一个审核员、添加一个接单人
    • upbxdbyadmin 方法:分配或者审核报修单,并更新该报修单到数据库
    • selqdb 方法:查询某个审核员的签到表数据
    • selalljdr 方法:查询接单人的数据
    • selOptimaljdrPC 方法:查询适合的接单人
    • selallqy 方法:获取某个报修区域的数据
    • selbxdbyadmin 方法:
    • selbxdbyadminpc 方法:
  • BxdServlet 类:报修单相关的controller

    • bxdServlet 方法:获取报修单相关的请求,根据请求参数处理内容

    处理内容:

    • selbxdforeid 方法:根据二维码id,获取由该二维码扫描出的没有完成的报修单
    • selqybysbr 方法:提供二维码id,查询该二维码和所在的报修区域的数据
    • filebase64 方法:整合返工和新增工单,返工要传jdr的jid和本单的id
    • upbxdbysbr 方法:根据申报人学号、报修单id,来更新该报修单,如果报修单已被接单人接到,就提供易班告诉接单人:报修单的更新
    • sbr 方法:根据申报人学号,获取该申报人申报的报修单
  • Fileload 类:文件上传处理相关的controller

  • VideoController 类:视频上传处理相关的controller

  • BxqyServlet 类:报修区域相关的controller

    • bxqyServlet 方法:获取报修区域相关的请求,根据请求参数处理内容

    处理内容:

    • selqybyid 方法:根据报修区域id,获取该报修区域的数据
  • DictController 类:维修类型相关的controller

    • getAllWxlb 方法:获取维修类别,根据字符串解析为中文
  • EwmServlet 类:二维码相关的controller

    • ewmServlet 方法:获取二维码相关的请求,根据请求参数处理内容

    处理内容:

    • selEwmById 方法:根据二维码id,获取该二维码的数据
    • updEwmQid 方法:根据二维码id范围,更新范围内的二维码所处的区域
  • export 类:导出为 xls 的文件相关的controller

    • export2xlsx 方法:导出为 xls 文件
  • HcServlet 类:耗材相关的controller

    • hcServlet 方法:获取耗材相关的请求,根据请求参数处理内容

    处理内容:

    • selHcByLb 方法:根据一级类别和二级类别获取耗材表的数据
    • newhc 方法:插入一条耗材数据
    • uphc 方法:更新一条耗材数据
    • delhc 方法:删除一条耗材数据
    • selhc 方法:查询所有耗材表的数据
  • JdrServlet 类:接单人相关的controller

    • jdrServlet 方法:获取接单人相关的请求,根据请求参数处理内容

    处理内容:

    • selgs 方法:查询接单人当天 已维修和已验收 报修单的所花费的工时,存在工时则四舍五入计算,保留小数点 12 位,否则为0
    • upbxdbyjdr 方法:通过接单人id和报修单id,来更新该报修单的数据,如耗材工时
    • selbxdbyjdr 方法:根据接单人的易班id,获取由该接单人处理的报修单,如果报修单的状态不为空、二维码id不为空,也加入判断中
  • ShyServlet 类:审核员相关的controller

    • shyServlet 方法:获取审核员相关的请求,根据请求参数处理内容

    处理内容:

    • upbxdhcbyshy 方法:当审核员1或者审核员2处理报修单,则根据该报修单id,来进行更新处理结果

      更新条件

      1. 如果耗材了,则在报修单表加上耗材内容

      2. 如果接单人消耗工时了,则在报修单表加上消耗的工时

    • selqdb 方法:根据审核员id,查询该审核员的所有签到表

    • qd 方法:插入一条审核员的签到数据到签到表

    • upbxdbyshy 方法:当审核员1或者审核员2处理报修单,则根据该报修单id,来进行更新处理结果,并查询该报修单是否已经真正处理,然后推送结果给接单人

    • upbxdbyysr 方法:更新报修单的状态,并通知处理该报修单的接单人

    • selbxdbyshy 方法:根据审核员id,获得该审核员 处理 过的报修单。报修单不包括已撤回的,如果二维码id不为空,获得的报修单是该二维码区域的

  • Info 类:从session获取用户的信息

  • Login 类:登录成功或者失败,页面的跳转,后者因为用户名密码错误或者过期,跳转登录页

  • Service 类:通过易班id,获取该id的个人信息,并通过工号判断属于哪类人。1:申报人、2:接单人、3:审核员

# 学到的技巧

大部分学到的内容都在上方用 笔记蓝色框 标记了

  • 如果对数据库进行批量的增删改。不要在Java代码里循环,然后调用mapper层。而是以集合的方式把所有参数传给mybatis,让mybatis进行遍历,即使用forreach标签
  • @ControllerAdvice 注解实现全局异常处理
  • OncePerRequestFilter的概念
编辑此页 (opens new window)
更新时间: 2023/09/18, 16:34:13
Tbeam - 技巧
报修系统 - 部署

← Tbeam - 技巧 报修系统 - 部署→

最近更新
01
技术随笔 - Element Plus 修改包名 原创
11-02
02
Reactor - 扩展性
11-02
03
Reactor - 最佳实践
11-02
更多文章>
Theme by Vdoing | Copyright © 2021-2024 Young Kbt | blog
桂ICP备2021009994号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式