From ce49dfc5486d6acb32656ae3e4fb52e3131090e3 Mon Sep 17 00:00:00 2001 From: zhangye <654600784@qq.com> Date: Thu, 12 May 2022 09:24:52 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8E=E5=8F=B0=E6=9F=A5=E8=AF=A2=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ccsens/delivery/api/CommonController.java | 25 +- .../ccsens/delivery/api/HealthController.java | 36 ++- .../delivery/api/MaterialController.java | 27 ++ .../ccsens/delivery/api/TrailsController.java | 14 +- .../ccsens/delivery/api/UserController.java | 21 +- .../ccsens/delivery/bean/dto/CommonDto.java | 20 ++ .../ccsens/delivery/bean/dto/HealthDto.java | 94 +++++++ .../ccsens/delivery/bean/dto/MaterialDto.java | 86 ++++++- .../ccsens/delivery/bean/dto/StudentDto.java | 89 ++++--- .../ccsens/delivery/bean/dto/TrailsDto.java | 91 ++++++- .../com/ccsens/delivery/bean/dto/UserDto.java | 18 +- .../ccsens/delivery/bean/po/RecordHealth.java | 41 ++- .../delivery/bean/po/RecordHealthExample.java | 206 +++++++++++++-- .../ccsens/delivery/bean/po/RecordTrails.java | 8 +- .../delivery/bean/po/RecordTrailsDetail.java | 30 ++- .../bean/po/RecordTrailsDetailExample.java | 170 ++++++++++++- .../delivery/bean/po/RecordTrailsExample.java | 30 +-- .../ccsens/delivery/bean/po/SysUserInfo.java | 34 ++- .../delivery/bean/po/SysUserInfoExample.java | 186 ++++++++++++-- .../com/ccsens/delivery/bean/vo/CommonVo.java | 66 ++++- .../com/ccsens/delivery/bean/vo/HealthVo.java | 75 ++++++ .../ccsens/delivery/bean/vo/MaterialVo.java | 94 +++++++ .../ccsens/delivery/bean/vo/StudentVo.java | 16 +- .../com/ccsens/delivery/bean/vo/TrailsVo.java | 101 ++++++++ .../com/ccsens/delivery/bean/vo/UserVo.java | 46 +++- .../delivery/persist/dao/FormRecordDao.java | 86 +++++++ .../delivery/persist/dao/RecordHealthDao.java | 20 ++ .../delivery/persist/dao/RecordTrailsDao.java | 28 ++ .../delivery/persist/dao/SysMaterialDao.java | 34 +++ .../delivery/service/CommonService.java | 83 +++++- .../delivery/service/HealthService.java | 77 +++++- .../delivery/service/ICommonService.java | 8 + .../delivery/service/IHealthService.java | 26 +- .../delivery/service/IMaterialService.java | 17 ++ .../delivery/service/ITrailsService.java | 9 + .../delivery/service/MaterialService.java | 104 +++++++- .../delivery/service/StudentService.java | 50 ++-- .../delivery/service/TrailsService.java | 86 +++++++ .../ccsens/delivery/service/UserService.java | 57 ++++- .../delivery/util/DeliveryCodeError.java | 4 +- .../delivery/util/DeliveryConstant.java | 37 ++- .../resources/mapper_dao/FormRecordDao.xml | 240 ++++++++++++++++++ .../resources/mapper_dao/RecordHealthDao.xml | 103 ++++++++ .../resources/mapper_dao/RecordTrailsDao.xml | 122 +++++++++ src/main/resources/mapper_dao/StudentDao.xml | 87 ++++--- .../resources/mapper_dao/SysMaterialDao.xml | 119 +++++++++ .../mapper_raw/RecordHealthMapper.xml | 66 ++++- .../mapper_raw/RecordTrailsDetailMapper.xml | 56 +++- .../mapper_raw/RecordTrailsMapper.xml | 14 +- .../mapper_raw/SysUserInfoMapper.xml | 67 +++-- src/main/resources/mbg.xml | 4 +- 51 files changed, 2940 insertions(+), 288 deletions(-) create mode 100644 src/main/java/com/ccsens/delivery/bean/vo/TrailsVo.java create mode 100644 src/main/java/com/ccsens/delivery/persist/dao/FormRecordDao.java create mode 100644 src/main/java/com/ccsens/delivery/persist/dao/RecordHealthDao.java create mode 100644 src/main/java/com/ccsens/delivery/persist/dao/RecordTrailsDao.java create mode 100644 src/main/java/com/ccsens/delivery/persist/dao/SysMaterialDao.java create mode 100644 src/main/resources/mapper_dao/FormRecordDao.xml create mode 100644 src/main/resources/mapper_dao/RecordHealthDao.xml create mode 100644 src/main/resources/mapper_dao/RecordTrailsDao.xml create mode 100644 src/main/resources/mapper_dao/SysMaterialDao.xml diff --git a/src/main/java/com/ccsens/delivery/api/CommonController.java b/src/main/java/com/ccsens/delivery/api/CommonController.java index 2d4f587..563850a 100644 --- a/src/main/java/com/ccsens/delivery/api/CommonController.java +++ b/src/main/java/com/ccsens/delivery/api/CommonController.java @@ -30,8 +30,6 @@ public class CommonController { @Resource private ICommonService commonService; - @Resource - private Snowflake snowflake; @MustLogin @ApiOperation(value = "上传文件",notes = "文件大小不能超过20M") @@ -68,4 +66,27 @@ public class CommonController { PageInfo querySelfList = commonService.querySelf(params.getParam(),params.getUserId()); return JsonResponse.newInstance().ok(querySelfList); } + + @MustLogin + @ApiOperation(value = "统计分析",notes = "") + @ApiImplicitParams({ + }) + @RequestMapping(value = "/statistics", method = RequestMethod.POST,produces = {"application/json;charset=UTF-8"}) + public JsonResponse statistics(@ApiParam @RequestBody @Validated QueryDto params) throws Exception { + log.info("统计分析:{}",params); + CommonVo.Statistics statistics = commonService.statistics(params.getParam(),params.getUserId()); + + return JsonResponse.newInstance().ok(statistics); + } + + + @ApiOperation(value = "导入学院班级信息",notes = "") + @ApiImplicitParams({ + }) + @RequestMapping(value = "/import", method = RequestMethod.POST,produces = {"application/json;charset=UTF-8"}) + public JsonResponse statistics(MultipartFile params) throws Exception { + log.info("导入学院班级信息:{}",params); + + return JsonResponse.newInstance().ok(); + } } diff --git a/src/main/java/com/ccsens/delivery/api/HealthController.java b/src/main/java/com/ccsens/delivery/api/HealthController.java index aff83f5..1cb4216 100644 --- a/src/main/java/com/ccsens/delivery/api/HealthController.java +++ b/src/main/java/com/ccsens/delivery/api/HealthController.java @@ -2,8 +2,8 @@ package com.ccsens.delivery.api; import com.ccsens.delivery.annotation.MustLogin; import com.ccsens.delivery.bean.dto.HealthDto; -import com.ccsens.delivery.bean.vo.FileVo; import com.ccsens.delivery.bean.vo.HealthVo; +import com.ccsens.delivery.bean.vo.MaterialVo; import com.ccsens.delivery.service.IHealthService; import com.ccsens.util.JsonResponse; import com.ccsens.util.bean.dto.QueryDto; @@ -18,7 +18,6 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import java.util.List; @@ -40,10 +39,41 @@ public class HealthController { @ApiImplicitParams({ }) @RequestMapping(value = "/submit", method = RequestMethod.POST,produces = {"application/json;charset=UTF-8"}) - public JsonResponse submitHealth(@ApiParam @RequestBody @Validated QueryDto params) throws Exception { + public JsonResponse submitHealth(@ApiParam @RequestBody @Validated QueryDto params) throws Exception { log.info("提交健康信息相关的表单:{}",params); healthService.submitHealth(params.getParam(),params.getUserId()); return JsonResponse.newInstance().ok(); } + + @ApiOperation(value = "获取健康信息图片",notes = "") + @ApiImplicitParams({ + }) + @RequestMapping(value = "/queryImg", method = RequestMethod.POST,produces = {"application/json;charset=UTF-8"}) + public JsonResponse> queryHealthImg(@ApiParam @RequestBody @Validated HealthDto.HealthByDay params) throws Exception { + log.info("获取健康信息图片:{}",params); + List healthLists = healthService.queryHealthImg(params); + return JsonResponse.newInstance().ok(healthLists); + } + + @ApiOperation(value = "识别后上传健康相关信息",notes = "") + @ApiImplicitParams({ + }) + @RequestMapping(value = "/ocr", method = RequestMethod.POST,produces = {"application/json;charset=UTF-8"}) + public JsonResponse ocrHealthConclusion(@ApiParam @RequestBody @Validated List params) throws Exception { + log.info("识别后上传健康相关信息:{}",params); + healthService.ocrHealthConclusion(params); + return JsonResponse.newInstance().ok(); + } + + @MustLogin + @ApiOperation(value = "后台分页查找健康相关的信息",notes = "") + @ApiImplicitParams({ + }) + @RequestMapping(value = "/back/query", method = RequestMethod.POST,produces = {"application/json;charset=UTF-8"}) + public JsonResponse> backQueryHealth(@ApiParam @RequestBody @Validated QueryDto params) throws Exception { + log.info("后台分页查找健康相关的信息:{}",params); + PageInfo backQueryHealthVoPageInfo = healthService.backQueryHealth(params.getParam(),params.getUserId()); + return JsonResponse.newInstance().ok(backQueryHealthVoPageInfo); + } } diff --git a/src/main/java/com/ccsens/delivery/api/MaterialController.java b/src/main/java/com/ccsens/delivery/api/MaterialController.java index 6ccf025..71e96e3 100644 --- a/src/main/java/com/ccsens/delivery/api/MaterialController.java +++ b/src/main/java/com/ccsens/delivery/api/MaterialController.java @@ -6,6 +6,7 @@ import com.ccsens.delivery.bean.dto.MaterialDto; import com.ccsens.delivery.bean.dto.StudentDto; import com.ccsens.delivery.bean.vo.CommonVo; import com.ccsens.delivery.bean.vo.MaterialVo; +import com.ccsens.delivery.bean.vo.StudentVo; import com.ccsens.delivery.service.IMaterialService; import com.ccsens.util.JsonResponse; import com.ccsens.util.bean.dto.QueryDto; @@ -71,4 +72,30 @@ public class MaterialController { return JsonResponse.newInstance().ok(); } + + @MustLogin + @ApiOperation(value = "/后台分页查找物资订单信息", notes = "") + @ApiImplicitParams({ + }) + @RequestMapping(value = "/back/query", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse> backQueryMaterialOrder(@ApiParam @RequestBody @Validated QueryDto params) throws Exception { + log.info("后台分页查找物资订单信息,{}",params); + PageInfo materialOrder = materialService.backQueryMaterialOrder(params.getUserId(), params.getParam()); + log.info("分页返回物资订单信息"); + return JsonResponse.newInstance().ok(materialOrder); + } + + @MustLogin + @ApiOperation(value = "/修改物资订单完成状态", notes = "") + @ApiImplicitParams({ + }) + @RequestMapping(value = "/status", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse updateOrderStatus(@ApiParam @RequestBody @Validated QueryDto params) throws Exception { + log.info("修改订单完成状态,{}",params); + materialService.updateOrderStatus(params.getUserId(), params.getParam()); + log.info("修改订单完成状态成功"); + return JsonResponse.newInstance().ok(); + } + + } diff --git a/src/main/java/com/ccsens/delivery/api/TrailsController.java b/src/main/java/com/ccsens/delivery/api/TrailsController.java index 1796abe..6323834 100644 --- a/src/main/java/com/ccsens/delivery/api/TrailsController.java +++ b/src/main/java/com/ccsens/delivery/api/TrailsController.java @@ -4,9 +4,12 @@ import com.ccsens.delivery.annotation.MustLogin; import com.ccsens.delivery.bean.dto.HealthDto; import com.ccsens.delivery.bean.dto.TrailsDto; import com.ccsens.delivery.bean.vo.FileVo; +import com.ccsens.delivery.bean.vo.HealthVo; +import com.ccsens.delivery.bean.vo.TrailsVo; import com.ccsens.delivery.service.ITrailsService; import com.ccsens.util.JsonResponse; import com.ccsens.util.bean.dto.QueryDto; +import com.github.pagehelper.PageInfo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; @@ -43,6 +46,15 @@ public class TrailsController { return JsonResponse.newInstance().ok(); } - + @MustLogin + @ApiOperation(value = "后台分页查找轨迹相关的信息",notes = "") + @ApiImplicitParams({ + }) + @RequestMapping(value = "/back/query", method = RequestMethod.POST,produces = {"application/json;charset=UTF-8"}) + public JsonResponse> backQueryTrails(@ApiParam @RequestBody @Validated QueryDto params) throws Exception { + log.info("后台分页查找健康相关的信息:{}",params); + PageInfo backQueryTrailsVoPageInfo = trailsService.backQueryTrails(params.getParam(),params.getUserId()); + return JsonResponse.newInstance().ok(backQueryTrailsVoPageInfo); + } } diff --git a/src/main/java/com/ccsens/delivery/api/UserController.java b/src/main/java/com/ccsens/delivery/api/UserController.java index b96ef43..e115844 100644 --- a/src/main/java/com/ccsens/delivery/api/UserController.java +++ b/src/main/java/com/ccsens/delivery/api/UserController.java @@ -89,17 +89,16 @@ public class UserController { return JsonResponse.newInstance().ok(userIdList); } -// @MustLogin -// @ApiOperation(value = "/修改用户信息", notes = "") -// @ApiImplicitParams({ -// }) -// @RequestMapping(value = "/update", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) -// public JsonResponse updateUserInfo(@ApiParam @RequestBody QueryDto params) throws Exception { -// log.info("修改用户信息,{}",params); -// UserVo.TokenBean tokenBean = userService.updateUserInfo(params.getUserId(), params.getParam()); -// return JsonResponse.newInstance().ok(tokenBean); -// } - + @MustLogin + @ApiOperation(value = "/修改用户信息", notes = "") + @ApiImplicitParams({ + }) + @RequestMapping(value = "/update", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse updateUserInfo(@ApiParam @RequestBody QueryDto params) throws Exception { + log.info("修改用户信息,{}",params); + UserVo.TokenBean tokenBean = userService.updateUserInfo(params.getUserId(), params.getParam()); + return JsonResponse.newInstance().ok(tokenBean); + } @MustLogin @ApiOperation(value = "/查看学生或教师信息", notes = "") diff --git a/src/main/java/com/ccsens/delivery/bean/dto/CommonDto.java b/src/main/java/com/ccsens/delivery/bean/dto/CommonDto.java index 1c5257d..8aad750 100644 --- a/src/main/java/com/ccsens/delivery/bean/dto/CommonDto.java +++ b/src/main/java/com/ccsens/delivery/bean/dto/CommonDto.java @@ -34,4 +34,24 @@ public class CommonDto { @ApiModelProperty("表单id") private Long id; } + + + @Data + @ApiModel("统计分析") + public static class Statistics{ + @ApiModelProperty("数据的类型 0学生 1教职工") + private byte type; + @ApiModelProperty("学院id/部门id") + private Long collegeId; + @ApiModelProperty("所在年级") + private String grade; + @ApiModelProperty("所在班级Id") + private Long stuClassId; + @ApiModelProperty("开始时间") + private Long startTime; + @ApiModelProperty("结束时间") + private Long endTime; + } + + } diff --git a/src/main/java/com/ccsens/delivery/bean/dto/HealthDto.java b/src/main/java/com/ccsens/delivery/bean/dto/HealthDto.java index abc29be..dae1331 100644 --- a/src/main/java/com/ccsens/delivery/bean/dto/HealthDto.java +++ b/src/main/java/com/ccsens/delivery/bean/dto/HealthDto.java @@ -1,11 +1,18 @@ package com.ccsens.delivery.bean.dto; +import cn.hutool.core.util.StrUtil; +import com.ccsens.delivery.util.DeliveryConstant; +import com.ccsens.util.SymmetricCryptoUtil; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import javax.validation.constraints.Max; import javax.validation.constraints.Min; +import javax.validation.constraints.NotNull; +import java.util.Date; +import java.util.List; /** * @author 逗 @@ -16,6 +23,7 @@ public class HealthDto { @Data @ApiModel("请求-提交健康相关的表单") public static class HealthForm{ + @NotNull(message = "表单id不能为空") @ApiModelProperty("表单页面id") private Long id; @ApiModelProperty("类型 0健康码、1行程码、2核酸检测、3抗原检测") @@ -24,5 +32,91 @@ public class HealthDto { private Long fileId; } + @Data + @ApiModel("请求-查询某天提交的健康信息") + public static class HealthByDay{ + @ApiModelProperty("类型 0健康码、1行程码、2核酸检测、3抗原检测") + private byte type; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty("日期 yyyy-MM-dd HH:mm:ss") + private Date startTime; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty("日期 yyyy-MM-dd HH:mm:ss") + private Date endTime; + } + + + + @Data + @ApiModel("请求-识别后的健康信息") + public static class HealthConclusion{ + @ApiModelProperty("提交记录id") + private Long id; + @ApiModelProperty("类型 0健康码、1行程码、2核酸检测、3抗原检测") + private byte type; + @ApiModelProperty("健康码颜色 0绿色 1黄色 2红色") + private byte colour; + @ApiModelProperty("行程码是否带星 0否 1是") + private byte star; + @ApiModelProperty("核酸/抗原结果 0阴性 1阳性") + private byte positive; + } + + + @Data + @ApiModel("请求-后台分页查找提交的健康信息") + public static class BackQueryHealth{ + @ApiModelProperty("类型 0健康码、1行程码、2核酸检测、3抗原检测") + private byte type; + @ApiModelProperty("类型 0学生 1教职工") + private byte post; + @ApiModelProperty("学生姓名") + private String name; + @ApiModelProperty("学号") + private String number; + @ApiModelProperty("手机号") + private String phone; + @ApiModelProperty("所在学院Id") + private Long collegeId; + @ApiModelProperty("所在年级") + private String grade; + @ApiModelProperty("所在班级Id") + private Long stuClassId; + @ApiModelProperty("提交状态 为空查询全部 0未上报 1已上报 ") + private Byte status; + @ApiModelProperty("颜色 0绿色 1黄色 2红色") + private Byte colour; + @ApiModelProperty("是否带星 0否 1是") + private Byte star; + @ApiModelProperty("是否阳性 0阴性 1阳性") + private Byte positive; + @ApiModelProperty("提交时间") + private Long submitTime; + @ApiModelProperty("第几页") + @Min(value = 1) + private int pageNum = 1; + @ApiModelProperty("每页多少条") + @Min(value = 1) + @Max(value=100) + private int pageSize = 10; + + public String getNumber() { + String s = number; + if(StrUtil.isNotBlank(number)){ + s = SymmetricCryptoUtil.encrypt(DeliveryConstant.ENCRYPT_KEY,number); + } + return s; + } + + public String getPhone() { + String s = phone; + if(StrUtil.isNotBlank(phone)){ + s = SymmetricCryptoUtil.encrypt(DeliveryConstant.ENCRYPT_KEY,phone); + } + return s; + } + + } + } diff --git a/src/main/java/com/ccsens/delivery/bean/dto/MaterialDto.java b/src/main/java/com/ccsens/delivery/bean/dto/MaterialDto.java index 83108e9..e3dcebd 100644 --- a/src/main/java/com/ccsens/delivery/bean/dto/MaterialDto.java +++ b/src/main/java/com/ccsens/delivery/bean/dto/MaterialDto.java @@ -1,9 +1,17 @@ package com.ccsens.delivery.bean.dto; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.ccsens.delivery.util.DeliveryConstant; +import com.ccsens.util.SymmetricCryptoUtil; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import javax.validation.constraints.Max; +import javax.validation.constraints.Min; +import java.util.Date; import java.util.List; /** @@ -21,17 +29,91 @@ public class MaterialDto { private Long planTime; @ApiModelProperty("备注") private String remark; + @ApiModelProperty("物资购买详情") private List detailList; } @Data - @ApiModel("请求-提交物资购买的表单") + @ApiModel("请求-物资购买详情") public static class MaterialFormDetail{ @ApiModelProperty("物品id") private Long id; @ApiModelProperty("数量") - private int planTime; + private int num; } + @Data + @ApiModel("请求-后台分页查找物资订单信息") + public static class BackQueryMaterialOrder{ + @ApiModelProperty("类型 0学生 1教职工") + private byte post; + @ApiModelProperty("学生姓名") + private String name; + @ApiModelProperty("学号") + private String number; + @ApiModelProperty("手机号") + private String phone; +// @ApiModelProperty("身份证号") +// private String idCard; + @ApiModelProperty("所在学院Id") + private Long collegeId; + @ApiModelProperty("所在年级") + private String grade; + @ApiModelProperty("所在班级Id") + private Long stuClassId; + @ApiModelProperty("所在楼栋Id") + private List dormitoryId; + @ApiModelProperty("详细地址") + private String address; + @ApiModelProperty("物品名称") + private String materialName; + @ApiModelProperty("配送状态 0未配送 1已完成 2无药 3撤回") + private Byte status; + @ApiModelProperty("订单提交时间") + private Long submitTime; + @ApiModelProperty("希望配送开始时间") + private Long startTime; + @ApiModelProperty("希望配送结束时间") + private Long endTime; + @ApiModelProperty("第几页") + @Min(value = 1) + private int pageNum = 1; + @ApiModelProperty("每页多少条") + @Min(value = 1) + @Max(value=100) + private int pageSize = 10; + +// public Long getEndTime() { +// Long t = endTime; +// if(ObjectUtil.isNotNull(endTime)){ +// t = DateUtil.endOfDay(new Date(endTime)).getTime(); +// } +// return t; +// } + + public String getNumber() { + String s = number; + if(StrUtil.isNotBlank(number)){ + s = SymmetricCryptoUtil.encrypt(DeliveryConstant.ENCRYPT_KEY,number); + } + return s; + } + + public String getPhone() { + String s = phone; + if(StrUtil.isNotBlank(phone)){ + s = SymmetricCryptoUtil.encrypt(DeliveryConstant.ENCRYPT_KEY,phone); + } + return s; + } + +// public String getIdCard() { +// String s = idCard; +// if(StrUtil.isNotBlank(idCard)){ +// s = SymmetricCryptoUtil.encrypt(DeliveryConstant.ENCRYPT_KEY,idCard); +// } +// return s; +// } + } } diff --git a/src/main/java/com/ccsens/delivery/bean/dto/StudentDto.java b/src/main/java/com/ccsens/delivery/bean/dto/StudentDto.java index 407031f..6c34746 100644 --- a/src/main/java/com/ccsens/delivery/bean/dto/StudentDto.java +++ b/src/main/java/com/ccsens/delivery/bean/dto/StudentDto.java @@ -70,31 +70,34 @@ public class StudentDto { @Data @ApiModel("请求-提价订单") public static class SubmitOrder{ - @NotBlank(message = "请输入姓名") - @ApiModelProperty("姓名") - private String name; - @NotBlank(message = "请输入学号") - @ApiModelProperty("学号") - private String stuNum; - @NotEmpty(message = "请输入正确的手机号") - @Pattern(regexp="^[1]([3-9])[0-9]{9}$",message="请输入正确的手机号") - @ApiModelProperty("联系电话") - private String phone; - @NotEmpty(message = "请输入正确的身份证号") - @ApiModelProperty("身份证号") - private String idCard; - @ApiModelProperty("所在学院Id") - private Long collegeId; - @ApiModelProperty("所在学院名称") - private String collegeName; - @ApiModelProperty("所在宿舍Id") - private Long dormitoryId; - @ApiModelProperty("所在宿舍名称") - private String dormitoryName; - @NotBlank(message = "请填写详细地址") - @ApiModelProperty("详细地址") - private String address; - @NotBlank(message = "请填写症状描述") + @NotNull(message = "表单id不能为空") + @ApiModelProperty("表单id") + private Long id; +// @NotBlank(message = "请输入姓名") +// @ApiModelProperty("姓名") +// private String name; +// @NotBlank(message = "请输入学号") +// @ApiModelProperty("学号") +// private String stuNum; +// @NotEmpty(message = "请输入正确的手机号") +// @Pattern(regexp="^[1]([3-9])[0-9]{9}$",message="请输入正确的手机号") +// @ApiModelProperty("联系电话") +// private String phone; +// @NotEmpty(message = "请输入正确的身份证号") +// @ApiModelProperty("身份证号") +// private String idCard; +// @ApiModelProperty("所在学院Id") +// private Long collegeId; +// @ApiModelProperty("所在学院名称") +// private String collegeName; +// @ApiModelProperty("所在宿舍Id") +// private Long dormitoryId; +// @ApiModelProperty("所在宿舍名称") +// private String dormitoryName; +// @NotBlank(message = "请填写详细地址") +// @ApiModelProperty("详细地址") +// private String address; +// @NotBlank(message = "请填写症状描述") @ApiModelProperty("症状描述") private String symptom; @ApiModelProperty("是否断药 0否 1是") @@ -126,16 +129,22 @@ public class StudentDto { @Data @ApiModel("请求-后台分页查找订单信息") public static class BackQueryOrder{ + @ApiModelProperty("类型 0学生 1教职工") + private byte post; @ApiModelProperty("学生姓名") private String name; @ApiModelProperty("学号") - private String stuNum; + private String number; @ApiModelProperty("手机号") private String phone; @ApiModelProperty("身份证号") private String idCard; @ApiModelProperty("所在学院Id") private Long collegeId; + @ApiModelProperty("所在年级") + private String grade; + @ApiModelProperty("所在班级Id") + private Long stuClassId; @ApiModelProperty("所在宿舍Id") private List dormitoryId; @ApiModelProperty("详细地址") @@ -148,9 +157,11 @@ public class StudentDto { private Byte broken; @ApiModelProperty("配送状态 0未配送 1已完成 2无药 3撤回") private Byte status; - @ApiModelProperty("开始时间") + @ApiModelProperty("订单提交时间") + private Long submitTime; + @ApiModelProperty("希望配送开始时间") private Long startTime; - @ApiModelProperty("结束时间") + @ApiModelProperty("希望配送结束时间") private Long endTime; @ApiModelProperty("第几页") @Min(value = 1) @@ -160,18 +171,18 @@ public class StudentDto { @Max(value=100) private int pageSize = 10; - public Long getEndTime() { - Long t = endTime; - if(ObjectUtil.isNotNull(endTime)){ - t = DateUtil.endOfDay(new Date(endTime)).getTime(); - } - return t; - } +// public Long getEndTime() { +// Long t = endTime; +// if(ObjectUtil.isNotNull(endTime)){ +// t = DateUtil.endOfDay(new Date(endTime)).getTime(); +// } +// return t; +// } - public String getStuNum() { - String s = stuNum; - if(StrUtil.isNotBlank(stuNum)){ - s = SymmetricCryptoUtil.encrypt(DeliveryConstant.ENCRYPT_KEY,stuNum); + public String getNumber() { + String s = number; + if(StrUtil.isNotBlank(number)){ + s = SymmetricCryptoUtil.encrypt(DeliveryConstant.ENCRYPT_KEY,number); } return s; } diff --git a/src/main/java/com/ccsens/delivery/bean/dto/TrailsDto.java b/src/main/java/com/ccsens/delivery/bean/dto/TrailsDto.java index b76233b..dc796f9 100644 --- a/src/main/java/com/ccsens/delivery/bean/dto/TrailsDto.java +++ b/src/main/java/com/ccsens/delivery/bean/dto/TrailsDto.java @@ -1,10 +1,15 @@ package com.ccsens.delivery.bean.dto; +import cn.hutool.core.util.StrUtil; +import com.ccsens.delivery.util.DeliveryConstant; +import com.ccsens.util.SymmetricCryptoUtil; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import javax.validation.constraints.Max; +import javax.validation.constraints.Min; import java.util.Date; import java.util.List; @@ -19,17 +24,24 @@ public class TrailsDto { public static class TrailsForm{ @ApiModelProperty("表单页面id") private Long id; + @ApiModelProperty("每天的轨迹信息") + private List trailsFormDays; + } + + @Data + @ApiModel("请求-每天的轨迹信息") + public static class TrailsFormDay{ @JsonFormat(pattern = "yyyy-MM-dd") @ApiModelProperty("日期") private Date trailsDate; @ApiModelProperty("备注") private String remark; - @ApiModelProperty("备注") + @ApiModelProperty("详情") private List trailsDetailList; } @Data - @ApiModel("请求-提交活动轨迹记录") + @ApiModel("请求-活动轨迹记录详情") public static class TrailsDetail{ @ApiModelProperty("开始时间") private Long startTime; @@ -37,12 +49,79 @@ public class TrailsDto { private Long endTime; @ApiModelProperty("轨迹详情") private String trailsDetail; - @ApiModelProperty("轨迹详情") + @ApiModelProperty("交通工具") private String vehicle; - @ApiModelProperty("轨迹详情") + @ApiModelProperty("交通工具备注") private String vehicleRemark; - @ApiModelProperty("是否戴口罩 0否 1是") - private byte mask; + @ApiModelProperty("防护手段") + private String mask; + @ApiModelProperty("防护备注") + private String otherMask; } + + @Data + @ApiModel("请求-后台分页查找轨迹信息") + public static class BackQueryTrails{ + @ApiModelProperty("类型 0学生 1教职工") + private byte post; + @ApiModelProperty("姓名") + private String name; + @ApiModelProperty("学号") + private String number; + @ApiModelProperty("手机号") + private String phone; + @ApiModelProperty("所在学院Id") + private Long collegeId; + @ApiModelProperty("所在年级") + private String grade; + @ApiModelProperty("所在班级Id") + private Long stuClassId; + @ApiModelProperty("所在楼栋Id") + private List dormitoryId; + @ApiModelProperty("详细地址") + private String address; + @ApiModelProperty("交通工具") + private String vehicle; + @ApiModelProperty("活动轨迹") + private String trailsDetail; + @JsonFormat(pattern = "yyyy-MM-dd") + @ApiModelProperty("轨迹日期开始 yyyy-MM-dd") + private Date startDate; + @JsonFormat(pattern = "yyyy-MM-dd") + @ApiModelProperty("轨迹日期结束 yyyy-MM-dd") + private Date endDate; + @JsonFormat(pattern = "HH:mm:ss") + @ApiModelProperty("轨迹日期开始 HH:mm:ss") + private Date startTime; + @JsonFormat(pattern = "HH:mm:ss") + @ApiModelProperty("轨迹日期结束 HH:mm:ss") + private Date endTime; + + @ApiModelProperty("第几页") + @Min(value = 1) + private int pageNum = 1; + @ApiModelProperty("每页多少条") + @Min(value = 1) + @Max(value=100) + private int pageSize = 10; + + public String getNumber() { + String s = number; + if(StrUtil.isNotBlank(number)){ + s = SymmetricCryptoUtil.encrypt(DeliveryConstant.ENCRYPT_KEY,number); + } + return s; + } + + public String getPhone() { + String s = phone; + if(StrUtil.isNotBlank(phone)){ + s = SymmetricCryptoUtil.encrypt(DeliveryConstant.ENCRYPT_KEY,phone); + } + return s; + } + + } + } diff --git a/src/main/java/com/ccsens/delivery/bean/dto/UserDto.java b/src/main/java/com/ccsens/delivery/bean/dto/UserDto.java index 43c7f42..d7ad7be 100644 --- a/src/main/java/com/ccsens/delivery/bean/dto/UserDto.java +++ b/src/main/java/com/ccsens/delivery/bean/dto/UserDto.java @@ -4,7 +4,10 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; +import javax.validation.constraints.Pattern; /** * @author 逗 @@ -102,13 +105,20 @@ public class UserDto { @ApiModelProperty("信息id") private Long id; @ApiModelProperty("身份 0学生 1教师") - private String post; + private byte post; + @ApiModelProperty("学生类别 0 本科生 1研究生 2留学生") + private byte studentType; + @NotBlank(message = "请输入姓名") @ApiModelProperty("姓名") private String name; + @NotBlank(message = "请输入学号") @ApiModelProperty("学号/工号") private String number; + @NotEmpty(message = "请输入正确的手机号") + @Pattern(regexp="^[1]([3-9])[0-9]{9}$",message="请输入正确的手机号") @ApiModelProperty("联系电话") private String phone; + @NotEmpty(message = "请输入正确的身份证号") @ApiModelProperty("身份证号") private String idCard; @ApiModelProperty("学院id") @@ -121,8 +131,10 @@ public class UserDto { private String dormitoryName; @ApiModelProperty("所在年级") private String grade; - @ApiModelProperty("所在班级") - private String stuClass; + @ApiModelProperty("所在班级Id") + private Long stuClassId; + @ApiModelProperty("所在班级名称") + private String stuClassName; @ApiModelProperty("详细地址") private String address; @ApiModelProperty("是否同意用户协议") diff --git a/src/main/java/com/ccsens/delivery/bean/po/RecordHealth.java b/src/main/java/com/ccsens/delivery/bean/po/RecordHealth.java index 0d31852..7451fe1 100644 --- a/src/main/java/com/ccsens/delivery/bean/po/RecordHealth.java +++ b/src/main/java/com/ccsens/delivery/bean/po/RecordHealth.java @@ -10,7 +10,13 @@ public class RecordHealth implements Serializable { private Byte type; - private String fileId; + private Long fileId; + + private Byte colour; + + private Byte star; + + private Byte positive; private Long submitTime; @@ -48,12 +54,36 @@ public class RecordHealth implements Serializable { this.type = type; } - public String getFileId() { + public Long getFileId() { return fileId; } - public void setFileId(String fileId) { - this.fileId = fileId == null ? null : fileId.trim(); + public void setFileId(Long fileId) { + this.fileId = fileId; + } + + public Byte getColour() { + return colour; + } + + public void setColour(Byte colour) { + this.colour = colour; + } + + public Byte getStar() { + return star; + } + + public void setStar(Byte star) { + this.star = star; + } + + public Byte getPositive() { + return positive; + } + + public void setPositive(Byte positive) { + this.positive = positive; } public Long getSubmitTime() { @@ -106,6 +136,9 @@ public class RecordHealth implements Serializable { sb.append(", userId=").append(userId); sb.append(", type=").append(type); sb.append(", fileId=").append(fileId); + sb.append(", colour=").append(colour); + sb.append(", star=").append(star); + sb.append(", positive=").append(positive); sb.append(", submitTime=").append(submitTime); sb.append(", operator=").append(operator); sb.append(", createdAt=").append(createdAt); diff --git a/src/main/java/com/ccsens/delivery/bean/po/RecordHealthExample.java b/src/main/java/com/ccsens/delivery/bean/po/RecordHealthExample.java index 0ee9d1d..12f0ce9 100644 --- a/src/main/java/com/ccsens/delivery/bean/po/RecordHealthExample.java +++ b/src/main/java/com/ccsens/delivery/bean/po/RecordHealthExample.java @@ -295,63 +295,233 @@ public class RecordHealthExample { return (Criteria) this; } - public Criteria andFileIdEqualTo(String value) { + public Criteria andFileIdEqualTo(Long value) { addCriterion("file_id =", value, "fileId"); return (Criteria) this; } - public Criteria andFileIdNotEqualTo(String value) { + public Criteria andFileIdNotEqualTo(Long value) { addCriterion("file_id <>", value, "fileId"); return (Criteria) this; } - public Criteria andFileIdGreaterThan(String value) { + public Criteria andFileIdGreaterThan(Long value) { addCriterion("file_id >", value, "fileId"); return (Criteria) this; } - public Criteria andFileIdGreaterThanOrEqualTo(String value) { + public Criteria andFileIdGreaterThanOrEqualTo(Long value) { addCriterion("file_id >=", value, "fileId"); return (Criteria) this; } - public Criteria andFileIdLessThan(String value) { + public Criteria andFileIdLessThan(Long value) { addCriterion("file_id <", value, "fileId"); return (Criteria) this; } - public Criteria andFileIdLessThanOrEqualTo(String value) { + public Criteria andFileIdLessThanOrEqualTo(Long value) { addCriterion("file_id <=", value, "fileId"); return (Criteria) this; } - public Criteria andFileIdLike(String value) { - addCriterion("file_id like", value, "fileId"); + public Criteria andFileIdIn(List values) { + addCriterion("file_id in", values, "fileId"); return (Criteria) this; } - public Criteria andFileIdNotLike(String value) { - addCriterion("file_id not like", value, "fileId"); + public Criteria andFileIdNotIn(List values) { + addCriterion("file_id not in", values, "fileId"); return (Criteria) this; } - public Criteria andFileIdIn(List values) { - addCriterion("file_id in", values, "fileId"); + public Criteria andFileIdBetween(Long value1, Long value2) { + addCriterion("file_id between", value1, value2, "fileId"); return (Criteria) this; } - public Criteria andFileIdNotIn(List values) { - addCriterion("file_id not in", values, "fileId"); + public Criteria andFileIdNotBetween(Long value1, Long value2) { + addCriterion("file_id not between", value1, value2, "fileId"); return (Criteria) this; } - public Criteria andFileIdBetween(String value1, String value2) { - addCriterion("file_id between", value1, value2, "fileId"); + public Criteria andColourIsNull() { + addCriterion("colour is null"); return (Criteria) this; } - public Criteria andFileIdNotBetween(String value1, String value2) { - addCriterion("file_id not between", value1, value2, "fileId"); + public Criteria andColourIsNotNull() { + addCriterion("colour is not null"); + return (Criteria) this; + } + + public Criteria andColourEqualTo(Byte value) { + addCriterion("colour =", value, "colour"); + return (Criteria) this; + } + + public Criteria andColourNotEqualTo(Byte value) { + addCriterion("colour <>", value, "colour"); + return (Criteria) this; + } + + public Criteria andColourGreaterThan(Byte value) { + addCriterion("colour >", value, "colour"); + return (Criteria) this; + } + + public Criteria andColourGreaterThanOrEqualTo(Byte value) { + addCriterion("colour >=", value, "colour"); + return (Criteria) this; + } + + public Criteria andColourLessThan(Byte value) { + addCriterion("colour <", value, "colour"); + return (Criteria) this; + } + + public Criteria andColourLessThanOrEqualTo(Byte value) { + addCriterion("colour <=", value, "colour"); + return (Criteria) this; + } + + public Criteria andColourIn(List values) { + addCriterion("colour in", values, "colour"); + return (Criteria) this; + } + + public Criteria andColourNotIn(List values) { + addCriterion("colour not in", values, "colour"); + return (Criteria) this; + } + + public Criteria andColourBetween(Byte value1, Byte value2) { + addCriterion("colour between", value1, value2, "colour"); + return (Criteria) this; + } + + public Criteria andColourNotBetween(Byte value1, Byte value2) { + addCriterion("colour not between", value1, value2, "colour"); + return (Criteria) this; + } + + public Criteria andStarIsNull() { + addCriterion("star is null"); + return (Criteria) this; + } + + public Criteria andStarIsNotNull() { + addCriterion("star is not null"); + return (Criteria) this; + } + + public Criteria andStarEqualTo(Byte value) { + addCriterion("star =", value, "star"); + return (Criteria) this; + } + + public Criteria andStarNotEqualTo(Byte value) { + addCriterion("star <>", value, "star"); + return (Criteria) this; + } + + public Criteria andStarGreaterThan(Byte value) { + addCriterion("star >", value, "star"); + return (Criteria) this; + } + + public Criteria andStarGreaterThanOrEqualTo(Byte value) { + addCriterion("star >=", value, "star"); + return (Criteria) this; + } + + public Criteria andStarLessThan(Byte value) { + addCriterion("star <", value, "star"); + return (Criteria) this; + } + + public Criteria andStarLessThanOrEqualTo(Byte value) { + addCriterion("star <=", value, "star"); + return (Criteria) this; + } + + public Criteria andStarIn(List values) { + addCriterion("star in", values, "star"); + return (Criteria) this; + } + + public Criteria andStarNotIn(List values) { + addCriterion("star not in", values, "star"); + return (Criteria) this; + } + + public Criteria andStarBetween(Byte value1, Byte value2) { + addCriterion("star between", value1, value2, "star"); + return (Criteria) this; + } + + public Criteria andStarNotBetween(Byte value1, Byte value2) { + addCriterion("star not between", value1, value2, "star"); + return (Criteria) this; + } + + public Criteria andPositiveIsNull() { + addCriterion("positive is null"); + return (Criteria) this; + } + + public Criteria andPositiveIsNotNull() { + addCriterion("positive is not null"); + return (Criteria) this; + } + + public Criteria andPositiveEqualTo(Byte value) { + addCriterion("positive =", value, "positive"); + return (Criteria) this; + } + + public Criteria andPositiveNotEqualTo(Byte value) { + addCriterion("positive <>", value, "positive"); + return (Criteria) this; + } + + public Criteria andPositiveGreaterThan(Byte value) { + addCriterion("positive >", value, "positive"); + return (Criteria) this; + } + + public Criteria andPositiveGreaterThanOrEqualTo(Byte value) { + addCriterion("positive >=", value, "positive"); + return (Criteria) this; + } + + public Criteria andPositiveLessThan(Byte value) { + addCriterion("positive <", value, "positive"); + return (Criteria) this; + } + + public Criteria andPositiveLessThanOrEqualTo(Byte value) { + addCriterion("positive <=", value, "positive"); + return (Criteria) this; + } + + public Criteria andPositiveIn(List values) { + addCriterion("positive in", values, "positive"); + return (Criteria) this; + } + + public Criteria andPositiveNotIn(List values) { + addCriterion("positive not in", values, "positive"); + return (Criteria) this; + } + + public Criteria andPositiveBetween(Byte value1, Byte value2) { + addCriterion("positive between", value1, value2, "positive"); + return (Criteria) this; + } + + public Criteria andPositiveNotBetween(Byte value1, Byte value2) { + addCriterion("positive not between", value1, value2, "positive"); return (Criteria) this; } diff --git a/src/main/java/com/ccsens/delivery/bean/po/RecordTrails.java b/src/main/java/com/ccsens/delivery/bean/po/RecordTrails.java index e10f8d0..16c0f71 100644 --- a/src/main/java/com/ccsens/delivery/bean/po/RecordTrails.java +++ b/src/main/java/com/ccsens/delivery/bean/po/RecordTrails.java @@ -8,7 +8,7 @@ public class RecordTrails implements Serializable { private Long userId; - private String trailsDate; + private Date trailsDate; private Long submitTime; @@ -40,12 +40,12 @@ public class RecordTrails implements Serializable { this.userId = userId; } - public String getTrailsDate() { + public Date getTrailsDate() { return trailsDate; } - public void setTrailsDate(String trailsDate) { - this.trailsDate = trailsDate == null ? null : trailsDate.trim(); + public void setTrailsDate(Date trailsDate) { + this.trailsDate = trailsDate; } public Long getSubmitTime() { diff --git a/src/main/java/com/ccsens/delivery/bean/po/RecordTrailsDetail.java b/src/main/java/com/ccsens/delivery/bean/po/RecordTrailsDetail.java index 344ea5b..0c21a17 100644 --- a/src/main/java/com/ccsens/delivery/bean/po/RecordTrailsDetail.java +++ b/src/main/java/com/ccsens/delivery/bean/po/RecordTrailsDetail.java @@ -16,7 +16,11 @@ public class RecordTrailsDetail implements Serializable { private String vehicle; - private Byte mask; + private String vehicleRemark; + + private String mask; + + private String otherMask; private Long operator; @@ -76,12 +80,28 @@ public class RecordTrailsDetail implements Serializable { this.vehicle = vehicle == null ? null : vehicle.trim(); } - public Byte getMask() { + public String getVehicleRemark() { + return vehicleRemark; + } + + public void setVehicleRemark(String vehicleRemark) { + this.vehicleRemark = vehicleRemark == null ? null : vehicleRemark.trim(); + } + + public String getMask() { return mask; } - public void setMask(Byte mask) { - this.mask = mask; + public void setMask(String mask) { + this.mask = mask == null ? null : mask.trim(); + } + + public String getOtherMask() { + return otherMask; + } + + public void setOtherMask(String otherMask) { + this.otherMask = otherMask == null ? null : otherMask.trim(); } public Long getOperator() { @@ -128,7 +148,9 @@ public class RecordTrailsDetail implements Serializable { sb.append(", endTime=").append(endTime); sb.append(", trailsDetail=").append(trailsDetail); sb.append(", vehicle=").append(vehicle); + sb.append(", vehicleRemark=").append(vehicleRemark); sb.append(", mask=").append(mask); + sb.append(", otherMask=").append(otherMask); sb.append(", operator=").append(operator); sb.append(", createdAt=").append(createdAt); sb.append(", updatedAt=").append(updatedAt); diff --git a/src/main/java/com/ccsens/delivery/bean/po/RecordTrailsDetailExample.java b/src/main/java/com/ccsens/delivery/bean/po/RecordTrailsDetailExample.java index 352883d..72796d8 100644 --- a/src/main/java/com/ccsens/delivery/bean/po/RecordTrailsDetailExample.java +++ b/src/main/java/com/ccsens/delivery/bean/po/RecordTrailsDetailExample.java @@ -485,6 +485,76 @@ public class RecordTrailsDetailExample { return (Criteria) this; } + public Criteria andVehicleRemarkIsNull() { + addCriterion("vehicle_remark is null"); + return (Criteria) this; + } + + public Criteria andVehicleRemarkIsNotNull() { + addCriterion("vehicle_remark is not null"); + return (Criteria) this; + } + + public Criteria andVehicleRemarkEqualTo(String value) { + addCriterion("vehicle_remark =", value, "vehicleRemark"); + return (Criteria) this; + } + + public Criteria andVehicleRemarkNotEqualTo(String value) { + addCriterion("vehicle_remark <>", value, "vehicleRemark"); + return (Criteria) this; + } + + public Criteria andVehicleRemarkGreaterThan(String value) { + addCriterion("vehicle_remark >", value, "vehicleRemark"); + return (Criteria) this; + } + + public Criteria andVehicleRemarkGreaterThanOrEqualTo(String value) { + addCriterion("vehicle_remark >=", value, "vehicleRemark"); + return (Criteria) this; + } + + public Criteria andVehicleRemarkLessThan(String value) { + addCriterion("vehicle_remark <", value, "vehicleRemark"); + return (Criteria) this; + } + + public Criteria andVehicleRemarkLessThanOrEqualTo(String value) { + addCriterion("vehicle_remark <=", value, "vehicleRemark"); + return (Criteria) this; + } + + public Criteria andVehicleRemarkLike(String value) { + addCriterion("vehicle_remark like", value, "vehicleRemark"); + return (Criteria) this; + } + + public Criteria andVehicleRemarkNotLike(String value) { + addCriterion("vehicle_remark not like", value, "vehicleRemark"); + return (Criteria) this; + } + + public Criteria andVehicleRemarkIn(List values) { + addCriterion("vehicle_remark in", values, "vehicleRemark"); + return (Criteria) this; + } + + public Criteria andVehicleRemarkNotIn(List values) { + addCriterion("vehicle_remark not in", values, "vehicleRemark"); + return (Criteria) this; + } + + public Criteria andVehicleRemarkBetween(String value1, String value2) { + addCriterion("vehicle_remark between", value1, value2, "vehicleRemark"); + return (Criteria) this; + } + + public Criteria andVehicleRemarkNotBetween(String value1, String value2) { + addCriterion("vehicle_remark not between", value1, value2, "vehicleRemark"); + return (Criteria) this; + } + public Criteria andMaskIsNull() { addCriterion("mask is null"); return (Criteria) this; @@ -495,56 +565,136 @@ public class RecordTrailsDetailExample { return (Criteria) this; } - public Criteria andMaskEqualTo(Byte value) { + public Criteria andMaskEqualTo(String value) { addCriterion("mask =", value, "mask"); return (Criteria) this; } - public Criteria andMaskNotEqualTo(Byte value) { + public Criteria andMaskNotEqualTo(String value) { addCriterion("mask <>", value, "mask"); return (Criteria) this; } - public Criteria andMaskGreaterThan(Byte value) { + public Criteria andMaskGreaterThan(String value) { addCriterion("mask >", value, "mask"); return (Criteria) this; } - public Criteria andMaskGreaterThanOrEqualTo(Byte value) { + public Criteria andMaskGreaterThanOrEqualTo(String value) { addCriterion("mask >=", value, "mask"); return (Criteria) this; } - public Criteria andMaskLessThan(Byte value) { + public Criteria andMaskLessThan(String value) { addCriterion("mask <", value, "mask"); return (Criteria) this; } - public Criteria andMaskLessThanOrEqualTo(Byte value) { + public Criteria andMaskLessThanOrEqualTo(String value) { addCriterion("mask <=", value, "mask"); return (Criteria) this; } - public Criteria andMaskIn(List values) { + public Criteria andMaskLike(String value) { + addCriterion("mask like", value, "mask"); + return (Criteria) this; + } + + public Criteria andMaskNotLike(String value) { + addCriterion("mask not like", value, "mask"); + return (Criteria) this; + } + + public Criteria andMaskIn(List values) { addCriterion("mask in", values, "mask"); return (Criteria) this; } - public Criteria andMaskNotIn(List values) { + public Criteria andMaskNotIn(List values) { addCriterion("mask not in", values, "mask"); return (Criteria) this; } - public Criteria andMaskBetween(Byte value1, Byte value2) { + public Criteria andMaskBetween(String value1, String value2) { addCriterion("mask between", value1, value2, "mask"); return (Criteria) this; } - public Criteria andMaskNotBetween(Byte value1, Byte value2) { + public Criteria andMaskNotBetween(String value1, String value2) { addCriterion("mask not between", value1, value2, "mask"); return (Criteria) this; } + public Criteria andOtherMaskIsNull() { + addCriterion("other_mask is null"); + return (Criteria) this; + } + + public Criteria andOtherMaskIsNotNull() { + addCriterion("other_mask is not null"); + return (Criteria) this; + } + + public Criteria andOtherMaskEqualTo(String value) { + addCriterion("other_mask =", value, "otherMask"); + return (Criteria) this; + } + + public Criteria andOtherMaskNotEqualTo(String value) { + addCriterion("other_mask <>", value, "otherMask"); + return (Criteria) this; + } + + public Criteria andOtherMaskGreaterThan(String value) { + addCriterion("other_mask >", value, "otherMask"); + return (Criteria) this; + } + + public Criteria andOtherMaskGreaterThanOrEqualTo(String value) { + addCriterion("other_mask >=", value, "otherMask"); + return (Criteria) this; + } + + public Criteria andOtherMaskLessThan(String value) { + addCriterion("other_mask <", value, "otherMask"); + return (Criteria) this; + } + + public Criteria andOtherMaskLessThanOrEqualTo(String value) { + addCriterion("other_mask <=", value, "otherMask"); + return (Criteria) this; + } + + public Criteria andOtherMaskLike(String value) { + addCriterion("other_mask like", value, "otherMask"); + return (Criteria) this; + } + + public Criteria andOtherMaskNotLike(String value) { + addCriterion("other_mask not like", value, "otherMask"); + return (Criteria) this; + } + + public Criteria andOtherMaskIn(List values) { + addCriterion("other_mask in", values, "otherMask"); + return (Criteria) this; + } + + public Criteria andOtherMaskNotIn(List values) { + addCriterion("other_mask not in", values, "otherMask"); + return (Criteria) this; + } + + public Criteria andOtherMaskBetween(String value1, String value2) { + addCriterion("other_mask between", value1, value2, "otherMask"); + return (Criteria) this; + } + + public Criteria andOtherMaskNotBetween(String value1, String value2) { + addCriterion("other_mask not between", value1, value2, "otherMask"); + return (Criteria) this; + } + public Criteria andOperatorIsNull() { addCriterion("operator is null"); return (Criteria) this; diff --git a/src/main/java/com/ccsens/delivery/bean/po/RecordTrailsExample.java b/src/main/java/com/ccsens/delivery/bean/po/RecordTrailsExample.java index f94cdd0..8002303 100644 --- a/src/main/java/com/ccsens/delivery/bean/po/RecordTrailsExample.java +++ b/src/main/java/com/ccsens/delivery/bean/po/RecordTrailsExample.java @@ -235,62 +235,52 @@ public class RecordTrailsExample { return (Criteria) this; } - public Criteria andTrailsDateEqualTo(String value) { + public Criteria andTrailsDateEqualTo(Date value) { addCriterion("trails_date =", value, "trailsDate"); return (Criteria) this; } - public Criteria andTrailsDateNotEqualTo(String value) { + public Criteria andTrailsDateNotEqualTo(Date value) { addCriterion("trails_date <>", value, "trailsDate"); return (Criteria) this; } - public Criteria andTrailsDateGreaterThan(String value) { + public Criteria andTrailsDateGreaterThan(Date value) { addCriterion("trails_date >", value, "trailsDate"); return (Criteria) this; } - public Criteria andTrailsDateGreaterThanOrEqualTo(String value) { + public Criteria andTrailsDateGreaterThanOrEqualTo(Date value) { addCriterion("trails_date >=", value, "trailsDate"); return (Criteria) this; } - public Criteria andTrailsDateLessThan(String value) { + public Criteria andTrailsDateLessThan(Date value) { addCriterion("trails_date <", value, "trailsDate"); return (Criteria) this; } - public Criteria andTrailsDateLessThanOrEqualTo(String value) { + public Criteria andTrailsDateLessThanOrEqualTo(Date value) { addCriterion("trails_date <=", value, "trailsDate"); return (Criteria) this; } - public Criteria andTrailsDateLike(String value) { - addCriterion("trails_date like", value, "trailsDate"); - return (Criteria) this; - } - - public Criteria andTrailsDateNotLike(String value) { - addCriterion("trails_date not like", value, "trailsDate"); - return (Criteria) this; - } - - public Criteria andTrailsDateIn(List values) { + public Criteria andTrailsDateIn(List values) { addCriterion("trails_date in", values, "trailsDate"); return (Criteria) this; } - public Criteria andTrailsDateNotIn(List values) { + public Criteria andTrailsDateNotIn(List values) { addCriterion("trails_date not in", values, "trailsDate"); return (Criteria) this; } - public Criteria andTrailsDateBetween(String value1, String value2) { + public Criteria andTrailsDateBetween(Date value1, Date value2) { addCriterion("trails_date between", value1, value2, "trailsDate"); return (Criteria) this; } - public Criteria andTrailsDateNotBetween(String value1, String value2) { + public Criteria andTrailsDateNotBetween(Date value1, Date value2) { addCriterion("trails_date not between", value1, value2, "trailsDate"); return (Criteria) this; } diff --git a/src/main/java/com/ccsens/delivery/bean/po/SysUserInfo.java b/src/main/java/com/ccsens/delivery/bean/po/SysUserInfo.java index 6103df2..c243d9e 100644 --- a/src/main/java/com/ccsens/delivery/bean/po/SysUserInfo.java +++ b/src/main/java/com/ccsens/delivery/bean/po/SysUserInfo.java @@ -30,7 +30,11 @@ public class SysUserInfo implements Serializable { private String grade; - private String stuClass; + private String stuClassId; + + private String stuClassName; + + private Byte studentType; private Long operator; @@ -146,12 +150,28 @@ public class SysUserInfo implements Serializable { this.grade = grade == null ? null : grade.trim(); } - public String getStuClass() { - return stuClass; + public String getStuClassId() { + return stuClassId; + } + + public void setStuClassId(String stuClassId) { + this.stuClassId = stuClassId == null ? null : stuClassId.trim(); + } + + public String getStuClassName() { + return stuClassName; + } + + public void setStuClassName(String stuClassName) { + this.stuClassName = stuClassName == null ? null : stuClassName.trim(); + } + + public Byte getStudentType() { + return studentType; } - public void setStuClass(String stuClass) { - this.stuClass = stuClass == null ? null : stuClass.trim(); + public void setStudentType(Byte studentType) { + this.studentType = studentType; } public Long getOperator() { @@ -205,7 +225,9 @@ public class SysUserInfo implements Serializable { sb.append(", dormitoryName=").append(dormitoryName); sb.append(", address=").append(address); sb.append(", grade=").append(grade); - sb.append(", stuClass=").append(stuClass); + sb.append(", stuClassId=").append(stuClassId); + sb.append(", stuClassName=").append(stuClassName); + sb.append(", studentType=").append(studentType); sb.append(", operator=").append(operator); sb.append(", createdAt=").append(createdAt); sb.append(", updatedAt=").append(updatedAt); diff --git a/src/main/java/com/ccsens/delivery/bean/po/SysUserInfoExample.java b/src/main/java/com/ccsens/delivery/bean/po/SysUserInfoExample.java index 8439381..71e08ba 100644 --- a/src/main/java/com/ccsens/delivery/bean/po/SysUserInfoExample.java +++ b/src/main/java/com/ccsens/delivery/bean/po/SysUserInfoExample.java @@ -965,73 +965,203 @@ public class SysUserInfoExample { return (Criteria) this; } - public Criteria andStuClassIsNull() { - addCriterion("stu_class is null"); + public Criteria andStuClassIdIsNull() { + addCriterion("stu_class_id is null"); return (Criteria) this; } - public Criteria andStuClassIsNotNull() { - addCriterion("stu_class is not null"); + public Criteria andStuClassIdIsNotNull() { + addCriterion("stu_class_id is not null"); return (Criteria) this; } - public Criteria andStuClassEqualTo(String value) { - addCriterion("stu_class =", value, "stuClass"); + public Criteria andStuClassIdEqualTo(String value) { + addCriterion("stu_class_id =", value, "stuClassId"); return (Criteria) this; } - public Criteria andStuClassNotEqualTo(String value) { - addCriterion("stu_class <>", value, "stuClass"); + public Criteria andStuClassIdNotEqualTo(String value) { + addCriterion("stu_class_id <>", value, "stuClassId"); return (Criteria) this; } - public Criteria andStuClassGreaterThan(String value) { - addCriterion("stu_class >", value, "stuClass"); + public Criteria andStuClassIdGreaterThan(String value) { + addCriterion("stu_class_id >", value, "stuClassId"); return (Criteria) this; } - public Criteria andStuClassGreaterThanOrEqualTo(String value) { - addCriterion("stu_class >=", value, "stuClass"); + public Criteria andStuClassIdGreaterThanOrEqualTo(String value) { + addCriterion("stu_class_id >=", value, "stuClassId"); return (Criteria) this; } - public Criteria andStuClassLessThan(String value) { - addCriterion("stu_class <", value, "stuClass"); + public Criteria andStuClassIdLessThan(String value) { + addCriterion("stu_class_id <", value, "stuClassId"); return (Criteria) this; } - public Criteria andStuClassLessThanOrEqualTo(String value) { - addCriterion("stu_class <=", value, "stuClass"); + public Criteria andStuClassIdLessThanOrEqualTo(String value) { + addCriterion("stu_class_id <=", value, "stuClassId"); return (Criteria) this; } - public Criteria andStuClassLike(String value) { - addCriterion("stu_class like", value, "stuClass"); + public Criteria andStuClassIdLike(String value) { + addCriterion("stu_class_id like", value, "stuClassId"); return (Criteria) this; } - public Criteria andStuClassNotLike(String value) { - addCriterion("stu_class not like", value, "stuClass"); + public Criteria andStuClassIdNotLike(String value) { + addCriterion("stu_class_id not like", value, "stuClassId"); return (Criteria) this; } - public Criteria andStuClassIn(List values) { - addCriterion("stu_class in", values, "stuClass"); + public Criteria andStuClassIdIn(List values) { + addCriterion("stu_class_id in", values, "stuClassId"); return (Criteria) this; } - public Criteria andStuClassNotIn(List values) { - addCriterion("stu_class not in", values, "stuClass"); + public Criteria andStuClassIdNotIn(List values) { + addCriterion("stu_class_id not in", values, "stuClassId"); return (Criteria) this; } - public Criteria andStuClassBetween(String value1, String value2) { - addCriterion("stu_class between", value1, value2, "stuClass"); + public Criteria andStuClassIdBetween(String value1, String value2) { + addCriterion("stu_class_id between", value1, value2, "stuClassId"); return (Criteria) this; } - public Criteria andStuClassNotBetween(String value1, String value2) { - addCriterion("stu_class not between", value1, value2, "stuClass"); + public Criteria andStuClassIdNotBetween(String value1, String value2) { + addCriterion("stu_class_id not between", value1, value2, "stuClassId"); + return (Criteria) this; + } + + public Criteria andStuClassNameIsNull() { + addCriterion("stu_class_name is null"); + return (Criteria) this; + } + + public Criteria andStuClassNameIsNotNull() { + addCriterion("stu_class_name is not null"); + return (Criteria) this; + } + + public Criteria andStuClassNameEqualTo(String value) { + addCriterion("stu_class_name =", value, "stuClassName"); + return (Criteria) this; + } + + public Criteria andStuClassNameNotEqualTo(String value) { + addCriterion("stu_class_name <>", value, "stuClassName"); + return (Criteria) this; + } + + public Criteria andStuClassNameGreaterThan(String value) { + addCriterion("stu_class_name >", value, "stuClassName"); + return (Criteria) this; + } + + public Criteria andStuClassNameGreaterThanOrEqualTo(String value) { + addCriterion("stu_class_name >=", value, "stuClassName"); + return (Criteria) this; + } + + public Criteria andStuClassNameLessThan(String value) { + addCriterion("stu_class_name <", value, "stuClassName"); + return (Criteria) this; + } + + public Criteria andStuClassNameLessThanOrEqualTo(String value) { + addCriterion("stu_class_name <=", value, "stuClassName"); + return (Criteria) this; + } + + public Criteria andStuClassNameLike(String value) { + addCriterion("stu_class_name like", value, "stuClassName"); + return (Criteria) this; + } + + public Criteria andStuClassNameNotLike(String value) { + addCriterion("stu_class_name not like", value, "stuClassName"); + return (Criteria) this; + } + + public Criteria andStuClassNameIn(List values) { + addCriterion("stu_class_name in", values, "stuClassName"); + return (Criteria) this; + } + + public Criteria andStuClassNameNotIn(List values) { + addCriterion("stu_class_name not in", values, "stuClassName"); + return (Criteria) this; + } + + public Criteria andStuClassNameBetween(String value1, String value2) { + addCriterion("stu_class_name between", value1, value2, "stuClassName"); + return (Criteria) this; + } + + public Criteria andStuClassNameNotBetween(String value1, String value2) { + addCriterion("stu_class_name not between", value1, value2, "stuClassName"); + return (Criteria) this; + } + + public Criteria andStudentTypeIsNull() { + addCriterion("student_type is null"); + return (Criteria) this; + } + + public Criteria andStudentTypeIsNotNull() { + addCriterion("student_type is not null"); + return (Criteria) this; + } + + public Criteria andStudentTypeEqualTo(Byte value) { + addCriterion("student_type =", value, "studentType"); + return (Criteria) this; + } + + public Criteria andStudentTypeNotEqualTo(Byte value) { + addCriterion("student_type <>", value, "studentType"); + return (Criteria) this; + } + + public Criteria andStudentTypeGreaterThan(Byte value) { + addCriterion("student_type >", value, "studentType"); + return (Criteria) this; + } + + public Criteria andStudentTypeGreaterThanOrEqualTo(Byte value) { + addCriterion("student_type >=", value, "studentType"); + return (Criteria) this; + } + + public Criteria andStudentTypeLessThan(Byte value) { + addCriterion("student_type <", value, "studentType"); + return (Criteria) this; + } + + public Criteria andStudentTypeLessThanOrEqualTo(Byte value) { + addCriterion("student_type <=", value, "studentType"); + return (Criteria) this; + } + + public Criteria andStudentTypeIn(List values) { + addCriterion("student_type in", values, "studentType"); + return (Criteria) this; + } + + public Criteria andStudentTypeNotIn(List values) { + addCriterion("student_type not in", values, "studentType"); + return (Criteria) this; + } + + public Criteria andStudentTypeBetween(Byte value1, Byte value2) { + addCriterion("student_type between", value1, value2, "studentType"); + return (Criteria) this; + } + + public Criteria andStudentTypeNotBetween(Byte value1, Byte value2) { + addCriterion("student_type not between", value1, value2, "studentType"); return (Criteria) this; } diff --git a/src/main/java/com/ccsens/delivery/bean/vo/CommonVo.java b/src/main/java/com/ccsens/delivery/bean/vo/CommonVo.java index ca1078a..753789d 100644 --- a/src/main/java/com/ccsens/delivery/bean/vo/CommonVo.java +++ b/src/main/java/com/ccsens/delivery/bean/vo/CommonVo.java @@ -13,11 +13,71 @@ public class CommonVo { public static class QuerySelf{ @ApiModelProperty("表单页面id") private Long id; - @ApiModelProperty("类型 0健康码、1行程码、2核酸检测、3抗原检测") - private byte type; +// @ApiModelProperty("类型 0健康码、1行程码、2核酸检测、3抗原检测") +// private byte type; @ApiModelProperty("提交时间") private Long submitTime; - @ApiModelProperty("提交订单的状态") + @ApiModelProperty("提交订单的状态 0已提交/未配送 1已完成 2无货 3撤回") private byte status; } + + @Data + @ApiModel("返回-统计") + public static class Statistics{ + @ApiModelProperty("健康码") + private HealthNum healthCode; + @ApiModelProperty("行程码") + private HealthNum tourCode; + @ApiModelProperty("核酸检测") + private HealthNum nucleic; + @ApiModelProperty("抗原检测") + private HealthNum antigens; + @ApiModelProperty("活动轨迹") + private OrderNum track; + @ApiModelProperty("物资需求") + private OrderNum material; + @ApiModelProperty("药品需求") + private OrderNum drug; + } + @Data + @ApiModel("返回-统计分析-健康码") + public static class HealthNum{ + @ApiModelProperty("总人数") + private int totalNum; + @ApiModelProperty("已上报/已检测数量") + private int reportNum; + @ApiModelProperty("未上报/未检测数量") + private int notReportNum; + @ApiModelProperty("绿码") + private int greenNum; + @ApiModelProperty("黄码") + private int yellowNum; + @ApiModelProperty("红码") + private int redNum; + @ApiModelProperty("带星") + private int starNum; + @ApiModelProperty("不带星") + private int notStarNum; + @ApiModelProperty("阴性") + private int feminineNum; + @ApiModelProperty("阳性") + private int positiveNum; + + public void setTotalNumAndNotReportNum(int total) { + this.totalNum = total; + this.notReportNum = Math.max(totalNum - reportNum, 0); + } + } + + @Data + @ApiModel("返回-统计分析-订单") + public static class OrderNum{ + @ApiModelProperty("总数") + private int totalNum; + @ApiModelProperty("已上报/已配送数量") + private int completeNum; + @ApiModelProperty("未上报/未配送数量") + private int notCompleteNum; + } + } diff --git a/src/main/java/com/ccsens/delivery/bean/vo/HealthVo.java b/src/main/java/com/ccsens/delivery/bean/vo/HealthVo.java index e3835c1..3186388 100644 --- a/src/main/java/com/ccsens/delivery/bean/vo/HealthVo.java +++ b/src/main/java/com/ccsens/delivery/bean/vo/HealthVo.java @@ -1,15 +1,90 @@ package com.ccsens.delivery.bean.vo; +import cn.hutool.core.util.StrUtil; +import com.ccsens.delivery.util.DeliveryConstant; +import com.ccsens.util.SymmetricCryptoUtil; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import javax.validation.constraints.NotNull; +import java.util.Date; + /** * @author 逗 */ @Data public class HealthVo { + @Data + @ApiModel("返回-健康相关的信息") + public static class HealthList{ + @ApiModelProperty("提交记录id") + private Long id; + @ApiModelProperty("类型 0健康码、1行程码、2核酸检测、3抗原检测") + private byte type; + @ApiModelProperty("图片路径") + private String path; + @ApiModelProperty("是否已经标注过 0否 1是") + private byte ocr; + } + + @Data + @ApiModel("返回-健康相关信息列表") + public static class BackQueryHealthVo{ + @ApiModelProperty("记录id") + private Long id; + @ApiModelProperty("姓名") + private String name; + @ApiModelProperty("学号") + private String number; + @ApiModelProperty("联系电话") + private String phone; + @ApiModelProperty("所在学院Id") + private Long collegeId; + @ApiModelProperty("所在学院名称") + private String collegeName; + @ApiModelProperty("所在年级") + private String grade; + @ApiModelProperty("所在班级Id") + private Long stuClassId; + @ApiModelProperty("所在班级名称") + private String stuClassName; + @ApiModelProperty("提交时间") + private Long submitTime; + @ApiModelProperty("图片路径") + private String imgPath; + @ApiModelProperty("提交状态 0未上报 1已上报 ") + private Byte status; + @ApiModelProperty("颜色 0绿色 1黄色 2红色") + private Byte colour; + @ApiModelProperty("是否带星 0否 1是") + private Byte star; + @ApiModelProperty("是否阳性 0阴性 1阳性") + private Byte positive; + + public String getNumber() { + String s = number; + if(StrUtil.isNotBlank(number)){ + String decode = SymmetricCryptoUtil.decode(DeliveryConstant.ENCRYPT_KEY, number); + if(StrUtil.isNotBlank(decode)){ + s = decode; + } + } + return s; + } + public String getPhone() { + String s = phone; + if(StrUtil.isNotBlank(phone)){ + String decode = SymmetricCryptoUtil.decode(DeliveryConstant.ENCRYPT_KEY, phone); + if(StrUtil.isNotBlank(decode)){ + s = decode; + } + } + return s; + } + } } diff --git a/src/main/java/com/ccsens/delivery/bean/vo/MaterialVo.java b/src/main/java/com/ccsens/delivery/bean/vo/MaterialVo.java index 2d1d939..3325ff9 100644 --- a/src/main/java/com/ccsens/delivery/bean/vo/MaterialVo.java +++ b/src/main/java/com/ccsens/delivery/bean/vo/MaterialVo.java @@ -1,9 +1,14 @@ package com.ccsens.delivery.bean.vo; +import cn.hutool.core.util.StrUtil; +import com.ccsens.delivery.util.DeliveryConstant; +import com.ccsens.util.SymmetricCryptoUtil; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.List; + /** * @author 逗 */ @@ -20,4 +25,93 @@ public class MaterialVo { @ApiModelProperty("物资最多可购买数量") private int max; } + + @Data + @ApiModel("返回-物资订单信息") + public static class MaterialOrder{ + @ApiModelProperty("订单id") + private Long id; + @ApiModelProperty("姓名") + private String name; + @ApiModelProperty("学号") + private String number; + @ApiModelProperty("联系电话") + private String phone; + @ApiModelProperty("身份证号") + private String idCard; + @ApiModelProperty("所在学院Id") + private Long collegeId; + @ApiModelProperty("所在学院名称") + private String collegeName; + @ApiModelProperty("所在楼栋Id") + private Long dormitoryId; + @ApiModelProperty("所在楼栋名称") + private String dormitoryName; + @ApiModelProperty("所在年级") + private String grade; + @ApiModelProperty("所在班级Id") + private Long stuClassId; + @ApiModelProperty("所在班级名称") + private String stuClassName; + @ApiModelProperty("详细地址") + private String address; + @ApiModelProperty("备注") + private String remark; + @ApiModelProperty("希望配送时间") + private Long planTime; + @ApiModelProperty("实际配送时间") + private Long realTime; + @ApiModelProperty("配送状态 0未配送 1已完成 2无药 3撤回") + private byte status; + @ApiModelProperty("提交时间") + private Long submitTime; + @ApiModelProperty("物资列表信息") + private List materialList; + + public String getNumber() { + String s = number; + if(StrUtil.isNotBlank(number)){ + String decode = SymmetricCryptoUtil.decode(DeliveryConstant.ENCRYPT_KEY, number); + if(StrUtil.isNotBlank(decode)){ + s = decode; + } + } + return s; + } + + public String getPhone() { + String s = phone; + if(StrUtil.isNotBlank(phone)){ + String decode = SymmetricCryptoUtil.decode(DeliveryConstant.ENCRYPT_KEY, phone); + if(StrUtil.isNotBlank(decode)){ + s = decode; + } + } + return s; + } + + public String getIdCard() { + String s = idCard; + if(StrUtil.isNotBlank(idCard)){ + String decode = SymmetricCryptoUtil.decode(DeliveryConstant.ENCRYPT_KEY, idCard); + if(StrUtil.isNotBlank(decode)){ + s = decode; + } + } + return s; + } + } + + + @Data + @ApiModel("请求-物资购买详情") + public static class MaterialOrderDetail{ + @ApiModelProperty("物品id") + private Long id; + @ApiModelProperty("物品名称") + private String name; + @ApiModelProperty("数量") + private int num; + } + } diff --git a/src/main/java/com/ccsens/delivery/bean/vo/StudentVo.java b/src/main/java/com/ccsens/delivery/bean/vo/StudentVo.java index a54d4d3..d85c702 100644 --- a/src/main/java/com/ccsens/delivery/bean/vo/StudentVo.java +++ b/src/main/java/com/ccsens/delivery/bean/vo/StudentVo.java @@ -24,7 +24,7 @@ public class StudentVo { @ApiModelProperty("姓名") private String name; @ApiModelProperty("学号") - private String stuNum; + private String number; @ApiModelProperty("联系电话") private String phone; @ApiModelProperty("身份证号") @@ -33,6 +33,12 @@ public class StudentVo { private Long collegeId; @ApiModelProperty("所在学院名称") private String collegeName; + @ApiModelProperty("所在年级") + private String grade; + @ApiModelProperty("所在班级Id") + private Long stuClassId; + @ApiModelProperty("所在班级名称") + private String stuClassName; @ApiModelProperty("所在宿舍Id") private Long dormitoryId; @ApiModelProperty("所在宿舍名称") @@ -56,10 +62,10 @@ public class StudentVo { @ApiModelProperty("药品信息") private List orderItemList; - public String getStuNum() { - String s = stuNum; - if(StrUtil.isNotBlank(stuNum)){ - String decode = SymmetricCryptoUtil.decode(DeliveryConstant.ENCRYPT_KEY, stuNum); + public String getNumber() { + String s = number; + if(StrUtil.isNotBlank(number)){ + String decode = SymmetricCryptoUtil.decode(DeliveryConstant.ENCRYPT_KEY, number); if(StrUtil.isNotBlank(decode)){ s = decode; } diff --git a/src/main/java/com/ccsens/delivery/bean/vo/TrailsVo.java b/src/main/java/com/ccsens/delivery/bean/vo/TrailsVo.java new file mode 100644 index 0000000..5e57012 --- /dev/null +++ b/src/main/java/com/ccsens/delivery/bean/vo/TrailsVo.java @@ -0,0 +1,101 @@ +package com.ccsens.delivery.bean.vo; + +import cn.hutool.core.util.StrUtil; +import com.ccsens.delivery.util.DeliveryConstant; +import com.ccsens.util.SymmetricCryptoUtil; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.Max; +import javax.validation.constraints.Min; +import java.util.Date; +import java.util.List; + +/** + * @author 逗 + */ +@Data +public class TrailsVo { + + @Data + @ApiModel("返回-后台分页查找轨迹信息") + public static class BackQueryTrailsVo{ + @ApiModelProperty("订单id") + private Long id; + @ApiModelProperty("姓名") + private String name; + @ApiModelProperty("学号") + private String number; + @ApiModelProperty("联系电话") + private String phone; + @ApiModelProperty("所在学院Id") + private Long collegeId; + @ApiModelProperty("所在学院名称") + private String collegeName; + @ApiModelProperty("所在楼栋Id") + private Long dormitoryId; + @ApiModelProperty("所在楼栋名称") + private String dormitoryName; + @ApiModelProperty("所在年级") + private String grade; + @ApiModelProperty("所在班级Id") + private Long stuClassId; + @ApiModelProperty("所在班级名称") + private String stuClassName; + @ApiModelProperty("详细地址") + private String address; + + @ApiModelProperty("轨迹日期") + private Date trailsDate; + @ApiModelProperty("备注") + private String remark; + @ApiModelProperty("是否提交 0未上报 1已上报") + private byte status; + @ApiModelProperty("轨迹详情") + private List trailsDetailVoList; + + public String getNumber() { + String s = number; + if(StrUtil.isNotBlank(number)){ + String decode = SymmetricCryptoUtil.decode(DeliveryConstant.ENCRYPT_KEY, number); + if(StrUtil.isNotBlank(decode)){ + s = decode; + } + } + return s; + } + + public String getPhone() { + String s = phone; + if(StrUtil.isNotBlank(phone)){ + String decode = SymmetricCryptoUtil.decode(DeliveryConstant.ENCRYPT_KEY, phone); + if(StrUtil.isNotBlank(decode)){ + s = decode; + } + } + return s; + } + + } + + @Data + @ApiModel("返回-时间段轨迹详情") + public static class TrailsDetailVo{ + @ApiModelProperty("详情id") + private Long id; + @ApiModelProperty("时间段") + private String time; + @ApiModelProperty("轨迹详情") + private String trailsDetail; + @ApiModelProperty("交通工具") + private String vehicle; + @ApiModelProperty("交通工具备注") + private String vehicleRemark; + @ApiModelProperty("防护手段") + private String mask; + @ApiModelProperty("防护手段备注") + private String otherMask; + } +} diff --git a/src/main/java/com/ccsens/delivery/bean/vo/UserVo.java b/src/main/java/com/ccsens/delivery/bean/vo/UserVo.java index c927f36..dae4e69 100644 --- a/src/main/java/com/ccsens/delivery/bean/vo/UserVo.java +++ b/src/main/java/com/ccsens/delivery/bean/vo/UserVo.java @@ -1,5 +1,8 @@ package com.ccsens.delivery.bean.vo; +import cn.hutool.core.util.StrUtil; +import com.ccsens.delivery.util.DeliveryConstant; +import com.ccsens.util.SymmetricCryptoUtil; import com.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -129,7 +132,9 @@ public class UserVo { @ApiModelProperty("信息id") private Long id; @ApiModelProperty("身份 0学生 1教师") - private String post; + private byte post; + @ApiModelProperty("学生身份 0 本科生 1研究生 2留学生") + private byte studentType; @ApiModelProperty("姓名") private String name; @ApiModelProperty("学号/工号") @@ -148,9 +153,44 @@ public class UserVo { private String dormitoryName; @ApiModelProperty("所在年级") private String grade; - @ApiModelProperty("所在班级") - private String stuClass; + @ApiModelProperty("所在班级Id") + private String stuClassId; + @ApiModelProperty("所在班级名称") + private String stuClassName; @ApiModelProperty("详细地址") private String address; + + public String getNumber() { + String s = number; + if(StrUtil.isNotBlank(number)){ + String decode = SymmetricCryptoUtil.decode(DeliveryConstant.ENCRYPT_KEY, number); + if(StrUtil.isNotBlank(decode)){ + s = decode; + } + } + return s; + } + + public String getPhone() { + String s = phone; + if(StrUtil.isNotBlank(phone)){ + String decode = SymmetricCryptoUtil.decode(DeliveryConstant.ENCRYPT_KEY, phone); + if(StrUtil.isNotBlank(decode)){ + s = decode; + } + } + return s; + } + + public String getIdCard() { + String s = idCard; + if(StrUtil.isNotBlank(idCard)){ + String decode = SymmetricCryptoUtil.decode(DeliveryConstant.ENCRYPT_KEY, idCard); + if(StrUtil.isNotBlank(decode)){ + s = decode; + } + } + return s; + } } } diff --git a/src/main/java/com/ccsens/delivery/persist/dao/FormRecordDao.java b/src/main/java/com/ccsens/delivery/persist/dao/FormRecordDao.java new file mode 100644 index 0000000..082f394 --- /dev/null +++ b/src/main/java/com/ccsens/delivery/persist/dao/FormRecordDao.java @@ -0,0 +1,86 @@ +package com.ccsens.delivery.persist.dao; + +import com.ccsens.delivery.bean.dto.HealthDto; +import com.ccsens.delivery.bean.dto.MaterialDto; +import com.ccsens.delivery.bean.vo.CommonVo; +import com.ccsens.delivery.bean.vo.HealthVo; +import com.ccsens.delivery.bean.vo.MaterialVo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @author 逗 + */ +public interface FormRecordDao { + + /** + * 查找自己提交的健康信息 + * @param type 类型 + * @param userId userId + * @return 返回提交的信息列表 + */ + List querySelfHealth(@Param("type") byte type, @Param("userId") Long userId); + + /** + * 查找自己提交的轨迹信息 + * @param userId userId + * @return 返回轨迹信息提交记录 + */ + List querySelfTrack(@Param("userId") Long userId); + + /** + * 查看自己提交的物资需求 + * @param userId userId + * @return 返回物资需求提交记录 + */ + List querySelfMaterial(@Param("userId") Long userId); + + /** + * 查看自己提交的药品需求 + * @param userId userId + * @return 返回药品需求提交记录 + */ + List querySelfDrug(@Param("userId") Long userId); + + /** + * 修改订单完成状态 + * @param orderIdList 订单id + * @param status 状态 + */ + void updateMaterialStatusById(@Param("orderIdList")List orderIdList, @Param("status") Byte status); + + /** + * 查找所有录入信息的学生或教职工 + * @param type 职业类型 + * @param collegeId 学院/部门id + * @param grade 年纪 + * @param stuClassId 班级 + * @return 返回成员id + */ + List selectTotalUser(@Param("type")byte type, @Param("collegeId")Long collegeId, @Param("grade")String grade, @Param("stuClassId")Long stuClassId); + + /** + * 根据类型和时间统计健康信息相关的上传数据 + * @param types 类型 + * @param userIds userIds + * @param startTime 开始时间 + * @param endTime 结束时间 + * @return 返回统计数据 + */ + CommonVo.HealthNum statisticsHealthByType(@Param("types")byte types, @Param("userIds")List userIds, @Param("startTime")Long startTime, @Param("endTime")Long endTime); + + CommonVo.OrderNum statisticsTrack(@Param("userIds")List userIds, @Param("startTime")Long startTime, @Param("endTime")Long endTime); + + CommonVo.OrderNum statisticsMaterial(@Param("userIds")List userIds, @Param("startTime")Long startTime, @Param("endTime")Long endTime); + + CommonVo.OrderNum statisticsDrug(@Param("userIds")List userIds, @Param("startTime")Long startTime, @Param("endTime")Long endTime); + + /** + * 查找规定时间内上传的健康码信息 + * @param params 类型和时间 + * @return 返回图片数组 + */ + List queryHealthImg(@Param("params")HealthDto.HealthByDay params); + +} diff --git a/src/main/java/com/ccsens/delivery/persist/dao/RecordHealthDao.java b/src/main/java/com/ccsens/delivery/persist/dao/RecordHealthDao.java new file mode 100644 index 0000000..153c191 --- /dev/null +++ b/src/main/java/com/ccsens/delivery/persist/dao/RecordHealthDao.java @@ -0,0 +1,20 @@ +package com.ccsens.delivery.persist.dao; + +import com.ccsens.delivery.bean.dto.HealthDto; +import com.ccsens.delivery.bean.vo.HealthVo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @author 逗 + */ +public interface RecordHealthDao { + + /** + * 后台查看提交的健康相关信息 + * @param param 筛选条件 + * @return 返回列表 + */ + List backQueryMaterialOrder(@Param("param") HealthDto.BackQueryHealth param); +} diff --git a/src/main/java/com/ccsens/delivery/persist/dao/RecordTrailsDao.java b/src/main/java/com/ccsens/delivery/persist/dao/RecordTrailsDao.java new file mode 100644 index 0000000..27eddbd --- /dev/null +++ b/src/main/java/com/ccsens/delivery/persist/dao/RecordTrailsDao.java @@ -0,0 +1,28 @@ +package com.ccsens.delivery.persist.dao; + +import com.ccsens.delivery.bean.dto.TrailsDto; +import com.ccsens.delivery.bean.vo.TrailsVo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @author 逗 + */ +public interface RecordTrailsDao { + + /** + * 查找轨迹 + * @param param 筛选条件 + * @return 返回轨迹信息 + */ + List backQueryTrails(@Param("param") TrailsDto.BackQueryTrails param); + + /** + * 通过记录id查找每天的行程详情 + * @param recordId 轨迹记录id + * @param param 筛选条件 + * @return 返回详情列表 + */ + List queryDetailByRecordId(@Param("recordId") Long recordId,@Param("param") TrailsDto.BackQueryTrails param); +} diff --git a/src/main/java/com/ccsens/delivery/persist/dao/SysMaterialDao.java b/src/main/java/com/ccsens/delivery/persist/dao/SysMaterialDao.java new file mode 100644 index 0000000..3fe31cb --- /dev/null +++ b/src/main/java/com/ccsens/delivery/persist/dao/SysMaterialDao.java @@ -0,0 +1,34 @@ +package com.ccsens.delivery.persist.dao; + +import com.ccsens.delivery.bean.dto.MaterialDto; +import com.ccsens.delivery.bean.vo.MaterialVo; +import com.ccsens.delivery.persist.mapper.SysMaterialMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @author 逗 + */ +public interface SysMaterialDao extends SysMaterialMapper { + + /** + * 查找所有商品 + * @return 返回商品列表 + */ + List queryAllMaterial(); + + /** + * 后台分页查找物资订单 + * @param param 筛选条件 + * @return 返回物资需求列表 + */ + List backQueryMaterialOrder(@Param("param")MaterialDto.BackQueryMaterialOrder param); + + /** + * 根据订单查找需求的物品内容 + * @param recordId 订单id + * @return 返回物品列表 + */ + List queryItemByOrderId(@Param("recordId")Long recordId); +} diff --git a/src/main/java/com/ccsens/delivery/service/CommonService.java b/src/main/java/com/ccsens/delivery/service/CommonService.java index 9418bdc..181bce5 100644 --- a/src/main/java/com/ccsens/delivery/service/CommonService.java +++ b/src/main/java/com/ccsens/delivery/service/CommonService.java @@ -1,5 +1,6 @@ package com.ccsens.delivery.service; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.io.FileUtil; import cn.hutool.core.lang.Snowflake; @@ -10,14 +11,18 @@ import com.ccsens.delivery.bean.dto.CommonDto; import com.ccsens.delivery.bean.po.FileCommit; import com.ccsens.delivery.bean.vo.CommonVo; import com.ccsens.delivery.bean.vo.FileVo; +import com.ccsens.delivery.persist.dao.FormRecordDao; import com.ccsens.delivery.persist.mapper.FileCommitMapper; +import com.ccsens.delivery.persist.mapper.RecordHealthMapper; import com.ccsens.delivery.util.DeliveryCodeError; import com.ccsens.delivery.util.DeliveryConstant; import com.ccsens.util.PropUtil; +import com.ccsens.util.RedisUtil; import com.ccsens.util.exception.BaseException; +import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import io.swagger.annotations.ApiModelProperty; import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Repository; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; @@ -26,7 +31,9 @@ import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import java.io.File; import java.io.IOException; +import java.util.Collection; import java.util.Date; +import java.util.List; /** * @author 逗 @@ -40,6 +47,10 @@ public class CommonService implements ICommonService { private Snowflake snowflake; @Resource private FileCommitMapper fileCommitMapper; + @Resource + private RedisUtil redisUtil; + @Resource + private FormRecordDao formRecordDao; @Override public FileVo.FileInfo uploadFile(MultipartFile f, Long userId) throws IOException { @@ -83,13 +94,79 @@ public class CommonService implements ICommonService { @Override public Long getFormId(Byte type) { - return null; + long id = snowflake.nextId(); + String formType = DeliveryConstant.FormType.valueOf(type).value; + String key = formType + "_" + id; + //存入redis,有效期半小时 + redisUtil.set(key,type,60 * 30); + return id; } @Override public PageInfo querySelf(CommonDto.QuerySelf param, Long userId) { - return null; + DeliveryConstant.FormType formType = DeliveryConstant.FormType.valueOf(param.getType()); + PageHelper.startPage(param.getPageNum(),param.getPageSize()); + PageInfo querySelfPageInfo = null; + List querySelfList = null; + switch (formType){ + case HEALTH_CODE: + case TOUR_CODE: + case NUCLEIC_REPORT: + case ANTIGEN_DETECTION: + //健康相关的信息 + querySelfList = formRecordDao.querySelfHealth(param.getType(),userId); + break; + case TRACK_EVENTS: + querySelfList = formRecordDao.querySelfTrack(userId); + break; + case MATERIAL_DEMAND: + querySelfList = formRecordDao.querySelfMaterial(userId); + break; + case DRUG_DEMAND: + querySelfList = formRecordDao.querySelfDrug(userId); + default: + } + if(ObjectUtil.isNotNull(querySelfList)){ + querySelfPageInfo = new PageInfo<>(querySelfList); + } + return querySelfPageInfo; } + @Override + public CommonVo.Statistics statistics(CommonDto.Statistics param, Long userId) { + CommonVo.Statistics statistics = new CommonVo.Statistics(); + //查询总人数 + List userIds = formRecordDao.selectTotalUser(param.getType(),param.getCollegeId(),param.getGrade(),param.getStuClassId()); + if(CollectionUtil.isEmpty(userIds)){ + return statistics; + } + //查找健康码统计 + CommonVo.HealthNum healthCode = formRecordDao.statisticsHealthByType((byte) 0, userIds, param.getStartTime(),param.getEndTime()); + healthCode.setTotalNumAndNotReportNum(userIds.size()); + CommonVo.HealthNum tourCode = formRecordDao.statisticsHealthByType((byte) 1, userIds, param.getStartTime(),param.getEndTime()); + tourCode.setTotalNumAndNotReportNum(userIds.size()); + CommonVo.HealthNum nucleic = formRecordDao.statisticsHealthByType((byte) 2, userIds, param.getStartTime(),param.getEndTime()); + nucleic.setTotalNumAndNotReportNum(userIds.size()); + CommonVo.HealthNum antigens = formRecordDao.statisticsHealthByType((byte) 3, userIds, param.getStartTime(),param.getEndTime()); + antigens.setTotalNumAndNotReportNum(userIds.size()); + statistics.setHealthCode(healthCode); + statistics.setTourCode(tourCode); + statistics.setNucleic(nucleic); + statistics.setAntigens(antigens); + //查找行程统计 + CommonVo.OrderNum track = formRecordDao.statisticsTrack(userIds,param.getStartTime(),param.getEndTime()); + track.setTotalNum(userIds.size()); + track.setNotCompleteNum(Math.max(track.getTotalNum() - track.getCompleteNum(), 0)); + statistics.setTrack(track); + //查找物资需求统计 + CommonVo.OrderNum material = formRecordDao.statisticsMaterial(userIds,param.getStartTime(),param.getEndTime()); + material.setTotalNum(userIds.size()); + statistics.setMaterial(material); + //查找药品需求统计 + CommonVo.OrderNum drug = formRecordDao.statisticsDrug(userIds,param.getStartTime(),param.getEndTime()); + drug.setTotalNum(userIds.size()); + statistics.setDrug(drug); + return statistics; + } } diff --git a/src/main/java/com/ccsens/delivery/service/HealthService.java b/src/main/java/com/ccsens/delivery/service/HealthService.java index 869a37e..d8ff4af 100644 --- a/src/main/java/com/ccsens/delivery/service/HealthService.java +++ b/src/main/java/com/ccsens/delivery/service/HealthService.java @@ -1,11 +1,30 @@ package com.ccsens.delivery.service; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; import com.ccsens.delivery.bean.dto.HealthDto; +import com.ccsens.delivery.bean.po.RecordHealth; +import com.ccsens.delivery.bean.po.RecordHealthExample; +import com.ccsens.delivery.bean.po.SysMaterial; +import com.ccsens.delivery.bean.vo.HealthVo; +import com.ccsens.delivery.bean.vo.MaterialVo; +import com.ccsens.delivery.persist.dao.FormRecordDao; +import com.ccsens.delivery.persist.dao.RecordHealthDao; +import com.ccsens.delivery.persist.mapper.RecordHealthMapper; +import com.ccsens.delivery.util.DeliveryCodeError; +import com.ccsens.delivery.util.DeliveryConstant; +import com.ccsens.util.RedisUtil; +import com.ccsens.util.exception.BaseException; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; +import java.util.List; + /** * @author 逗 */ @@ -13,8 +32,64 @@ import org.springframework.transaction.annotation.Transactional; @Service @Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class) public class HealthService implements IHealthService { + + @Resource + private RedisUtil redisUtil; + @Resource + private RecordHealthMapper recordHealthMapper; + @Resource + private RecordHealthDao recordHealthDao; + @Resource + private FormRecordDao formRecordDao; + @Override - public void submitHealth(HealthDto.HealthForm param, Long userId) { + public void submitHealth(HealthDto.HealthForm param, Long userId) throws InterruptedException { + //加锁 根据id查找是否是有效提交 + synchronized (this) { + String formType = DeliveryConstant.FormType.valueOf(param.getType()).value; + String key = formType + "_" + param.getId(); + Object o = redisUtil.get(key); + if(ObjectUtil.isNull(o)){ + throw new BaseException(DeliveryCodeError.REPEAT_SUBMIT); + } + //删除redis内的id + redisUtil.del(key); + } + //添加信息 + RecordHealth recordHealth = new RecordHealth(); + recordHealth.setId(param.getId()); + recordHealth.setUserId(userId); + recordHealth.setType(param.getType()); + recordHealth.setFileId(param.getFileId()); + recordHealth.setSubmitTime(System.currentTimeMillis()); + recordHealthMapper.insertSelective(recordHealth); + } + @Override + public List queryHealthImg(HealthDto.HealthByDay params) { + return formRecordDao.queryHealthImg(params); + } + + @Override + public void ocrHealthConclusion(List params) { + if(CollectionUtil.isNotEmpty(params)){ + params.forEach(param -> { + RecordHealth recordHealth = recordHealthMapper.selectByPrimaryKey(param.getId()); + if(ObjectUtil.isNotNull(recordHealth) && recordHealth.getType() == param.getType()){ + recordHealth.setColour(param.getColour()); + recordHealth.setStar(param.getStar()); + recordHealth.setPositive(param.getPositive()); + recordHealthMapper.updateByPrimaryKeySelective(recordHealth); + } + }); + } + } + + @Override + public PageInfo backQueryHealth(HealthDto.BackQueryHealth param,Long userId) { + //根据条件查询提交的信息 + PageHelper.startPage(param.getPageNum(),param.getPageSize()); + List queryHealthVoList = recordHealthDao.backQueryMaterialOrder(param); + return new PageInfo<>(queryHealthVoList); } } diff --git a/src/main/java/com/ccsens/delivery/service/ICommonService.java b/src/main/java/com/ccsens/delivery/service/ICommonService.java index 7eb001e..f207823 100644 --- a/src/main/java/com/ccsens/delivery/service/ICommonService.java +++ b/src/main/java/com/ccsens/delivery/service/ICommonService.java @@ -37,4 +37,12 @@ public interface ICommonService { * @return 分页返回表单列表 */ PageInfo querySelf(CommonDto.QuerySelf param, Long userId); + + /** + * 统计分析 + * @param param 筛选条件 + * @param userId userId + * @return 返回统计数据 + */ + CommonVo.Statistics statistics(CommonDto.Statistics param, Long userId); } diff --git a/src/main/java/com/ccsens/delivery/service/IHealthService.java b/src/main/java/com/ccsens/delivery/service/IHealthService.java index c7dfc69..d0734ab 100644 --- a/src/main/java/com/ccsens/delivery/service/IHealthService.java +++ b/src/main/java/com/ccsens/delivery/service/IHealthService.java @@ -1,6 +1,10 @@ package com.ccsens.delivery.service; import com.ccsens.delivery.bean.dto.HealthDto; +import com.ccsens.delivery.bean.vo.HealthVo; +import com.github.pagehelper.PageInfo; + +import java.util.List; /** @@ -13,6 +17,26 @@ public interface IHealthService { * @param param 表单信息 * @param userId userId */ - void submitHealth(HealthDto.HealthForm param, Long userId); + void submitHealth(HealthDto.HealthForm param, Long userId) throws InterruptedException; + + /** + * 查询一段时间提交的健康图片信息 + * @param params 时间和类型 + * @return 返回图片信息 + */ + List queryHealthImg(HealthDto.HealthByDay params); + + /** + * 上传识别后的信息 + * @param params 信息 + */ + void ocrHealthConclusion(List params); + /** + * 后台查看健康信息的提交记录 + * @param param 筛选条件 + * @param userId userId + * @return 返回列表 + */ + PageInfo backQueryHealth(HealthDto.BackQueryHealth param,Long userId); } diff --git a/src/main/java/com/ccsens/delivery/service/IMaterialService.java b/src/main/java/com/ccsens/delivery/service/IMaterialService.java index 59eac6e..b76ae26 100644 --- a/src/main/java/com/ccsens/delivery/service/IMaterialService.java +++ b/src/main/java/com/ccsens/delivery/service/IMaterialService.java @@ -2,7 +2,9 @@ package com.ccsens.delivery.service; import com.ccsens.delivery.bean.dto.CommonDto; import com.ccsens.delivery.bean.dto.MaterialDto; +import com.ccsens.delivery.bean.dto.StudentDto; import com.ccsens.delivery.bean.vo.MaterialVo; +import com.github.pagehelper.PageInfo; import java.util.List; @@ -30,4 +32,19 @@ public interface IMaterialService { * @param param 订单id */ void revocationOrder(Long userId, CommonDto.FormId param); + + /** + * 后台分页查找物资订单 + * @param userId userId + * @param param 筛选条件 + * @return 返回物资订单列表 + */ + PageInfo backQueryMaterialOrder(Long userId, MaterialDto.BackQueryMaterialOrder param); + + /** + * 修改订单的完成状态 + * @param userId userId + * @param param 订单id和状态 + */ + void updateOrderStatus(Long userId, StudentDto.UpdateOrderStatus param); } diff --git a/src/main/java/com/ccsens/delivery/service/ITrailsService.java b/src/main/java/com/ccsens/delivery/service/ITrailsService.java index acca3ed..0a1a5f0 100644 --- a/src/main/java/com/ccsens/delivery/service/ITrailsService.java +++ b/src/main/java/com/ccsens/delivery/service/ITrailsService.java @@ -1,6 +1,8 @@ package com.ccsens.delivery.service; import com.ccsens.delivery.bean.dto.TrailsDto; +import com.ccsens.delivery.bean.vo.TrailsVo; +import com.github.pagehelper.PageInfo; /** * @author 逗 @@ -14,4 +16,11 @@ public interface ITrailsService { */ void submitTrails(TrailsDto.TrailsForm param, Long userId); + /** + * 后台查看活动轨迹 + * @param param 筛选条件 + * @param userId userId + * @return 返回活动轨迹 + */ + PageInfo backQueryTrails(TrailsDto.BackQueryTrails param, Long userId); } diff --git a/src/main/java/com/ccsens/delivery/service/MaterialService.java b/src/main/java/com/ccsens/delivery/service/MaterialService.java index e4a71b3..00dedc4 100644 --- a/src/main/java/com/ccsens/delivery/service/MaterialService.java +++ b/src/main/java/com/ccsens/delivery/service/MaterialService.java @@ -1,13 +1,31 @@ package com.ccsens.delivery.service; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.lang.Snowflake; +import cn.hutool.core.util.ObjectUtil; import com.ccsens.delivery.bean.dto.CommonDto; import com.ccsens.delivery.bean.dto.MaterialDto; +import com.ccsens.delivery.bean.dto.StudentDto; +import com.ccsens.delivery.bean.po.RecordMaterial; +import com.ccsens.delivery.bean.po.RecordMaterialDetail; import com.ccsens.delivery.bean.vo.MaterialVo; +import com.ccsens.delivery.bean.vo.StudentVo; +import com.ccsens.delivery.persist.dao.FormRecordDao; +import com.ccsens.delivery.persist.dao.SysMaterialDao; +import com.ccsens.delivery.persist.mapper.RecordMaterialDetailMapper; +import com.ccsens.delivery.persist.mapper.RecordMaterialMapper; +import com.ccsens.delivery.util.DeliveryCodeError; +import com.ccsens.delivery.util.DeliveryConstant; +import com.ccsens.util.RedisUtil; +import com.ccsens.util.exception.BaseException; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import java.util.List; /** * @author 逗 @@ -16,18 +34,100 @@ import java.util.List; @Service @Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class) public class MaterialService implements IMaterialService { + + @Resource + private SysMaterialDao materialDao; + @Resource + private Snowflake snowflake; + @Resource + private RecordMaterialMapper recordMaterialMapper; + @Resource + private RecordMaterialDetailMapper recordMaterialDetailMapper; + @Resource + private RedisUtil redisUtil; + @Resource + private FormRecordDao formRecordDao; + @Override public List queryMaterial() { - return null; + return materialDao.queryAllMaterial(); } @Override public void submitMaterial(MaterialDto.MaterialForm param, Long userId) { - + //加锁 根据id查找是否是有效提交 + synchronized (this) { + String formType = DeliveryConstant.FormType.valueOf(5).value; + String key = formType + "_" + param.getId(); + Object o = redisUtil.get(key); + if(ObjectUtil.isNull(o)){ + throw new BaseException(DeliveryCodeError.REPEAT_SUBMIT); + } + //删除redis内的id + redisUtil.del(key); + } + //添加信息 + RecordMaterial recordMaterial = new RecordMaterial(); + recordMaterial.setId(snowflake.nextId()); + recordMaterial.setUserId(userId); + recordMaterial.setPlanTime(param.getPlanTime()); + recordMaterial.setRemark(param.getRemark()); + recordMaterial.setSubmitTime(System.currentTimeMillis()); + recordMaterialMapper.insertSelective(recordMaterial); + if(CollectionUtil.isNotEmpty(param.getDetailList())){ + param.getDetailList().forEach(materialFormDetail -> { + //TODO 判断物品是否存在或数量限制 + RecordMaterialDetail recordMaterialDetail = new RecordMaterialDetail(); + recordMaterialDetail.setId(snowflake.nextId()); + recordMaterialDetail.setRecordMaterialId(recordMaterial.getId()); + recordMaterialDetail.setMaterialId(materialFormDetail.getId()); + recordMaterialDetail.setNum(materialFormDetail.getNum()); + recordMaterialDetailMapper.insertSelective(recordMaterialDetail); + }); + } } @Override public void revocationOrder(Long userId, CommonDto.FormId param) { + //查找订单 + RecordMaterial recordMaterial = recordMaterialMapper.selectByPrimaryKey(param.getId()); + if(ObjectUtil.isNull(recordMaterial)){ + throw new BaseException(DeliveryCodeError.NOT_ORDER); + } + if(!recordMaterial.getUserId().equals(userId)){ + throw new BaseException(DeliveryCodeError.NOT_ORDER_POWER); + } + if(recordMaterial.getStatus() == 1 || recordMaterial.getStatus() == 3){ + throw new BaseException(DeliveryCodeError.NOT_ORDER_POWER); + } + RecordMaterial material = new RecordMaterial(); + material.setId(recordMaterial.getId()); + material.setStatus((byte) 3); + recordMaterialMapper.updateByPrimaryKeySelective(material); + } + @Override + public PageInfo backQueryMaterialOrder(Long userId, MaterialDto.BackQueryMaterialOrder param) { + //根据条件查询所有的物资订单 + PageHelper.startPage(param.getPageNum(),param.getPageSize()); + List materialOrders = materialDao.backQueryMaterialOrder(param); + //循环查找每个订单的订单项 + if(CollectionUtil.isNotEmpty(materialOrders)){ + materialOrders.forEach(materialOrder -> { + List orderItemList = materialDao.queryItemByOrderId(materialOrder.getId()); + if(CollectionUtil.isNotEmpty(orderItemList)){ + materialOrder.setMaterialList(orderItemList); + } + }); + } + return new PageInfo<>(materialOrders); + } + + @Override + public void updateOrderStatus(Long userId, StudentDto.UpdateOrderStatus param) { + //修改订单的完成状态 + if(ObjectUtil.isNotNull(param) && CollectionUtil.isNotEmpty(param.getOrderIdList())){ + formRecordDao.updateMaterialStatusById(param.getOrderIdList(),param.getStatus()); + } } } diff --git a/src/main/java/com/ccsens/delivery/service/StudentService.java b/src/main/java/com/ccsens/delivery/service/StudentService.java index 3864e06..5493399 100644 --- a/src/main/java/com/ccsens/delivery/service/StudentService.java +++ b/src/main/java/com/ccsens/delivery/service/StudentService.java @@ -91,33 +91,45 @@ public class StudentService implements IStudentService { @Override public void submitOrder(Long userId, StudentDto.SubmitOrder param) { - //身份证 - if(StrUtil.isBlank(param.getIdCard()) || !IdcardUtil.isValidCard(param.getIdCard())){ - throw new BaseException(DeliveryCodeError.ID_CARD_ERROR); - } - //获取对象的MD5值 - String paramMd5 = Md5Util.stringTo(JSONObject.toJSONString(param)); - synchronized (this){ -// //检查redis内是否有相同的信息 - String key = userId + paramMd5; + //加锁 根据id查找是否是有效提交 + synchronized (this) { + String formType = DeliveryConstant.FormType.valueOf(6).value; + String key = formType + "_" + param.getId(); Object o = redisUtil.get(key); - if(ObjectUtil.isNotNull(o)){ + if(ObjectUtil.isNull(o)){ throw new BaseException(DeliveryCodeError.REPEAT_SUBMIT); } - redisUtil.set(key,JSONObject.toJSONString(param),60 * 30); + //删除redis内的id + redisUtil.del(key); } + //身份证 +// if(StrUtil.isBlank(param.getIdCard()) || !IdcardUtil.isValidCard(param.getIdCard())){ +// throw new BaseException(DeliveryCodeError.ID_CARD_ERROR); +// } +// //获取对象的MD5值 +// String paramMd5 = Md5Util.stringTo(JSONObject.toJSONString(param)); +// synchronized (this){ +//// //检查redis内是否有相同的信息 +// String key = userId + paramMd5; +// Object o = redisUtil.get(key); +// if(ObjectUtil.isNotNull(o)){ +// throw new BaseException(DeliveryCodeError.REPEAT_SUBMIT); +// } +// redisUtil.set(key,JSONObject.toJSONString(param),60 * 30); +// } + //添加订单信息 StuOrder stuOrder = new StuOrder(); BeanUtil.copyProperties(param,stuOrder); stuOrder.setId(snowflake.nextId()); stuOrder.setUserId(userId); - String stuNum = SymmetricCryptoUtil.encrypt(DeliveryConstant.ENCRYPT_KEY,param.getStuNum()); - stuOrder.setStuNum(stuNum == null ? param.getStuNum() : stuNum); - String phone = SymmetricCryptoUtil.encrypt(DeliveryConstant.ENCRYPT_KEY,param.getPhone()); - stuOrder.setPhone(phone == null ? param.getPhone() : phone); - String idCard = SymmetricCryptoUtil.encrypt(DeliveryConstant.ENCRYPT_KEY,param.getIdCard()); - stuOrder.setIdCard(idCard == null ? param.getIdCard() : idCard); +// String stuNum = SymmetricCryptoUtil.encrypt(DeliveryConstant.ENCRYPT_KEY,param.getStuNum()); +// stuOrder.setStuNum(stuNum == null ? param.getStuNum() : stuNum); +// String phone = SymmetricCryptoUtil.encrypt(DeliveryConstant.ENCRYPT_KEY,param.getPhone()); +// stuOrder.setPhone(phone == null ? param.getPhone() : phone); +// String idCard = SymmetricCryptoUtil.encrypt(DeliveryConstant.ENCRYPT_KEY,param.getIdCard()); +// stuOrder.setIdCard(idCard == null ? param.getIdCard() : idCard); stuOrderMapper.insertSelective(stuOrder); //添加订单项信息 if(CollectionUtil.isNotEmpty(param.getOrderItemList())){ @@ -243,7 +255,7 @@ public class StudentService implements IStudentService { if (j == 0) { order.add(new PoiUtil.PoiUtilCell((sort++) + "", 1, size)); order.add(new PoiUtil.PoiUtilCell(studentOrder.getName(), 1, size)); - order.add(new PoiUtil.PoiUtilCell("'" + studentOrder.getStuNum(), 1, size)); + order.add(new PoiUtil.PoiUtilCell("'" + studentOrder.getNumber(), 1, size)); order.add(new PoiUtil.PoiUtilCell("'" + studentOrder.getPhone(), 1, size)); // order.add(new PoiUtil.PoiUtilCell("'" + studentOrder.getIdCard(), 1, size)); order.add(new PoiUtil.PoiUtilCell(studentOrder.getCollegeName(), 1, size)); @@ -286,7 +298,7 @@ public class StudentService implements IStudentService { List order = new ArrayList<>(); order.add(new PoiUtil.PoiUtilCell((sort++) + "")); order.add(new PoiUtil.PoiUtilCell(studentOrder.getName())); - order.add(new PoiUtil.PoiUtilCell("'" + studentOrder.getStuNum())); + order.add(new PoiUtil.PoiUtilCell("'" + studentOrder.getNumber())); order.add(new PoiUtil.PoiUtilCell("'" + studentOrder.getPhone())); // order.add(new PoiUtil.PoiUtilCell("'" + studentOrder.getIdCard())); order.add(new PoiUtil.PoiUtilCell(studentOrder.getCollegeName())); diff --git a/src/main/java/com/ccsens/delivery/service/TrailsService.java b/src/main/java/com/ccsens/delivery/service/TrailsService.java index 456b96a..3ea8481 100644 --- a/src/main/java/com/ccsens/delivery/service/TrailsService.java +++ b/src/main/java/com/ccsens/delivery/service/TrailsService.java @@ -1,11 +1,31 @@ package com.ccsens.delivery.service; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.lang.Snowflake; +import cn.hutool.core.util.ObjectUtil; import com.ccsens.delivery.bean.dto.TrailsDto; +import com.ccsens.delivery.bean.po.RecordHealth; +import com.ccsens.delivery.bean.po.RecordTrails; +import com.ccsens.delivery.bean.po.RecordTrailsDetail; +import com.ccsens.delivery.bean.vo.TrailsVo; +import com.ccsens.delivery.persist.dao.RecordTrailsDao; +import com.ccsens.delivery.persist.mapper.RecordHealthMapper; +import com.ccsens.delivery.persist.mapper.RecordTrailsDetailMapper; +import com.ccsens.delivery.persist.mapper.RecordTrailsMapper; +import com.ccsens.delivery.util.DeliveryCodeError; +import com.ccsens.delivery.util.DeliveryConstant; +import com.ccsens.util.RedisUtil; +import com.ccsens.util.exception.BaseException; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; +import java.util.List; + /** * @author 逗 */ @@ -13,8 +33,74 @@ import org.springframework.transaction.annotation.Transactional; @Service @Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class) public class TrailsService implements ITrailsService { + + @Resource + private RedisUtil redisUtil; + @Resource + private RecordTrailsMapper recordTrailsMapper; + @Resource + private RecordTrailsDao recordTrailsDao; + @Resource + private RecordTrailsDetailMapper recordTrailsDetailMapper; + @Resource + private Snowflake snowflake; + @Override public void submitTrails(TrailsDto.TrailsForm param, Long userId) { + //加锁 根据id查找是否是有效提交 + synchronized (this) { + String formType = DeliveryConstant.FormType.valueOf(4).value; + String key = formType + "_" + param.getId(); + Object o = redisUtil.get(key); + if(ObjectUtil.isNull(o)){ + throw new BaseException(DeliveryCodeError.REPEAT_SUBMIT); + } + //删除redis内的id + redisUtil.del(key); + } + //添加信息 + if(CollectionUtil.isNotEmpty(param.getTrailsFormDays())){ + param.getTrailsFormDays().forEach(trailsFormDay -> { + RecordTrails recordTrails = new RecordTrails(); + recordTrails.setId(snowflake.nextId()); + recordTrails.setUserId(userId); + recordTrails.setTrailsDate(trailsFormDay.getTrailsDate()); + recordTrails.setRemark(trailsFormDay.getRemark()); + recordTrails.setSubmitTime(System.currentTimeMillis()); + recordTrailsMapper.insertSelective(recordTrails); + if(CollectionUtil.isNotEmpty(trailsFormDay.getTrailsDetailList())){ + trailsFormDay.getTrailsDetailList().forEach(trailsDetail -> { + RecordTrailsDetail recordTrailsDetail = new RecordTrailsDetail(); + recordTrailsDetail.setId(snowflake.nextId()); + recordTrailsDetail.setRecordTrailsId(recordTrails.getId()); + recordTrailsDetail.setStartTime(trailsDetail.getStartTime()); + recordTrailsDetail.setEndTime(trailsDetail.getEndTime()); + recordTrailsDetail.setTrailsDetail(trailsDetail.getTrailsDetail()); + recordTrailsDetail.setVehicle(trailsDetail.getVehicle()); + recordTrailsDetail.setVehicleRemark(trailsDetail.getVehicleRemark()); + recordTrailsDetail.setMask(trailsDetail.getMask()); + recordTrailsDetail.setOtherMask(trailsDetail.getOtherMask()); + recordTrailsDetailMapper.insertSelective(recordTrailsDetail); + }); + } + }); + } + } + @Override + public PageInfo backQueryTrails(TrailsDto.BackQueryTrails param, Long userId) { + PageHelper.startPage(param.getPageNum(),param.getPageSize()); + List backQueryTrailsVos = recordTrailsDao.backQueryTrails(param); + if(CollectionUtil.isNotEmpty(backQueryTrailsVos)){ + backQueryTrailsVos.forEach(backQueryTrailsVo -> { + if(ObjectUtil.isNotNull(backQueryTrailsVo.getId())){ + List trailsDetailVoList = recordTrailsDao.queryDetailByRecordId(backQueryTrailsVo.getId(),param); + if(CollectionUtil.isNotEmpty(trailsDetailVoList)){ + backQueryTrailsVo.setTrailsDetailVoList(trailsDetailVoList); + } + } + }); + } + return new PageInfo<>(backQueryTrailsVos); } } diff --git a/src/main/java/com/ccsens/delivery/service/UserService.java b/src/main/java/com/ccsens/delivery/service/UserService.java index c598ff4..c3b20ee 100644 --- a/src/main/java/com/ccsens/delivery/service/UserService.java +++ b/src/main/java/com/ccsens/delivery/service/UserService.java @@ -3,28 +3,24 @@ package com.ccsens.delivery.service; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.lang.Snowflake; +import cn.hutool.core.util.IdcardUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.StrUtil; import com.ccsens.delivery.bean.dto.UserDto; -import com.ccsens.delivery.bean.po.SysAuth; -import com.ccsens.delivery.bean.po.SysAuthExample; -import com.ccsens.delivery.bean.po.SysUser; +import com.ccsens.delivery.bean.po.*; import com.ccsens.delivery.bean.vo.UserVo; import com.ccsens.delivery.persist.dao.SysAuthDao; import com.ccsens.delivery.persist.dao.SysUserDao; +import com.ccsens.delivery.persist.mapper.SysUserInfoMapper; import com.ccsens.delivery.util.DeliveryCodeError; import com.ccsens.delivery.util.DeliveryConstant; import com.ccsens.util.*; -import com.ccsens.util.bean.wx.po.WxOauth2UserInfo; import com.ccsens.util.exception.BaseException; -import com.ccsens.util.wx.WxGzhUtil; -import com.ccsens.util.wx.WxXcxUtil; import com.ccsens.wechatutil.bean.po.MiniProgramUser; import com.ccsens.wechatutil.wxmini.MiniSigninUtil; import io.jsonwebtoken.Claims; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.RandomStringUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; @@ -51,6 +47,8 @@ public class UserService implements IUserService { private SysAuthDao sysAuthDao; @Resource private Snowflake snowflake; + @Resource + private SysUserInfoMapper sysUserInfoMapper; @Override public UserVo.TokenBean userSignin(UserDto.SigninDto params, String deviceId, String clientIp) throws Exception { @@ -727,11 +725,54 @@ public class UserService implements IUserService { @Override public UserVo.UserInfo getUserInfo(Long userId) { - return null; + UserVo.UserInfo userInfo = null; + + SysUserInfoExample userInfoExample = new SysUserInfoExample(); + userInfoExample.createCriteria().andUserIdEqualTo(userId); + List sysUserInfos = sysUserInfoMapper.selectByExample(userInfoExample); + if(CollectionUtil.isNotEmpty(sysUserInfos)){ + SysUserInfo sysUserInfo = sysUserInfos.get(0); + userInfo = new UserVo.UserInfo(); + BeanUtil.copyProperties(sysUserInfo,userInfo); + } + + return userInfo; } @Override public void saveUserInfo(Long userId, UserDto.UserInfo param) { + //验证用户是否同意协议 + if(param.getAgreement() == 0 || param.getManagement() == 0 || param.getSelf() == 0){ + throw new BaseException(DeliveryCodeError.NOT_CHECK_AGREEMENT); + } + SysUserInfo sysUserInfo = new SysUserInfo(); + BeanUtil.copyProperties(param,sysUserInfo); + sysUserInfo.setUserId(userId); + String number = SymmetricCryptoUtil.encrypt(DeliveryConstant.ENCRYPT_KEY, param.getNumber()); + sysUserInfo.setNumber(number); + String phone = SymmetricCryptoUtil.encrypt(DeliveryConstant.ENCRYPT_KEY, param.getPhone()); + sysUserInfo.setPhone(phone); + if(!IdcardUtil.isValidCard(param.getIdCard())){ + throw new BaseException(DeliveryCodeError.ID_CARD_ERROR); + } + String idCard = SymmetricCryptoUtil.encrypt(DeliveryConstant.ENCRYPT_KEY, param.getIdCard()); + sysUserInfo.setIdCard(idCard); + + if(ObjectUtil.isNull(param.getId())){ + //id为空,添加用户信息 + sysUserInfo.setId(snowflake.nextId()); + sysUserInfoMapper.insertSelective(sysUserInfo); + + }else { + //id不为空,根据id查找用户信息, + SysUserInfo userInfo = sysUserInfoMapper.selectByPrimaryKey(param.getId()); + if(ObjectUtil.isNull(userInfo)){ + throw new BaseException(DeliveryCodeError.NOT_USER_INFO); + } + //修改 + sysUserInfo.setId(param.getId()); + sysUserInfoMapper.updateByPrimaryKeySelective(sysUserInfo); + } } } diff --git a/src/main/java/com/ccsens/delivery/util/DeliveryCodeError.java b/src/main/java/com/ccsens/delivery/util/DeliveryCodeError.java index de245aa..a4a54a1 100644 --- a/src/main/java/com/ccsens/delivery/util/DeliveryCodeError.java +++ b/src/main/java/com/ccsens/delivery/util/DeliveryCodeError.java @@ -18,10 +18,12 @@ public class DeliveryCodeError extends CodeError { public static final Code NOT_DORMITORY = new Code(507,"宿舍不存在",true); public static final Code NOT_ORDER = new Code(508,"订单不存在",true); public static final Code NOT_ORDER_POWER = new Code(508,"该订单无法操作",true); - public static final Code REPEAT_SUBMIT = new Code(509,"请勿重复提交订单",true); + public static final Code REPEAT_SUBMIT = new Code(509,"请勿重复提交",true); public static final Code ID_CARD_ERROR = new Code(509,"请输入正确的身份证号",true); public static final Code NOT_FILE = new Code(510,"找不到文件", true); public static final Code FILE_FORMAT_ERROR = new Code(511,"不支持的格式类型", true); + public static final Code NOT_USER_INFO = new Code(511,"未找到用户的详细信息,请重新添加", true); + public static final Code NOT_CHECK_AGREEMENT = new Code(512,"请勾选免责条款后提交", true); diff --git a/src/main/java/com/ccsens/delivery/util/DeliveryConstant.java b/src/main/java/com/ccsens/delivery/util/DeliveryConstant.java index a5a2106..d15c142 100644 --- a/src/main/java/com/ccsens/delivery/util/DeliveryConstant.java +++ b/src/main/java/com/ccsens/delivery/util/DeliveryConstant.java @@ -1,6 +1,8 @@ package com.ccsens.delivery.util; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; /** @@ -21,16 +23,47 @@ public class DeliveryConstant { /**文档类型*/ public static final String FILE_TYPE_DOCUMENT = "doc, dot, wps, wpt, docx, dotx, docm, dotm, xls, xlt, et, xlsx, xltx, csv, xlsm, xltm, ppt,pptx,pptm,ppsx,ppsm,pps,potx,potm,dpt,dps, pdf"; - /**验证手机正则*/ public static final String PHONE_REGEX = "^[1]([3-9])[0-9]{9}$"; /**字符串分隔符*/ public static final String STRING_REGEX = ",|,|;|;|、|/"; - /**身份信息加密*/ public static final String ENCRYPT_KEY = "nzYM1LARgQ/7cKZY1Rm15A=="; + public enum FormType { + /** + * 职位归属 0健康码、1行程码、2核酸检测、3抗原检测 、4活动轨迹、5物资需求、6药品需求 + */ + HEALTH_CODE((byte) 0, "HEALTH_CODE"), + TOUR_CODE((byte) 1, "TOUR_CODE"), + NUCLEIC_REPORT((byte) 2, "NUCLEIC_REPORT"), + ANTIGEN_DETECTION((byte) 3, "ANTIGEN_DETECTION"), + TRACK_EVENTS((byte) 4, "TRACK_EVENTS"), + MATERIAL_DEMAND((byte) 5, "MATERIAL_DEMAND"), + DRUG_DEMAND((byte) 6, "DRUG_DEMAND"); + + public byte type; + public String value; + + FormType(byte type, String value) { + this.type = type; + this.value = value; + } + + public static FormType valueOf(int type) { + switch (type) { + case 0: return HEALTH_CODE; + case 1: return TOUR_CODE; + case 2: return NUCLEIC_REPORT; + case 3: return ANTIGEN_DETECTION; + case 4: return TRACK_EVENTS; + case 5: return MATERIAL_DEMAND; + default: return DRUG_DEMAND; + } + } + } + } diff --git a/src/main/resources/mapper_dao/FormRecordDao.xml b/src/main/resources/mapper_dao/FormRecordDao.xml new file mode 100644 index 0000000..5596057 --- /dev/null +++ b/src/main/resources/mapper_dao/FormRecordDao.xml @@ -0,0 +1,240 @@ + + + + + UPDATE + t_record_material + set + `status` = #{status} + WHERE + rec_status = 0 + and `status` != 1 + and `status` != 3 + and id in + + #{item} + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mapper_dao/RecordHealthDao.xml b/src/main/resources/mapper_dao/RecordHealthDao.xml new file mode 100644 index 0000000..8cd70a2 --- /dev/null +++ b/src/main/resources/mapper_dao/RecordHealthDao.xml @@ -0,0 +1,103 @@ + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mapper_dao/RecordTrailsDao.xml b/src/main/resources/mapper_dao/RecordTrailsDao.xml new file mode 100644 index 0000000..7df1b78 --- /dev/null +++ b/src/main/resources/mapper_dao/RecordTrailsDao.xml @@ -0,0 +1,122 @@ + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mapper_dao/StudentDao.xml b/src/main/resources/mapper_dao/StudentDao.xml index bac9a1e..37c0a1b 100644 --- a/src/main/resources/mapper_dao/StudentDao.xml +++ b/src/main/resources/mapper_dao/StudentDao.xml @@ -164,74 +164,99 @@ + SELECT + id, + `name`, + pay_max as max + FROM + t_sys_material + WHERE + rec_status = 0 + + + + \ No newline at end of file diff --git a/src/main/resources/mapper_raw/RecordHealthMapper.xml b/src/main/resources/mapper_raw/RecordHealthMapper.xml index 95072f7..c69042d 100644 --- a/src/main/resources/mapper_raw/RecordHealthMapper.xml +++ b/src/main/resources/mapper_raw/RecordHealthMapper.xml @@ -5,7 +5,10 @@ - + + + + @@ -71,7 +74,8 @@ - id, user_id, type, file_id, submit_time, operator, created_at, updated_at, rec_status + id, user_id, type, file_id, colour, star, positive, submit_time, operator, created_at, + updated_at, rec_status select @@ -109,12 +111,14 @@ insert into t_record_trails_detail (id, record_trails_id, start_time, end_time, trails_detail, vehicle, - mask, operator, created_at, - updated_at, rec_status) + vehicle_remark, mask, other_mask, + operator, created_at, updated_at, + rec_status) values (#{id,jdbcType=BIGINT}, #{recordTrailsId,jdbcType=BIGINT}, #{startTime,jdbcType=BIGINT}, #{endTime,jdbcType=BIGINT}, #{trailsDetail,jdbcType=VARCHAR}, #{vehicle,jdbcType=VARCHAR}, - #{mask,jdbcType=TINYINT}, #{operator,jdbcType=BIGINT}, #{createdAt,jdbcType=TIMESTAMP}, - #{updatedAt,jdbcType=TIMESTAMP}, #{recStatus,jdbcType=TINYINT}) + #{vehicleRemark,jdbcType=VARCHAR}, #{mask,jdbcType=VARCHAR}, #{otherMask,jdbcType=VARCHAR}, + #{operator,jdbcType=BIGINT}, #{createdAt,jdbcType=TIMESTAMP}, #{updatedAt,jdbcType=TIMESTAMP}, + #{recStatus,jdbcType=TINYINT}) insert into t_record_trails_detail @@ -137,9 +141,15 @@ vehicle, + + vehicle_remark, + mask, + + other_mask, + operator, @@ -172,8 +182,14 @@ #{vehicle,jdbcType=VARCHAR}, + + #{vehicleRemark,jdbcType=VARCHAR}, + - #{mask,jdbcType=TINYINT}, + #{mask,jdbcType=VARCHAR}, + + + #{otherMask,jdbcType=VARCHAR}, #{operator,jdbcType=BIGINT}, @@ -216,8 +232,14 @@ vehicle = #{record.vehicle,jdbcType=VARCHAR}, + + vehicle_remark = #{record.vehicleRemark,jdbcType=VARCHAR}, + - mask = #{record.mask,jdbcType=TINYINT}, + mask = #{record.mask,jdbcType=VARCHAR}, + + + other_mask = #{record.otherMask,jdbcType=VARCHAR}, operator = #{record.operator,jdbcType=BIGINT}, @@ -244,7 +266,9 @@ end_time = #{record.endTime,jdbcType=BIGINT}, trails_detail = #{record.trailsDetail,jdbcType=VARCHAR}, vehicle = #{record.vehicle,jdbcType=VARCHAR}, - mask = #{record.mask,jdbcType=TINYINT}, + vehicle_remark = #{record.vehicleRemark,jdbcType=VARCHAR}, + mask = #{record.mask,jdbcType=VARCHAR}, + other_mask = #{record.otherMask,jdbcType=VARCHAR}, operator = #{record.operator,jdbcType=BIGINT}, created_at = #{record.createdAt,jdbcType=TIMESTAMP}, updated_at = #{record.updatedAt,jdbcType=TIMESTAMP}, @@ -271,8 +295,14 @@ vehicle = #{vehicle,jdbcType=VARCHAR}, + + vehicle_remark = #{vehicleRemark,jdbcType=VARCHAR}, + - mask = #{mask,jdbcType=TINYINT}, + mask = #{mask,jdbcType=VARCHAR}, + + + other_mask = #{otherMask,jdbcType=VARCHAR}, operator = #{operator,jdbcType=BIGINT}, @@ -296,7 +326,9 @@ end_time = #{endTime,jdbcType=BIGINT}, trails_detail = #{trailsDetail,jdbcType=VARCHAR}, vehicle = #{vehicle,jdbcType=VARCHAR}, - mask = #{mask,jdbcType=TINYINT}, + vehicle_remark = #{vehicleRemark,jdbcType=VARCHAR}, + mask = #{mask,jdbcType=VARCHAR}, + other_mask = #{otherMask,jdbcType=VARCHAR}, operator = #{operator,jdbcType=BIGINT}, created_at = #{createdAt,jdbcType=TIMESTAMP}, updated_at = #{updatedAt,jdbcType=TIMESTAMP}, diff --git a/src/main/resources/mapper_raw/RecordTrailsMapper.xml b/src/main/resources/mapper_raw/RecordTrailsMapper.xml index 5cbd564..c6b6e46 100644 --- a/src/main/resources/mapper_raw/RecordTrailsMapper.xml +++ b/src/main/resources/mapper_raw/RecordTrailsMapper.xml @@ -4,7 +4,7 @@ - + @@ -109,7 +109,7 @@ submit_time, remark, operator, created_at, updated_at, rec_status ) - values (#{id,jdbcType=BIGINT}, #{userId,jdbcType=BIGINT}, #{trailsDate,jdbcType=VARCHAR}, + values (#{id,jdbcType=BIGINT}, #{userId,jdbcType=BIGINT}, #{trailsDate,jdbcType=TIMESTAMP}, #{submitTime,jdbcType=BIGINT}, #{remark,jdbcType=VARCHAR}, #{operator,jdbcType=BIGINT}, #{createdAt,jdbcType=TIMESTAMP}, #{updatedAt,jdbcType=TIMESTAMP}, #{recStatus,jdbcType=TINYINT} ) @@ -153,7 +153,7 @@ #{userId,jdbcType=BIGINT}, - #{trailsDate,jdbcType=VARCHAR}, + #{trailsDate,jdbcType=TIMESTAMP}, #{submitTime,jdbcType=BIGINT}, @@ -191,7 +191,7 @@ user_id = #{record.userId,jdbcType=BIGINT}, - trails_date = #{record.trailsDate,jdbcType=VARCHAR}, + trails_date = #{record.trailsDate,jdbcType=TIMESTAMP}, submit_time = #{record.submitTime,jdbcType=BIGINT}, @@ -220,7 +220,7 @@ update t_record_trails set id = #{record.id,jdbcType=BIGINT}, user_id = #{record.userId,jdbcType=BIGINT}, - trails_date = #{record.trailsDate,jdbcType=VARCHAR}, + trails_date = #{record.trailsDate,jdbcType=TIMESTAMP}, submit_time = #{record.submitTime,jdbcType=BIGINT}, remark = #{record.remark,jdbcType=VARCHAR}, operator = #{record.operator,jdbcType=BIGINT}, @@ -238,7 +238,7 @@ user_id = #{userId,jdbcType=BIGINT}, - trails_date = #{trailsDate,jdbcType=VARCHAR}, + trails_date = #{trailsDate,jdbcType=TIMESTAMP}, submit_time = #{submitTime,jdbcType=BIGINT}, @@ -264,7 +264,7 @@ update t_record_trails set user_id = #{userId,jdbcType=BIGINT}, - trails_date = #{trailsDate,jdbcType=VARCHAR}, + trails_date = #{trailsDate,jdbcType=TIMESTAMP}, submit_time = #{submitTime,jdbcType=BIGINT}, remark = #{remark,jdbcType=VARCHAR}, operator = #{operator,jdbcType=BIGINT}, diff --git a/src/main/resources/mapper_raw/SysUserInfoMapper.xml b/src/main/resources/mapper_raw/SysUserInfoMapper.xml index 87e5276..6b1773b 100644 --- a/src/main/resources/mapper_raw/SysUserInfoMapper.xml +++ b/src/main/resources/mapper_raw/SysUserInfoMapper.xml @@ -15,7 +15,9 @@ - + + + @@ -81,7 +83,8 @@ id, user_id, post, name, number, phone, id_card, college_id, college_name, dormitory_id, - dormitory_name, address, grade, stu_class, operator, created_at, updated_at, rec_status + dormitory_name, address, grade, stu_class_id, stu_class_name, student_type, operator, + created_at, updated_at, rec_status