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
6.2k
22.6m
36
目录
角色
名词翻译
实体类简称
其他简称
service类对象简称
名词解释
util包
类结构
内容
优化
config包
结构
内容
constant包
结构
内容
exception包
结构
内容
filter包
结构
内容
response包
结构
内容
service包
结构
内容
controller包
结构
内容
学到的技巧

报修系统 - 详解项目

笔记

反规范的命名,唉。

# 角色

审核员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-2025 Young Kbt | blog
桂ICP备2021009994号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式