修改了记录表结构
This commit is contained in:
parent
29a94e1a64
commit
3eff075762
@ -1,9 +1,6 @@
|
|||||||
package com.example.survey.controller;
|
package com.example.survey.controller;
|
||||||
|
|
||||||
import com.example.survey.dto.record.DeleteRecordDTO;
|
import com.example.survey.dto.record.*;
|
||||||
import com.example.survey.dto.record.ModifyRecordDTO;
|
|
||||||
import com.example.survey.dto.record.ReviewRecordDTO;
|
|
||||||
import com.example.survey.dto.record.SubmitRecordDTO;
|
|
||||||
import com.example.survey.enumeration.ResultEnum;
|
import com.example.survey.enumeration.ResultEnum;
|
||||||
import com.example.survey.service.RecordService;
|
import com.example.survey.service.RecordService;
|
||||||
import com.example.survey.vo.ResultVO;
|
import com.example.survey.vo.ResultVO;
|
||||||
@ -104,6 +101,17 @@ public class RecordController {
|
|||||||
recordService.record2word(idNumber,projectName,response);
|
recordService.record2word(idNumber,projectName,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){
|
||||||
|
recordService.modifyMetaData(modifyMetaDataDTO);
|
||||||
|
return new ResultVO(ResultEnum.SUCCESS);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -76,6 +76,16 @@ public interface RecordDao {
|
|||||||
*/
|
*/
|
||||||
Record selectRecord(Respondent respondent, Project project, String version);
|
Record selectRecord(Respondent respondent, Project project, String version);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据筛选条件查询流调记录
|
||||||
|
*
|
||||||
|
* @param respondent 调查对象
|
||||||
|
* @param project 项目
|
||||||
|
* @param states 记录状态
|
||||||
|
* @return 流调记录
|
||||||
|
*/
|
||||||
|
Record selectRecord(Respondent respondent, Project project, List<String> states);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询流调记录列表
|
* 查询流调记录列表
|
||||||
*
|
*
|
||||||
|
@ -112,7 +112,6 @@ public class RecordDaoImpl implements RecordDao {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Record selectRecord(Respondent respondent, Project project, String version) {
|
public Record selectRecord(Respondent respondent, Project project, String version) {
|
||||||
|
|
||||||
Criteria criteria = Criteria
|
Criteria criteria = Criteria
|
||||||
.where("respondent.$id").is(respondent.getId())
|
.where("respondent.$id").is(respondent.getId())
|
||||||
.and("project.$id").is(project.getId());
|
.and("project.$id").is(project.getId());
|
||||||
@ -123,6 +122,16 @@ public class RecordDaoImpl implements RecordDao {
|
|||||||
return mongoTemplate.findOne(query, Record.class);
|
return mongoTemplate.findOne(query, Record.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Record selectRecord(Respondent respondent, Project project, List<String> 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
|
@Override
|
||||||
public List<Record> listRecord(Project project, Respondent respondent) {
|
public List<Record> listRecord(Project project, Respondent respondent) {
|
||||||
|
|
||||||
|
@ -0,0 +1,16 @@
|
|||||||
|
package com.example.survey.dto.record;
|
||||||
|
|
||||||
|
import com.example.survey.entity.inner.AdministrativeArea;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Pope
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class ModifyMetaDataDTO {
|
||||||
|
private String idNumber;
|
||||||
|
|
||||||
|
private String projectName;
|
||||||
|
|
||||||
|
private String metaDataName;
|
||||||
|
}
|
@ -0,0 +1,19 @@
|
|||||||
|
package com.example.survey.dto.record;
|
||||||
|
|
||||||
|
import com.example.survey.entity.inner.AdministrativeArea;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Pope
|
||||||
|
*/
|
||||||
|
@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;
|
||||||
|
}
|
@ -21,6 +21,8 @@ public class SubmitRecordDTO {
|
|||||||
|
|
||||||
private String msg;
|
private String msg;
|
||||||
|
|
||||||
|
private String metaDataName;
|
||||||
|
|
||||||
private String projectName;
|
private String projectName;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -34,12 +34,6 @@ public class Project {
|
|||||||
*/
|
*/
|
||||||
private String detail;
|
private String detail;
|
||||||
|
|
||||||
/**
|
|
||||||
* 元数据
|
|
||||||
*/
|
|
||||||
@DBRef
|
|
||||||
private MetaData metaData;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 调查对象数量
|
* 调查对象数量
|
||||||
*/
|
*/
|
||||||
|
@ -59,5 +59,8 @@ public class Record {
|
|||||||
@DBRef
|
@DBRef
|
||||||
private Project project;
|
private Project project;
|
||||||
|
|
||||||
|
@DBRef
|
||||||
|
private MetaData metaData;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
package com.example.survey.service;
|
package com.example.survey.service;
|
||||||
|
|
||||||
import com.example.survey.dto.record.DeleteRecordDTO;
|
import com.example.survey.dto.record.*;
|
||||||
import com.example.survey.dto.record.ModifyRecordDTO;
|
|
||||||
import com.example.survey.dto.record.ReviewRecordDTO;
|
|
||||||
import com.example.survey.dto.record.SubmitRecordDTO;
|
|
||||||
import com.example.survey.vo.RecordVO;
|
import com.example.survey.vo.RecordVO;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
@ -108,4 +105,18 @@ public interface RecordService {
|
|||||||
* @param response 响应
|
* @param response 响应
|
||||||
*/
|
*/
|
||||||
void record2word(String idNumber, String projectName, HttpServletResponse response);
|
void record2word(String idNumber, String projectName, HttpServletResponse response);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改流调记录对应项目
|
||||||
|
*
|
||||||
|
* @param modifyProjectDTO 修改信息
|
||||||
|
*/
|
||||||
|
void modifyProject(ModifyProjectDTO modifyProjectDTO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改流调记录所绑定元数据
|
||||||
|
*
|
||||||
|
* @param modifyMetaDataDTO 修改信息
|
||||||
|
*/
|
||||||
|
void modifyMetaData(ModifyMetaDataDTO modifyMetaDataDTO);
|
||||||
}
|
}
|
||||||
|
@ -1,17 +1,8 @@
|
|||||||
package com.example.survey.service.impl;
|
package com.example.survey.service.impl;
|
||||||
|
|
||||||
import com.example.survey.dao.ProjectDao;
|
import com.example.survey.dao.*;
|
||||||
import com.example.survey.dao.RecordDao;
|
import com.example.survey.dto.record.*;
|
||||||
import com.example.survey.dao.RespondentDao;
|
import com.example.survey.entity.*;
|
||||||
import com.example.survey.dao.UserDao;
|
|
||||||
import com.example.survey.dto.record.DeleteRecordDTO;
|
|
||||||
import com.example.survey.dto.record.ModifyRecordDTO;
|
|
||||||
import com.example.survey.dto.record.ReviewRecordDTO;
|
|
||||||
import com.example.survey.dto.record.SubmitRecordDTO;
|
|
||||||
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.entity.inner.Operation;
|
import com.example.survey.entity.inner.Operation;
|
||||||
import com.example.survey.enumeration.RecordStateEnum;
|
import com.example.survey.enumeration.RecordStateEnum;
|
||||||
import com.example.survey.enumeration.RespondentStateEnum;
|
import com.example.survey.enumeration.RespondentStateEnum;
|
||||||
@ -55,6 +46,9 @@ public class RecordServiceImpl implements RecordService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private ProjectDao projectDao;
|
private ProjectDao projectDao;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private MetaDataDao metaDataDao;
|
||||||
|
|
||||||
@Value("${file.path}")
|
@Value("${file.path}")
|
||||||
private String path;
|
private String path;
|
||||||
|
|
||||||
@ -80,22 +74,20 @@ public class RecordServiceImpl implements RecordService {
|
|||||||
throw new UserException(ResultEnum.NOT_EXIST_USER);
|
throw new UserException(ResultEnum.NOT_EXIST_USER);
|
||||||
}
|
}
|
||||||
User user = userDao.selectUser(reviewRecordDTO.getReviewerPhone());
|
User user = userDao.selectUser(reviewRecordDTO.getReviewerPhone());
|
||||||
|
|
||||||
if (!projectDao.existProject(reviewRecordDTO.getProjectName())) {
|
if (!projectDao.existProject(reviewRecordDTO.getProjectName())) {
|
||||||
throw new ProjectException(ResultEnum.NOT_EXIST_PROJECT);
|
throw new ProjectException(ResultEnum.NOT_EXIST_PROJECT);
|
||||||
}
|
}
|
||||||
Project project = projectDao.selectProject(reviewRecordDTO.getProjectName());
|
Project project = projectDao.selectProject(reviewRecordDTO.getProjectName());
|
||||||
|
|
||||||
if (!respondentDao.existRespondent(reviewRecordDTO.getIdNumber(), project, RespondentStateEnum.INVESTIGATED.getValue())) {
|
if (!respondentDao.existRespondent(reviewRecordDTO.getIdNumber(), project, RespondentStateEnum.INVESTIGATED.getValue())) {
|
||||||
throw new RespondentException(ResultEnum.NOT_EXIST_RESPONDENT);
|
throw new RespondentException(ResultEnum.NOT_EXIST_RESPONDENT);
|
||||||
}
|
}
|
||||||
Respondent respondent = respondentDao.selectRespondent(reviewRecordDTO.getIdNumber(), project);
|
Respondent respondent = respondentDao.selectRespondent(reviewRecordDTO.getIdNumber(), project);
|
||||||
|
|
||||||
if (!recordDao.existRecord(respondent, project, RecordStateEnum.UNDER_REVIEW.getValue())) {
|
if (!recordDao.existRecord(respondent, project, RecordStateEnum.UNDER_REVIEW.getValue())) {
|
||||||
throw new RecordException(ResultEnum.NOT_EXIST_RECORD);
|
throw new RecordException(ResultEnum.NOT_EXIST_RECORD);
|
||||||
}
|
}
|
||||||
Record record = recordDao.getRecord(respondent, project, RecordStateEnum.UNDER_REVIEW.getValue());
|
Record record = recordDao.getRecord(respondent, project, RecordStateEnum.UNDER_REVIEW.getValue());
|
||||||
|
|
||||||
|
|
||||||
record.setState(reviewRecordDTO.getPass() ? RecordStateEnum.REVIEWED.getValue() : RecordStateEnum.NOT_PASS.getValue());
|
record.setState(reviewRecordDTO.getPass() ? RecordStateEnum.REVIEWED.getValue() : RecordStateEnum.NOT_PASS.getValue());
|
||||||
record.setVersion(UUID.randomUUID().toString());
|
record.setVersion(UUID.randomUUID().toString());
|
||||||
Operation reviewOp = Operation.reviewOp(user, reviewRecordDTO.getMsg(), record.getVersion(), reviewRecordDTO.getPass());
|
Operation reviewOp = Operation.reviewOp(user, reviewRecordDTO.getMsg(), record.getVersion(), reviewRecordDTO.getPass());
|
||||||
@ -112,41 +104,44 @@ public class RecordServiceImpl implements RecordService {
|
|||||||
throw new UserException(ResultEnum.NOT_EXIST_USER);
|
throw new UserException(ResultEnum.NOT_EXIST_USER);
|
||||||
}
|
}
|
||||||
User user = userDao.selectUser(modifyRecordDTO.getUserPhone());
|
User user = userDao.selectUser(modifyRecordDTO.getUserPhone());
|
||||||
|
|
||||||
if (!projectDao.existProject(modifyRecordDTO.getProjectName())) {
|
if (!projectDao.existProject(modifyRecordDTO.getProjectName())) {
|
||||||
throw new ProjectException(ResultEnum.NOT_EXIST_PROJECT);
|
throw new ProjectException(ResultEnum.NOT_EXIST_PROJECT);
|
||||||
}
|
}
|
||||||
Project project = projectDao.selectProject(modifyRecordDTO.getProjectName());
|
Project project = projectDao.selectProject(modifyRecordDTO.getProjectName());
|
||||||
|
|
||||||
if (!respondentDao.existRespondent(modifyRecordDTO.getIdNumber(), project, RespondentStateEnum.INVESTIGATED.getValue())) {
|
if (!respondentDao.existRespondent(modifyRecordDTO.getIdNumber(), project, RespondentStateEnum.INVESTIGATED.getValue())) {
|
||||||
throw new RespondentException(ResultEnum.NOT_EXIST_RESPONDENT);
|
throw new RespondentException(ResultEnum.NOT_EXIST_RESPONDENT);
|
||||||
}
|
}
|
||||||
Respondent respondent = respondentDao.selectRespondent(modifyRecordDTO.getIdNumber(), project);
|
Respondent respondent = respondentDao.selectRespondent(modifyRecordDTO.getIdNumber(), project);
|
||||||
List<Record> recordList = recordDao.listRecord(project, respondent);
|
|
||||||
if (recordList == null) {
|
List<String> stateList = new ArrayList<>();
|
||||||
|
stateList.add(RecordStateEnum.UNDER_REVIEW.getValue());
|
||||||
|
stateList.add(RecordStateEnum.REVIEWED.getValue());
|
||||||
|
Record record = recordDao.selectRecord(respondent, project, stateList);
|
||||||
|
if (record == null) {
|
||||||
throw new RecordException(ResultEnum.NOT_EXIST_RECORD);
|
throw new RecordException(ResultEnum.NOT_EXIST_RECORD);
|
||||||
}
|
}
|
||||||
recordList.forEach(record -> {
|
|
||||||
//将原来的设为已归档 添加覆盖操作
|
|
||||||
record.setState(RecordStateEnum.FILED.getValue());
|
|
||||||
Operation coverOp = Operation.coverOp(user, record.getVersion());
|
|
||||||
List<Operation> oldOpList = record.getOperationList();
|
|
||||||
List<Operation> newOpList = record.getOperationList();
|
|
||||||
oldOpList.add(coverOp);
|
|
||||||
record.setOperationList(oldOpList);
|
|
||||||
record.setVersion(UUID.randomUUID().toString());
|
|
||||||
recordDao.saveRecord(record);
|
|
||||||
|
|
||||||
//生成新的流调记录
|
String newVersion = UUID.randomUUID().toString();
|
||||||
record.setId(null);
|
List<Operation> oldOperationList = record.getOperationList();
|
||||||
record.setValues(modifyRecordDTO.getValues());
|
List<Operation> newOperationList = record.getOperationList();
|
||||||
record.setState(RecordStateEnum.UNDER_REVIEW.getValue());
|
|
||||||
Operation modifyOp = Operation.modifyOp(user, modifyRecordDTO.getMsg(), record.getVersion());
|
Operation coverOp = Operation.coverOp(user, newVersion);
|
||||||
newOpList.add(modifyOp);
|
oldOperationList.add(coverOp);
|
||||||
record.setOperationList(newOpList);
|
|
||||||
record.setVersion(UUID.randomUUID().toString());
|
Operation modifyOp = Operation.modifyOp(user, modifyRecordDTO.getMsg(), newVersion);
|
||||||
recordDao.saveRecord(record);
|
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.setState(RecordStateEnum.UNDER_REVIEW.getValue());
|
||||||
|
|
||||||
|
recordDao.saveRecord(record);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -159,6 +154,10 @@ public class RecordServiceImpl implements RecordService {
|
|||||||
throw new ProjectException(ResultEnum.NOT_EXIST_PROJECT);
|
throw new ProjectException(ResultEnum.NOT_EXIST_PROJECT);
|
||||||
}
|
}
|
||||||
Project project = projectDao.selectProject(submitRecordDTO.getProjectName());
|
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)) {
|
if (!respondentDao.existRespondent(submitRecordDTO.getIdNumber(), project)) {
|
||||||
throw new RespondentException(ResultEnum.NOT_EXIST_RESPONDENT);
|
throw new RespondentException(ResultEnum.NOT_EXIST_RESPONDENT);
|
||||||
}
|
}
|
||||||
@ -167,42 +166,36 @@ public class RecordServiceImpl implements RecordService {
|
|||||||
respondent.setState(RespondentStateEnum.INVESTIGATED.getValue());
|
respondent.setState(RespondentStateEnum.INVESTIGATED.getValue());
|
||||||
respondentDao.saveRespondent(respondent);
|
respondentDao.saveRespondent(respondent);
|
||||||
|
|
||||||
Record record = recordDao.getRecord(respondent, project, RecordStateEnum.UNDER_REVIEW.getValue());
|
List<String> stateList = new ArrayList<>();
|
||||||
if (record == null) {
|
stateList.add(RecordStateEnum.UNDER_REVIEW.getValue());
|
||||||
record = recordDao.getRecord(respondent, project, RecordStateEnum.REVIEWED.getValue());
|
stateList.add(RecordStateEnum.REVIEWED.getValue());
|
||||||
}
|
Record record = recordDao.selectRecord(respondent, project, stateList);
|
||||||
if (record != null) {
|
|
||||||
//存在旧纪录,覆盖
|
|
||||||
List<Operation> oldOpList = record.getOperationList();
|
|
||||||
List<Operation> newOpList = record.getOperationList();
|
|
||||||
record.setState(RecordStateEnum.FILED.getValue());
|
|
||||||
Operation coverOp = Operation.coverOp(user, record.getVersion());
|
|
||||||
oldOpList.add(coverOp);
|
|
||||||
record.setOperationList(oldOpList);
|
|
||||||
record.setVersion(UUID.randomUUID().toString());
|
|
||||||
recordDao.saveRecord(record);
|
|
||||||
|
|
||||||
//插入新记录
|
String newVersion = UUID.randomUUID().toString();
|
||||||
record.setId(null);
|
List<Operation> oldOperationList = new ArrayList<>();
|
||||||
record.setValues(submitRecordDTO.getValues());
|
List<Operation> newOperationList = new ArrayList<>();
|
||||||
record.setState(RecordStateEnum.UNDER_REVIEW.getValue());
|
|
||||||
Operation submitOp = Operation.submitOp(user, submitRecordDTO.getMsg(), record.getVersion());
|
if (record != null) {
|
||||||
newOpList.add(submitOp);
|
oldOperationList = record.getOperationList();
|
||||||
record.setOperationList(newOpList);
|
newOperationList = record.getOperationList();
|
||||||
record.setVersion(UUID.randomUUID().toString());
|
Operation coverOp = Operation.coverOp(user, newVersion);
|
||||||
|
oldOperationList.add(coverOp);
|
||||||
|
record.setOperationList(oldOperationList);
|
||||||
|
record.setState(RecordStateEnum.FILED.getValue());
|
||||||
|
recordDao.saveRecord(record);
|
||||||
} else {
|
} else {
|
||||||
record = new Record();
|
record = new Record();
|
||||||
record.setRespondent(respondent);
|
|
||||||
record.setUser(user);
|
|
||||||
record.setValues(submitRecordDTO.getValues());
|
|
||||||
record.setState(RecordStateEnum.UNDER_REVIEW.getValue());
|
|
||||||
record.setVersion(UUID.randomUUID().toString());
|
|
||||||
List<Operation> opList = new ArrayList<>();
|
|
||||||
Operation submitOp = Operation.submitOp(user, submitRecordDTO.getMsg(), record.getVersion());
|
|
||||||
opList.add(submitOp);
|
|
||||||
record.setOperationList(opList);
|
|
||||||
record.setProject(project);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
record.setProject(project);
|
||||||
|
record.setUser(user);
|
||||||
|
record.setValues(submitRecordDTO.getValues());
|
||||||
|
Operation submitOp = Operation.submitOp(user, submitRecordDTO.getMsg(), newVersion);
|
||||||
|
newOperationList.add(submitOp);
|
||||||
|
record.setOperationList(newOperationList);
|
||||||
|
record.setState(RecordStateEnum.UNDER_REVIEW.getValue());
|
||||||
|
record.setMetaData(metaData);
|
||||||
|
record.setVersion(newVersion);
|
||||||
recordDao.saveRecord(record);
|
recordDao.saveRecord(record);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -337,37 +330,86 @@ public class RecordServiceImpl implements RecordService {
|
|||||||
}
|
}
|
||||||
Respondent respondent = respondentDao.selectRespondent(deleteRecordDTO.getIdNumber(), project);
|
Respondent respondent = respondentDao.selectRespondent(deleteRecordDTO.getIdNumber(), project);
|
||||||
|
|
||||||
List<Record> recordList = recordDao.listRecord(project, respondent);
|
List<String> stateList = new ArrayList<>();
|
||||||
recordList.forEach(record -> {
|
stateList.add(RecordStateEnum.UNDER_REVIEW.getValue());
|
||||||
String version = UUID.randomUUID().toString();
|
stateList.add(RecordStateEnum.REVIEWED.getValue());
|
||||||
record.setVersion(version);
|
stateList.add(RecordStateEnum.NOT_PASS.getValue());
|
||||||
Operation operation = Operation.deleteOp(user, deleteRecordDTO.getMsg(), version);
|
Record record = recordDao.selectRecord(respondent, project, stateList);
|
||||||
List<Operation> operationList = record.getOperationList();
|
if (record == null) {
|
||||||
operationList.add(operation);
|
throw new RecordException(ResultEnum.NOT_EXIST_RECORD);
|
||||||
record.setOperationList(operationList);
|
}
|
||||||
recordDao.saveRecord(record);
|
List<Operation> operationList = record.getOperationList();
|
||||||
});
|
Operation deleteOp = Operation.deleteOp(user, deleteRecordDTO.getMsg(), record.getVersion());
|
||||||
|
operationList.add(deleteOp);
|
||||||
|
record.setOperationList(operationList);
|
||||||
|
record.setState(RecordStateEnum.FILED.getValue());
|
||||||
|
recordDao.saveRecord(record);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void record2word(String idNumber, String projectName, HttpServletResponse response) {
|
public void record2word(String idNumber, String projectName, HttpServletResponse response) {
|
||||||
if (!projectDao.existProject(projectName)) {
|
//TODO 导出为word
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void modifyProject(ModifyProjectDTO modifyProjectDTO) {
|
||||||
|
if (!projectDao.existProject(modifyProjectDTO.getProjectName())) {
|
||||||
throw new ProjectException(ResultEnum.NOT_EXIST_PROJECT);
|
throw new ProjectException(ResultEnum.NOT_EXIST_PROJECT);
|
||||||
}
|
}
|
||||||
Project project = projectDao.selectProject(projectName);
|
Project project = projectDao.selectProject(modifyProjectDTO.getProjectName());
|
||||||
if (project.getMetaData() == null || project.getMetaData().getWordTemplate() == null) {
|
if(!projectDao.existProject(modifyProjectDTO.getNewProjectName())){
|
||||||
throw new MetaDataException(ResultEnum.NOT_EXIST_METADATA);
|
throw new ProjectException(ResultEnum.NOT_EXIST_PROJECT);
|
||||||
}
|
}
|
||||||
if (!respondentDao.existRespondent(idNumber, project)) {
|
Project newProject = projectDao.selectProject(modifyProjectDTO.getNewProjectName());
|
||||||
|
if (!respondentDao.existRespondent(modifyProjectDTO.getIdNumber(), project)) {
|
||||||
throw new RespondentException(ResultEnum.NOT_EXIST_RESPONDENT);
|
throw new RespondentException(ResultEnum.NOT_EXIST_RESPONDENT);
|
||||||
}
|
}
|
||||||
Respondent respondent = respondentDao.selectRespondent(idNumber, project);
|
Respondent respondent = respondentDao.selectRespondent(modifyProjectDTO.getIdNumber(), project);
|
||||||
Record record = recordDao.getRecord(respondent, project, RecordStateEnum.REVIEWED.getValue());
|
|
||||||
if (record == null) {
|
List<String> states = new ArrayList<>();
|
||||||
throw new RecordException(ResultEnum.NOT_EXIST_RECORD);
|
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());
|
||||||
}
|
}
|
||||||
Map<String, Object> values = record.getValues();
|
respondentDao.saveRespondent(respondent);
|
||||||
WordUtil.export2word(response, values, "E:\\wordTemplate.docx");
|
|
||||||
|
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<String> states = new ArrayList<>();
|
||||||
|
states.add(RecordStateEnum.REVIEWED.getValue());
|
||||||
|
states.add(RecordStateEnum.UNDER_REVIEW.getValue());
|
||||||
|
Record record = recordDao.selectRecord(respondent, project, states);
|
||||||
|
record.setMetaData(metaData);
|
||||||
|
recordDao.saveRecord(record);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -4,13 +4,13 @@ import com.deepoove.poi.XWPFTemplate;
|
|||||||
import com.deepoove.poi.config.Configure;
|
import com.deepoove.poi.config.Configure;
|
||||||
import com.deepoove.poi.config.ConfigureBuilder;
|
import com.deepoove.poi.config.ConfigureBuilder;
|
||||||
import com.deepoove.poi.policy.HackLoopTableRenderPolicy;
|
import com.deepoove.poi.policy.HackLoopTableRenderPolicy;
|
||||||
|
import com.example.survey.entity.MetaData;
|
||||||
|
import com.example.survey.entity.Record;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.io.BufferedOutputStream;
|
import java.io.BufferedOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.List;
|
import java.util.*;
|
||||||
import java.util.Map;
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Pope
|
* @author Pope
|
||||||
@ -54,4 +54,28 @@ public class WordUtil {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void export2Word(HttpServletResponse response, MetaData metaData, Record record){
|
||||||
|
Map<String, Object> values = record.getValues();
|
||||||
|
String templatePath = metaData.getWordTemplate();
|
||||||
|
for (Map.Entry<String, Object> entry : metaData.getForm().entrySet()) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void handleText(){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void handleDate(){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void handleList(){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user