From 4c8c065dd4fa5775cb240ab97363bf524e0ab149 Mon Sep 17 00:00:00 2001 From: pd <2776455882@qq.com> Date: Thu, 27 Aug 2020 09:07:45 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E9=AA=8C=E8=AE=B0=E5=BD=95=E3=80=81?= =?UTF-8?q?=E5=AE=9E=E9=AA=8C=E6=8A=A5=E5=91=8A=E3=80=81=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E4=B8=AA=E4=BA=BA=E4=B8=AD=E5=BF=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 5 + .../tms/api/PersonalFileControllerApi.java | 22 ++++ .../msdw/tms/api/ProjectControllerApi.java | 12 +++ .../tms/api/ProjectRcordControllerApi.java | 31 ++++++ .../com/msdw/tms/api/UserControllerApi.java | 17 ++++ .../com/msdw/tms/common/utils/Constant.java | 61 ++++++++---- .../msdw/tms/common/utils/date/DateUtils.java | 17 ++++ .../controller/PersonalFileController.java | 73 ++++++++++++++ .../tms/controller/ProjectController.java | 20 +++- .../controller/ProjectRecordController.java | 61 +++++++++--- .../msdw/tms/controller/UserController.java | 81 +++++++++++++++ .../com/msdw/tms/dao/PersonalFileDao.java | 15 +++ .../java/com/msdw/tms/dao/ProjectDao.java | 6 ++ .../com/msdw/tms/dao/ProjectRecordDao.java | 16 +++ src/main/java/com/msdw/tms/dao/UserDao.java | 15 +++ .../msdw/tms/entity/PersonalFileEntity.java | 43 ++++++++ .../com/msdw/tms/entity/ProjectEntity.java | 9 +- .../msdw/tms/entity/ProjectRecordEntity.java | 8 ++ .../java/com/msdw/tms/entity/UserEntity.java | 36 ++++--- .../request/ProjectRecordImportRequest.java | 41 ++++++++ .../msdw/tms/entity/vo/PersonalFileVo.java | 28 ++++++ .../msdw/tms/entity/vo/ProjectEntityVo.java | 9 -- .../msdw/tms/entity/vo/ProjectRecordVo.java | 59 +++++++++++ .../tms/feign/UserEntityFeignService.java | 13 +++ .../msdw/tms/service/PersonalFileService.java | 12 +++ .../tms/service/ProjectRecordService.java | 13 ++- .../com/msdw/tms/service/ProjectService.java | 4 +- .../com/msdw/tms/service/UserService.java | 16 +++ .../service/impl/PersonalFileServiceImpl.java | 24 +++++ .../impl/ProjectRecordServiceImpl.java | 84 ++++++++++++++-- .../tms/service/impl/ProjectServiceImpl.java | 37 ++++--- .../tms/service/impl/UserServiceImpl.java | 39 ++++++++ src/main/resources/application.yml | 5 + .../excel-template/实验报告导出.xlsx | Bin 0 -> 10295 bytes .../实验报告导出模板.xlsx | Bin 0 -> 10365 bytes .../resources/mapper/tms/PersonalFileDao.xml | 32 ++++++ src/main/resources/mapper/tms/ProjectDao.xml | 10 +- .../resources/mapper/tms/ProjectRecordDao.xml | 94 +++++++++++++++++- src/main/resources/mapper/tms/UserDao.xml | 38 +++++++ 39 files changed, 1013 insertions(+), 93 deletions(-) create mode 100644 src/main/java/com/msdw/tms/api/PersonalFileControllerApi.java create mode 100644 src/main/java/com/msdw/tms/api/ProjectControllerApi.java create mode 100644 src/main/java/com/msdw/tms/api/ProjectRcordControllerApi.java create mode 100644 src/main/java/com/msdw/tms/api/UserControllerApi.java create mode 100644 src/main/java/com/msdw/tms/common/utils/date/DateUtils.java create mode 100644 src/main/java/com/msdw/tms/controller/PersonalFileController.java create mode 100644 src/main/java/com/msdw/tms/controller/UserController.java create mode 100644 src/main/java/com/msdw/tms/dao/PersonalFileDao.java create mode 100644 src/main/java/com/msdw/tms/dao/UserDao.java create mode 100644 src/main/java/com/msdw/tms/entity/PersonalFileEntity.java create mode 100644 src/main/java/com/msdw/tms/entity/request/ProjectRecordImportRequest.java create mode 100644 src/main/java/com/msdw/tms/entity/vo/PersonalFileVo.java delete mode 100644 src/main/java/com/msdw/tms/entity/vo/ProjectEntityVo.java create mode 100644 src/main/java/com/msdw/tms/entity/vo/ProjectRecordVo.java create mode 100644 src/main/java/com/msdw/tms/feign/UserEntityFeignService.java create mode 100644 src/main/java/com/msdw/tms/service/PersonalFileService.java create mode 100644 src/main/java/com/msdw/tms/service/UserService.java create mode 100644 src/main/java/com/msdw/tms/service/impl/PersonalFileServiceImpl.java create mode 100644 src/main/java/com/msdw/tms/service/impl/UserServiceImpl.java create mode 100644 src/main/resources/excel-template/实验报告导出.xlsx create mode 100644 src/main/resources/excel-template/实验报告导出模板.xlsx create mode 100644 src/main/resources/mapper/tms/PersonalFileDao.xml create mode 100644 src/main/resources/mapper/tms/UserDao.xml diff --git a/pom.xml b/pom.xml index 2d3b361..b7ca58f 100644 --- a/pom.xml +++ b/pom.xml @@ -95,6 +95,11 @@ aliyun-sdk-oss 2.8.2 + + org.springframework.cloud + spring-cloud-starter-openfeign + 2.2.3.RELEASE + org.springframework.boot spring-boot-starter-test diff --git a/src/main/java/com/msdw/tms/api/PersonalFileControllerApi.java b/src/main/java/com/msdw/tms/api/PersonalFileControllerApi.java new file mode 100644 index 0000000..4d1d2f4 --- /dev/null +++ b/src/main/java/com/msdw/tms/api/PersonalFileControllerApi.java @@ -0,0 +1,22 @@ +package com.msdw.tms.api; + +import com.msdw.tms.common.utils.R; +import com.msdw.tms.entity.PersonalFileEntity; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; + +@Api(value = "个人档案管理",tags = "个人档案管理") +public interface PersonalFileControllerApi { + + @ApiOperation(value = "用户的全部档案",notes = "用户的全部档案") + R list(Integer userid); + + @ApiOperation(value = "添加用户个人档案",notes = "添加用户个人档案") + R save(PersonalFileEntity personalFileEntity); + + @ApiOperation(value = "修改用户个人档案",notes = "修改用户个人档案") + R update(PersonalFileEntity personalFileEntity); + + @ApiOperation(value = "删除用户个人档案",notes = "删除用户个人档案") + R delete(Long[] ids); +} diff --git a/src/main/java/com/msdw/tms/api/ProjectControllerApi.java b/src/main/java/com/msdw/tms/api/ProjectControllerApi.java new file mode 100644 index 0000000..42b1042 --- /dev/null +++ b/src/main/java/com/msdw/tms/api/ProjectControllerApi.java @@ -0,0 +1,12 @@ +package com.msdw.tms.api; + +import com.msdw.tms.common.utils.R; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; + +@Api(value = "用户_实验学习",tags = "用户_实验学习") +public interface ProjectControllerApi { + + @ApiOperation(value = "用户_实验学习实验项目",notes = "用户_实验学习实验项目") + R list(Integer userid); +} diff --git a/src/main/java/com/msdw/tms/api/ProjectRcordControllerApi.java b/src/main/java/com/msdw/tms/api/ProjectRcordControllerApi.java new file mode 100644 index 0000000..81a66dc --- /dev/null +++ b/src/main/java/com/msdw/tms/api/ProjectRcordControllerApi.java @@ -0,0 +1,31 @@ +package com.msdw.tms.api; + +import com.msdw.tms.common.utils.R; +import com.msdw.tms.entity.ProjectRecordEntity; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; + +import javax.servlet.http.HttpServletResponse; + +@Api(value = "实验报告",tags = "实验报告") +public interface ProjectRcordControllerApi { + + @ApiOperation(value = "服务端实验报告",notes = "服务端实验报告") + R list( Integer page, Integer size,Integer month,String startTime,String endTime, + Integer recordState,String condition); + + @ApiOperation(value = "用户端实验记录",notes = "用户端实验记录") + R queryUserRecord(Integer page,Integer size,Integer userid); + + @ApiOperation(value = "个人实验概览",notes = "个人实验概览") + R getUserScore(Integer userid); + + @ApiOperation(value = "个人实验记录导出",notes = "个人实验记录导出") + void exportProjectRecord(HttpServletResponse response,Integer userId)throws Exception; + + @ApiOperation(value = "修改实验报告分数",notes = "修改实验报告分数") + R update(ProjectRecordEntity projectRecord); + + @ApiOperation(value = "删除实验报告",notes = "删除实验报告") + R delete(Integer[] recordids); +} diff --git a/src/main/java/com/msdw/tms/api/UserControllerApi.java b/src/main/java/com/msdw/tms/api/UserControllerApi.java new file mode 100644 index 0000000..82a41ae --- /dev/null +++ b/src/main/java/com/msdw/tms/api/UserControllerApi.java @@ -0,0 +1,17 @@ +package com.msdw.tms.api; + +import com.msdw.tms.common.utils.R; +import com.msdw.tms.entity.UserEntity; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; + +@Api(value = "用户个人中心",tags = "用户个人中心信息展示,信息修改") +public interface UserControllerApi { + + @ApiOperation(value = "个人中心信息展示",notes = "个人中心信息展示") + R userInfo(Integer id); + + @ApiOperation(value = "个人中心信息修改",notes = "个人中心信息修改") + R update(UserEntity userEntity); + +} diff --git a/src/main/java/com/msdw/tms/common/utils/Constant.java b/src/main/java/com/msdw/tms/common/utils/Constant.java index 5012c08..5ee4add 100644 --- a/src/main/java/com/msdw/tms/common/utils/Constant.java +++ b/src/main/java/com/msdw/tms/common/utils/Constant.java @@ -342,19 +342,25 @@ public class Constant { } } - public enum Submit{ - SUBMIT (1,"已提交"), - NOT_SUBMIT (0,"未提交"); + /** + * 项目是否提交 + */ + public enum Submit { + SUBMIT(1, "已提交"), + NOT_SUBMIT(0, "未提交"); - private Integer type; - private String desc; - Submit(Integer type, String desc){ + private Integer type; + private String desc; + + Submit(Integer type, String desc) { this.type = type; this.desc = desc; - }; + } + + ; public Integer getType() { return type; @@ -373,18 +379,33 @@ public class Constant { } } + public enum Ascription { + + SYSTEM(1, "系统内置"), + USER(0, "用户自建"); + + private Integer type; + private String desc; + + Ascription(Integer type, String desc) { + this.type = type; + this.desc = desc; + }; + + public Integer getType() { + return type; + } + + public void setType(Integer type) { + this.type = type; + } + + public String getDesc() { + return desc; + } -// public static void main(String[] args) { -// String answer = "A"; -//// System.out.println(answer.length());//3 -//// System.out.println(answer.charAt(2));//E -// -// String str = ""; -// for (int i = 0; i < answer.length(); i++) { -// char c = answer.charAt(i); -// str += c + ","; -// } -// str = str.substring(0, str.length() - 1); -// System.out.println(str); -// } + public void setDesc(String desc) { + this.desc = desc; + } + } } \ No newline at end of file diff --git a/src/main/java/com/msdw/tms/common/utils/date/DateUtils.java b/src/main/java/com/msdw/tms/common/utils/date/DateUtils.java new file mode 100644 index 0000000..1260619 --- /dev/null +++ b/src/main/java/com/msdw/tms/common/utils/date/DateUtils.java @@ -0,0 +1,17 @@ +package com.msdw.tms.common.utils.date; + +import java.time.Instant; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; +import java.util.Date; + +public class DateUtils { + + public static String handleTime(Date date) { + Instant instant = date.toInstant(); + ZoneId zoneId = ZoneId.systemDefault(); + LocalDateTime localDateTime = instant.atZone(zoneId).toLocalDateTime(); + return localDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); // 当前日期和时间 + } +} diff --git a/src/main/java/com/msdw/tms/controller/PersonalFileController.java b/src/main/java/com/msdw/tms/controller/PersonalFileController.java new file mode 100644 index 0000000..75980fc --- /dev/null +++ b/src/main/java/com/msdw/tms/controller/PersonalFileController.java @@ -0,0 +1,73 @@ +package com.msdw.tms.controller; + +import com.msdw.tms.common.utils.R; +import com.msdw.tms.entity.PersonalFileEntity; +import com.msdw.tms.entity.vo.PersonalFileVo; +import com.msdw.tms.service.PersonalFileService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.Arrays; +import java.util.List; + +@RestController +@RequestMapping("tms/personalFile") +public class PersonalFileController { + + @Autowired + private PersonalFileService personalFileService; + + + /** + * 列表 + */ + @GetMapping("/list/{userId}") + public R list(@PathVariable("userId") Integer userid){ + List personalFileVos = personalFileService.queryPage(userid); + + return R.ok().put("data", personalFileVos); + } + + + /** + * 信息 + */ + @GetMapping("/info/{id}") + public R info(@PathVariable("id") Long id){ + PersonalFileEntity personalFileEntity = personalFileService.getById(id); + + return R.ok().put("growthChangeHistory", personalFileEntity); + } + + /** + * 保存 + */ + @PostMapping("/save") + public R save(@RequestBody PersonalFileEntity personalFileEntity){ + personalFileService.save(personalFileEntity); + + return R.ok(); + } + + /** + * 修改 + */ + @PutMapping("/update") + public R update(@RequestBody PersonalFileEntity personalFileEntity){ + personalFileService.updateById(personalFileEntity); + + return R.ok(); + } + + /** + * 删除 + */ + @DeleteMapping("/delete") + public R delete(@RequestBody Long[] ids){ + personalFileService.removeByIds(Arrays.asList(ids)); + + return R.ok(); + } + + +} diff --git a/src/main/java/com/msdw/tms/controller/ProjectController.java b/src/main/java/com/msdw/tms/controller/ProjectController.java index 8a85f1f..09014af 100644 --- a/src/main/java/com/msdw/tms/controller/ProjectController.java +++ b/src/main/java/com/msdw/tms/controller/ProjectController.java @@ -8,6 +8,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.Arrays; +import java.util.HashMap; import java.util.Map; @@ -28,18 +29,29 @@ public class ProjectController { /** * 列表 */ - @RequestMapping("/list") + @GetMapping("/list") public R list(@RequestParam Map params){ PageUtils page = projectService.queryPage(params); return R.ok().put("page", page); } + /** + * 用户端-实验项目 + * @param userId + * @return + */ + @GetMapping("/projects/info/{userid}") + public R list(@PathVariable("userid") Integer userId){ + HashMap result = projectService.list(userId); + + return R.ok().put("data", result); + } /** * 信息 */ - @RequestMapping("/info/{projectid}") + @GetMapping("/info/{projectid}") public R info(@PathVariable("projectid") Integer projectid){ ProjectEntity project = projectService.getById(projectid); @@ -59,7 +71,7 @@ public class ProjectController { /** * 修改 */ - @RequestMapping("/update") + @PutMapping("/update") public R update(@RequestBody ProjectEntity project){ projectService.updateById(project); @@ -69,7 +81,7 @@ public class ProjectController { /** * 删除 */ - @RequestMapping("/delete") + @DeleteMapping("/delete") public R delete(@RequestBody Integer[] projectids){ projectService.removeByIds(Arrays.asList(projectids)); diff --git a/src/main/java/com/msdw/tms/controller/ProjectRecordController.java b/src/main/java/com/msdw/tms/controller/ProjectRecordController.java index b3f0c8a..156fac3 100644 --- a/src/main/java/com/msdw/tms/controller/ProjectRecordController.java +++ b/src/main/java/com/msdw/tms/controller/ProjectRecordController.java @@ -1,15 +1,17 @@ package com.msdw.tms.controller; +import com.msdw.tms.api.ProjectRcordControllerApi; import com.msdw.tms.common.utils.PageUtils; import com.msdw.tms.common.utils.R; import com.msdw.tms.entity.ProjectRecordEntity; +import com.msdw.tms.entity.vo.ProjectRecordVo; import com.msdw.tms.service.ProjectRecordService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletResponse; import java.util.Arrays; -import java.util.Map; - /** * @@ -20,25 +22,58 @@ import java.util.Map; */ @RestController @RequestMapping("fictitious/projectrecord") -public class ProjectRecordController { +public class ProjectRecordController implements ProjectRcordControllerApi { @Autowired private ProjectRecordService projectRecordService; /** - * 列表 + * 服务端实验报告 */ - @RequestMapping("/list") - public R list(@RequestParam Map params){ - PageUtils page = projectRecordService.queryPage(params); + @GetMapping("/schoolRecord") + public R list(@RequestParam Integer page, @RequestParam Integer size, @RequestParam Integer month,@RequestParam String startTime,@RequestParam String endTime, + @RequestParam Integer recordState,@RequestParam String condition ){ + ProjectRecordVo recordVo = new ProjectRecordVo(); + if(!StringUtils.isEmpty(month)) { + recordVo.setMonth(month); + }if(!StringUtils.isEmpty(startTime)) { + recordVo.setStartTime(startTime); + }if(!StringUtils.isEmpty(endTime)) { + recordVo.setEndTime(endTime); + }if(!StringUtils.isEmpty(recordState)) { + recordVo.setRecordstate(recordState); + }if(!StringUtils.isEmpty(condition)){ + recordVo.setCondition(condition); + } + PageUtils page1 = projectRecordService.querySchoolRecord(page,size,recordVo); + + return R.ok().put("page", page1); + } + + + + @GetMapping("/user/record") + public R queryUserRecord(@RequestParam Integer page,@RequestParam Integer size,@RequestParam Integer userid){ + PageUtils page1 = projectRecordService.queryPage(page,size,userid); - return R.ok().put("page", page); + return R.ok().put("data", page1); } + @GetMapping("/user/score/{userId}") + public R getUserScore(@PathVariable("userId") Integer userid){ + ProjectRecordVo projectRecord = projectRecordService.queryUserScore(userid); + + return R.ok().put("data", projectRecord); + } + + @GetMapping("/user/exportProjectRecord") + public void exportProjectRecord(HttpServletResponse response,@RequestParam("userId") Integer userId)throws Exception{ + projectRecordService.exportProjectRecord(response,userId); + } /** * 信息 */ - @RequestMapping("/info/{recordid}") + @GetMapping("/info/{recordid}") public R info(@PathVariable("recordid") Integer recordid){ ProjectRecordEntity projectRecord = projectRecordService.getById(recordid); @@ -58,17 +93,17 @@ public class ProjectRecordController { /** * 修改 */ - @RequestMapping("/update") + @PutMapping("/update") public R update(@RequestBody ProjectRecordEntity projectRecord){ - projectRecordService.updateById(projectRecord); + boolean result = projectRecordService.updateUserRecord(projectRecord); - return R.ok(); + return R.ok().put("data",result); } /** * 删除 */ - @RequestMapping("/delete") + @DeleteMapping("/delete") public R delete(@RequestBody Integer[] recordids){ projectRecordService.removeByIds(Arrays.asList(recordids)); diff --git a/src/main/java/com/msdw/tms/controller/UserController.java b/src/main/java/com/msdw/tms/controller/UserController.java new file mode 100644 index 0000000..84093be --- /dev/null +++ b/src/main/java/com/msdw/tms/controller/UserController.java @@ -0,0 +1,81 @@ +package com.msdw.tms.controller; + +import com.msdw.tms.api.UserControllerApi; +import com.msdw.tms.common.utils.PageUtils; +import com.msdw.tms.common.utils.R; +import com.msdw.tms.entity.UserEntity; +import com.msdw.tms.entity.vo.UserEntityVo; +import com.msdw.tms.service.UserService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.Arrays; +import java.util.Map; + +@RestController +@RequestMapping("tms/user") +public class UserController implements UserControllerApi { + + @Autowired + private UserService userService; + + /** + * 列表 + */ + @GetMapping("/list") + public R list(@RequestParam Map params){ + PageUtils page = userService.queryPage(params); + + return R.ok().put("page", page); + } + + + /** + * 信息 + */ + @GetMapping("/info/{id}") + public R info(@PathVariable("id") Long id){ + UserEntity userEntity = userService.getById(id); + + return R.ok().put("growthChangeHistory", userEntity); + } + + @GetMapping("/userinfo/{id}") + public R userInfo(@PathVariable("id") Integer id){ + UserEntityVo userEntityVo = userService.queryUserId(id); + return R.ok().put("data",userEntityVo); + } + + /** + * 保存 + */ + @RequestMapping("/save") + public R save(@RequestBody UserEntity userEntity){ + userService.save(userEntity); + + return R.ok(); + } + + /** + * 修改 + */ + @PutMapping("/update") + public R update(@RequestBody UserEntity userEntity){ + userService.updateById(userEntity); + + return R.ok(); + } + + /** + * 删除 + */ + @DeleteMapping("/delete") + public R delete(@RequestBody Long[] ids){ + userService.removeByIds(Arrays.asList(ids)); + + return R.ok(); + } + + + +} diff --git a/src/main/java/com/msdw/tms/dao/PersonalFileDao.java b/src/main/java/com/msdw/tms/dao/PersonalFileDao.java new file mode 100644 index 0000000..47066f6 --- /dev/null +++ b/src/main/java/com/msdw/tms/dao/PersonalFileDao.java @@ -0,0 +1,15 @@ +package com.msdw.tms.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.msdw.tms.entity.PersonalFileEntity; +import com.msdw.tms.entity.vo.PersonalFileVo; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface PersonalFileDao extends BaseMapper { + + List getPersonalfiles(PersonalFileEntity PersonalFileEntity); + +} diff --git a/src/main/java/com/msdw/tms/dao/ProjectDao.java b/src/main/java/com/msdw/tms/dao/ProjectDao.java index 595fc38..a365dc1 100644 --- a/src/main/java/com/msdw/tms/dao/ProjectDao.java +++ b/src/main/java/com/msdw/tms/dao/ProjectDao.java @@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.msdw.tms.entity.ProjectEntity; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * * @@ -14,4 +16,8 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface ProjectDao extends BaseMapper { + public List getByUserId(ProjectEntity projectEntity); + + public List querySystem(ProjectEntity projectEntity); + } diff --git a/src/main/java/com/msdw/tms/dao/ProjectRecordDao.java b/src/main/java/com/msdw/tms/dao/ProjectRecordDao.java index ef1642c..ee3d742 100644 --- a/src/main/java/com/msdw/tms/dao/ProjectRecordDao.java +++ b/src/main/java/com/msdw/tms/dao/ProjectRecordDao.java @@ -1,8 +1,14 @@ package com.msdw.tms.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.msdw.tms.entity.ProjectRecordEntity; +import com.msdw.tms.entity.vo.ProjectRecordVo; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * @@ -14,4 +20,14 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface ProjectRecordDao extends BaseMapper { + IPage getByUserRecord(Page page,@Param("pro") ProjectRecordEntity projectRecordEntity); + + List getByUserRecordImport(ProjectRecordEntity projectRecordEntity); + + ProjectRecordVo getByUserScore(@Param("userid") Integer userId,@Param("isdel") Integer isdel); + + IPage getBySchoolRecord(Page page,@Param("pro") ProjectRecordVo projectRecord); + + boolean updateUserRecord(ProjectRecordEntity projectRecord); + } diff --git a/src/main/java/com/msdw/tms/dao/UserDao.java b/src/main/java/com/msdw/tms/dao/UserDao.java new file mode 100644 index 0000000..47a096e --- /dev/null +++ b/src/main/java/com/msdw/tms/dao/UserDao.java @@ -0,0 +1,15 @@ +package com.msdw.tms.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.msdw.tms.entity.UserEntity; +import com.msdw.tms.entity.vo.UserEntityVo; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface UserDao extends BaseMapper { + + UserEntityVo getByUserId(UserEntity userEntity); + + + +} diff --git a/src/main/java/com/msdw/tms/entity/PersonalFileEntity.java b/src/main/java/com/msdw/tms/entity/PersonalFileEntity.java new file mode 100644 index 0000000..bae2693 --- /dev/null +++ b/src/main/java/com/msdw/tms/entity/PersonalFileEntity.java @@ -0,0 +1,43 @@ +package com.msdw.tms.entity; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; + +@Data +@TableName("hr_personal_file") +public class PersonalFileEntity implements Serializable { + + /** + * 个人档案id + */ + @TableId + private Integer personalfileid; + /** + * 个人职业id(1、学生 2、老师) + */ + private Integer personalcareerid; + /** + * 学校id + */ + private Integer schoolid; + /** + * 绑定学科id + */ + private Integer disciplineid; + /** + * 绑定专业类id + */ + private Integer professionalclassid; + /** + * 绑定专业id + */ + private Integer professionalid; + /** + * 绑定专业id + */ + private Integer userid; + +} diff --git a/src/main/java/com/msdw/tms/entity/ProjectEntity.java b/src/main/java/com/msdw/tms/entity/ProjectEntity.java index c6ba9f9..eaa6e5c 100644 --- a/src/main/java/com/msdw/tms/entity/ProjectEntity.java +++ b/src/main/java/com/msdw/tms/entity/ProjectEntity.java @@ -3,6 +3,7 @@ package com.msdw.tms.entity; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; +import lombok.experimental.Accessors; import java.io.Serializable; import java.util.Date; @@ -14,9 +15,10 @@ import java.util.Date; * @email * @date 2020-08-19 16:07:02 */ +@Accessors(chain = true) @Data @TableName("tms_project") -public class ProjectEntity implements Serializable { +public class ProjectEntity implements Serializable, Comparable { private static final long serialVersionUID = 1L; @@ -66,4 +68,9 @@ public class ProjectEntity implements Serializable { */ private Integer isdel; + @Override + public int compareTo(Object o) { + ProjectEntity projectEntity = (ProjectEntity) o; + return this.projectid - projectEntity.projectid; + } } diff --git a/src/main/java/com/msdw/tms/entity/ProjectRecordEntity.java b/src/main/java/com/msdw/tms/entity/ProjectRecordEntity.java index 7ac6665..2ef118b 100644 --- a/src/main/java/com/msdw/tms/entity/ProjectRecordEntity.java +++ b/src/main/java/com/msdw/tms/entity/ProjectRecordEntity.java @@ -1,8 +1,10 @@ package com.msdw.tms.entity; import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; +import lombok.experimental.Accessors; import java.io.Serializable; import java.util.Date; @@ -15,6 +17,7 @@ import java.util.Date; * @date 2020-08-19 16:07:02 */ @Data +@Accessors(chain = true) @TableName("tms_project_record") public class ProjectRecordEntity implements Serializable { private static final long serialVersionUID = 1L; @@ -48,6 +51,10 @@ public class ProjectRecordEntity implements Serializable { * 结束时间 */ private Date endtime; + /** + * 耗时 + */ + private Integer timeSum; /** * 提交时间 */ @@ -55,6 +62,7 @@ public class ProjectRecordEntity implements Serializable { /** * 删除(0未删除 1已删除) */ + @TableLogic(value = "0",delval = "1") private Integer isdel; } diff --git a/src/main/java/com/msdw/tms/entity/UserEntity.java b/src/main/java/com/msdw/tms/entity/UserEntity.java index 69cb3f3..062ed53 100644 --- a/src/main/java/com/msdw/tms/entity/UserEntity.java +++ b/src/main/java/com/msdw/tms/entity/UserEntity.java @@ -1,13 +1,19 @@ package com.msdw.tms.entity; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; +import lombok.experimental.Accessors; +@Accessors(chain = true) @Data +@TableName("hr_user_info") public class UserEntity { //用户id - private Integer userId; + @TableId + private Integer userid; //用户姓名 - private String userName; + private String username; //用户账号 private String account; //用户密码 @@ -15,34 +21,36 @@ public class UserEntity { //国家 private String countries; //绑定省份id - private Integer provinceId; + private Integer provinceid; //绑定城市id - private Integer cityId; + private Integer cityid; //创建时间 - private String creationTime; + private String creationtime; //登陆次数 - private Integer logInNumber; + private Integer loginnumber; //性别 private Integer sex; //证件类型(1、身份证) - private Integer documentType; + private Integer documenttype; //身份证 - private String IDNumber; + private String idnumber; //教育程度(1、研究数及以上) - private Integer educationDegree; + private Integer educationdegree; //电话 private String phone; //微信账号 - private String WeChatID; + private String wechatid; //出生日期 - private String dateBirth; + private String datebirth; //邮箱 private String email; //学校id - private Integer schoolId; + private Integer schoolid; //唯一标示性账号 - private String uniqueIdentificationAccount; + private String uniqueidentificationaccount; //用户头像路径 - private String userAvatars; + private String useravatars; + //是否删除 + private Integer isdel; } diff --git a/src/main/java/com/msdw/tms/entity/request/ProjectRecordImportRequest.java b/src/main/java/com/msdw/tms/entity/request/ProjectRecordImportRequest.java new file mode 100644 index 0000000..b250786 --- /dev/null +++ b/src/main/java/com/msdw/tms/entity/request/ProjectRecordImportRequest.java @@ -0,0 +1,41 @@ +package com.msdw.tms.entity.request; + +import com.msdw.tms.common.utils.poi.ExcelAttribute; +import lombok.Data; + +@Data +public class ProjectRecordImportRequest { + + /** + * 实验项目名称 + */ + @ExcelAttribute(sort = 0) + private String projectName; + /** + * 状态 + */ + @ExcelAttribute(sort = 1) + private String userRecordstate; + + private Integer recordstate; + /** + * 得分 + */ + @ExcelAttribute(sort = 2) + private Integer score; + /** + * 耗时 + */ + @ExcelAttribute(sort = 3) + private Integer timeSum; + /** + * 起始时间 + */ + @ExcelAttribute(sort = 4) + private String startTime; + /** + * 结束时间 + */ + @ExcelAttribute(sort = 5) + private String endTime; +} diff --git a/src/main/java/com/msdw/tms/entity/vo/PersonalFileVo.java b/src/main/java/com/msdw/tms/entity/vo/PersonalFileVo.java new file mode 100644 index 0000000..f4d25ee --- /dev/null +++ b/src/main/java/com/msdw/tms/entity/vo/PersonalFileVo.java @@ -0,0 +1,28 @@ +package com.msdw.tms.entity.vo; + +import com.msdw.tms.entity.PersonalFileEntity; +import lombok.Data; + +import java.io.Serializable; + +@Data +public class PersonalFileVo extends PersonalFileEntity implements Serializable { + + /** + * 学校名称 + */ + private String schoolName; + /** + * 学科名称 + */ + private String disciplineName; + /** + * 专业类名称 + */ + private String professionalClassName; + /** + * 专业名称 + */ + private String professionalName; + +} diff --git a/src/main/java/com/msdw/tms/entity/vo/ProjectEntityVo.java b/src/main/java/com/msdw/tms/entity/vo/ProjectEntityVo.java deleted file mode 100644 index b549376..0000000 --- a/src/main/java/com/msdw/tms/entity/vo/ProjectEntityVo.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.msdw.tms.entity.vo; - -import java.io.Serializable; - -public class ProjectEntityVo implements Serializable { - - private Integer RoleId; - -} diff --git a/src/main/java/com/msdw/tms/entity/vo/ProjectRecordVo.java b/src/main/java/com/msdw/tms/entity/vo/ProjectRecordVo.java new file mode 100644 index 0000000..8cc25c8 --- /dev/null +++ b/src/main/java/com/msdw/tms/entity/vo/ProjectRecordVo.java @@ -0,0 +1,59 @@ +package com.msdw.tms.entity.vo; + +import com.msdw.tms.entity.ProjectRecordEntity; +import lombok.Data; + +import java.io.Serializable; + +@Data +public class ProjectRecordVo extends ProjectRecordEntity implements Serializable { + + /** + * 实验项目名称 + */ + private String projectName; + /** + * 学校名称 + */ + private String SchoolName; + /** + * 用户名称 + */ + private String userName; + /** + * 实验次数 + */ + private Integer experimentNumber; + /** + * 总耗时 + */ + private Integer totalTime; + /** + * 平均分 + */ + private double avgScore; + /** + * 几个月 + */ + private Integer month; + /** + * 查询条件 + */ + private String condition; + /** + * 开始时间 + */ + private String startTime; + /** + * 结束时间 + */ + private String endTime; + /** + * 完成数量 + */ + private Integer complete; + /** + * 待评分 + */ + private Integer tobescored; +} diff --git a/src/main/java/com/msdw/tms/feign/UserEntityFeignService.java b/src/main/java/com/msdw/tms/feign/UserEntityFeignService.java new file mode 100644 index 0000000..663b2c9 --- /dev/null +++ b/src/main/java/com/msdw/tms/feign/UserEntityFeignService.java @@ -0,0 +1,13 @@ +package com.msdw.tms.feign; + +import org.springframework.cloud.openfeign.FeignClient; +import com.msdw.tms.common.utils.R; +import org.springframework.web.bind.annotation.RequestMapping; + +@FeignClient +public interface UserEntityFeignService { + + @RequestMapping("userInfo/queryUserInfo") + public R getUser(); + +} diff --git a/src/main/java/com/msdw/tms/service/PersonalFileService.java b/src/main/java/com/msdw/tms/service/PersonalFileService.java new file mode 100644 index 0000000..e508108 --- /dev/null +++ b/src/main/java/com/msdw/tms/service/PersonalFileService.java @@ -0,0 +1,12 @@ +package com.msdw.tms.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.msdw.tms.entity.PersonalFileEntity; +import com.msdw.tms.entity.vo.PersonalFileVo; + +import java.util.List; + +public interface PersonalFileService extends IService { + + List queryPage(Integer userid); +} diff --git a/src/main/java/com/msdw/tms/service/ProjectRecordService.java b/src/main/java/com/msdw/tms/service/ProjectRecordService.java index 663bdc6..eedcfbb 100644 --- a/src/main/java/com/msdw/tms/service/ProjectRecordService.java +++ b/src/main/java/com/msdw/tms/service/ProjectRecordService.java @@ -3,8 +3,9 @@ package com.msdw.tms.service; import com.baomidou.mybatisplus.extension.service.IService; import com.msdw.tms.common.utils.PageUtils; import com.msdw.tms.entity.ProjectRecordEntity; +import com.msdw.tms.entity.vo.ProjectRecordVo; -import java.util.Map; +import javax.servlet.http.HttpServletResponse; /** * @@ -15,6 +16,14 @@ import java.util.Map; */ public interface ProjectRecordService extends IService { - PageUtils queryPage(Map params); + PageUtils queryPage(Integer page,Integer size,Integer userid); + + ProjectRecordVo queryUserScore(Integer userId); + + void exportProjectRecord(HttpServletResponse response,Integer userId)throws Exception; + + PageUtils querySchoolRecord(Integer page,Integer size,ProjectRecordVo projectRecord); + + boolean updateUserRecord(ProjectRecordEntity projectRecord); } diff --git a/src/main/java/com/msdw/tms/service/ProjectService.java b/src/main/java/com/msdw/tms/service/ProjectService.java index accc909..06bde4f 100644 --- a/src/main/java/com/msdw/tms/service/ProjectService.java +++ b/src/main/java/com/msdw/tms/service/ProjectService.java @@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.msdw.tms.common.utils.PageUtils; import com.msdw.tms.entity.ProjectEntity; -import java.util.List; +import java.util.HashMap; import java.util.Map; /** @@ -18,6 +18,6 @@ public interface ProjectService extends IService { PageUtils queryPage(Map params); - public List list(Integer page, Integer size,ProjectEntity project); + HashMap list(Integer userId); } diff --git a/src/main/java/com/msdw/tms/service/UserService.java b/src/main/java/com/msdw/tms/service/UserService.java new file mode 100644 index 0000000..da5422b --- /dev/null +++ b/src/main/java/com/msdw/tms/service/UserService.java @@ -0,0 +1,16 @@ +package com.msdw.tms.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.msdw.tms.common.utils.PageUtils; +import com.msdw.tms.entity.UserEntity; +import com.msdw.tms.entity.vo.UserEntityVo; + +import java.util.Map; + +public interface UserService extends IService { + + PageUtils queryPage(Map params); + + UserEntityVo queryUserId(Integer userId); + +} diff --git a/src/main/java/com/msdw/tms/service/impl/PersonalFileServiceImpl.java b/src/main/java/com/msdw/tms/service/impl/PersonalFileServiceImpl.java new file mode 100644 index 0000000..7233014 --- /dev/null +++ b/src/main/java/com/msdw/tms/service/impl/PersonalFileServiceImpl.java @@ -0,0 +1,24 @@ +package com.msdw.tms.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.msdw.tms.dao.PersonalFileDao; +import com.msdw.tms.entity.PersonalFileEntity; +import com.msdw.tms.entity.vo.PersonalFileVo; +import com.msdw.tms.service.PersonalFileService; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service("personalFileService") +public class PersonalFileServiceImpl extends ServiceImpl implements PersonalFileService { + + @Override + public List queryPage(Integer userid) { + PersonalFileDao baseMapper = this.getBaseMapper(); + PersonalFileEntity entity = new PersonalFileEntity(); + entity.setUserid(userid); + List personalfiles = baseMapper.getPersonalfiles(entity); + return personalfiles; + } + +} diff --git a/src/main/java/com/msdw/tms/service/impl/ProjectRecordServiceImpl.java b/src/main/java/com/msdw/tms/service/impl/ProjectRecordServiceImpl.java index 0430590..558968b 100644 --- a/src/main/java/com/msdw/tms/service/impl/ProjectRecordServiceImpl.java +++ b/src/main/java/com/msdw/tms/service/impl/ProjectRecordServiceImpl.java @@ -1,29 +1,95 @@ package com.msdw.tms.service.impl; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.msdw.tms.common.utils.Constant; import com.msdw.tms.common.utils.PageUtils; -import com.msdw.tms.common.utils.Query; +import com.msdw.tms.common.utils.poi.ExcelExportUtil; import com.msdw.tms.dao.ProjectRecordDao; import com.msdw.tms.entity.ProjectRecordEntity; +import com.msdw.tms.entity.request.ProjectRecordImportRequest; +import com.msdw.tms.entity.vo.ProjectRecordVo; import com.msdw.tms.service.ProjectRecordService; +import org.apache.poi.ss.formula.functions.T; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.io.ClassPathResource; import org.springframework.stereotype.Service; -import java.util.Map; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.util.List; +import java.util.stream.Collectors; @Service("projectRecordService") public class ProjectRecordServiceImpl extends ServiceImpl implements ProjectRecordService { + @Autowired + private ProjectRecordDao baseMapper; + + @Override + public PageUtils queryPage(Integer page,Integer size,Integer userid) { + + ProjectRecordEntity projectRecord = new ProjectRecordEntity().setUserid(userid).setIsdel(Constant.IsDel.NOT_DEL.getType()); + + //分页对象 + Page page1 = new Page<>(page, size); + + IPage projectRecordVos = this.baseMapper.getByUserRecord(page1,projectRecord); + + PageUtils questionsPage = new PageUtils(projectRecordVos); + + return questionsPage; + } + @Override - public PageUtils queryPage(Map params) { - IPage page = this.page( - new Query().getPage(params), - new QueryWrapper() - ); + public ProjectRecordVo queryUserScore(Integer userId) { - return new PageUtils(page); + Integer isdel = Constant.IsDel.NOT_DEL.getType(); + ProjectRecordVo projectRecordVo = this.baseMapper.getByUserScore(userId ,isdel); + + return projectRecordVo; } + @Override + public void exportProjectRecord(HttpServletResponse response,Integer userId)throws Exception{ + //获取数据 + ProjectRecordEntity projectRecord = new ProjectRecordEntity().setUserid(userId).setIsdel(Constant.IsDel.NOT_DEL.getType()); + + List projectRecordVos = this.baseMapper.getByUserRecordImport(projectRecord); + + List importRequests = projectRecordVos.stream().map(project -> { + ProjectRecordImportRequest request = new ProjectRecordImportRequest(); + BeanUtils.copyProperties(project, request); + request.setUserRecordstate(project.getRecordstate().equals(1) ? "已完成":"待评分"); + return request; + }).collect(Collectors.toList()); + + //2.加载模板流数据 + org.springframework.core.io.Resource resource = new ClassPathResource("excel-template/实验报告导出模板.xlsx"); + FileInputStream fis = new FileInputStream(resource.getFile()); + + //3、通过工具类下载文件 + new ExcelExportUtil(ProjectRecordImportRequest.class, Constant.STARTING_ROW, Constant.STYLE_INDEX). + export(response, fis, importRequests, "实验报告导出.xlsx"); + } + + @Override + public PageUtils querySchoolRecord(Integer page, Integer size, ProjectRecordVo projectRecord) { + + //分页对象 + Page page1 = new Page<>(page, size); + projectRecord.setIsdel(Constant.IsDel.NOT_DEL.getType()); + IPage schoolRecord = this.baseMapper.getBySchoolRecord(page1, projectRecord); + PageUtils pageUtils = new PageUtils(schoolRecord); + return pageUtils; + } + + @Override + public boolean updateUserRecord(ProjectRecordEntity projectRecord) { + boolean result = this.baseMapper.updateUserRecord(projectRecord); + return result; + } } \ No newline at end of file diff --git a/src/main/java/com/msdw/tms/service/impl/ProjectServiceImpl.java b/src/main/java/com/msdw/tms/service/impl/ProjectServiceImpl.java index 294626f..399e574 100644 --- a/src/main/java/com/msdw/tms/service/impl/ProjectServiceImpl.java +++ b/src/main/java/com/msdw/tms/service/impl/ProjectServiceImpl.java @@ -11,13 +11,13 @@ import com.msdw.tms.entity.ProjectEntity; import com.msdw.tms.service.ProjectService; import org.springframework.stereotype.Service; -import java.util.List; -import java.util.Map; +import java.util.*; @Service("projectService") public class ProjectServiceImpl extends ServiceImpl implements ProjectService { + @Override public PageUtils queryPage(Map params) { IPage page = this.page( @@ -30,23 +30,30 @@ public class ProjectServiceImpl extends ServiceImpl i } @Override - public List list(Integer page, Integer size,ProjectEntity project) { + public HashMap list(Integer userId) { - //请求包装类 - QueryWrapper queryWrapper = new QueryWrapper<>(); + ProjectDao baseMapper = this.getBaseMapper(); - Integer userid = project.getUserid(); - queryWrapper.eq("is_del", Constant.IsDel.NOT_DEL.getType()) - .eq("projectState", Constant.Submit.SUBMIT.getType()) - .eq("userId",userid); + ProjectEntity project = new ProjectEntity().setUserid(userId) + .setAscription(Constant.Ascription.SYSTEM.getType()) + .setProjectstate(Constant.Submit.SUBMIT.getType()) + .setIsdel(Constant.IsDel.NOT_DEL.getType()); - queryWrapper.select("projectId","projectName").groupBy("projectId"); + List projects = new ArrayList<>(); + List user_projects = baseMapper.getByUserId(project); + List sys_projects = baseMapper.querySystem(project); - IPage projects = this.page( - new Query().getPage(page, size), - queryWrapper - ); + projects.addAll(0,user_projects); + projects.addAll(0, sys_projects); + + Collections.sort(projects); - return null; + HashMap result = new HashMap<>(); + for (ProjectEntity pro : projects ) { + result.put(pro.getProjectid(),pro); + } + + return result; } + } \ No newline at end of file diff --git a/src/main/java/com/msdw/tms/service/impl/UserServiceImpl.java b/src/main/java/com/msdw/tms/service/impl/UserServiceImpl.java new file mode 100644 index 0000000..0525ad5 --- /dev/null +++ b/src/main/java/com/msdw/tms/service/impl/UserServiceImpl.java @@ -0,0 +1,39 @@ +package com.msdw.tms.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.msdw.tms.common.utils.Constant; +import com.msdw.tms.common.utils.PageUtils; +import com.msdw.tms.common.utils.Query; +import com.msdw.tms.dao.UserDao; +import com.msdw.tms.entity.UserEntity; +import com.msdw.tms.entity.vo.UserEntityVo; +import com.msdw.tms.service.UserService; +import org.springframework.stereotype.Service; + +import java.util.Map; + +@Service("userService") +public class UserServiceImpl extends ServiceImpl implements UserService { + + @Override + public PageUtils queryPage(Map params) { + + IPage page = this.page( + new Query().getPage(params), + new QueryWrapper() + ); + return new PageUtils(page); + } + + @Override + public UserEntityVo queryUserId(Integer userId) { + + UserDao userDao = this.getBaseMapper(); + UserEntity userEntity = new UserEntity(); + userEntity.setUserid(userId).setIsdel(Constant.IsDel.NOT_DEL.getType()); + UserEntityVo vo = userDao.getByUserId(userEntity); + return vo; + } +} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index a9643f9..8e3c54e 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -1,4 +1,6 @@ spring: + jackson: + default-property-inclusion: non_null datasource: url: jdbc:mysql://www.liuwanr.cn:3306/huoran?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai username: super @@ -15,6 +17,9 @@ mybatis-plus: global-config: db-config: id-type: auto + logic-delete-field: is_del + logic-delete-value: 0 + logic-not-delete-value: 1 server: port: 7000 diff --git a/src/main/resources/excel-template/实验报告导出.xlsx b/src/main/resources/excel-template/实验报告导出.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..d979a8c26fb8ab87a279613f536e0bb34a728317 GIT binary patch literal 10295 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/excel-template/实验报告导出模板.xlsx b/src/main/resources/excel-template/实验报告导出模板.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..03a2749edfaaab05b88f22783a4fd994bbe59580 GIT binary patch literal 10365 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

{H-h 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 JiTGLj{{X|);5+~T literal 0 HcmV?d00001 diff --git a/src/main/resources/mapper/tms/PersonalFileDao.xml b/src/main/resources/mapper/tms/PersonalFileDao.xml new file mode 100644 index 0000000..e465b7d --- /dev/null +++ b/src/main/resources/mapper/tms/PersonalFileDao.xml @@ -0,0 +1,32 @@ + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mapper/tms/ProjectDao.xml b/src/main/resources/mapper/tms/ProjectDao.xml index 07400aa..42b691a 100644 --- a/src/main/resources/mapper/tms/ProjectDao.xml +++ b/src/main/resources/mapper/tms/ProjectDao.xml @@ -15,8 +15,16 @@ - + + + + + \ No newline at end of file diff --git a/src/main/resources/mapper/tms/ProjectRecordDao.xml b/src/main/resources/mapper/tms/ProjectRecordDao.xml index e4c6ea0..280f230 100644 --- a/src/main/resources/mapper/tms/ProjectRecordDao.xml +++ b/src/main/resources/mapper/tms/ProjectRecordDao.xml @@ -1,10 +1,10 @@ - + - + @@ -12,9 +12,97 @@ - + + + + + + + + + + + update tms_project_record + set isdel = #{isdel} + ,recordstate = #{recordstate} + where recordId=#{recordid} + \ No newline at end of file diff --git a/src/main/resources/mapper/tms/UserDao.xml b/src/main/resources/mapper/tms/UserDao.xml new file mode 100644 index 0000000..d81c90e --- /dev/null +++ b/src/main/resources/mapper/tms/UserDao.xml @@ -0,0 +1,38 @@ + + + + + + + + + \ No newline at end of file