修改了记录表结构
This commit is contained in:
		
							parent
							
								
									29a94e1a64
								
							
						
					
					
						commit
						3eff075762
					
				@ -1,9 +1,6 @@
 | 
			
		||||
package com.example.survey.controller;
 | 
			
		||||
 | 
			
		||||
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.dto.record.*;
 | 
			
		||||
import com.example.survey.enumeration.ResultEnum;
 | 
			
		||||
import com.example.survey.service.RecordService;
 | 
			
		||||
import com.example.survey.vo.ResultVO;
 | 
			
		||||
@ -104,6 +101,17 @@ public class RecordController {
 | 
			
		||||
        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);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 根据筛选条件查询流调记录
 | 
			
		||||
     *
 | 
			
		||||
     * @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
 | 
			
		||||
    public Record selectRecord(Respondent respondent, Project project, String version) {
 | 
			
		||||
 | 
			
		||||
        Criteria criteria = Criteria
 | 
			
		||||
                .where("respondent.$id").is(respondent.getId())
 | 
			
		||||
                .and("project.$id").is(project.getId());
 | 
			
		||||
@ -123,6 +122,16 @@ public class RecordDaoImpl implements RecordDao {
 | 
			
		||||
        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
 | 
			
		||||
    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 metaDataName;
 | 
			
		||||
 | 
			
		||||
    private String projectName;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -34,12 +34,6 @@ public class Project {
 | 
			
		||||
     */
 | 
			
		||||
    private String detail;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 元数据
 | 
			
		||||
     */
 | 
			
		||||
    @DBRef
 | 
			
		||||
    private MetaData metaData;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 调查对象数量
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
@ -59,5 +59,8 @@ public class Record {
 | 
			
		||||
    @DBRef
 | 
			
		||||
    private Project project;
 | 
			
		||||
 | 
			
		||||
    @DBRef
 | 
			
		||||
    private MetaData metaData;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,9 +1,6 @@
 | 
			
		||||
package com.example.survey.service;
 | 
			
		||||
 | 
			
		||||
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.dto.record.*;
 | 
			
		||||
import com.example.survey.vo.RecordVO;
 | 
			
		||||
import org.springframework.web.multipart.MultipartFile;
 | 
			
		||||
 | 
			
		||||
@ -108,4 +105,18 @@ public interface RecordService {
 | 
			
		||||
     * @param 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;
 | 
			
		||||
 | 
			
		||||
import com.example.survey.dao.ProjectDao;
 | 
			
		||||
import com.example.survey.dao.RecordDao;
 | 
			
		||||
import com.example.survey.dao.RespondentDao;
 | 
			
		||||
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.dao.*;
 | 
			
		||||
import com.example.survey.dto.record.*;
 | 
			
		||||
import com.example.survey.entity.*;
 | 
			
		||||
import com.example.survey.entity.inner.Operation;
 | 
			
		||||
import com.example.survey.enumeration.RecordStateEnum;
 | 
			
		||||
import com.example.survey.enumeration.RespondentStateEnum;
 | 
			
		||||
@ -55,6 +46,9 @@ public class RecordServiceImpl implements RecordService {
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private ProjectDao projectDao;
 | 
			
		||||
 | 
			
		||||
    @Autowired
 | 
			
		||||
    private MetaDataDao metaDataDao;
 | 
			
		||||
 | 
			
		||||
    @Value("${file.path}")
 | 
			
		||||
    private String path;
 | 
			
		||||
 | 
			
		||||
@ -80,22 +74,20 @@ 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())) {
 | 
			
		||||
            throw new RecordException(ResultEnum.NOT_EXIST_RECORD);
 | 
			
		||||
        }
 | 
			
		||||
        Record record = recordDao.getRecord(respondent, project, RecordStateEnum.UNDER_REVIEW.getValue());
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        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());
 | 
			
		||||
@ -112,41 +104,44 @@ 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<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);
 | 
			
		||||
        }
 | 
			
		||||
        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);
 | 
			
		||||
 | 
			
		||||
            //生成新的流调记录
 | 
			
		||||
            record.setId(null);
 | 
			
		||||
            record.setValues(modifyRecordDTO.getValues());
 | 
			
		||||
            record.setState(RecordStateEnum.UNDER_REVIEW.getValue());
 | 
			
		||||
            Operation modifyOp = Operation.modifyOp(user, modifyRecordDTO.getMsg(), record.getVersion());
 | 
			
		||||
            newOpList.add(modifyOp);
 | 
			
		||||
            record.setOperationList(newOpList);
 | 
			
		||||
            record.setVersion(UUID.randomUUID().toString());
 | 
			
		||||
            recordDao.saveRecord(record);
 | 
			
		||||
        });
 | 
			
		||||
        String newVersion = UUID.randomUUID().toString();
 | 
			
		||||
        List<Operation> oldOperationList = record.getOperationList();
 | 
			
		||||
        List<Operation> 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.setState(RecordStateEnum.UNDER_REVIEW.getValue());
 | 
			
		||||
 | 
			
		||||
        recordDao.saveRecord(record);
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
@ -159,6 +154,10 @@ public class RecordServiceImpl implements RecordService {
 | 
			
		||||
            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);
 | 
			
		||||
        }
 | 
			
		||||
@ -167,42 +166,36 @@ public class RecordServiceImpl implements RecordService {
 | 
			
		||||
        respondent.setState(RespondentStateEnum.INVESTIGATED.getValue());
 | 
			
		||||
        respondentDao.saveRespondent(respondent);
 | 
			
		||||
 | 
			
		||||
        Record record = recordDao.getRecord(respondent, project, RecordStateEnum.UNDER_REVIEW.getValue());
 | 
			
		||||
        if (record == null) {
 | 
			
		||||
            record = recordDao.getRecord(respondent, project, RecordStateEnum.REVIEWED.getValue());
 | 
			
		||||
        }
 | 
			
		||||
        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);
 | 
			
		||||
        List<String> stateList = new ArrayList<>();
 | 
			
		||||
        stateList.add(RecordStateEnum.UNDER_REVIEW.getValue());
 | 
			
		||||
        stateList.add(RecordStateEnum.REVIEWED.getValue());
 | 
			
		||||
        Record record = recordDao.selectRecord(respondent, project, stateList);
 | 
			
		||||
 | 
			
		||||
            //插入新记录
 | 
			
		||||
            record.setId(null);
 | 
			
		||||
            record.setValues(submitRecordDTO.getValues());
 | 
			
		||||
            record.setState(RecordStateEnum.UNDER_REVIEW.getValue());
 | 
			
		||||
            Operation submitOp = Operation.submitOp(user, submitRecordDTO.getMsg(), record.getVersion());
 | 
			
		||||
            newOpList.add(submitOp);
 | 
			
		||||
            record.setOperationList(newOpList);
 | 
			
		||||
            record.setVersion(UUID.randomUUID().toString());
 | 
			
		||||
        String newVersion = UUID.randomUUID().toString();
 | 
			
		||||
        List<Operation> oldOperationList = new ArrayList<>();
 | 
			
		||||
        List<Operation> 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.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);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -337,37 +330,86 @@ public class RecordServiceImpl implements RecordService {
 | 
			
		||||
        }
 | 
			
		||||
        Respondent respondent = respondentDao.selectRespondent(deleteRecordDTO.getIdNumber(), project);
 | 
			
		||||
 | 
			
		||||
        List<Record> recordList = recordDao.listRecord(project, respondent);
 | 
			
		||||
        recordList.forEach(record -> {
 | 
			
		||||
            String version = UUID.randomUUID().toString();
 | 
			
		||||
            record.setVersion(version);
 | 
			
		||||
            Operation operation = Operation.deleteOp(user, deleteRecordDTO.getMsg(), version);
 | 
			
		||||
            List<Operation> operationList = record.getOperationList();
 | 
			
		||||
            operationList.add(operation);
 | 
			
		||||
            record.setOperationList(operationList);
 | 
			
		||||
            recordDao.saveRecord(record);
 | 
			
		||||
        });
 | 
			
		||||
        List<String> 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);
 | 
			
		||||
        if (record == null) {
 | 
			
		||||
            throw new RecordException(ResultEnum.NOT_EXIST_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
 | 
			
		||||
    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);
 | 
			
		||||
        }
 | 
			
		||||
        Project project = projectDao.selectProject(projectName);
 | 
			
		||||
        if (project.getMetaData() == null || project.getMetaData().getWordTemplate() == null) {
 | 
			
		||||
            throw new MetaDataException(ResultEnum.NOT_EXIST_METADATA);
 | 
			
		||||
        Project project = projectDao.selectProject(modifyProjectDTO.getProjectName());
 | 
			
		||||
        if(!projectDao.existProject(modifyProjectDTO.getNewProjectName())){
 | 
			
		||||
            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);
 | 
			
		||||
        }
 | 
			
		||||
        Respondent respondent = respondentDao.selectRespondent(idNumber, project);
 | 
			
		||||
        Record record = recordDao.getRecord(respondent, project, RecordStateEnum.REVIEWED.getValue());
 | 
			
		||||
        if (record == null) {
 | 
			
		||||
            throw new RecordException(ResultEnum.NOT_EXIST_RECORD);
 | 
			
		||||
        Respondent respondent = respondentDao.selectRespondent(modifyProjectDTO.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);
 | 
			
		||||
 | 
			
		||||
        //如果新项目已经存在调查对象则覆盖
 | 
			
		||||
        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();
 | 
			
		||||
        WordUtil.export2word(response, values, "E:\\wordTemplate.docx");
 | 
			
		||||
        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<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.ConfigureBuilder;
 | 
			
		||||
import com.deepoove.poi.policy.HackLoopTableRenderPolicy;
 | 
			
		||||
import com.example.survey.entity.MetaData;
 | 
			
		||||
import com.example.survey.entity.Record;
 | 
			
		||||
 | 
			
		||||
import javax.servlet.http.HttpServletResponse;
 | 
			
		||||
import java.io.BufferedOutputStream;
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import java.util.Map;
 | 
			
		||||
import java.util.UUID;
 | 
			
		||||
import java.util.*;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @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