diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/questionsubject/QuestionSubjectController.java b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/questionsubject/QuestionSubjectController.java new file mode 100644 index 00000000..915d4252 --- /dev/null +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/questionsubject/QuestionSubjectController.java @@ -0,0 +1,91 @@ +package com.xinelu.manage.controller.questionsubject; + +import com.xinelu.common.annotation.Log; +import com.xinelu.common.core.controller.BaseController; +import com.xinelu.common.core.domain.AjaxResult; +import com.xinelu.common.core.page.TableDataInfo; +import com.xinelu.common.enums.BusinessType; +import com.xinelu.common.utils.poi.ExcelUtil; +import com.xinelu.manage.domain.questionsubject.QuestionSubject; +import com.xinelu.manage.service.questionsubject.IQuestionSubjectService; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * 问卷题目信息Controller + * + * @author xinelu + * @date 2024-02-29 + */ +@RestController +@RequestMapping("/system/questionSubject") +public class QuestionSubjectController extends BaseController { + @Resource + private IQuestionSubjectService questionSubjectService; + + /** + * 查询问卷题目信息列表 + */ + @PreAuthorize("@ss.hasPermi('system:questionSubject:list')") + @GetMapping("/list") + public TableDataInfo list(QuestionSubject questionSubject) { + startPage(); + List list = questionSubjectService.selectQuestionSubjectList(questionSubject); + return getDataTable(list); + } + + /** + * 导出问卷题目信息列表 + */ + @PreAuthorize("@ss.hasPermi('system:questionSubject:export')") + @Log(title = "问卷题目信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, QuestionSubject questionSubject) { + List list = questionSubjectService.selectQuestionSubjectList(questionSubject); + ExcelUtil util = new ExcelUtil(QuestionSubject.class); + util.exportExcel(response, list, "问卷题目信息数据"); + } + + /** + * 获取问卷题目信息详细信息 + */ + @PreAuthorize("@ss.hasPermi('system:questionSubject:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) { + return AjaxResult.success(questionSubjectService.selectQuestionSubjectById(id)); + } + + /** + * 新增问卷题目信息 + */ + @PreAuthorize("@ss.hasPermi('system:questionSubject:add')") + @Log(title = "问卷题目信息", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody QuestionSubject questionSubject) { + return toAjax(questionSubjectService.insertQuestionSubject(questionSubject)); + } + + /** + * 修改问卷题目信息 + */ + @PreAuthorize("@ss.hasPermi('system:questionSubject:edit')") + @Log(title = "问卷题目信息", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody QuestionSubject questionSubject) { + return toAjax(questionSubjectService.updateQuestionSubject(questionSubject)); + } + + /** + * 删除问卷题目信息 + */ + @PreAuthorize("@ss.hasPermi('system:questionSubject:remove')") + @Log(title = "问卷题目信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) { + return toAjax(questionSubjectService.deleteQuestionSubjectByIds(ids)); + } +} diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/questionsubjectoption/QuestionSubjectOptionController.java b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/questionsubjectoption/QuestionSubjectOptionController.java new file mode 100644 index 00000000..4cb37d63 --- /dev/null +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/questionsubjectoption/QuestionSubjectOptionController.java @@ -0,0 +1,91 @@ +package com.xinelu.manage.controller.questionsubjectoption; + +import com.xinelu.common.annotation.Log; +import com.xinelu.common.core.controller.BaseController; +import com.xinelu.common.core.domain.AjaxResult; +import com.xinelu.common.core.page.TableDataInfo; +import com.xinelu.common.enums.BusinessType; +import com.xinelu.common.utils.poi.ExcelUtil; +import com.xinelu.manage.domain.questionsubjectoption.QuestionSubjectOption; +import com.xinelu.manage.service.questionsubjectoption.IQuestionSubjectOptionService; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * 问卷题目选项答案Controller + * + * @author xinelu + * @date 2024-02-29 + */ +@RestController +@RequestMapping("/system/questionSubjectOption") +public class QuestionSubjectOptionController extends BaseController { + @Resource + private IQuestionSubjectOptionService questionSubjectOptionService; + + /** + * 查询问卷题目选项答案列表 + */ + @PreAuthorize("@ss.hasPermi('system:questionSubjectOption:list')") + @GetMapping("/list") + public TableDataInfo list(QuestionSubjectOption questionSubjectOption) { + startPage(); + List list = questionSubjectOptionService.selectQuestionSubjectOptionList(questionSubjectOption); + return getDataTable(list); + } + + /** + * 导出问卷题目选项答案列表 + */ + @PreAuthorize("@ss.hasPermi('system:questionSubjectOption:export')") + @Log(title = "问卷题目选项答案", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, QuestionSubjectOption questionSubjectOption) { + List list = questionSubjectOptionService.selectQuestionSubjectOptionList(questionSubjectOption); + ExcelUtil util = new ExcelUtil(QuestionSubjectOption.class); + util.exportExcel(response, list, "问卷题目选项答案数据"); + } + + /** + * 获取问卷题目选项答案详细信息 + */ + @PreAuthorize("@ss.hasPermi('system:questionSubjectOption:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) { + return AjaxResult.success(questionSubjectOptionService.selectQuestionSubjectOptionById(id)); + } + + /** + * 新增问卷题目选项答案 + */ + @PreAuthorize("@ss.hasPermi('system:questionSubjectOption:add')") + @Log(title = "问卷题目选项答案", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody QuestionSubjectOption questionSubjectOption) { + return toAjax(questionSubjectOptionService.insertQuestionSubjectOption(questionSubjectOption)); + } + + /** + * 修改问卷题目选项答案 + */ + @PreAuthorize("@ss.hasPermi('system:questionSubjectOption:edit')") + @Log(title = "问卷题目选项答案", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody QuestionSubjectOption questionSubjectOption) { + return toAjax(questionSubjectOptionService.updateQuestionSubjectOption(questionSubjectOption)); + } + + /** + * 删除问卷题目选项答案 + */ + @PreAuthorize("@ss.hasPermi('system:questionSubjectOption:remove')") + @Log(title = "问卷题目选项答案", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) { + return toAjax(questionSubjectOptionService.deleteQuestionSubjectOptionByIds(ids)); + } +} diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/domain/questionsubject/QuestionSubject.java b/postdischarge-manage/src/main/java/com/xinelu/manage/domain/questionsubject/QuestionSubject.java new file mode 100644 index 00000000..c6b72674 --- /dev/null +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/domain/questionsubject/QuestionSubject.java @@ -0,0 +1,184 @@ +package com.xinelu.manage.domain.questionsubject; + +import com.xinelu.common.annotation.Excel; +import com.xinelu.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.math.BigDecimal; + +/** + * 问卷题目信息对象 question_subject + * + * @author xinelu + * @date 2024-02-29 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "问卷题目信息对象", description = "question_subject") +public class QuestionSubject extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + + /** + * 问卷表id + */ + @ApiModelProperty(value = "问卷表id") + @Excel(name = "问卷表id") + private Long questionInfoId; + + /** + * 题目序号 + */ + @ApiModelProperty(value = "题目序号") + @Excel(name = "题目序号") + private Integer questionNumber; + + /** + * 题目类型,单选题:MULTIPLE_CHOICE,多选题:MULTIPLE_CHOICE_QUESTIONS,填空题:FILL_IN_THE_BLANKS,打分题:SCORING_QUESTIONS, + * 组合单选题:COMBINATION_RADIO_SUBJECT,组合多选题:COMBINATION_MULTIPLE_SUBJECT,组合填空题:COMBINATION_BLANKS_SUBJECT, + * 组合打分题:COMBINATION_SCORING_SUBJECT,日期填空题:DATE_BLANKS_SUBJECT,时间填空题:TIME_BLANKS_SUBJECT + */ + @ApiModelProperty(value = "题目类型,单选题:MULTIPLE_CHOICE,多选题:MULTIPLE_CHOICE_QUESTIONS,填空题:FILL_IN_THE_BLANKS,打分题:SCORING_QUESTIONS,组合单选题:COMBINATION_RADIO_SUBJECT,组合多选题:COMBINATION_MULTIPLE_SUBJECT,组合填空题:COMBINATION_BLANKS_SUBJECT, 组合打分题:COMBINATION_SCORING_SUBJECT,日期填空题:DATE_BLANKS_SUBJECT,时间填空题:TIME_BLANKS_SUBJECT") + @Excel(name = "题目类型,单选题:MULTIPLE_CHOICE,多选题:MULTIPLE_CHOICE_QUESTIONS,填空题:FILL_IN_THE_BLANKS,打分题:SCORING_QUESTIONS, 组合单选题:COMBINATION_RADIO_SUBJECT,组合多选题:COMBINATION_MULTIPLE_SUBJECT,组合填空题:COMBINATION_BLANKS_SUBJECT, 组合打分题:COMBINATION_SCORING_SUBJECT,日期填空题:DATE_BLANKS_SUBJECT,时间填空题:TIME_BLANKS_SUBJECT") + private String questionType; + + /** + * 题目名称 + */ + @ApiModelProperty(value = "题目名称") + @Excel(name = "题目名称") + private String questionName; + + /** + * 题目说明 + */ + @ApiModelProperty(value = "题目说明") + @Excel(name = "题目说明") + private String questionDescription; + + /** + * 填写说明 + */ + @ApiModelProperty(value = "填写说明") + @Excel(name = "填写说明") + private String writeDescription; + + /** + * 回答(填空题) + */ + @ApiModelProperty(value = "回答") + @Excel(name = "回答", readConverterExp = "填=空题") + private String fillBlanksAnswer; + + /** + * 选项个数(打分题) + */ + @ApiModelProperty(value = "选项个数") + @Excel(name = "选项个数", readConverterExp = "打=分题") + private Integer optionCount; + + /** + * 是否计分,0:否,1:是 + */ + @ApiModelProperty(value = "是否计分,0:否,1:是") + @Excel(name = "是否计分,0:否,1:是") + private Integer whetherScore; + + /** + * 计分方式,每个选项都有对应分值:NOT_UNIQUE_ANSWER,全部答对才得分:UNIQUE_ANSWER + */ + @ApiModelProperty(value = "计分方式,每个选项都有对应分值:NOT_UNIQUE_ANSWER,全部答对才得分:UNIQUE_ANSWER") + @Excel(name = "计分方式,每个选项都有对应分值:NOT_UNIQUE_ANSWER,全部答对才得分:UNIQUE_ANSWER") + private String scoringMethod; + + /** + * 计分说明 + */ + @ApiModelProperty(value = "计分说明") + @Excel(name = "计分说明") + private String scoringDescription; + + /** + * 题目分值 + */ + @ApiModelProperty(value = "题目分值") + @Excel(name = "题目分值") + private BigDecimal questionScore; + + /** + * 自定义触发条件 + */ + @ApiModelProperty(value = "自定义触发条件") + @Excel(name = "自定义触发条件") + private String customTriggerCondition; + + /** + * 所属宣教表id + */ + @ApiModelProperty(value = "所属宣教表id") + @Excel(name = "所属宣教表id") + private Long propagandaInfoId; + + /** + * 宣教标题(宣教名称) + */ + @ApiModelProperty(value = "宣教标题") + @Excel(name = "宣教标题", readConverterExp = "宣=教名称") + private String propagandaTitle; + + /** + * 题目排序 + */ + @ApiModelProperty(value = "题目排序") + @Excel(name = "题目排序") + private Integer questionSort; + + /** + * 题目备注 + */ + @ApiModelProperty(value = "题目备注") + @Excel(name = "题目备注") + private String questionRemark; + + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("questionInfoId", getQuestionInfoId()) + .append("questionNumber", getQuestionNumber()) + .append("questionType", getQuestionType()) + .append("questionName", getQuestionName()) + .append("questionDescription", getQuestionDescription()) + .append("writeDescription", getWriteDescription()) + .append("fillBlanksAnswer", getFillBlanksAnswer()) + .append("optionCount", getOptionCount()) + .append("whetherScore", getWhetherScore()) + .append("scoringMethod", getScoringMethod()) + .append("scoringDescription", getScoringDescription()) + .append("questionScore", getQuestionScore()) + .append("customTriggerCondition", getCustomTriggerCondition()) + .append("propagandaInfoId", getPropagandaInfoId()) + .append("propagandaTitle", getPropagandaTitle()) + .append("questionSort", getQuestionSort()) + .append("questionRemark", getQuestionRemark()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/domain/questionsubjectoption/QuestionSubjectOption.java b/postdischarge-manage/src/main/java/com/xinelu/manage/domain/questionsubjectoption/QuestionSubjectOption.java new file mode 100644 index 00000000..f57cb4dd --- /dev/null +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/domain/questionsubjectoption/QuestionSubjectOption.java @@ -0,0 +1,102 @@ +package com.xinelu.manage.domain.questionsubjectoption; + +import com.xinelu.common.annotation.Excel; +import com.xinelu.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.math.BigDecimal; + +/** + * 问卷题目选项答案对象 question_subject_option + * + * @author xinelu + * @date 2024-02-29 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "问卷题目选项答案对象", description = "question_subject_option") +public class QuestionSubjectOption extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + + /** + * 问卷题目表id + */ + @ApiModelProperty(value = "问卷题目表id") + @Excel(name = "问卷题目表id") + private Long questionnaireSubjectId; + + /** + * 题目名称 + */ + @ApiModelProperty(value = "题目名称") + @Excel(name = "题目名称") + private String questionName; + + /** + * 选项名称 + */ + @ApiModelProperty(value = "选项名称") + @Excel(name = "选项名称") + private String optionName; + + /** + * 选项答案 + */ + @ApiModelProperty(value = "选项答案") + @Excel(name = "选项答案") + private String optionAnswer; + + /** + * 选项分值 + */ + @ApiModelProperty(value = "选项分值") + @Excel(name = "选项分值") + private BigDecimal optionScore; + + /** + * 选项排序 + */ + @ApiModelProperty(value = "选项排序") + @Excel(name = "选项排序") + private Integer optionSort; + + /** + * 选项备注 + */ + @ApiModelProperty(value = "选项备注") + @Excel(name = "选项备注") + private String optionRemark; + + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("questionnaireSubjectId", getQuestionnaireSubjectId()) + .append("questionName", getQuestionName()) + .append("optionName", getOptionName()) + .append("optionAnswer", getOptionAnswer()) + .append("optionScore", getOptionScore()) + .append("optionSort", getOptionSort()) + .append("optionRemark", getOptionRemark()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/questionsubject/QuestionSubjectMapper.java b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/questionsubject/QuestionSubjectMapper.java new file mode 100644 index 00000000..94c3fdc5 --- /dev/null +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/questionsubject/QuestionSubjectMapper.java @@ -0,0 +1,62 @@ +package com.xinelu.manage.mapper.questionsubject; + +import com.xinelu.manage.domain.questionsubject.QuestionSubject; + +import java.util.List; + + +/** + * 问卷题目信息Mapper接口 + * + * @author xinelu + * @date 2024-02-29 + */ +public interface QuestionSubjectMapper { + /** + * 查询问卷题目信息 + * + * @param id 问卷题目信息主键 + * @return 问卷题目信息 + */ + QuestionSubject selectQuestionSubjectById(Long id); + + /** + * 查询问卷题目信息列表 + * + * @param questionSubject 问卷题目信息 + * @return 问卷题目信息集合 + */ + List selectQuestionSubjectList(QuestionSubject questionSubject); + + /** + * 新增问卷题目信息 + * + * @param questionSubject 问卷题目信息 + * @return 结果 + */ + int insertQuestionSubject(QuestionSubject questionSubject); + + /** + * 修改问卷题目信息 + * + * @param questionSubject 问卷题目信息 + * @return 结果 + */ + int updateQuestionSubject(QuestionSubject questionSubject); + + /** + * 删除问卷题目信息 + * + * @param id 问卷题目信息主键 + * @return 结果 + */ + int deleteQuestionSubjectById(Long id); + + /** + * 批量删除问卷题目信息 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + int deleteQuestionSubjectByIds(Long[] ids); +} diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/questionsubjectoption/QuestionSubjectOptionMapper.java b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/questionsubjectoption/QuestionSubjectOptionMapper.java new file mode 100644 index 00000000..93d2d4fa --- /dev/null +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/questionsubjectoption/QuestionSubjectOptionMapper.java @@ -0,0 +1,62 @@ +package com.xinelu.manage.mapper.questionsubjectoption; + +import com.xinelu.manage.domain.questionsubjectoption.QuestionSubjectOption; + +import java.util.List; + + +/** + * 问卷题目选项答案Mapper接口 + * + * @author xinelu + * @date 2024-02-29 + */ +public interface QuestionSubjectOptionMapper { + /** + * 查询问卷题目选项答案 + * + * @param id 问卷题目选项答案主键 + * @return 问卷题目选项答案 + */ + QuestionSubjectOption selectQuestionSubjectOptionById(Long id); + + /** + * 查询问卷题目选项答案列表 + * + * @param questionSubjectOption 问卷题目选项答案 + * @return 问卷题目选项答案集合 + */ + List selectQuestionSubjectOptionList(QuestionSubjectOption questionSubjectOption); + + /** + * 新增问卷题目选项答案 + * + * @param questionSubjectOption 问卷题目选项答案 + * @return 结果 + */ + int insertQuestionSubjectOption(QuestionSubjectOption questionSubjectOption); + + /** + * 修改问卷题目选项答案 + * + * @param questionSubjectOption 问卷题目选项答案 + * @return 结果 + */ + int updateQuestionSubjectOption(QuestionSubjectOption questionSubjectOption); + + /** + * 删除问卷题目选项答案 + * + * @param id 问卷题目选项答案主键 + * @return 结果 + */ + int deleteQuestionSubjectOptionById(Long id); + + /** + * 批量删除问卷题目选项答案 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + int deleteQuestionSubjectOptionByIds(Long[] ids); +} diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/department/impl/DepartmentServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/department/impl/DepartmentServiceImpl.java index 744db875..1a7cd634 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/department/impl/DepartmentServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/department/impl/DepartmentServiceImpl.java @@ -69,7 +69,11 @@ public class DepartmentServiceImpl implements IDepartmentService { */ @Override public int insertDepartment(Department department) { + if (Objects.isNull(department.getParentDepartmentId())){ + department.setParentDepartmentId(0L); + } department.setCreateTime(DateUtils.getNowDate()); + department.setCreateBy(SecurityUtils.getUsername()); return departmentMapper.insertDepartment(department); } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/questionsubject/IQuestionSubjectService.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/questionsubject/IQuestionSubjectService.java new file mode 100644 index 00000000..2fba6bb1 --- /dev/null +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/questionsubject/IQuestionSubjectService.java @@ -0,0 +1,62 @@ +package com.xinelu.manage.service.questionsubject; + +import com.xinelu.manage.domain.questionsubject.QuestionSubject; + +import java.util.List; + + +/** + * 问卷题目信息Service接口 + * + * @author xinelu + * @date 2024-02-29 + */ +public interface IQuestionSubjectService { + /** + * 查询问卷题目信息 + * + * @param id 问卷题目信息主键 + * @return 问卷题目信息 + */ + QuestionSubject selectQuestionSubjectById(Long id); + + /** + * 查询问卷题目信息列表 + * + * @param questionSubject 问卷题目信息 + * @return 问卷题目信息集合 + */ + List selectQuestionSubjectList(QuestionSubject questionSubject); + + /** + * 新增问卷题目信息 + * + * @param questionSubject 问卷题目信息 + * @return 结果 + */ + int insertQuestionSubject(QuestionSubject questionSubject); + + /** + * 修改问卷题目信息 + * + * @param questionSubject 问卷题目信息 + * @return 结果 + */ + int updateQuestionSubject(QuestionSubject questionSubject); + + /** + * 批量删除问卷题目信息 + * + * @param ids 需要删除的问卷题目信息主键集合 + * @return 结果 + */ + int deleteQuestionSubjectByIds(Long[] ids); + + /** + * 删除问卷题目信息信息 + * + * @param id 问卷题目信息主键 + * @return 结果 + */ + int deleteQuestionSubjectById(Long id); +} diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/questionsubject/impl/QuestionSubjectServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/questionsubject/impl/QuestionSubjectServiceImpl.java new file mode 100644 index 00000000..6329ffd7 --- /dev/null +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/questionsubject/impl/QuestionSubjectServiceImpl.java @@ -0,0 +1,91 @@ +package com.xinelu.manage.service.questionsubject.impl; + +import com.xinelu.common.utils.DateUtils; +import com.xinelu.manage.domain.questionsubject.QuestionSubject; +import com.xinelu.manage.mapper.questionsubject.QuestionSubjectMapper; +import com.xinelu.manage.service.questionsubject.IQuestionSubjectService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + + +/** + * 问卷题目信息Service业务层处理 + * + * @author xinelu + * @date 2024-02-29 + */ +@Service +public class QuestionSubjectServiceImpl implements IQuestionSubjectService { + @Resource + private QuestionSubjectMapper questionSubjectMapper; + + /** + * 查询问卷题目信息 + * + * @param id 问卷题目信息主键 + * @return 问卷题目信息 + */ + @Override + public QuestionSubject selectQuestionSubjectById(Long id) { + return questionSubjectMapper.selectQuestionSubjectById(id); + } + + /** + * 查询问卷题目信息列表 + * + * @param questionSubject 问卷题目信息 + * @return 问卷题目信息 + */ + @Override + public List selectQuestionSubjectList(QuestionSubject questionSubject) { + return questionSubjectMapper.selectQuestionSubjectList(questionSubject); + } + + /** + * 新增问卷题目信息 + * + * @param questionSubject 问卷题目信息 + * @return 结果 + */ + @Override + public int insertQuestionSubject(QuestionSubject questionSubject) { + questionSubject.setCreateTime(DateUtils.getNowDate()); + return questionSubjectMapper.insertQuestionSubject(questionSubject); + } + + /** + * 修改问卷题目信息 + * + * @param questionSubject 问卷题目信息 + * @return 结果 + */ + @Override + public int updateQuestionSubject(QuestionSubject questionSubject) { + questionSubject.setUpdateTime(DateUtils.getNowDate()); + return questionSubjectMapper.updateQuestionSubject(questionSubject); + } + + /** + * 批量删除问卷题目信息 + * + * @param ids 需要删除的问卷题目信息主键 + * @return 结果 + */ + @Override + public int deleteQuestionSubjectByIds(Long[] ids) { + return questionSubjectMapper.deleteQuestionSubjectByIds(ids); + } + + /** + * 删除问卷题目信息信息 + * + * @param id 问卷题目信息主键 + * @return 结果 + */ + @Override + public int deleteQuestionSubjectById(Long id) { + return questionSubjectMapper.deleteQuestionSubjectById(id); + } +} diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/questionsubjectoption/IQuestionSubjectOptionService.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/questionsubjectoption/IQuestionSubjectOptionService.java new file mode 100644 index 00000000..ef5a91b9 --- /dev/null +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/questionsubjectoption/IQuestionSubjectOptionService.java @@ -0,0 +1,62 @@ +package com.xinelu.manage.service.questionsubjectoption; + +import com.xinelu.manage.domain.questionsubjectoption.QuestionSubjectOption; + +import java.util.List; + + +/** + * 问卷题目选项答案Service接口 + * + * @author xinelu + * @date 2024-02-29 + */ +public interface IQuestionSubjectOptionService { + /** + * 查询问卷题目选项答案 + * + * @param id 问卷题目选项答案主键 + * @return 问卷题目选项答案 + */ + QuestionSubjectOption selectQuestionSubjectOptionById(Long id); + + /** + * 查询问卷题目选项答案列表 + * + * @param questionSubjectOption 问卷题目选项答案 + * @return 问卷题目选项答案集合 + */ + List selectQuestionSubjectOptionList(QuestionSubjectOption questionSubjectOption); + + /** + * 新增问卷题目选项答案 + * + * @param questionSubjectOption 问卷题目选项答案 + * @return 结果 + */ + int insertQuestionSubjectOption(QuestionSubjectOption questionSubjectOption); + + /** + * 修改问卷题目选项答案 + * + * @param questionSubjectOption 问卷题目选项答案 + * @return 结果 + */ + int updateQuestionSubjectOption(QuestionSubjectOption questionSubjectOption); + + /** + * 批量删除问卷题目选项答案 + * + * @param ids 需要删除的问卷题目选项答案主键集合 + * @return 结果 + */ + int deleteQuestionSubjectOptionByIds(Long[] ids); + + /** + * 删除问卷题目选项答案信息 + * + * @param id 问卷题目选项答案主键 + * @return 结果 + */ + int deleteQuestionSubjectOptionById(Long id); +} diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/questionsubjectoption/impl/QuestionSubjectOptionServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/questionsubjectoption/impl/QuestionSubjectOptionServiceImpl.java new file mode 100644 index 00000000..88637b21 --- /dev/null +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/questionsubjectoption/impl/QuestionSubjectOptionServiceImpl.java @@ -0,0 +1,91 @@ +package com.xinelu.manage.service.questionsubjectoption.impl; + +import com.xinelu.common.utils.DateUtils; +import com.xinelu.manage.domain.questionsubjectoption.QuestionSubjectOption; +import com.xinelu.manage.mapper.questionsubjectoption.QuestionSubjectOptionMapper; +import com.xinelu.manage.service.questionsubjectoption.IQuestionSubjectOptionService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + + +/** + * 问卷题目选项答案Service业务层处理 + * + * @author xinelu + * @date 2024-02-29 + */ +@Service +public class QuestionSubjectOptionServiceImpl implements IQuestionSubjectOptionService { + @Resource + private QuestionSubjectOptionMapper questionSubjectOptionMapper; + + /** + * 查询问卷题目选项答案 + * + * @param id 问卷题目选项答案主键 + * @return 问卷题目选项答案 + */ + @Override + public QuestionSubjectOption selectQuestionSubjectOptionById(Long id) { + return questionSubjectOptionMapper.selectQuestionSubjectOptionById(id); + } + + /** + * 查询问卷题目选项答案列表 + * + * @param questionSubjectOption 问卷题目选项答案 + * @return 问卷题目选项答案 + */ + @Override + public List selectQuestionSubjectOptionList(QuestionSubjectOption questionSubjectOption) { + return questionSubjectOptionMapper.selectQuestionSubjectOptionList(questionSubjectOption); + } + + /** + * 新增问卷题目选项答案 + * + * @param questionSubjectOption 问卷题目选项答案 + * @return 结果 + */ + @Override + public int insertQuestionSubjectOption(QuestionSubjectOption questionSubjectOption) { + questionSubjectOption.setCreateTime(DateUtils.getNowDate()); + return questionSubjectOptionMapper.insertQuestionSubjectOption(questionSubjectOption); + } + + /** + * 修改问卷题目选项答案 + * + * @param questionSubjectOption 问卷题目选项答案 + * @return 结果 + */ + @Override + public int updateQuestionSubjectOption(QuestionSubjectOption questionSubjectOption) { + questionSubjectOption.setUpdateTime(DateUtils.getNowDate()); + return questionSubjectOptionMapper.updateQuestionSubjectOption(questionSubjectOption); + } + + /** + * 批量删除问卷题目选项答案 + * + * @param ids 需要删除的问卷题目选项答案主键 + * @return 结果 + */ + @Override + public int deleteQuestionSubjectOptionByIds(Long[] ids) { + return questionSubjectOptionMapper.deleteQuestionSubjectOptionByIds(ids); + } + + /** + * 删除问卷题目选项答案信息 + * + * @param id 问卷题目选项答案主键 + * @return 结果 + */ + @Override + public int deleteQuestionSubjectOptionById(Long id) { + return questionSubjectOptionMapper.deleteQuestionSubjectOptionById(id); + } +} diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/questioninfo/QuestionVO.java b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/questioninfo/QuestionVO.java new file mode 100644 index 00000000..f689b94f --- /dev/null +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/questioninfo/QuestionVO.java @@ -0,0 +1,150 @@ +package com.xinelu.manage.vo.questioninfo; + +import com.xinelu.common.annotation.Excel; +import com.xinelu.manage.domain.questioninfo.QuestionInfo; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.math.BigDecimal; + +/** + * 问卷基本信息对象 question_info + * + * @author xinelu + * @date 2024-02-28 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "问卷基本信息对象", description = "question_info") +public class QuestionVO extends QuestionInfo { + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long id; + + /** + * 所属科室id + */ + @ApiModelProperty(value = "所属科室id") + @Excel(name = "所属科室id") + private Long departmentId; + + /** + * 所属科室名称 + */ + @ApiModelProperty(value = "所属科室名称") + @Excel(name = "所属科室名称") + private String departmentName; + + /** + * 病种id + */ + @ApiModelProperty(value = "病种id") + @Excel(name = "病种id") + private Long diseaseTypeId; + + /** + * 病种名称 + */ + @ApiModelProperty(value = "病种名称") + @Excel(name = "病种名称") + private String diseaseTypeName; + + /** + * 问卷标题 + */ + @ApiModelProperty(value = "问卷标题") + @Excel(name = "问卷标题") + private String questionnaireName; + + /** + * 问卷说明 + */ + @ApiModelProperty(value = "问卷说明") + @Excel(name = "问卷说明") + private String questionnaireDescription; + + /** + * 作答方式,一页一题:ONE_PAGE_ONE_QUESTION,非一页一题:NOT_ONE_PAGE_ONE_QUESTION + */ + @ApiModelProperty(value = "作答方式,一页一题:ONE_PAGE_ONE_QUESTION,非一页一题:NOT_ONE_PAGE_ONE_QUESTION") + @Excel(name = "作答方式,一页一题:ONE_PAGE_ONE_QUESTION,非一页一题:NOT_ONE_PAGE_ONE_QUESTION") + private String answeringMethod; + + /** + * 问卷ID + */ + @ApiModelProperty(value = "问卷ID") + @Excel(name = "问卷ID") + private String questionnaireId; + + /** + * 问题个数 + */ + @ApiModelProperty(value = "问题个数") + @Excel(name = "问题个数") + private Integer questionCount; + + /** + * 问卷总分值,小数点后两位 + */ + @ApiModelProperty(value = "问卷总分值,小数点后两位") + @Excel(name = "问卷总分值,小数点后两位") + private BigDecimal questionnaireTotalScore; + + /** + * 问卷状态,已发布:PUBLISHED,未发布:UNPUBLISHED + */ + @ApiModelProperty(value = "问卷状态,已发布:PUBLISHED,未发布:UNPUBLISHED") + @Excel(name = "问卷状态,已发布:PUBLISHED,未发布:UNPUBLISHED") + private String questionnaireStatus; + + /** + * 问卷排序 + */ + @ApiModelProperty(value = "问卷排序") + @Excel(name = "问卷排序") + private Integer questionnaireSort; + + /** + * 问卷备注信息 + */ + @ApiModelProperty(value = "问卷备注信息") + @Excel(name = "问卷备注信息") + private String questionnaireRemark; + + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("departmentId", getDepartmentId()) + .append("departmentName", getDepartmentName()) + .append("diseaseTypeId", getDiseaseTypeId()) + .append("diseaseTypeName", getDiseaseTypeName()) + .append("questionnaireName", getQuestionnaireName()) + .append("questionnaireDescription", getQuestionnaireDescription()) + .append("answeringMethod", getAnsweringMethod()) + .append("questionnaireId", getQuestionnaireId()) + .append("questionCount", getQuestionCount()) + .append("questionnaireTotalScore", getQuestionnaireTotalScore()) + .append("questionnaireStatus", getQuestionnaireStatus()) + .append("questionnaireSort", getQuestionnaireSort()) + .append("questionnaireRemark", getQuestionnaireRemark()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} diff --git a/postdischarge-manage/src/main/resources/mapper/manage/questionsubject/QuestionSubjectMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/questionsubject/QuestionSubjectMapper.xml new file mode 100644 index 00000000..fd1ef361 --- /dev/null +++ b/postdischarge-manage/src/main/resources/mapper/manage/questionsubject/QuestionSubjectMapper.xml @@ -0,0 +1,272 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select id, question_info_id, question_number, question_type, question_name, question_description, write_description, fill_blanks_answer, option_count, whether_score, scoring_method, scoring_description, question_score, custom_trigger_condition, propaganda_info_id, propaganda_title, question_sort, question_remark, create_by, create_time, update_by, update_time from question_subject + + + + + + + + insert into question_subject + + question_info_id, + + question_number, + + question_type, + + question_name, + + question_description, + + write_description, + + fill_blanks_answer, + + option_count, + + whether_score, + + scoring_method, + + scoring_description, + + question_score, + + custom_trigger_condition, + + propaganda_info_id, + + propaganda_title, + + question_sort, + + question_remark, + + create_by, + + create_time, + + update_by, + + update_time, + + + + #{questionInfoId}, + + #{questionNumber}, + + #{questionType}, + + #{questionName}, + + #{questionDescription}, + + #{writeDescription}, + + #{fillBlanksAnswer}, + + #{optionCount}, + + #{whetherScore}, + + #{scoringMethod}, + + #{scoringDescription}, + + #{questionScore}, + + #{customTriggerCondition}, + + #{propagandaInfoId}, + + #{propagandaTitle}, + + #{questionSort}, + + #{questionRemark}, + + #{createBy}, + + #{createTime}, + + #{updateBy}, + + #{updateTime}, + + + + + + update question_subject + + question_info_id = + #{questionInfoId}, + + question_number = + #{questionNumber}, + + question_type = + #{questionType}, + + question_name = + #{questionName}, + + question_description = + #{questionDescription}, + + write_description = + #{writeDescription}, + + fill_blanks_answer = + #{fillBlanksAnswer}, + + option_count = + #{optionCount}, + + whether_score = + #{whetherScore}, + + scoring_method = + #{scoringMethod}, + + scoring_description = + #{scoringDescription}, + + question_score = + #{questionScore}, + + custom_trigger_condition = + #{customTriggerCondition}, + + propaganda_info_id = + #{propagandaInfoId}, + + propaganda_title = + #{propagandaTitle}, + + question_sort = + #{questionSort}, + + question_remark = + #{questionRemark}, + + create_by = + #{createBy}, + + create_time = + #{createTime}, + + update_by = + #{updateBy}, + + update_time = + #{updateTime}, + + + where id = #{id} + + + + delete from question_subject where id = #{id} + + + + delete from question_subject where id in + + #{id} + + + \ No newline at end of file diff --git a/postdischarge-manage/src/main/resources/mapper/manage/questionsubjectoption/QuestionSubjectOptionMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/questionsubjectoption/QuestionSubjectOptionMapper.xml new file mode 100644 index 00000000..ba136161 --- /dev/null +++ b/postdischarge-manage/src/main/resources/mapper/manage/questionsubjectoption/QuestionSubjectOptionMapper.xml @@ -0,0 +1,177 @@ + + + + + + + + + + + + + + + + + + + + + select id, + questionnaire_subject_id, + question_name, + option_name, + option_answer, + option_score, + option_sort, + option_remark, + create_by, + create_time, + update_by, + update_time + from question_subject_option + + + + + + + + insert into question_subject_option + + questionnaire_subject_id, + + question_name, + + option_name, + + option_answer, + + option_score, + + option_sort, + + option_remark, + + create_by, + + create_time, + + update_by, + + update_time, + + + + #{questionnaireSubjectId}, + + #{questionName}, + + #{optionName}, + + #{optionAnswer}, + + #{optionScore}, + + #{optionSort}, + + #{optionRemark}, + + #{createBy}, + + #{createTime}, + + #{updateBy}, + + #{updateTime}, + + + + + + update question_subject_option + + questionnaire_subject_id = + #{questionnaireSubjectId}, + + question_name = + #{questionName}, + + option_name = + #{optionName}, + + option_answer = + #{optionAnswer}, + + option_score = + #{optionScore}, + + option_sort = + #{optionSort}, + + option_remark = + #{optionRemark}, + + create_by = + #{createBy}, + + create_time = + #{createTime}, + + update_by = + #{updateBy}, + + update_time = + #{updateTime}, + + + where id = #{id} + + + + delete + from question_subject_option + where id = #{id} + + + + delete from question_subject_option where id in + + #{id} + + + \ No newline at end of file