diff --git a/pom.xml b/pom.xml index 3ed6bfa..8c66414 100644 --- a/pom.xml +++ b/pom.xml @@ -82,6 +82,17 @@ org.springframework.boot spring-boot-starter-aop + + + io.springfox + springfox-swagger2 + 2.9.2 + + + io.springfox + springfox-swagger-ui + 2.10.5 + diff --git a/src/main/java/com/example/survey/SurveyApplication.java b/src/main/java/com/example/survey/SurveyApplication.java index ea7335d..1a828d5 100644 --- a/src/main/java/com/example/survey/SurveyApplication.java +++ b/src/main/java/com/example/survey/SurveyApplication.java @@ -3,6 +3,7 @@ package com.example.survey; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; + @SpringBootApplication public class SurveyApplication { diff --git a/src/main/java/com/example/survey/config/AuthFilterConfig.java b/src/main/java/com/example/survey/config/AuthFilterConfig.java index 40061de..ac0f942 100644 --- a/src/main/java/com/example/survey/config/AuthFilterConfig.java +++ b/src/main/java/com/example/survey/config/AuthFilterConfig.java @@ -8,7 +8,6 @@ import com.example.survey.util.TokenUtil; import com.example.survey.vo.ResultVO; import lombok.extern.log4j.Log4j2; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Configuration; import javax.servlet.*; import javax.servlet.http.HttpServletRequest; diff --git a/src/main/java/com/example/survey/config/LogConfig.java b/src/main/java/com/example/survey/config/LogConfig.java index f6bb335..fb06be3 100644 --- a/src/main/java/com/example/survey/config/LogConfig.java +++ b/src/main/java/com/example/survey/config/LogConfig.java @@ -4,14 +4,10 @@ import lombok.extern.log4j.Log4j2; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; -import org.aspectj.lang.annotation.Before; import org.aspectj.lang.annotation.Pointcut; -import org.springframework.aop.MethodBeforeAdvice; import org.springframework.context.annotation.Configuration; -import java.lang.reflect.Method; import java.util.Arrays; -import java.util.Objects; /** * @author Pope diff --git a/src/main/java/com/example/survey/config/SwaggerConfig.java b/src/main/java/com/example/survey/config/SwaggerConfig.java new file mode 100644 index 0000000..bbe81d2 --- /dev/null +++ b/src/main/java/com/example/survey/config/SwaggerConfig.java @@ -0,0 +1,25 @@ +package com.example.survey.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; +import springfox.documentation.swagger2.annotations.EnableSwagger2; + + +@Configuration +@EnableSwagger2 +public class SwaggerConfig { + + @Bean + public Docket api() { + return new Docket(DocumentationType.SWAGGER_2) + .select() + .apis(RequestHandlerSelectors.basePackage("com.progressivecoder.springbootmongodbsampleapp.controllers")) + .paths(PathSelectors.any()) + .build(); + } + +} \ No newline at end of file diff --git a/src/main/java/com/example/survey/controller/MetaDataController.java b/src/main/java/com/example/survey/controller/MetaDataController.java index 0bc752b..03ceb94 100644 --- a/src/main/java/com/example/survey/controller/MetaDataController.java +++ b/src/main/java/com/example/survey/controller/MetaDataController.java @@ -3,9 +3,12 @@ package com.example.survey.controller; import com.example.survey.dto.metaData.CreateMetaDataDTO; import com.example.survey.dto.metaData.DeleteMetaDataDTO; import com.example.survey.dto.metaData.ModifyMetaDataDTO; +import com.example.survey.enumeration.MetaDataTypeEnum; import com.example.survey.enumeration.ResultEnum; import com.example.survey.service.MetaDataService; import com.example.survey.vo.ResultVO; + +import org.apache.commons.lang3.EnumUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -30,14 +33,22 @@ public class MetaDataController { } @GetMapping("/nameList") - public ResultVO listMetaData(@RequestParam(value = "name",required = false) String name, + public ResultVO listMetaData( + @RequestParam(value = "type",required = false) String type, + @RequestParam(value = "name",required = false) String name, @RequestParam("currentPage")int currentPage, @RequestParam(value = "pageSize",defaultValue = "30")int pageSize){ + + if (! EnumUtils.isValidEnum(MetaDataTypeEnum.class, type)) { + ResultVO resultVO = new ResultVO(ResultEnum.NOT_EXIST_METADATA); + resultVO.setMsg("元数据类型不存在"); + return resultVO; + } Map resultMap = new HashMap<>(16,0.75F); resultMap.put("totalCount", metaDataService.countMetaData(name)); resultMap.put("currentPage", currentPage); resultMap.put("pageSize", pageSize); - resultMap.put("data", metaDataService.listMetaDataNameLimit(name,currentPage,pageSize)); + resultMap.put("data", metaDataService.listMetaDataNameLimit(name, EnumUtils.getEnum(MetaDataTypeEnum.class, type) ,currentPage,pageSize)); ResultVO resultVO = new ResultVO(ResultEnum.SUCCESS); resultVO.setData(resultMap); @@ -63,11 +74,4 @@ public class MetaDataController { return new ResultVO(ResultEnum.SUCCESS); } - @PostMapping("/wordTemplate") - public ResultVO bindWordTemplate(@RequestParam("template")MultipartFile template, - @RequestParam("name")String name){ - metaDataService.bindWordTemplate(template,name); - return new ResultVO(ResultEnum.SUCCESS); - } - } diff --git a/src/main/java/com/example/survey/controller/ProjectController.java b/src/main/java/com/example/survey/controller/ProjectController.java index f4fa843..d3567c1 100644 --- a/src/main/java/com/example/survey/controller/ProjectController.java +++ b/src/main/java/com/example/survey/controller/ProjectController.java @@ -1,18 +1,18 @@ package com.example.survey.controller; +import com.example.survey.dto.project.AddRecordDTO; import com.example.survey.dto.project.CreateProjectDTO; +import com.example.survey.dto.project.DeleteRecordDTO; import com.example.survey.dto.project.ModifyProjectDTO; -import com.example.survey.dto.project.ModifyStateDTO; + import com.example.survey.enumeration.RespondentStateEnum; import com.example.survey.enumeration.ResultEnum; import com.example.survey.service.ProjectService; -import com.example.survey.vo.ProjectVO; import com.example.survey.vo.ResultVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.HashMap; -import java.util.List; import java.util.Map; /** @@ -34,36 +34,20 @@ public class ProjectController { @GetMapping("/projectList") public ResultVO getProject(@RequestParam(value = "name",required = false) String name, - @RequestParam(value = "state", required = false)String state, + @RequestParam(value = "date_gt", required = false) long date_gt, + @RequestParam(value = "date_lt", required = false) long date_lt, @RequestParam(value = "currentPage") int currentPage, @RequestParam(value = "pageSize", defaultValue = "30") int pageSize) { Map resultMap = new HashMap<>(16,0.75F); - resultMap.put("totalCount", projectService.countProject(name,state)); + resultMap.put("totalCount", projectService.countProject(name, date_gt, date_lt)); resultMap.put("currentPage", currentPage); resultMap.put("pageSize", pageSize); - resultMap.put("data", projectService.listProjectLimit(name,state, currentPage, pageSize)); + resultMap.put("data", projectService.listProjectLimit(name, date_gt, date_lt, currentPage, pageSize)); ResultVO resultVO = new ResultVO(ResultEnum.SUCCESS); resultVO.setData(resultMap); return resultVO; } - @GetMapping("/respondentCount") - public ResultVO getRespondentCount(@RequestParam(value = "name") String name) { - - Map resultMap = new HashMap<>(16, 0.75F); - resultMap.put("respondentCount", projectService.countRespondent(name)); - resultMap.put("notInvestigatedRespondentCount", projectService.countRespondent(name, RespondentStateEnum.NOT_INVESTIGATED.getValue())); - - ResultVO resultVO = new ResultVO(ResultEnum.SUCCESS); - resultVO.setData(resultMap); - return resultVO; - } - - @PutMapping("/projectState") - public ResultVO modifyProjectState(@RequestBody ModifyStateDTO modifyStateDTO){ - projectService.modifyProjectState(modifyStateDTO); - return new ResultVO(ResultEnum.SUCCESS); - } @PutMapping("/project") public ResultVO modifyProject(@RequestBody ModifyProjectDTO modifyProjectDTO){ @@ -71,4 +55,16 @@ public class ProjectController { return new ResultVO(ResultEnum.SUCCESS); } + + @PutMapping("/record") + public ResultVO addRecord(@RequestBody AddRecordDTO addRecordDTO){ + projectService.addRecord(addRecordDTO); + return new ResultVO(ResultEnum.SUCCESS); + } + + @DeleteMapping("/record") + public ResultVO deleteRecord(@RequestBody DeleteRecordDTO deleteRecordDTO){ + projectService.deleteRecord(deleteRecordDTO); + return new ResultVO(ResultEnum.SUCCESS); + } } diff --git a/src/main/java/com/example/survey/controller/RecordController.java b/src/main/java/com/example/survey/controller/RecordController.java index 6c2a263..4953c01 100644 --- a/src/main/java/com/example/survey/controller/RecordController.java +++ b/src/main/java/com/example/survey/controller/RecordController.java @@ -26,19 +26,23 @@ public class RecordController { @GetMapping("/recordList") public ResultVO getRecord(@RequestParam(value = "idNumber", required = false) String idNumber, - @RequestParam(value = "userPhone", required = false) String userPhone, - @RequestParam(value = "projectName", required = false) String projectName, @RequestParam(value = "state", required = false) String state, - @RequestParam(value = "version", required = false) String version, - @RequestParam(value = "questionnaireNumber", required = false) String questionnaireNumber, - @RequestParam(value = "currentPage") Integer currentPage, + @RequestParam(value = "templateName", required = false) String templateName, + @RequestParam(value = "templateType", required = false) String templateType, + @RequestParam(value = "uuid", required = false) String uuid, + @RequestParam(value = "submitTimeGt", required = false) long submitTimeGt, + @RequestParam(value = "submitTimeLt", required = false) long submitTimeLt, + @RequestParam(value = "projectName", required = false) String projectName, + @RequestParam(value = "currentPage", defaultValue = "0") Integer currentPage, @RequestParam(value = "pageSize", defaultValue = "30") Integer pageSize ) { Map resultMap = new HashMap<>(16, 0.75F); - resultMap.put("totalCount", recordService.countRecord(idNumber, userPhone, projectName, state, version, questionnaireNumber)); + resultMap.put("totalCount", recordService.countRecord(idNumber, state, uuid, templateName, templateType, + submitTimeGt, submitTimeLt, projectName)); resultMap.put("currentPage", currentPage); resultMap.put("pageSize", pageSize); - resultMap.put("data", recordService.listRecordLimit(idNumber, userPhone, projectName, state, version, questionnaireNumber, currentPage, pageSize)); + resultMap.put("data", recordService.listRecordLimit(idNumber, state, uuid, templateName, templateType, + submitTimeGt, submitTimeLt, projectName, currentPage, pageSize)); ResultVO resultVo = new ResultVO(ResultEnum.SUCCESS); resultVo.setData(resultMap); @@ -46,23 +50,14 @@ public class RecordController { } @GetMapping("/recordValues") - public ResultVO getRecordValue(@RequestParam("projectName") String projectName, - @RequestParam("idNumber") String idNumber, - @RequestParam(value = "version", required = false) String version) { + public ResultVO getRecordValue(@RequestParam("uuid") String uuid + ) { ResultVO resultVO = new ResultVO(ResultEnum.SUCCESS); - resultVO.setData(recordService.getRecordValues(projectName, idNumber, version)); + resultVO.setData(recordService.getRecordValues(uuid)); return resultVO; } - @GetMapping("/underReviewRecordCount") - public ResultVO countUnderReviewRecord(@RequestParam(value = "userPhone") String userPhone, - @RequestParam(value = "projectName") String projectName) { - ResultVO resultVo = new ResultVO(ResultEnum.SUCCESS); - resultVo.setData(recordService.countRecord(userPhone, projectName)); - return resultVo; - } - - @PutMapping("/underReviewRecord") + @PutMapping("/review") public ResultVO reviewRecord(@RequestBody ReviewRecordDTO reviewRecordDTO) { recordService.reviewRecord(reviewRecordDTO); return new ResultVO(ResultEnum.SUCCESS); @@ -95,17 +90,11 @@ public class RecordController { } @GetMapping("/record2word") - public void record2word(@RequestParam("idNumber")String idNumber, - @RequestParam("projectName")String projectName, + public void record2word(@RequestParam("uuid")String uuid, HttpServletResponse response){ - recordService.record2word(idNumber,projectName,response); + recordService.record2word(uuid,response); } - @PutMapping("/project") - public ResultVO modifyProject(@RequestBody ModifyProjectDTO modifyProjectDTO){ - recordService.modifyProject(modifyProjectDTO); - return new ResultVO(ResultEnum.SUCCESS); - } @PutMapping("/metaData") public ResultVO modifyMetaData(@RequestBody ModifyMetaDataDTO modifyMetaDataDTO){ diff --git a/src/main/java/com/example/survey/controller/RespondentController.java b/src/main/java/com/example/survey/controller/RespondentController.java deleted file mode 100644 index 1e71621..0000000 --- a/src/main/java/com/example/survey/controller/RespondentController.java +++ /dev/null @@ -1,72 +0,0 @@ -package com.example.survey.controller; - -import com.example.survey.dto.respondent.*; -import com.example.survey.enumeration.ResultEnum; -import com.example.survey.service.RespondentService; -import com.example.survey.vo.ResultVO; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -import java.util.HashMap; -import java.util.Map; - -/** - * @author Pope - */ -@RestController -@RequestMapping("/respondent") -public class RespondentController { - - @Autowired - private RespondentService respondentService; - - @PostMapping("/respondent") - public ResultVO addRespondent(@RequestBody CreateRespondentDTO createRespondentDTO) { - respondentService.createRespondent(createRespondentDTO); - return new ResultVO(ResultEnum.SUCCESS); - } - - @GetMapping("/respondentList") - public ResultVO listRespondent(@RequestParam(value = "userPhone", required = false) String userPhone, - @RequestParam(value = "projectName", required = false) String projectName, - @RequestParam(value = "state", required = false) String state, - @RequestParam(value = "idNumber", required = false) String idNumber, - @RequestParam(value = "name", required = false) String name, - @RequestParam(value = "phone", required = false) String phone, - @RequestParam(value = "province", required = false) String province, - @RequestParam(value = "city", required = false) String city, - @RequestParam(value = "county", required = false) String county, - @RequestParam(value = "currentPage") int currentPage, - @RequestParam(value = "pageSize", defaultValue = "30") int pageSize - ) { - Map resultMap = new HashMap<>(16, 0.75F); - resultMap.put("totalCount", respondentService.countRespondent(userPhone, state, idNumber, name, phone, province, city, county, projectName)); - resultMap.put("currentPage", currentPage); - resultMap.put("pageSize", pageSize); - resultMap.put("data", respondentService.listRespondentLimit(userPhone, state, idNumber, name, phone, province, city, county, projectName, currentPage, pageSize)); - - ResultVO resultVo = new ResultVO(ResultEnum.SUCCESS); - resultVo.setData(resultMap); - - return resultVo; - } - - @PutMapping("/respondent") - public ResultVO modifyRespondent(@RequestBody ModifyRespondentDTO modifyRespondentDTO) { - respondentService.modifyRespondent(modifyRespondentDTO); - return new ResultVO(ResultEnum.SUCCESS); - } - - @DeleteMapping("/respondent") - public ResultVO deleteRespondent(@RequestBody DeleteRespondentDTO deleteRespondentDTO) { - respondentService.deleteRespondent(deleteRespondentDTO); - return new ResultVO(ResultEnum.SUCCESS); - } - - @PutMapping("/user") - public ResultVO modifyUser(@RequestBody ModifyRespondentUserDTO modifyRespondentUserDTO) { - respondentService.modifyUser(modifyRespondentUserDTO); - return new ResultVO(ResultEnum.SUCCESS); - } - -} diff --git a/src/main/java/com/example/survey/dao/AuditDao.java b/src/main/java/com/example/survey/dao/AuditDao.java index 463559f..65fe76c 100644 --- a/src/main/java/com/example/survey/dao/AuditDao.java +++ b/src/main/java/com/example/survey/dao/AuditDao.java @@ -1,7 +1,6 @@ package com.example.survey.dao; import com.example.survey.entity.Audit; -import com.example.survey.vo.AuditVO; import java.util.Date; import java.util.List; diff --git a/src/main/java/com/example/survey/dao/MetaDataDao.java b/src/main/java/com/example/survey/dao/MetaDataDao.java index 7944c9d..8293dea 100644 --- a/src/main/java/com/example/survey/dao/MetaDataDao.java +++ b/src/main/java/com/example/survey/dao/MetaDataDao.java @@ -1,8 +1,7 @@ package com.example.survey.dao; import com.example.survey.entity.MetaData; -import com.example.survey.vo.MetaDataVO; -import org.springframework.data.mongodb.core.query.Meta; +import com.example.survey.enumeration.MetaDataTypeEnum; import java.util.List; @@ -42,7 +41,7 @@ public interface MetaDataDao { * @param pageSize 页大小 * @return 元数据 */ - List listMetaDataLimit(String name, int offset, int pageSize); + List listMetaDataLimit(String name, MetaDataTypeEnum type, int offset, int pageSize); /** * 根据元数据名查询数量 diff --git a/src/main/java/com/example/survey/dao/ProjectDao.java b/src/main/java/com/example/survey/dao/ProjectDao.java index 6665299..bb75278 100644 --- a/src/main/java/com/example/survey/dao/ProjectDao.java +++ b/src/main/java/com/example/survey/dao/ProjectDao.java @@ -1,6 +1,7 @@ package com.example.survey.dao; import com.example.survey.entity.Project; +import com.example.survey.entity.Record; import java.util.List; @@ -42,7 +43,7 @@ public interface ProjectDao { * @param pageSize 页大小 * @return 项目列表 */ - List listProjectLimit(String name,String state, int offset, int pageSize); + List listProjectLimit(String name, long date_gt, long date_lt, int offset, int pageSize); /** * 根据项目名查询数量 @@ -51,5 +52,7 @@ public interface ProjectDao { * @param state 状态 * @return 数量 */ - long countProject(String name,String state); + long countProject(String name, long date_gt, long date_lt); + + } diff --git a/src/main/java/com/example/survey/dao/RecordDao.java b/src/main/java/com/example/survey/dao/RecordDao.java index cf67bba..716c8bd 100644 --- a/src/main/java/com/example/survey/dao/RecordDao.java +++ b/src/main/java/com/example/survey/dao/RecordDao.java @@ -1,9 +1,10 @@ package com.example.survey.dao; -import com.example.survey.entity.Project; import com.example.survey.entity.Record; import com.example.survey.entity.Respondent; import com.example.survey.entity.User; +import com.example.survey.enumeration.MetaDataTypeEnum; +import com.example.survey.enumeration.RecordStateEnum; import java.util.List; @@ -19,7 +20,7 @@ public interface RecordDao { * @param state 流调记录状态 * @return 是否存在符合条件的流调记录 */ - boolean existRecord(Respondent respondent, Project project, String state); + boolean existRecord(String uuid); /** * 根据调查对象身份证号与流调记录状态查询流调记录 @@ -29,7 +30,7 @@ public interface RecordDao { * @param state 流调记录状态 * @return 流调记录 */ - Record getRecord(Respondent respondent,Project project, String state); + Record getRecord(String uuid); /** * 保存流调记录,若已有相同id的则更新 @@ -43,20 +44,20 @@ public interface RecordDao { * * @param respondent 调查对象 * @param user 分配的人员 - * @param project 项目 * @param state 流调记录状态 * @param version 流调记录版本 * @param questionnaireNumber 问卷编号 * @return 数量 */ - long countRecord(Respondent respondent, User user, Project project, String state, String version, String questionnaireNumber); + long countRecord(String idNumber, String state, String uuid, + String templateName, String templateType, + long submitTimeGt, long submitTimeLt, String projectName); /** * 根据筛选条件分页查询流调记录 * * @param respondent 调查对象 * @param user 分配的人员 - * @param project 项目 * @param state 流调记录状态 * @param version 流调记录版本 * @param questionnaireNumber 问卷编号 @@ -64,34 +65,9 @@ public interface RecordDao { * @param pageSize 页大小 * @return 流调记录 */ - List listRecordLimit(Respondent respondent, User user, Project project, String state, String version, String questionnaireNumber, int offset, int pageSize); + List listRecordLimit(String idNumber, String state, String uuid, + String templateName, String templateType, + long submitTimeGt, long submitTimeLt, String projectName, int offset, int pageSize); - /** - * 根据筛选条件查询流调记录 - * - * @param respondent 调查对象 - * @param project 项目 - * @param version 版本号 - * @return 流调记录 - */ - Record selectRecord(Respondent respondent, Project project, String version); - - /** - * 根据筛选条件查询流调记录 - * - * @param respondent 调查对象 - * @param project 项目 - * @param states 记录状态 - * @return 流调记录 - */ - Record selectRecord(Respondent respondent, Project project, List states); - - /** - * 查询流调记录列表 - * - * @param project 项目 - * @param respondent 调查对象 - * @return 流调记录列表 - */ - List listRecord(Project project, Respondent respondent); + } diff --git a/src/main/java/com/example/survey/dao/RespondentDao.java b/src/main/java/com/example/survey/dao/RespondentDao.java deleted file mode 100644 index 4700861..0000000 --- a/src/main/java/com/example/survey/dao/RespondentDao.java +++ /dev/null @@ -1,101 +0,0 @@ -package com.example.survey.dao; - -import com.example.survey.entity.Project; -import com.example.survey.entity.Respondent; -import com.example.survey.entity.User; - -import java.util.List; - -/** - * @author Pope - */ -public interface RespondentDao { - /** - * 插入待调查对象 - * - * @param respondent 待调查对象 - */ - void saveRespondent(Respondent respondent); - - /** - * 根据流调人员电话号码分页查询待调查对象列表 - * - * @param user 分配的人员 - * @param state 状态 - * @param idNumber 身份证号 - * @param name 调查对象姓名 - * @param phone 调查对象电话 - * @param province 省份 - * @param city 城市 - * @param county 区县 - * @param project 项目 - * @param offset 偏移量 - * @param pageSize 大小 - * @return 待调查对象列表 - */ - List listRespondentLimit(User user, String state, String idNumber, String name, String phone, String province, String city, String county, Project project, int offset, int pageSize); - - /** - * 判断是否存在对应id的调查对象 - * - * @param idNumber 身份证号 - * @param project 项目 - * @return 是否存在该调查对象 - */ - boolean existRespondent(String idNumber, Project project); - - /** - * 判断是否存在符合条件的调查对象 - * - * @param idNumber 身份证号 - * @param project 项目 - * @param state 调查对象状态 - * @return 是否存在该调查对象 - */ - boolean existRespondent(String idNumber, Project project, String state); - - /** - * 根绝筛选条件获取调查对象数量 - * - * @param user 分配的人员 - * @param state 状态 - * @param idNumber 身份证号 - * @param name 调查对象姓名 - * @param phone 调查对象电话 - * @param province 省份 - * @param city 城市 - * @param county 区县 - * @param project 项目 - * @return 数量 - */ - long countRespondent(User user, String state, String idNumber, String name, String phone, String province, String city, String county, Project project); - - - /** - * 根据身份证号查询调查对象 - * - * @param idNumber 身份证号 - * @param project 项目 - * @return 调查对象 - */ - Respondent selectRespondent(String idNumber, Project project); - - /** - * 删除调查对象 - * - * @param idNumber 身份证号 - */ - void deleteRespondent(String idNumber); - - - /** - * 根据项目与调查对象状态查询调查对象数量 - * - * @param project 项目 - * @param state 调查对象状态 - * @return 调查对象数量 - */ - long countRespondent(Project project, String state); - - -} diff --git a/src/main/java/com/example/survey/dao/RoleDao.java b/src/main/java/com/example/survey/dao/RoleDao.java index 382b3c6..697c1fb 100644 --- a/src/main/java/com/example/survey/dao/RoleDao.java +++ b/src/main/java/com/example/survey/dao/RoleDao.java @@ -1,10 +1,8 @@ package com.example.survey.dao; import com.example.survey.entity.Role; -import com.example.survey.enumeration.AuthEnum; import java.util.List; -import java.util.Set; /** * @author Pope diff --git a/src/main/java/com/example/survey/dao/impl/DepartmentDaoImpl.java b/src/main/java/com/example/survey/dao/impl/DepartmentDaoImpl.java index fe9c9a3..15804c1 100644 --- a/src/main/java/com/example/survey/dao/impl/DepartmentDaoImpl.java +++ b/src/main/java/com/example/survey/dao/impl/DepartmentDaoImpl.java @@ -8,8 +8,6 @@ import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.stereotype.Repository; -import org.springframework.stereotype.Service; - /** * @author Pope */ diff --git a/src/main/java/com/example/survey/dao/impl/MetaDataDaoImpl.java b/src/main/java/com/example/survey/dao/impl/MetaDataDaoImpl.java index e8afce6..aeb4038 100644 --- a/src/main/java/com/example/survey/dao/impl/MetaDataDaoImpl.java +++ b/src/main/java/com/example/survey/dao/impl/MetaDataDaoImpl.java @@ -2,6 +2,7 @@ package com.example.survey.dao.impl; import com.example.survey.dao.MetaDataDao; import com.example.survey.entity.MetaData; +import com.example.survey.enumeration.MetaDataTypeEnum; import com.example.survey.enumeration.ResultEnum; import com.example.survey.exception.MetaDataException; import org.springframework.beans.factory.annotation.Autowired; @@ -44,11 +45,14 @@ public class MetaDataDaoImpl implements MetaDataDao { } @Override - public List listMetaDataLimit(String name, int offset, int pageSize) { + public List listMetaDataLimit(String name, MetaDataTypeEnum type, int offset, int pageSize) { Criteria criteria = new Criteria(); if (name != null) { criteria.and("name").regex(name); } + if (type != null) { + criteria.and("type").is(type); + } Query query = new Query(criteria).skip(offset).limit(pageSize); return mongoTemplate.find(query, MetaData.class); diff --git a/src/main/java/com/example/survey/dao/impl/ProjectDaoImpl.java b/src/main/java/com/example/survey/dao/impl/ProjectDaoImpl.java index 340b103..f56d48a 100644 --- a/src/main/java/com/example/survey/dao/impl/ProjectDaoImpl.java +++ b/src/main/java/com/example/survey/dao/impl/ProjectDaoImpl.java @@ -2,6 +2,7 @@ package com.example.survey.dao.impl; import com.example.survey.dao.ProjectDao; import com.example.survey.entity.Project; +import com.example.survey.entity.Record; import com.example.survey.enumeration.ResultEnum; import com.example.survey.exception.ProjectException; import org.springframework.beans.factory.annotation.Autowired; @@ -10,7 +11,9 @@ import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.stereotype.Repository; +import java.util.ArrayList; import java.util.List; +import java.util.Set; /** @@ -45,13 +48,16 @@ public class ProjectDaoImpl implements ProjectDao { } @Override - public List listProjectLimit(String name,String state, int offset, int pageSize) { + public List listProjectLimit(String name, long date_gt, long date_lt, int offset, int pageSize) { Criteria criteria = new Criteria(); if (name != null) { criteria.and("name").regex(name); } - if(state!=null){ - criteria.and("state").is(state); + if (date_gt != 0) { + criteria.and("date").gt(date_gt); + } + if(date_lt != 0) { + criteria.and("date").lt(date_lt); } Query query = new Query(criteria).skip(offset).limit(pageSize); return mongoTemplate.find(query, Project.class); @@ -59,15 +65,19 @@ public class ProjectDaoImpl implements ProjectDao { @Override - public long countProject(String name,String state) { + public long countProject(String name, long date_gt, long date_lt) { Criteria criteria = new Criteria(); if (name != null) { criteria.and("name").regex(name); } - if(state!=null){ - criteria.and("state").is(state); + if (date_gt != 0) { + criteria.and("date").gt(date_gt); + } + if(date_lt != 0) { + criteria.and("date").lt(date_lt); } Query query = new Query(criteria); return mongoTemplate.count(query, Project.class); } + } diff --git a/src/main/java/com/example/survey/dao/impl/RecordDaoImpl.java b/src/main/java/com/example/survey/dao/impl/RecordDaoImpl.java index 9e7f703..ca4ee8b 100644 --- a/src/main/java/com/example/survey/dao/impl/RecordDaoImpl.java +++ b/src/main/java/com/example/survey/dao/impl/RecordDaoImpl.java @@ -1,7 +1,8 @@ package com.example.survey.dao.impl; +import com.example.survey.dao.MetaDataDao; import com.example.survey.dao.RecordDao; -import com.example.survey.entity.Project; +import com.example.survey.entity.MetaData; import com.example.survey.entity.Record; import com.example.survey.entity.Respondent; import com.example.survey.entity.User; @@ -13,6 +14,7 @@ import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.stereotype.Repository; +import java.util.ArrayList; import java.util.List; /** @@ -25,23 +27,22 @@ public class RecordDaoImpl implements RecordDao { @Autowired MongoTemplate mongoTemplate; + @Autowired + MetaDataDao metaDataDao; + @Override - public boolean existRecord(Respondent respondent, Project project, String state) { + public boolean existRecord(String uuid) { Criteria criteria = new Criteria() - .and("respondent.$id").is(respondent.getId()) - .and("project.$id").is(project.getId()) - .and("state").is(state); + .and("uuid").is(uuid); Query query = new Query(criteria); return mongoTemplate.exists(query, Record.class); } @Override - public Record getRecord(Respondent respondent, Project project, String state) { + public Record getRecord(String uuid) { Criteria criteria = new Criteria() - .and("respondent.$id").is(respondent.getId()) - .and("project.$id").is(project.getId()) - .and("state").is(state); + .and("uuid").is(uuid); Query query = new Query(criteria); return mongoTemplate.findOne(query, Record.class); @@ -53,90 +54,95 @@ public class RecordDaoImpl implements RecordDao { } @Override - public long countRecord(Respondent respondent, User user, Project project, String state, String version, String questionnaireNumber) { + public long countRecord(String idNumber, String state, String uuid, + String templateName, String templateType, + long submitTimeGt, long submitTimeLt, String projectName) { Criteria criteria = new Criteria(); - if (respondent != null) { - criteria.and("respondent.$id").is(respondent.getId()); + if (idNumber != null) { + criteria.and("idNumber").is(idNumber); } - if (user != null) { - criteria.and("user.$id").is(user.getId()); - } - if (project != null) { - criteria.and("project.$id").is(project.getId()); - } - + if (state != null) { criteria.and("state").is(state); - } else { - criteria.and("state").in(RecordStateEnum.REVIEWED.getValue(), RecordStateEnum.UNDER_REVIEW.getValue()); + } + if (uuid != null) { + criteria.and("uuid").is(uuid); + } + if (templateName != null) { + MetaData metaData = metaDataDao.selectMetaData(templateName); + if (metaData != null) { + criteria.and("metaData.$id").is(metaData.getId()); + } + else{ + return 0; + } } - if (version != null) { - criteria.and("version").is(version); + if (templateType != null) { + criteria.and("metaDataType").is(templateType); } - if (questionnaireNumber != null) { - criteria.and("value.questionnaireNumber").is(questionnaireNumber); + + if (submitTimeGt != 0) { + criteria.and("submitTime").gt(submitTimeGt); } + + if (submitTimeLt != 0) { + criteria.and("submitTime").lt(submitTimeLt); + } + + + if (projectName != null) { + criteria.and("projectList").elemMatch(new Criteria().in(projectName)); + } + Query query = new Query(criteria); return mongoTemplate.count(query, Record.class); } @Override - public List listRecordLimit(Respondent respondent, User user, Project project, String state, String version, String questionnaireNumber, int offset, int pageSize) { + public List listRecordLimit(String idNumber, String state, String uuid, + String templateName, String templateType, + long submitTimeGt, long submitTimeLt, String projectName, + int offset, int pageSize) { Criteria criteria = new Criteria(); - if (respondent != null) { - criteria.and("respondent.$id").is(respondent.getId()); + if (idNumber != null) { + criteria.and("idNumber").is(idNumber); } - if (user != null) { - criteria.and("user.$id").is(user.getId()); - } - if (project != null) { - criteria.and("project.$id").is(project.getId()); - } - + if (state != null) { criteria.and("state").is(state); - } else { - criteria.and("state").in(RecordStateEnum.REVIEWED.getValue(), RecordStateEnum.UNDER_REVIEW.getValue()); + } + if (uuid != null) { + criteria.and("uuid").is(uuid); + } + if (templateName != null) { + MetaData metaData = metaDataDao.selectMetaData(templateName); + if (metaData != null) { + criteria.and("metaData.$id").is(metaData.getId()); + } + else{ + return new ArrayList(); + } } - if (version != null) { - criteria.and("version").is(version); + if (templateType != null) { + criteria.and("metaDataType").is(templateType); } - if (questionnaireNumber != null) { - criteria.and("value.questionnaireNumber").is(questionnaireNumber); + + if (submitTimeGt != 0) { + criteria.and("submitTime").gt(submitTimeGt); } + + if (submitTimeLt != 0) { + criteria.and("submitTime").lt(submitTimeLt); + } + + + if (projectName != null) { + criteria.and("projectList").elemMatch(new Criteria().in(projectName)); + } + Query query = new Query(criteria).skip(offset).limit(pageSize); return mongoTemplate.find(query, Record.class); } - - @Override - public Record selectRecord(Respondent respondent, Project project, String version) { - Criteria criteria = Criteria - .where("respondent.$id").is(respondent.getId()) - .and("project.$id").is(project.getId()); - if (version != null) { - criteria.and("version").is(version); - } - Query query = new Query(criteria); - return mongoTemplate.findOne(query, Record.class); - } - - @Override - public Record selectRecord(Respondent respondent, Project project, List states) { - Criteria criteria = new Criteria() - .and("respondent.$id").is(respondent.getId()) - .and("project.$id").is(project.getId()) - .and("state").in(states); - Query query = new Query(criteria); - return mongoTemplate.findOne(query, Record.class); - } - - @Override - public List listRecord(Project project, Respondent respondent) { - - Query query = new Query(Criteria.where("project.$id").is(project.getId()) - .and("respondent.$id").is(respondent.getId())); - return mongoTemplate.find(query,Record.class); - } } diff --git a/src/main/java/com/example/survey/dao/impl/RespondentDaoImpl.java b/src/main/java/com/example/survey/dao/impl/RespondentDaoImpl.java deleted file mode 100644 index ac31b68..0000000 --- a/src/main/java/com/example/survey/dao/impl/RespondentDaoImpl.java +++ /dev/null @@ -1,152 +0,0 @@ -package com.example.survey.dao.impl; - -import com.example.survey.dao.RespondentDao; -import com.example.survey.entity.Project; -import com.example.survey.entity.Respondent; -import com.example.survey.entity.User; -import com.example.survey.enumeration.ResultEnum; -import com.example.survey.exception.RespondentException; -import lombok.extern.log4j.Log4j2; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.mongodb.core.MongoTemplate; -import org.springframework.data.mongodb.core.query.Criteria; -import org.springframework.data.mongodb.core.query.Query; -import org.springframework.stereotype.Repository; - -import java.util.List; - -/** - * @author Pope - */ -@Log4j2 -@Repository -public class RespondentDaoImpl implements RespondentDao { - - @Autowired - private MongoTemplate mongoTemplate; - - @Override - public void saveRespondent(Respondent respondent) { - try { - mongoTemplate.save(respondent); - } catch (Exception e) { - throw new RespondentException(ResultEnum.ALREADY_EXIST_RESPONDENT); - } - } - - @Override - public List listRespondentLimit(User user, String state, String idNumber, String name, String phone, String province, String city, String county, Project project, int offset, int pageSize) { - Criteria criteria = new Criteria(); - - if (idNumber != null) { - criteria.and("idNumber").is(idNumber); - } - if (name != null) { - criteria.and("name").regex(name); - } - if (phone != null) { - criteria.and("phone").is(phone); - } - - if (province != null) { - criteria.and("administrativeArea.province").is(province); - } - if (city != null) { - criteria.and("administrativeArea.city").is(city); - } - if (county != null) { - criteria.and("administrativeArea.county").is(county); - } - if (project != null) { - criteria.and("project.$id").is(project.getId()); - } - if (user != null) { - criteria.and("user.$id").is(user.getId()); - } - if (state != null) { - criteria.and("state").is(state); - } - - Query query = new Query(criteria).skip(offset).limit(pageSize); - return mongoTemplate.find(query, Respondent.class); - } - - @Override - public long countRespondent(User user, String state, String idNumber, String name, String phone, String province, String city, String county, Project project) { - Criteria criteria = new Criteria(); - - if (idNumber != null) { - criteria.and("idNumber").is(idNumber); - } - if (name != null) { - criteria.and("name").regex(name); - } - if (phone != null) { - criteria.and("phone").is(phone); - } - - if (province != null) { - criteria.and("administrativeArea.province").is(province); - } - if (city != null) { - criteria.and("administrativeArea.city").is(city); - } - if (county != null) { - criteria.and("administrativeArea.county").is(county); - } - if (project != null) { - criteria.and("project.$id").is(project.getId()); - } - if (user != null) { - criteria.and("user.$id").is(user.getId()); - } - if (state != null) { - criteria.and("state").is(state); - } - - Query query = new Query(criteria); - return mongoTemplate.count(query, Respondent.class); - } - - @Override - public boolean existRespondent(String idNumber, Project project) { - Criteria criteria = Criteria.where("idNumber").is(idNumber); - if (project != null) { - criteria.and("project.$id").is(project.getId()); - } - Query query = new Query(criteria); - - return mongoTemplate.exists(query, Respondent.class); - } - - @Override - public boolean existRespondent(String idNumber, Project project, String state) { - Query query = new Query( - Criteria.where("idNumber").is(idNumber) - .and("project.$id").is(project.getId()) - .and("state").is(state)); - return mongoTemplate.exists(query, Respondent.class); - } - - - @Override - public Respondent selectRespondent(String idNumber, Project project) { - Query query = new Query(Criteria.where("idNumber").is(idNumber).and("project.$id").is(project.getId())); - return mongoTemplate.findOne(query, Respondent.class); - } - - @Override - public void deleteRespondent(String idNumber) { - Query query = new Query(Criteria.where("idNumber").is(idNumber)); - mongoTemplate.remove(query, Respondent.class); - } - - @Override - public long countRespondent(Project project, String state) { - Criteria criteria = Criteria.where("project.$id").is(project.getId()).and("state").is(state); - Query query = new Query(criteria); - return mongoTemplate.count(query, Respondent.class); - } - - -} diff --git a/src/main/java/com/example/survey/dao/impl/RoleDaoImpl.java b/src/main/java/com/example/survey/dao/impl/RoleDaoImpl.java index 9ddfeda..54a3e0f 100644 --- a/src/main/java/com/example/survey/dao/impl/RoleDaoImpl.java +++ b/src/main/java/com/example/survey/dao/impl/RoleDaoImpl.java @@ -2,7 +2,6 @@ package com.example.survey.dao.impl; import com.example.survey.dao.RoleDao; import com.example.survey.entity.Role; -import com.example.survey.enumeration.AuthEnum; import com.example.survey.enumeration.ResultEnum; import com.example.survey.exception.RoleException; import lombok.extern.log4j.Log4j2; @@ -13,7 +12,6 @@ import org.springframework.data.mongodb.core.query.Query; import org.springframework.stereotype.Repository; import java.util.List; -import java.util.Set; /** * @author Pope diff --git a/src/main/java/com/example/survey/dto/metaData/CreateMetaDataDTO.java b/src/main/java/com/example/survey/dto/metaData/CreateMetaDataDTO.java index 1109702..80901d0 100644 --- a/src/main/java/com/example/survey/dto/metaData/CreateMetaDataDTO.java +++ b/src/main/java/com/example/survey/dto/metaData/CreateMetaDataDTO.java @@ -1,6 +1,8 @@ package com.example.survey.dto.metaData; import com.example.survey.entity.inner.FieldToName; +import com.example.survey.enumeration.MetaDataTypeEnum; + import lombok.Data; import java.util.List; @@ -13,7 +15,5 @@ import java.util.Map; public class CreateMetaDataDTO { private String name; private Map form; - private List fieldToNameList; - private Map config; - private String wordTemplate; + private MetaDataTypeEnum type; } diff --git a/src/main/java/com/example/survey/dto/metaData/ModifyMetaDataDTO.java b/src/main/java/com/example/survey/dto/metaData/ModifyMetaDataDTO.java index 63b5a25..9153926 100644 --- a/src/main/java/com/example/survey/dto/metaData/ModifyMetaDataDTO.java +++ b/src/main/java/com/example/survey/dto/metaData/ModifyMetaDataDTO.java @@ -1,6 +1,8 @@ package com.example.survey.dto.metaData; import com.example.survey.entity.inner.FieldToName; +import com.example.survey.enumeration.MetaDataTypeEnum; + import lombok.Data; import java.util.List; @@ -13,6 +15,5 @@ import java.util.Map; public class ModifyMetaDataDTO { private String name; private Map form; - private List fieldToNameList; - private Map config; + private MetaDataTypeEnum type; } diff --git a/src/main/java/com/example/survey/dto/project/ModifyStateDTO.java b/src/main/java/com/example/survey/dto/project/AddRecordDTO.java similarity index 61% rename from src/main/java/com/example/survey/dto/project/ModifyStateDTO.java rename to src/main/java/com/example/survey/dto/project/AddRecordDTO.java index 089cd33..0d3c329 100644 --- a/src/main/java/com/example/survey/dto/project/ModifyStateDTO.java +++ b/src/main/java/com/example/survey/dto/project/AddRecordDTO.java @@ -1,12 +1,13 @@ package com.example.survey.dto.project; - import lombok.Data; +import java.util.Date; + /** * @author Pope */ @Data -public class ModifyStateDTO { +public class AddRecordDTO { private String name; - private String state; + private String uuid; } diff --git a/src/main/java/com/example/survey/dto/project/CreateProjectDTO.java b/src/main/java/com/example/survey/dto/project/CreateProjectDTO.java index daa0859..1de42aa 100644 --- a/src/main/java/com/example/survey/dto/project/CreateProjectDTO.java +++ b/src/main/java/com/example/survey/dto/project/CreateProjectDTO.java @@ -16,31 +16,9 @@ public class CreateProjectDTO { */ private String name; - /** - * 描述信息 - */ - private String detail; - - /** - * 元数据名字 - */ - private String metaDataName; - - /** - * 开始时间 - */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date startTime; - - /** - * 结束时间 - */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date endTime; - /** * 负责人电话号码 */ - private String userPhone; + private long date; } diff --git a/src/main/java/com/example/survey/dto/project/DeleteRecordDTO.java b/src/main/java/com/example/survey/dto/project/DeleteRecordDTO.java new file mode 100644 index 0000000..380998e --- /dev/null +++ b/src/main/java/com/example/survey/dto/project/DeleteRecordDTO.java @@ -0,0 +1,13 @@ +package com.example.survey.dto.project; +import lombok.Data; + +import java.util.Date; + +/** + * @author Pope + */ +@Data +public class DeleteRecordDTO { + private String name; + private String uuid; +} diff --git a/src/main/java/com/example/survey/dto/project/ModifyProjectDTO.java b/src/main/java/com/example/survey/dto/project/ModifyProjectDTO.java index 70086be..88fa60d 100644 --- a/src/main/java/com/example/survey/dto/project/ModifyProjectDTO.java +++ b/src/main/java/com/example/survey/dto/project/ModifyProjectDTO.java @@ -11,10 +11,5 @@ import java.util.Date; @Data public class ModifyProjectDTO { private String name; - private String detail; - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date startTime; - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date endTime; - private String userPhone; + private long date; } diff --git a/src/main/java/com/example/survey/dto/record/DeleteRecordDTO.java b/src/main/java/com/example/survey/dto/record/DeleteRecordDTO.java index b637f5b..c001de8 100644 --- a/src/main/java/com/example/survey/dto/record/DeleteRecordDTO.java +++ b/src/main/java/com/example/survey/dto/record/DeleteRecordDTO.java @@ -7,11 +7,7 @@ import lombok.Data; */ @Data public class DeleteRecordDTO { - private String idNumber; - - private String userPhone; - + private String uuid; + private String phone; private String msg; - - private String projectName; } diff --git a/src/main/java/com/example/survey/dto/record/ModifyMetaDataDTO.java b/src/main/java/com/example/survey/dto/record/ModifyMetaDataDTO.java index 9fafa4a..d534d4a 100644 --- a/src/main/java/com/example/survey/dto/record/ModifyMetaDataDTO.java +++ b/src/main/java/com/example/survey/dto/record/ModifyMetaDataDTO.java @@ -1,6 +1,5 @@ package com.example.survey.dto.record; -import com.example.survey.entity.inner.AdministrativeArea; import lombok.Data; /** @@ -8,9 +7,6 @@ import lombok.Data; */ @Data public class ModifyMetaDataDTO { - private String idNumber; - - private String projectName; - + private String uuid; private String metaDataName; } diff --git a/src/main/java/com/example/survey/dto/record/ModifyProjectDTO.java b/src/main/java/com/example/survey/dto/record/ModifyProjectDTO.java index fe309ee..db43933 100644 --- a/src/main/java/com/example/survey/dto/record/ModifyProjectDTO.java +++ b/src/main/java/com/example/survey/dto/record/ModifyProjectDTO.java @@ -8,12 +8,6 @@ import lombok.Data; */ @Data public class ModifyProjectDTO { - private String idNumber; - private String phone; - private String name; - private String msg; - private String gender; - private AdministrativeArea administrativeArea; - private String projectName; - private String newProjectName; + private String uuid; + private String project; } diff --git a/src/main/java/com/example/survey/dto/record/ModifyRecordDTO.java b/src/main/java/com/example/survey/dto/record/ModifyRecordDTO.java index 18470c2..45f1fb1 100644 --- a/src/main/java/com/example/survey/dto/record/ModifyRecordDTO.java +++ b/src/main/java/com/example/survey/dto/record/ModifyRecordDTO.java @@ -3,16 +3,14 @@ package com.example.survey.dto.record; import lombok.*; import java.util.Map; -import java.util.Set; /** * @author Pope */ @Data public class ModifyRecordDTO { - private String idNumber; + private String uuid; private Map values; private String userPhone; private String msg; - private String projectName; } diff --git a/src/main/java/com/example/survey/dto/record/ReviewRecordDTO.java b/src/main/java/com/example/survey/dto/record/ReviewRecordDTO.java index 7be8215..623236e 100644 --- a/src/main/java/com/example/survey/dto/record/ReviewRecordDTO.java +++ b/src/main/java/com/example/survey/dto/record/ReviewRecordDTO.java @@ -11,8 +11,7 @@ import lombok.*; @NoArgsConstructor @AllArgsConstructor public class ReviewRecordDTO { - private String idNumber; - private String projectName; + private String uuid; private Boolean pass; private String msg; private String reviewerPhone; diff --git a/src/main/java/com/example/survey/dto/record/SubmitRecordDTO.java b/src/main/java/com/example/survey/dto/record/SubmitRecordDTO.java index cfa60a2..ad9b6d3 100644 --- a/src/main/java/com/example/survey/dto/record/SubmitRecordDTO.java +++ b/src/main/java/com/example/survey/dto/record/SubmitRecordDTO.java @@ -13,6 +13,8 @@ import java.util.Map; @NoArgsConstructor @AllArgsConstructor public class SubmitRecordDTO { + private String uuid; + private String idNumber; private Map values; @@ -23,6 +25,6 @@ public class SubmitRecordDTO { private String metaDataName; - private String projectName; + // private String projectName; } diff --git a/src/main/java/com/example/survey/dto/respondent/CreateRespondentDTO.java b/src/main/java/com/example/survey/dto/respondent/CreateRespondentDTO.java deleted file mode 100644 index a967553..0000000 --- a/src/main/java/com/example/survey/dto/respondent/CreateRespondentDTO.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.example.survey.dto.respondent; - -import com.example.survey.entity.Project; -import com.example.survey.entity.inner.AdministrativeArea; -import lombok.*; -import org.springframework.data.mongodb.core.index.Indexed; - -import java.util.Set; - -/** - * @author Pope - */ -@Getter -@Setter -@ToString -@NoArgsConstructor -@AllArgsConstructor -public class CreateRespondentDTO { - /** - * 身份证号 - */ - private String idNumber; - - /** - * 电话 - */ - private String phone; - - /** - * 姓名 - */ - private String name; - - /** - * 备注 - */ - private String msg; - - /** - * 性别 - */ - private String gender; - - /** - * 行政区划 - */ - private AdministrativeArea administrativeArea; - - /** - * 分配人员 - */ - private String userPhone; - - /** - * 项目名集合 - */ - private String projectName; - -} diff --git a/src/main/java/com/example/survey/dto/respondent/DeleteRespondentDTO.java b/src/main/java/com/example/survey/dto/respondent/DeleteRespondentDTO.java deleted file mode 100644 index 6c71f52..0000000 --- a/src/main/java/com/example/survey/dto/respondent/DeleteRespondentDTO.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.example.survey.dto.respondent; - -import lombok.*; - -/** - * @author Pope - */ -@Getter -@Setter -@ToString -@NoArgsConstructor -@AllArgsConstructor -public class DeleteRespondentDTO { - - private String idNumber; - private String projectName; - -} diff --git a/src/main/java/com/example/survey/dto/respondent/ModifyRespondentDTO.java b/src/main/java/com/example/survey/dto/respondent/ModifyRespondentDTO.java deleted file mode 100644 index d2b8b3e..0000000 --- a/src/main/java/com/example/survey/dto/respondent/ModifyRespondentDTO.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.example.survey.dto.respondent; - -import com.example.survey.entity.inner.AdministrativeArea; -import lombok.*; - -/** - * @author Pope - */ -@Getter -@Setter -@ToString -@NoArgsConstructor -@AllArgsConstructor -public class ModifyRespondentDTO { - - /** - * 身份证号 - */ - private String idNumber; - - /** - * 电话 - */ - private String phone; - - /** - * 姓名 - */ - private String name; - - /** - * 备注 - */ - private String msg; - - /** - * 性别 - */ - private String gender; - - /** - * 行政区划 - */ - private AdministrativeArea administrativeArea; - - /** - * 项目名 - */ - private String projectName; - - -} diff --git a/src/main/java/com/example/survey/dto/respondent/ModifyRespondentUserDTO.java b/src/main/java/com/example/survey/dto/respondent/ModifyRespondentUserDTO.java deleted file mode 100644 index 7609503..0000000 --- a/src/main/java/com/example/survey/dto/respondent/ModifyRespondentUserDTO.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.example.survey.dto.respondent; - -import lombok.Data; - -/** - * @author Pope - */ -@Data -public class ModifyRespondentUserDTO { - private String idNumber; - private String projectName; - private String userPhone; -} diff --git a/src/main/java/com/example/survey/dto/role/ModifyRoleDTO.java b/src/main/java/com/example/survey/dto/role/ModifyRoleDTO.java index b489124..97a7c8b 100644 --- a/src/main/java/com/example/survey/dto/role/ModifyRoleDTO.java +++ b/src/main/java/com/example/survey/dto/role/ModifyRoleDTO.java @@ -2,7 +2,6 @@ package com.example.survey.dto.role; import lombok.*; -import java.util.List; import java.util.Set; /** diff --git a/src/main/java/com/example/survey/dto/user/ModifyUserInfoDTO.java b/src/main/java/com/example/survey/dto/user/ModifyUserInfoDTO.java index 1c654f9..4c8f8d6 100644 --- a/src/main/java/com/example/survey/dto/user/ModifyUserInfoDTO.java +++ b/src/main/java/com/example/survey/dto/user/ModifyUserInfoDTO.java @@ -1,10 +1,10 @@ package com.example.survey.dto.user; -import com.example.survey.entity.Department; +// import com.example.survey.entity.Department; import com.example.survey.entity.inner.AdministrativeArea; import lombok.*; -import java.util.List; +// import java.util.List; /** * @author Pope diff --git a/src/main/java/com/example/survey/dto/user/ModifyUserRoleDTO.java b/src/main/java/com/example/survey/dto/user/ModifyUserRoleDTO.java index d88d3cc..cc53cd2 100644 --- a/src/main/java/com/example/survey/dto/user/ModifyUserRoleDTO.java +++ b/src/main/java/com/example/survey/dto/user/ModifyUserRoleDTO.java @@ -2,7 +2,7 @@ package com.example.survey.dto.user; import lombok.*; -import java.util.List; +// import java.util.List; import java.util.Set; /** diff --git a/src/main/java/com/example/survey/entity/Department.java b/src/main/java/com/example/survey/entity/Department.java index e14028d..60e6722 100644 --- a/src/main/java/com/example/survey/entity/Department.java +++ b/src/main/java/com/example/survey/entity/Department.java @@ -2,10 +2,11 @@ package com.example.survey.entity; import lombok.*; import org.bson.types.ObjectId; -import org.springframework.data.mongodb.core.index.Indexed; +// import org.springframework.data.mongodb.core.index.Indexed; import org.springframework.data.mongodb.core.mapping.DBRef; import org.springframework.data.mongodb.core.mapping.Document; + import java.util.List; /** diff --git a/src/main/java/com/example/survey/entity/MetaData.java b/src/main/java/com/example/survey/entity/MetaData.java index dce82e3..5adc17c 100644 --- a/src/main/java/com/example/survey/entity/MetaData.java +++ b/src/main/java/com/example/survey/entity/MetaData.java @@ -1,8 +1,10 @@ package com.example.survey.entity; -import com.example.survey.entity.inner.FieldToName; +import com.example.survey.enumeration.MetaDataTypeEnum; + import lombok.*; import org.bson.types.ObjectId; +import org.springframework.data.mongodb.core.index.Indexed; import org.springframework.data.mongodb.core.mapping.Document; import java.util.List; @@ -15,9 +17,9 @@ import java.util.Map; @Document(collection = "metaData") public class MetaData { private ObjectId id; + private String type; + + @Indexed(unique = true) private String name; private Map form; - private List fieldToNameList; - private String wordTemplate; - private Map config; } diff --git a/src/main/java/com/example/survey/entity/Project.java b/src/main/java/com/example/survey/entity/Project.java index ac3db1b..2e44052 100644 --- a/src/main/java/com/example/survey/entity/Project.java +++ b/src/main/java/com/example/survey/entity/Project.java @@ -7,7 +7,9 @@ import org.springframework.data.mongodb.core.index.Indexed; import org.springframework.data.mongodb.core.mapping.DBRef; import org.springframework.data.mongodb.core.mapping.Document; + import java.util.Date; +import java.util.Map; import java.util.Set; /** @@ -29,39 +31,7 @@ public class Project { @Indexed(unique = true) private String name; - /** - * 描述信息 - */ - private String detail; + private long date; - /** - * 调查对象数量 - */ - private long respondentCount; - - /** - * 未调查调查对象数量 - */ - private long notInvestigatedRespondentCount; - - /** - * 负责人 - */ - @DBRef - private User user; - - /** - * 开始时间 - */ - private Date startTime; - - /** - * 结束时间 - */ - private Date endTime; - - /** - * 状态 - */ - private String state; + private long count; } diff --git a/src/main/java/com/example/survey/entity/Record.java b/src/main/java/com/example/survey/entity/Record.java index 52cb9ff..588b174 100644 --- a/src/main/java/com/example/survey/entity/Record.java +++ b/src/main/java/com/example/survey/entity/Record.java @@ -1,12 +1,17 @@ package com.example.survey.entity; import com.example.survey.entity.inner.Operation; +import com.example.survey.enumeration.MetaDataTypeEnum; +import com.example.survey.enumeration.RecordStateEnum; + import lombok.*; import org.bson.types.ObjectId; import org.springframework.data.annotation.Id; +import org.springframework.data.mongodb.core.index.Indexed; import org.springframework.data.mongodb.core.mapping.DBRef; import org.springframework.data.mongodb.core.mapping.Document; + import java.util.List; import java.util.Map; @@ -21,11 +26,10 @@ public class Record { @Id private ObjectId id; - /** - * 调查对象 - */ - @DBRef - private Respondent respondent; + @Indexed(unique = true) + private String uuid; + + private String idNumber; /** * 用于存放前端传的字段 @@ -43,24 +47,19 @@ public class Record { */ private List operationList; - /** - * 记录版本 - */ - private String version; - /** * 记录状态 */ private String state; - /** - * 项目集合 - */ - @DBRef - private Project project; - @DBRef private MetaData metaData; + private String metaDataType; + + private List projectList; + + private long submitTime; + } diff --git a/src/main/java/com/example/survey/entity/Respondent.java b/src/main/java/com/example/survey/entity/Respondent.java index 1ac2d70..06b954b 100644 --- a/src/main/java/com/example/survey/entity/Respondent.java +++ b/src/main/java/com/example/survey/entity/Respondent.java @@ -65,13 +65,7 @@ public class Respondent { */ @DBRef private User user; - - /** - * 项目 - */ - @DBRef - private Project project; - + /** * 调查对象状态 */ diff --git a/src/main/java/com/example/survey/entity/User.java b/src/main/java/com/example/survey/entity/User.java index 39961f0..1085389 100644 --- a/src/main/java/com/example/survey/entity/User.java +++ b/src/main/java/com/example/survey/entity/User.java @@ -9,6 +9,7 @@ import org.springframework.data.mongodb.core.index.Indexed; import org.springframework.data.mongodb.core.mapping.DBRef; import org.springframework.data.mongodb.core.mapping.Document; + import java.util.*; /** diff --git a/src/main/java/com/example/survey/entity/inner/Operation.java b/src/main/java/com/example/survey/entity/inner/Operation.java index 1d1e29c..142ee18 100644 --- a/src/main/java/com/example/survey/entity/inner/Operation.java +++ b/src/main/java/com/example/survey/entity/inner/Operation.java @@ -30,11 +30,6 @@ public class Operation { @DBRef private User user; - /** - * 版本信息 - */ - private String version; - /** * 备注 */ @@ -46,45 +41,41 @@ public class Operation { private String result; - public static Operation submitOp(User user, String msg, String version) { + public static Operation submitOp(User user, String msg) { Operation submit = new Operation(); submit.setType(OpTypeEnum.SUBMIT.getValue()); submit.setTime(new Date()); submit.setUser(user); - submit.setVersion(version); submit.setMsg(msg); submit.setResult("提交成功"); return submit; } - public static Operation modifyOp(User user, String msg, String version) { + public static Operation modifyOp(User user, String msg) { Operation modify = new Operation(); modify.setType(OpTypeEnum.MODIFY.getValue()); modify.setTime(new Date()); modify.setUser(user); - modify.setVersion(version); modify.setMsg(msg); modify.setResult("提交修改"); return modify; } - public static Operation deleteOp(User user, String msg, String version) { + public static Operation deleteOp(User user, String msg) { Operation delete = new Operation(); delete.setType(OpTypeEnum.DELETE.getValue()); delete.setTime(new Date()); delete.setUser(user); - delete.setVersion(version); delete.setMsg(msg); delete.setResult("删除成功"); return delete; } - public static Operation reviewOp(User user, String msg, String version, boolean result) { + public static Operation reviewOp(User user, String msg, boolean result) { Operation review = new Operation(); review.setType(OpTypeEnum.REVIEW.getValue()); review.setTime(new Date()); review.setUser(user); - review.setVersion(version); review.setMsg(msg); if (result) { review.setResult("审核通过"); @@ -99,7 +90,6 @@ public class Operation { cover.setType(OpTypeEnum.COVER.getValue()); cover.setTime(new Date()); cover.setUser(user); - cover.setVersion(version); cover.setMsg("因重复提交覆盖"); cover.setResult("被覆盖"); return cover; diff --git a/src/main/java/com/example/survey/enumeration/MetaDataTypeEnum.java b/src/main/java/com/example/survey/enumeration/MetaDataTypeEnum.java new file mode 100644 index 0000000..4d8dbcc --- /dev/null +++ b/src/main/java/com/example/survey/enumeration/MetaDataTypeEnum.java @@ -0,0 +1,30 @@ +package com.example.survey.enumeration; + +import java.util.HashSet; +import java.util.LinkedList; +import java.util.List; +import java.util.Set; + +/** + * @author Pope + */ + +public enum MetaDataTypeEnum { + + META_CONFIG("配置"), + + RECORD_TEMP("流调记录"), + + REPORT_TEMP("流调报告") + ; + + private final String value; + + MetaDataTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } +} diff --git a/src/main/java/com/example/survey/enumeration/RecordStateEnum.java b/src/main/java/com/example/survey/enumeration/RecordStateEnum.java index 7018e52..19df107 100644 --- a/src/main/java/com/example/survey/enumeration/RecordStateEnum.java +++ b/src/main/java/com/example/survey/enumeration/RecordStateEnum.java @@ -9,7 +9,7 @@ public enum RecordStateEnum { /** * 已审核状态 */ - REVIEWED("已审核"), + REVIEWED("已通过"), /** * 待审核状态 */ diff --git a/src/main/java/com/example/survey/service/MetaDataService.java b/src/main/java/com/example/survey/service/MetaDataService.java index c307d8f..81229ea 100644 --- a/src/main/java/com/example/survey/service/MetaDataService.java +++ b/src/main/java/com/example/survey/service/MetaDataService.java @@ -4,6 +4,7 @@ import com.example.survey.dto.metaData.CreateMetaDataDTO; import com.example.survey.dto.metaData.DeleteMetaDataDTO; import com.example.survey.dto.metaData.ModifyMetaDataDTO; import com.example.survey.entity.MetaData; +import com.example.survey.enumeration.MetaDataTypeEnum; import com.example.survey.vo.MetaDataVO; import org.springframework.web.multipart.MultipartFile; @@ -27,7 +28,7 @@ public interface MetaDataService { * @param pageSize 页大小 * @return 元数据名称 */ - List listMetaDataNameLimit(String name, int currentPage, int pageSize); + List listMetaDataNameLimit(String name, MetaDataTypeEnum type, int currentPage, int pageSize); /** * 根据元数据名查询数量 diff --git a/src/main/java/com/example/survey/service/ProjectService.java b/src/main/java/com/example/survey/service/ProjectService.java index d3484df..48fcbee 100644 --- a/src/main/java/com/example/survey/service/ProjectService.java +++ b/src/main/java/com/example/survey/service/ProjectService.java @@ -1,8 +1,10 @@ package com.example.survey.service; +import com.example.survey.dto.project.AddRecordDTO; import com.example.survey.dto.project.CreateProjectDTO; +import com.example.survey.dto.project.DeleteRecordDTO; import com.example.survey.dto.project.ModifyProjectDTO; -import com.example.survey.dto.project.ModifyStateDTO; + import com.example.survey.vo.ProjectVO; import java.util.List; @@ -12,7 +14,6 @@ import java.util.List; */ public interface ProjectService { - /** * 创建新项目 * @@ -20,7 +21,6 @@ public interface ProjectService { */ void createProject(CreateProjectDTO createProjectDTO); - /** * 根据筛选条件分页查询项目 * @@ -30,7 +30,7 @@ public interface ProjectService { * @param pageSize 页大小 * @return 项目vo */ - List listProjectLimit(String name, String state, int currentPage, int pageSize); + List listProjectLimit(String name, long date_gt, long date_lt, int currentPage, int pageSize); /** * 根据项目名查询调查对象数量 @@ -38,23 +38,7 @@ public interface ProjectService { * @param name 项目名 * @return 调查对象数量 */ - long countRespondent(String name); - - /** - * 根据项目名与调查对象状态查询调查对象数量 - * - * @param name 项目名 - * @param respondentState 调查对象状态 - * @return 调查对象数量 - */ - long countRespondent(String name, String respondentState); - - /** - * 修改项目状态 - * - * @param modifyStateDTO 修改信息 - */ - void modifyProjectState(ModifyStateDTO modifyStateDTO); + long countRecord(String name); /** * 修改项目数据 @@ -64,11 +48,16 @@ public interface ProjectService { void modifyProject(ModifyProjectDTO modifyProjectDTO); /** - * 根据项目吗查询数量 + * 根据项目名查询数量 * * @param name 项目名 * @param state 项目状态 * @return 数量 */ - long countProject(String name, String state); + long countProject(String name, long date_gt, long date_lt); + + + void addRecord(AddRecordDTO addRecordDTO); + + void deleteRecord(DeleteRecordDTO deleteRecordDTO); } diff --git a/src/main/java/com/example/survey/service/RecordService.java b/src/main/java/com/example/survey/service/RecordService.java index a1f8b2f..a383877 100644 --- a/src/main/java/com/example/survey/service/RecordService.java +++ b/src/main/java/com/example/survey/service/RecordService.java @@ -13,16 +13,7 @@ import java.util.Map; */ public interface RecordService { - /** - * 根据筛选条件查询流调记录数量 - * - * @param userPhone 用户电话号码 - * @param projectName 项目名 - * @return 符合筛选条件的调查记录数量 - */ - long countRecord(String userPhone, String projectName); - - + /** * 审核流调记录 * @@ -55,8 +46,9 @@ public interface RecordService { * @param questionnaireNumber 问卷编号 * @return 流调记录数量 */ - long countRecord(String idNumber, String userPhone, String projectName, String state, String version, String questionnaireNumber); - + long countRecord(String idNumber, String state, String uuid, + String templateName, String templateType, + long submitTimeGt, long submitTimeLt, String projectName); /** * 根据筛选条件查询流调记录 * @@ -70,7 +62,9 @@ public interface RecordService { * @param pageSize 页大小 * @return 流调记录VO */ - List listRecordLimit(String idNumber, String userPhone, String projectName, String state, String version, String questionnaireNumber, int currentPage, int pageSize); + List listRecordLimit(String idNumber, String state, String uuid, + String templateName, String templateType, + long submitTimeGt, long submitTimeLt, String projectName, int offset, int pageSize); /** * 根据筛选条件查询流调记录的values @@ -80,7 +74,7 @@ public interface RecordService { * @param version 版本号 * @return 流调记录的values */ - Map getRecordValues(String projectName, String idNumber, String version); + Map getRecordValues(String uuid); /** * 上传文件 @@ -104,14 +98,8 @@ public interface RecordService { * @param projectName 项目名 * @param response 响应 */ - void record2word(String idNumber, String projectName, HttpServletResponse response); + void record2word(String idNumber, HttpServletResponse response); - /** - * 修改流调记录对应项目 - * - * @param modifyProjectDTO 修改信息 - */ - void modifyProject(ModifyProjectDTO modifyProjectDTO); /** * 修改流调记录所绑定元数据 diff --git a/src/main/java/com/example/survey/service/RespondentService.java b/src/main/java/com/example/survey/service/RespondentService.java deleted file mode 100644 index 7c74ee6..0000000 --- a/src/main/java/com/example/survey/service/RespondentService.java +++ /dev/null @@ -1,74 +0,0 @@ -package com.example.survey.service; - -import com.example.survey.dto.respondent.*; -import com.example.survey.vo.RespondentVO; - -import java.util.List; - -/** - * @author Pope - */ -public interface RespondentService { - /** - * 创建待调查对象 - * - * @param createRespondentDTO 待调查对象信息 - * @return 是否创建成功 - */ - void createRespondent(CreateRespondentDTO createRespondentDTO); - - /** - * 根据流调人员电话号码分页查询待调查对象数据 - * - * @param userPhone 分配的人员电话号码 - * @param state 状态 - * @param idNumber 身份证号 - * @param name 调查对象姓名 - * @param phone 调查对象电话 - * @param province 省份 - * @param city 城市 - * @param county 区县 - * @param projectName 项目名 - * @param currentPage 当前页数 - * @param pageSize 页大小 - * @return 页数据 - */ - List listRespondentLimit(String userPhone, String state, String idNumber, String name, String phone, String province, String city, String county, String projectName, int currentPage, int pageSize); - - /** - * 根据筛选条件查询调查对象数量 - * - * @param userPhone 分配的人员电话号码 - * @param state 状态 - * @param idNumber 身份证号 - * @param name 调查对象姓名 - * @param phone 调查对象电话 - * @param province 省份 - * @param city 城市 - * @param county 区县 - * @param projectName 项目名 - * @return 数量 - */ - long countRespondent(String userPhone, String state, String idNumber, String name, String phone, String province, String city, String county, String projectName); - - /** - * 修改调查对象信息 - * - * @param modifyRespondentDTO 修改信息 - */ - void modifyRespondent(ModifyRespondentDTO modifyRespondentDTO); - - /** - * 分配人员 - * - * @param modifyRespondentUserDTO 绑定用户信息 - */ - void modifyUser(ModifyRespondentUserDTO modifyRespondentUserDTO); - - /** - * 删除调查对象 - * - * @param deleteRespondentDTO 删除信息 - */ - void deleteRespondent(DeleteRespondentDTO deleteRespondentDTO); -} diff --git a/src/main/java/com/example/survey/service/impl/MetaDataServiceImpl.java b/src/main/java/com/example/survey/service/impl/MetaDataServiceImpl.java index dc63137..48a47e1 100644 --- a/src/main/java/com/example/survey/service/impl/MetaDataServiceImpl.java +++ b/src/main/java/com/example/survey/service/impl/MetaDataServiceImpl.java @@ -5,6 +5,7 @@ import com.example.survey.dto.metaData.CreateMetaDataDTO; import com.example.survey.dto.metaData.DeleteMetaDataDTO; import com.example.survey.dto.metaData.ModifyMetaDataDTO; import com.example.survey.entity.MetaData; +import com.example.survey.enumeration.MetaDataTypeEnum; import com.example.survey.enumeration.ResultEnum; import com.example.survey.exception.MetaDataException; import com.example.survey.service.MetaDataService; @@ -43,15 +44,16 @@ public class MetaDataServiceImpl implements MetaDataService { MetaData metaData = new MetaData(); metaData.setName(createMetaDataDTO.getName()); metaData.setForm(createMetaDataDTO.getForm()); - metaData.setFieldToNameList(createMetaDataDTO.getFieldToNameList()); - metaData.setConfig(createMetaDataDTO.getConfig()); - metaData.setWordTemplate(createMetaDataDTO.getWordTemplate()); + + // metaData.setFieldToNameList(createMetaDataDTO.getFieldToNameList()); + // metaData.setConfig(createMetaDataDTO.getConfig()); + // metaData.setWordTemplate(createMetaDataDTO.getWordTemplate()); metaDataDao.saveMetaData(metaData); } @Override - public List listMetaDataNameLimit(String name, int currentPage, int pageSize) { - List metaDataList = metaDataDao.listMetaDataLimit(name, currentPage * pageSize, pageSize); + public List listMetaDataNameLimit(String name, MetaDataTypeEnum type, int currentPage, int pageSize) { + List metaDataList = metaDataDao.listMetaDataLimit(name, type, currentPage * pageSize, pageSize); if (metaDataList == null) { return new ArrayList<>(); } @@ -77,8 +79,8 @@ public class MetaDataServiceImpl implements MetaDataService { } MetaData metaData = metaDataDao.selectMetaData(modifyMetaDataDTO.getName()); metaData.setForm(modifyMetaDataDTO.getForm()); - metaData.setFieldToNameList(modifyMetaDataDTO.getFieldToNameList()); - metaData.setConfig(modifyMetaDataDTO.getConfig()); + // metaData.setFieldToNameList(modifyMetaDataDTO.getFieldToNameList()); + // metaData.setConfig(modifyMetaDataDTO.getConfig()); metaDataDao.saveMetaData(metaData); } @@ -136,7 +138,7 @@ public class MetaDataServiceImpl implements MetaDataService { e.printStackTrace(); } } - metaData.setWordTemplate(path + newName); + // metaData.setWordTemplate(path + newName); metaDataDao.saveMetaData(metaData); } } diff --git a/src/main/java/com/example/survey/service/impl/ProjectServiceImpl.java b/src/main/java/com/example/survey/service/impl/ProjectServiceImpl.java index 9d22b77..ed9f9fa 100644 --- a/src/main/java/com/example/survey/service/impl/ProjectServiceImpl.java +++ b/src/main/java/com/example/survey/service/impl/ProjectServiceImpl.java @@ -2,18 +2,22 @@ package com.example.survey.service.impl; import com.example.survey.dao.MetaDataDao; import com.example.survey.dao.ProjectDao; -import com.example.survey.dao.RespondentDao; +import com.example.survey.dao.RecordDao; import com.example.survey.dao.UserDao; +import com.example.survey.dto.project.AddRecordDTO; import com.example.survey.dto.project.CreateProjectDTO; +import com.example.survey.dto.project.DeleteRecordDTO; import com.example.survey.dto.project.ModifyProjectDTO; -import com.example.survey.dto.project.ModifyStateDTO; + import com.example.survey.entity.MetaData; import com.example.survey.entity.Project; +import com.example.survey.entity.Record; import com.example.survey.entity.User; import com.example.survey.enumeration.ProjectStateEnum; import com.example.survey.enumeration.ResultEnum; import com.example.survey.exception.MetaDataException; import com.example.survey.exception.ProjectException; +import com.example.survey.exception.RecordException; import com.example.survey.exception.UserException; import com.example.survey.service.ProjectService; import com.example.survey.vo.ProjectVO; @@ -32,109 +36,128 @@ public class ProjectServiceImpl implements ProjectService { @Autowired ProjectDao projectDao; - @Autowired - RespondentDao respondentDao; - @Autowired MetaDataDao metaDataDao; @Autowired UserDao userDao; + @Autowired + RecordDao recordDao; + @Override public void createProject(CreateProjectDTO createProjectDTO) { - if (!userDao.existUser(createProjectDTO.getUserPhone())) { - throw new UserException(ResultEnum.NOT_EXIST_USER); - } - if (!metaDataDao.existMetaData(createProjectDTO.getMetaDataName())) { - throw new MetaDataException(ResultEnum.NOT_EXIST_METADATA); - } - User user = userDao.selectUser(createProjectDTO.getUserPhone()); - MetaData metaData = metaDataDao.selectMetaData(createProjectDTO.getMetaDataName()); + Project project = new Project(); project.setName(createProjectDTO.getName()); // project.setMetaData(metaData); - project.setStartTime(createProjectDTO.getStartTime()); - project.setEndTime(createProjectDTO.getEndTime()); - project.setDetail(createProjectDTO.getDetail()); - project.setState(ProjectStateEnum.IN_PROGRESS.getValue()); - project.setUser(user); + // project.setStartTime(createProjectDTO.getStartTime()); + // project.setEndTime(createProjectDTO.getEndTime()); + // project.setDetail(createProjectDTO.getDetail()); + project.setDate(createProjectDTO.getDate()); + // project.setState(ProjectStateEnum.IN_PROGRESS.getValue()); + // project.setUser(user); projectDao.saveProject(project); } @Override - public List listProjectLimit(String name, String state, int currentPage, int pageSize) { - return projectDao.listProjectLimit(name, state, currentPage * pageSize, pageSize).stream() + public List listProjectLimit(String name, long date_gt, long date_lt, int currentPage, int pageSize) { + return projectDao.listProjectLimit(name, date_gt, date_lt, currentPage * pageSize, pageSize).stream() .map(project -> { ProjectVO projectVO = new ProjectVO(); projectVO.setName(project.getName()); - projectVO.setDetail(project.getDetail()); - projectVO.setStartTime(project.getStartTime()); - projectVO.setEndTime(project.getEndTime()); - projectVO.setUsername(project.getUser().getUsername()); + projectVO.setDate(project.getDate()); + projectVO.setCount(project.getCount()); + // projectVO.setDetail(project.getDetail()); + // projectVO.setStartTime(project.getStartTime()); + // projectVO.setEndTime(project.getEndTime()); + // projectVO.setUsername(project.getUser().getUsername()); // if (project.getMetaData() != null) { // projectVO.setMetaDataName(project.getMetaData().getName()); // } - projectVO.setState(project.getState()); + // projectVO.setState(project.getState()); return projectVO; }).collect(Collectors.toList()); } @Override - public long countRespondent(String name) { + public long countRecord(String name) { if (!projectDao.existProject(name)) { throw new ProjectException(ResultEnum.NOT_EXIST_PROJECT); } - return projectDao.selectProject(name).getRespondentCount(); + + return recordDao.countRecord(null, null, null, + null, null, 0, 0, name); } - @Override - public long countRespondent(String name, String respondentState) { - if (!projectDao.existProject(name)) { - throw new ProjectException(ResultEnum.NOT_EXIST_PROJECT); - } - Project project = projectDao.selectProject(name); - return project.getNotInvestigatedRespondentCount(); - } - - @Override - public void modifyProjectState(ModifyStateDTO modifyStateDTO) { - if (!projectDao.existProject(modifyStateDTO.getName())) { - throw new ProjectException(ResultEnum.NOT_EXIST_PROJECT); - } - Project project = projectDao.selectProject(modifyStateDTO.getName()); - for (ProjectStateEnum value : ProjectStateEnum.values()) { - if (value.getValue().equals(modifyStateDTO.getState())) { - project.setState(modifyStateDTO.getState()); - projectDao.saveProject(project); - return; - } - } - throw new ProjectException(ResultEnum.NOT_EXIST_PROJECT_STATE); - } @Override public void modifyProject(ModifyProjectDTO modifyProjectDTO) { - if (!userDao.existUser(modifyProjectDTO.getUserPhone())) { - throw new UserException(ResultEnum.NOT_EXIST_USER); - } + if (!projectDao.existProject(modifyProjectDTO.getName())) { throw new ProjectException(ResultEnum.NOT_EXIST_PROJECT); } - User user = userDao.selectUser(modifyProjectDTO.getUserPhone()); + // User user = userDao.selectUser(modifyProjectDTO.getUserPhone()); Project project = projectDao.selectProject(modifyProjectDTO.getName()); - project.setDetail(modifyProjectDTO.getDetail()); - project.setStartTime(modifyProjectDTO.getStartTime()); - project.setEndTime(modifyProjectDTO.getEndTime()); - project.setUser(user); + // project.setDetail(modifyProjectDTO.getDetail()); + // project.setStartTime(modifyProjectDTO.getStartTime()); + // project.setEndTime(modifyProjectDTO.getEndTime()); + // project.setUser(user); projectDao.saveProject(project); } @Override - public long countProject(String name, String state) { - return projectDao.countProject(name, state); + public long countProject(String name, long date_gt, long date_lt) { + return projectDao.countProject(name, date_gt, date_lt); } + @Override + public void addRecord(AddRecordDTO addRecordDTO) { + if(!projectDao.existProject(addRecordDTO.getName())) + { + throw new ProjectException(ResultEnum.NOT_EXIST_PROJECT); + } + if(!recordDao.existRecord(addRecordDTO.getUuid())) + { + throw new RecordException(ResultEnum.NOT_EXIST_RECORD); + } + + Project project = projectDao.selectProject(addRecordDTO.getName()); + + Record record = recordDao.getRecord(addRecordDTO.getUuid()); + if(!record.getProjectList().contains(project.getName())) + { + List t = record.getProjectList(); + t.add(project.getName()); + record.setProjectList(t); + recordDao.saveRecord(record); + } + } + + @Override + public void deleteRecord(DeleteRecordDTO deleteRecordDTO) { + if(!projectDao.existProject(deleteRecordDTO.getName())) + { + throw new ProjectException(ResultEnum.NOT_EXIST_PROJECT); + } + if(!recordDao.existRecord(deleteRecordDTO.getUuid())) + { + throw new RecordException(ResultEnum.NOT_EXIST_RECORD); + } + + Project project = projectDao.selectProject(deleteRecordDTO.getName()); + + Record record = recordDao.getRecord(deleteRecordDTO.getUuid()); + if(record.getProjectList().contains(project.getName())) + { + List t = record.getProjectList(); + t.remove(project.getName()); + record.setProjectList(t); + recordDao.saveRecord(record); + } + + } + } diff --git a/src/main/java/com/example/survey/service/impl/RecordServiceImpl.java b/src/main/java/com/example/survey/service/impl/RecordServiceImpl.java index 162ea25..bdd3f5e 100644 --- a/src/main/java/com/example/survey/service/impl/RecordServiceImpl.java +++ b/src/main/java/com/example/survey/service/impl/RecordServiceImpl.java @@ -33,13 +33,9 @@ import java.util.stream.Collectors; @Service public class RecordServiceImpl implements RecordService { - @Autowired private RecordDao recordDao; - @Autowired - private RespondentDao respondentDao; - @Autowired private UserDao userDao; @@ -55,18 +51,6 @@ public class RecordServiceImpl implements RecordService { @Value("${file.url}") private String url; - @Override - public long countRecord(String userPhone, String projectName) { - if (userPhone != null && !userDao.existUser(userPhone)) { - throw new UserException(ResultEnum.NOT_EXIST_USER); - } - if (projectName != null && !projectDao.existProject(projectName)) { - throw new ProjectException(ResultEnum.NOT_EXIST_PROJECT); - } - User user = userDao.selectUser(userPhone); - Project project = projectDao.selectProject(projectName); - return recordDao.countRecord(null, user, project, RecordStateEnum.UNDER_REVIEW.getValue(), null, null); - } @Override public void reviewRecord(ReviewRecordDTO reviewRecordDTO) { @@ -74,23 +58,15 @@ public class RecordServiceImpl implements RecordService { throw new UserException(ResultEnum.NOT_EXIST_USER); } User user = userDao.selectUser(reviewRecordDTO.getReviewerPhone()); - if (!projectDao.existProject(reviewRecordDTO.getProjectName())) { - throw new ProjectException(ResultEnum.NOT_EXIST_PROJECT); - } - Project project = projectDao.selectProject(reviewRecordDTO.getProjectName()); - if (!respondentDao.existRespondent(reviewRecordDTO.getIdNumber(), project, RespondentStateEnum.INVESTIGATED.getValue())) { - throw new RespondentException(ResultEnum.NOT_EXIST_RESPONDENT); - } - Respondent respondent = respondentDao.selectRespondent(reviewRecordDTO.getIdNumber(), project); - if (!recordDao.existRecord(respondent, project, RecordStateEnum.UNDER_REVIEW.getValue())) { + + if (!recordDao.existRecord(reviewRecordDTO.getUuid())) { throw new RecordException(ResultEnum.NOT_EXIST_RECORD); } - Record record = recordDao.getRecord(respondent, project, RecordStateEnum.UNDER_REVIEW.getValue()); - + Record record = recordDao.getRecord( reviewRecordDTO.getUuid()); record.setState(reviewRecordDTO.getPass() ? RecordStateEnum.REVIEWED.getValue() : RecordStateEnum.NOT_PASS.getValue()); - record.setVersion(UUID.randomUUID().toString()); - Operation reviewOp = Operation.reviewOp(user, reviewRecordDTO.getMsg(), record.getVersion(), reviewRecordDTO.getPass()); + // record.setVersion(UUID.randomUUID().toString()); + Operation reviewOp = Operation.reviewOp(user, reviewRecordDTO.getMsg(), reviewRecordDTO.getPass()); List opList = record.getOperationList(); opList.add(reviewOp); record.setOperationList(opList); @@ -104,44 +80,18 @@ public class RecordServiceImpl implements RecordService { throw new UserException(ResultEnum.NOT_EXIST_USER); } User user = userDao.selectUser(modifyRecordDTO.getUserPhone()); - if (!projectDao.existProject(modifyRecordDTO.getProjectName())) { - throw new ProjectException(ResultEnum.NOT_EXIST_PROJECT); - } - Project project = projectDao.selectProject(modifyRecordDTO.getProjectName()); - if (!respondentDao.existRespondent(modifyRecordDTO.getIdNumber(), project, RespondentStateEnum.INVESTIGATED.getValue())) { - throw new RespondentException(ResultEnum.NOT_EXIST_RESPONDENT); - } - Respondent respondent = respondentDao.selectRespondent(modifyRecordDTO.getIdNumber(), project); - - List stateList = new ArrayList<>(); - stateList.add(RecordStateEnum.UNDER_REVIEW.getValue()); - stateList.add(RecordStateEnum.REVIEWED.getValue()); - Record record = recordDao.selectRecord(respondent, project, stateList); + + Record record = recordDao.getRecord(modifyRecordDTO.getUuid()); if (record == null) { throw new RecordException(ResultEnum.NOT_EXIST_RECORD); } + List operationList = record.getOperationList(); + Operation modifyOp = Operation.modifyOp(user, modifyRecordDTO.getMsg()); + operationList.add(modifyOp); - String newVersion = UUID.randomUUID().toString(); - List oldOperationList = record.getOperationList(); - List newOperationList = record.getOperationList(); - - Operation coverOp = Operation.coverOp(user, newVersion); - oldOperationList.add(coverOp); - - Operation modifyOp = Operation.modifyOp(user, modifyRecordDTO.getMsg(), newVersion); - newOperationList.add(modifyOp); - - record.setOperationList(oldOperationList); - record.setState(RecordStateEnum.FILED.getValue()); - recordDao.saveRecord(record); - - record.setId(null); - record.setValues(modifyRecordDTO.getValues()); - record.setOperationList(newOperationList); + record.setOperationList(operationList); record.setState(RecordStateEnum.UNDER_REVIEW.getValue()); - recordDao.saveRecord(record); - } @Override @@ -150,128 +100,66 @@ public class RecordServiceImpl implements RecordService { throw new UserException(ResultEnum.NOT_EXIST_USER); } User user = userDao.selectUser(submitRecordDTO.getUserPhone()); - if (!projectDao.existProject(submitRecordDTO.getProjectName())) { - throw new ProjectException(ResultEnum.NOT_EXIST_PROJECT); - } - Project project = projectDao.selectProject(submitRecordDTO.getProjectName()); + if (!metaDataDao.existMetaData(submitRecordDTO.getMetaDataName())) { throw new MetaDataException(ResultEnum.NOT_EXIST_METADATA); } MetaData metaData = metaDataDao.selectMetaData(submitRecordDTO.getMetaDataName()); - if (!respondentDao.existRespondent(submitRecordDTO.getIdNumber(), project)) { - throw new RespondentException(ResultEnum.NOT_EXIST_RESPONDENT); - } - Respondent respondent = respondentDao.selectRespondent(submitRecordDTO.getIdNumber(), project); - //设置调查对象为已调查 - respondent.setState(RespondentStateEnum.INVESTIGATED.getValue()); - respondentDao.saveRespondent(respondent); - - List stateList = new ArrayList<>(); - stateList.add(RecordStateEnum.UNDER_REVIEW.getValue()); - stateList.add(RecordStateEnum.REVIEWED.getValue()); - Record record = recordDao.selectRecord(respondent, project, stateList); - - String newVersion = UUID.randomUUID().toString(); - List oldOperationList = new ArrayList<>(); - List newOperationList = new ArrayList<>(); - - if (record != null) { - oldOperationList = record.getOperationList(); - newOperationList = record.getOperationList(); - Operation coverOp = Operation.coverOp(user, newVersion); - oldOperationList.add(coverOp); - record.setOperationList(oldOperationList); - record.setState(RecordStateEnum.FILED.getValue()); - recordDao.saveRecord(record); - } else { - record = new Record(); - } - - record.setProject(project); + Record record = new Record(); + record.setUser(user); record.setValues(submitRecordDTO.getValues()); - Operation submitOp = Operation.submitOp(user, submitRecordDTO.getMsg(), newVersion); - newOperationList.add(submitOp); - record.setOperationList(newOperationList); + Operation submitOp = Operation.submitOp(user, submitRecordDTO.getMsg()); + List operations = new ArrayList<>(); + operations.add(submitOp); + record.setOperationList(operations); + record.setUuid(submitRecordDTO.getUuid()); + record.setIdNumber(submitRecordDTO.getIdNumber()); record.setState(RecordStateEnum.UNDER_REVIEW.getValue()); record.setMetaData(metaData); - record.setVersion(newVersion); + record.setMetaDataType(metaData.getType()); + record.setSubmitTime(System.currentTimeMillis()); recordDao.saveRecord(record); } @Override - public long countRecord(String idNumber, String userPhone, String projectName, String state, String version, String questionnaireNumber) { - if (projectName != null && !projectDao.existProject(projectName)) { - throw new ProjectException(ResultEnum.NOT_EXIST_PROJECT); - } - Project project = projectDao.selectProject(projectName); - - if (userPhone != null && !userDao.existUser(userPhone)) { - throw new UserException(ResultEnum.NOT_EXIST_USER); - } - User user = userDao.selectUser(userPhone); - - if (idNumber != null && !respondentDao.existRespondent(idNumber, project)) { - throw new RespondentException(ResultEnum.NOT_EXIST_RESPONDENT); - } - - Respondent respondent = respondentDao.selectRespondent(idNumber, project); - - - return recordDao.countRecord(respondent, user, project, state, version, questionnaireNumber); + public long countRecord(String idNumber, String state, String uuid, + String templateName, String templateType, + long submitTimeGt, long submitTimeLt, String projectName) { + + return recordDao.countRecord(idNumber, state, uuid, templateName, templateType, submitTimeGt, submitTimeLt, projectName); } @Override - public List listRecordLimit(String idNumber, String userPhone, String projectName, String state, String version, String questionnaireNumber, int currentPage, int pageSize) { - if (userPhone != null && !userDao.existUser(userPhone)) { - throw new UserException(ResultEnum.NOT_EXIST_USER); - } - User user = userDao.selectUser(userPhone); - - if (projectName != null && !projectDao.existProject(projectName)) { - throw new ProjectException(ResultEnum.NOT_EXIST_PROJECT); - } - Project project = projectDao.selectProject(projectName); - - if (idNumber != null && !respondentDao.existRespondent(idNumber, project)) { - throw new RespondentException(ResultEnum.NOT_EXIST_RESPONDENT); - } - Respondent respondent = respondentDao.selectRespondent(idNumber, project); - - - List recordList = recordDao.listRecordLimit(respondent, user, project, state, version, questionnaireNumber, currentPage * pageSize, pageSize); + public List listRecordLimit(String idNumber, String state, String uuid, + String templateName, String templateType, + long submitTimeGt, long submitTimeLt, String projectName, int currentPage, int pageSize) { + + List recordList = recordDao.listRecordLimit(idNumber, state, uuid, templateName, templateType, submitTimeGt, submitTimeLt, projectName, currentPage * pageSize, pageSize); return recordList.stream().map(record -> { RecordVO recordVO = new RecordVO(); - recordVO.setIdNumber(record.getRespondent().getIdNumber()); - recordVO.setUserPhone(record.getUser().getPhone()); - recordVO.setProjectName(record.getProject().getName()); + recordVO.setIdNumber(record.getIdNumber()); + recordVO.setUuid(record.getUuid()); + recordVO.setTemplate(record.getMetaData().getName()); recordVO.setOperationInfoList(record.getOperationList().stream().map(op -> { OperationInfo operationInfo = new OperationInfo(); operationInfo.setType(op.getType()); operationInfo.setTime(op.getTime()); - operationInfo.setUserPhone(op.getUser().getPhone()); + operationInfo.setPersonId(op.getUser().getPhone()); + operationInfo.setPersonName(op.getUser().getUsername()); operationInfo.setMsg(op.getMsg()); operationInfo.setResult(op.getResult()); - operationInfo.setVersion(op.getVersion()); return operationInfo; }).collect(Collectors.toList())); - recordVO.setVersion(record.getVersion()); recordVO.setState(record.getState()); return recordVO; }).collect(Collectors.toList()); } @Override - public Map getRecordValues(String projectName, String idNumber, String version) { - if (!projectDao.existProject(projectName)) { - throw new ProjectException(ResultEnum.NOT_EXIST_PROJECT); - } - Project project = projectDao.selectProject(projectName); - if (!respondentDao.existRespondent(idNumber, project)) { - throw new RespondentException(ResultEnum.NOT_EXIST_RESPONDENT); - } - Respondent respondent = respondentDao.selectRespondent(idNumber, project); - Record record = recordDao.selectRecord(respondent, project, version); + public Map getRecordValues(String uuid) { + + Record record = recordDao.getRecord(uuid); if (record == null) { throw new RecordException(ResultEnum.NOT_EXIST_RECORD); } @@ -317,29 +205,17 @@ public class RecordServiceImpl implements RecordService { @Override public void deleteRecord(DeleteRecordDTO deleteRecordDTO) { - if (!userDao.existUser(deleteRecordDTO.getUserPhone())) { + if (!userDao.existUser(deleteRecordDTO.getPhone())) { throw new UserException(ResultEnum.NOT_EXIST_USER); } - User user = userDao.selectUser(deleteRecordDTO.getUserPhone()); - if (!projectDao.existProject(deleteRecordDTO.getProjectName())) { - throw new ProjectException(ResultEnum.NOT_EXIST_PROJECT); - } - Project project = projectDao.selectProject(deleteRecordDTO.getProjectName()); - if (!respondentDao.existRespondent(deleteRecordDTO.getIdNumber(), project)) { - throw new RespondentException(ResultEnum.NOT_EXIST_RESPONDENT); - } - Respondent respondent = respondentDao.selectRespondent(deleteRecordDTO.getIdNumber(), project); - - List stateList = new ArrayList<>(); - stateList.add(RecordStateEnum.UNDER_REVIEW.getValue()); - stateList.add(RecordStateEnum.REVIEWED.getValue()); - stateList.add(RecordStateEnum.NOT_PASS.getValue()); - Record record = recordDao.selectRecord(respondent, project, stateList); + User user = userDao.selectUser(deleteRecordDTO.getPhone()); + + Record record = recordDao.getRecord(deleteRecordDTO.getUuid()); if (record == null) { throw new RecordException(ResultEnum.NOT_EXIST_RECORD); } List operationList = record.getOperationList(); - Operation deleteOp = Operation.deleteOp(user, deleteRecordDTO.getMsg(), record.getVersion()); + Operation deleteOp = Operation.deleteOp(user, deleteRecordDTO.getMsg()); operationList.add(deleteOp); record.setOperationList(operationList); record.setState(RecordStateEnum.FILED.getValue()); @@ -347,70 +223,21 @@ public class RecordServiceImpl implements RecordService { } @Override - public void record2word(String idNumber, String projectName, HttpServletResponse response) { + public void record2word(String idNumber, HttpServletResponse response) { //TODO 导出为word } - @Override - public void modifyProject(ModifyProjectDTO modifyProjectDTO) { - if (!projectDao.existProject(modifyProjectDTO.getProjectName())) { - throw new ProjectException(ResultEnum.NOT_EXIST_PROJECT); - } - Project project = projectDao.selectProject(modifyProjectDTO.getProjectName()); - if(!projectDao.existProject(modifyProjectDTO.getNewProjectName())){ - throw new ProjectException(ResultEnum.NOT_EXIST_PROJECT); - } - Project newProject = projectDao.selectProject(modifyProjectDTO.getNewProjectName()); - if (!respondentDao.existRespondent(modifyProjectDTO.getIdNumber(), project)) { - throw new RespondentException(ResultEnum.NOT_EXIST_RESPONDENT); - } - Respondent respondent = respondentDao.selectRespondent(modifyProjectDTO.getIdNumber(), project); - - List states = new ArrayList<>(); - states.add(RecordStateEnum.REVIEWED.getValue()); - states.add(RecordStateEnum.UNDER_REVIEW.getValue()); - Record record = recordDao.selectRecord(respondent, project, states); - - //如果新项目已经存在调查对象则覆盖 - respondent.setId(null); - respondent.setPhone(modifyProjectDTO.getPhone()); - respondent.setName(modifyProjectDTO.getName()); - respondent.setMsg(modifyProjectDTO.getMsg()); - respondent.setGender(modifyProjectDTO.getGender()); - respondent.setAdministrativeArea(modifyProjectDTO.getAdministrativeArea()); - respondent.setProject(newProject); - if(respondentDao.existRespondent(modifyProjectDTO.getIdNumber(),newProject)){ - respondent.setId(respondentDao.selectRespondent(modifyProjectDTO.getIdNumber(), project).getId()); - } - respondentDao.saveRespondent(respondent); - - record.setRespondent(respondent); - record.setProject(project); - recordDao.saveRecord(record); - } - @Override public void modifyMetaData(ModifyMetaDataDTO modifyMetaDataDTO) { - if (!projectDao.existProject(modifyMetaDataDTO.getProjectName())) { - throw new ProjectException(ResultEnum.NOT_EXIST_PROJECT); - } - Project project = projectDao.selectProject(modifyMetaDataDTO.getProjectName()); + if (!metaDataDao.existMetaData(modifyMetaDataDTO.getMetaDataName())) { throw new MetaDataException(ResultEnum.NOT_EXIST_METADATA); } MetaData metaData = metaDataDao.selectMetaData(modifyMetaDataDTO.getMetaDataName()); - if (!respondentDao.existRespondent(modifyMetaDataDTO.getIdNumber(), project)) { - throw new RespondentException(ResultEnum.NOT_EXIST_RESPONDENT); - } - Respondent respondent = respondentDao.selectRespondent(modifyMetaDataDTO.getIdNumber(), project); - - List states = new ArrayList<>(); - states.add(RecordStateEnum.REVIEWED.getValue()); - states.add(RecordStateEnum.UNDER_REVIEW.getValue()); - Record record = recordDao.selectRecord(respondent, project, states); + + Record record = recordDao.getRecord(modifyMetaDataDTO.getUuid()); record.setMetaData(metaData); recordDao.saveRecord(record); } - } diff --git a/src/main/java/com/example/survey/service/impl/RespondentServiceImpl.java b/src/main/java/com/example/survey/service/impl/RespondentServiceImpl.java deleted file mode 100644 index 433563a..0000000 --- a/src/main/java/com/example/survey/service/impl/RespondentServiceImpl.java +++ /dev/null @@ -1,175 +0,0 @@ -package com.example.survey.service.impl; - -import com.example.survey.dao.ProjectDao; -import com.example.survey.dao.RespondentDao; -import com.example.survey.dao.UserDao; -import com.example.survey.dto.respondent.CreateRespondentDTO; -import com.example.survey.dto.respondent.DeleteRespondentDTO; -import com.example.survey.dto.respondent.ModifyRespondentDTO; -import com.example.survey.dto.respondent.ModifyRespondentUserDTO; -import com.example.survey.entity.Project; -import com.example.survey.entity.Respondent; -import com.example.survey.entity.User; -import com.example.survey.enumeration.RespondentStateEnum; -import com.example.survey.enumeration.ResultEnum; -import com.example.survey.exception.ProjectException; -import com.example.survey.exception.RespondentException; -import com.example.survey.exception.UserException; -import com.example.survey.service.RespondentService; -import com.example.survey.vo.RespondentVO; -import com.example.survey.vo.inner.UserInfo; -import lombok.extern.log4j.Log4j2; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.ArrayList; -import java.util.List; -import java.util.stream.Collectors; - -/** - * @author Pope - */ -@Log4j2 -@Service -public class RespondentServiceImpl implements RespondentService { - - @Autowired - private RespondentDao respondentDao; - - @Autowired - private ProjectDao projectDao; - - @Autowired - private UserDao userDao; - - @Override - public void createRespondent(CreateRespondentDTO createRespondentDTO) { - if (!projectDao.existProject(createRespondentDTO.getProjectName())) { - throw new ProjectException(ResultEnum.NOT_EXIST_PROJECT); - } - if (!userDao.existUser(createRespondentDTO.getUserPhone())) { - throw new UserException(ResultEnum.NOT_EXIST_USER); - } - Project project = projectDao.selectProject(createRespondentDTO.getProjectName()); - User user = userDao.selectUser(createRespondentDTO.getPhone()); - - Respondent respondent = new Respondent(); - respondent.setIdNumber(createRespondentDTO.getIdNumber()); - respondent.setPhone(createRespondentDTO.getPhone()); - respondent.setName(createRespondentDTO.getName()); - respondent.setGender(createRespondentDTO.getGender()); - respondent.setMsg(createRespondentDTO.getMsg()); - respondent.setAdministrativeArea(createRespondentDTO.getAdministrativeArea()); - respondent.setProject(project); - respondent.setUser(user); - respondent.setState(RespondentStateEnum.NOT_INVESTIGATED.getValue()); - respondentDao.saveRespondent(respondent); - - project.setRespondentCount(project.getRespondentCount() + 1); - project.setNotInvestigatedRespondentCount(project.getNotInvestigatedRespondentCount() + 1); - projectDao.saveProject(project); - } - - @Override - public List listRespondentLimit(String userPhone, String state, String idNumber, String name, String phone, String province, String city, String county, String projectName, int currentPage, int pageSize) { - if (userPhone != null && !userDao.existUser(userPhone)) { - throw new UserException(ResultEnum.NOT_EXIST_USER); - } - if (projectName != null && !projectDao.existProject(projectName)) { - throw new ProjectException(ResultEnum.NOT_EXIST_PROJECT); - } - User tmpUser = userDao.selectUser(userPhone); - Project tmpProject = projectDao.selectProject(projectName); - - List respondentList = respondentDao.listRespondentLimit(tmpUser, state, idNumber, name, phone, province, city, county, tmpProject, currentPage * pageSize, pageSize); - if (respondentList == null) { - return new ArrayList<>(); - } - return respondentList.stream().map(respondent -> { - RespondentVO respondentVO = new RespondentVO(); - respondentVO.setIdNumber(respondent.getIdNumber()); - respondentVO.setPhone(respondent.getPhone()); - respondentVO.setName(respondent.getName()); - respondentVO.setMsg(respondent.getMsg()); - respondentVO.setGender(respondent.getGender()); - respondentVO.setAdministrativeArea(respondent.getAdministrativeArea()); - respondentVO.setProjectName(respondent.getProject().getName()); - respondentVO.setState(respondent.getState()); - User user = respondent.getUser(); - if (user != null) { - UserInfo userInfo = new UserInfo(); - userInfo.setIdNumber(user.getIdNumber()); - userInfo.setUsername(user.getUsername()); - userInfo.setPhone(user.getPhone()); - respondentVO.setUserInfo(userInfo); - } - return respondentVO; - }).collect(Collectors.toList()); - } - - @Override - public long countRespondent(String userPhone, String state, String idNumber, String name, String phone, String province, String city, String county, String projectName) { - if (userPhone != null && !userDao.existUser(userPhone)) { - throw new UserException(ResultEnum.NOT_EXIST_USER); - } - if (projectName != null && !projectDao.existProject(projectName)) { - throw new ProjectException(ResultEnum.NOT_EXIST_PROJECT); - } - User user = userDao.selectUser(userPhone); - Project project = projectDao.selectProject(projectName); - return respondentDao.countRespondent(user, state, idNumber, name, phone, province, city, county, project); - } - - @Override - public void modifyRespondent(ModifyRespondentDTO modifyRespondentDTO) { - if (!projectDao.existProject(modifyRespondentDTO.getProjectName())) { - throw new ProjectException(ResultEnum.NOT_EXIST_PROJECT); - } - Project project = projectDao.selectProject(modifyRespondentDTO.getProjectName()); - if (!respondentDao.existRespondent(modifyRespondentDTO.getIdNumber(), project)) { - throw new RespondentException(ResultEnum.NOT_EXIST_RESPONDENT); - } - Respondent respondent = respondentDao.selectRespondent(modifyRespondentDTO.getIdNumber(), project); - respondent.setPhone(modifyRespondentDTO.getPhone()); - respondent.setName(modifyRespondentDTO.getName()); - respondent.setMsg(modifyRespondentDTO.getMsg()); - respondent.setGender(modifyRespondentDTO.getGender()); - respondent.setAdministrativeArea(modifyRespondentDTO.getAdministrativeArea()); - respondentDao.saveRespondent(respondent); - } - - - @Override - public void modifyUser(ModifyRespondentUserDTO modifyRespondentUserDTO) { - if (!userDao.existUser(modifyRespondentUserDTO.getUserPhone())) { - throw new UserException(ResultEnum.NOT_EXIST_USER); - } - User user = userDao.selectUser(modifyRespondentUserDTO.getUserPhone()); - if (!projectDao.existProject(modifyRespondentUserDTO.getProjectName())) { - throw new ProjectException(ResultEnum.NOT_EXIST_PROJECT); - } - Project project = projectDao.selectProject(modifyRespondentUserDTO.getProjectName()); - if (!respondentDao.existRespondent(modifyRespondentUserDTO.getIdNumber(), project)) { - throw new RespondentException(ResultEnum.NOT_EXIST_RESPONDENT); - } - Respondent respondent = respondentDao.selectRespondent(modifyRespondentUserDTO.getIdNumber(), project); - - respondent.setUser(user); - respondentDao.saveRespondent(respondent); - } - - @Override - public void deleteRespondent(DeleteRespondentDTO deleteRespondentDTO) { - if (!projectDao.existProject(deleteRespondentDTO.getProjectName())) { - throw new ProjectException(ResultEnum.NOT_EXIST_PROJECT); - } - Project project = projectDao.selectProject(deleteRespondentDTO.getProjectName()); - if (!respondentDao.existRespondent(deleteRespondentDTO.getIdNumber(), project)) { - throw new RespondentException(ResultEnum.NOT_EXIST_RESPONDENT); - } - Respondent respondent = respondentDao.selectRespondent(deleteRespondentDTO.getIdNumber(), project); - respondent.setState(RespondentStateEnum.FILED.getValue()); - respondentDao.saveRespondent(respondent); - - } -} diff --git a/src/main/java/com/example/survey/util/WordUtil.java b/src/main/java/com/example/survey/util/WordUtil.java index 85fddbc..610cd5e 100644 --- a/src/main/java/com/example/survey/util/WordUtil.java +++ b/src/main/java/com/example/survey/util/WordUtil.java @@ -57,7 +57,7 @@ public class WordUtil { public static void export2Word(HttpServletResponse response, MetaData metaData, Record record){ Map values = record.getValues(); - String templatePath = metaData.getWordTemplate(); + // String templatePath = metaData.getWordTemplate(); for (Map.Entry entry : metaData.getForm().entrySet()) { } diff --git a/src/main/java/com/example/survey/vo/MetaDataVO.java b/src/main/java/com/example/survey/vo/MetaDataVO.java index 5ae48dd..da01523 100644 --- a/src/main/java/com/example/survey/vo/MetaDataVO.java +++ b/src/main/java/com/example/survey/vo/MetaDataVO.java @@ -13,6 +13,7 @@ import java.util.Map; public class MetaDataVO { private String name; private Map form; - private List fieldToNameList; - private Map config; + private String type; + // private List fieldToNameList; + // private Map config; } diff --git a/src/main/java/com/example/survey/vo/ProjectVO.java b/src/main/java/com/example/survey/vo/ProjectVO.java index f94fbec..0f7e20d 100644 --- a/src/main/java/com/example/survey/vo/ProjectVO.java +++ b/src/main/java/com/example/survey/vo/ProjectVO.java @@ -2,6 +2,8 @@ package com.example.survey.vo; import com.example.survey.entity.MetaData; import com.example.survey.entity.Respondent; +import com.fasterxml.jackson.annotation.JsonFormat; + import lombok.Data; import org.springframework.data.mongodb.core.index.Indexed; import org.springframework.data.mongodb.core.mapping.DBRef; @@ -19,33 +21,7 @@ public class ProjectVO { */ private String name; - /** - * 描述信息 - */ - private String detail; + private long date; - /** - * 元数据 - */ - private String metaDataName; - - /** - * 开始时间 - */ - private Date startTime; - - /** - * 结束时间 - */ - private Date endTime; - - /** - * 负责人姓名 - */ - private String username; - - /** - * 状态 - */ - private String state; + private long count; } diff --git a/src/main/java/com/example/survey/vo/RecordVO.java b/src/main/java/com/example/survey/vo/RecordVO.java index e9d3661..252396e 100644 --- a/src/main/java/com/example/survey/vo/RecordVO.java +++ b/src/main/java/com/example/survey/vo/RecordVO.java @@ -14,15 +14,15 @@ public class RecordVO { private String idNumber; - private String userPhone; + private List projectList; - private String projectName; + private String template; + + private String uuid; + + private long submitTime; private List operationInfoList; - private String version; - private String state; - - } diff --git a/src/main/java/com/example/survey/vo/inner/OperationInfo.java b/src/main/java/com/example/survey/vo/inner/OperationInfo.java index 122712c..0e45d41 100644 --- a/src/main/java/com/example/survey/vo/inner/OperationInfo.java +++ b/src/main/java/com/example/survey/vo/inner/OperationInfo.java @@ -4,6 +4,8 @@ import lombok.Data; import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + /** * @author Pope */ @@ -17,17 +19,15 @@ public class OperationInfo { /** * 时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date time; /** * 操作者 */ - private String userPhone; + private String personId; - /** - * 版本信息 - */ - private String version; + private String personName; /** * 备注