Merge branch 'youxilong_2.26_院后第一增量' of http://192.168.16.64:3000/jihan/PostDischargePatientManage into youxilong_2.26_院后第一增量

This commit is contained in:
youxilong 2024-03-01 18:01:13 +08:00
commit 70733b7d71
16 changed files with 546 additions and 249 deletions

View File

@ -42,6 +42,25 @@ public class AgencyController extends BaseController {
return getDataTable(list); return getDataTable(list);
} }
/**
* 查询机构信息列表 - 不分页
*/
@GetMapping("/selectAgencyList")
public AjaxResult selectAgencyByIdList(Agency agency) {
return agencyService.selectAgencyByIdList(agency);
}
/**
* 查询院区机构信息列表
*/
@GetMapping("/subordinateAgencyList")
public AjaxResult subordinateAgencyList(Agency agency) {
if (Objects.isNull(agency) || Objects.isNull(agency.getParentId())) {
return AjaxResult.success();
}
return agencyService.subordinateAgencyList(agency);
}
/** /**
* 导出机构信息列表 * 导出机构信息列表
*/ */

View File

@ -44,11 +44,22 @@ public class DepartmentController extends BaseController {
return getDataTable(list); return getDataTable(list);
} }
/**
* 查询科室信息列表 不分页
*/
@GetMapping("/getDepartmentList") @GetMapping("/getDepartmentList")
public AjaxResult getDepartmentList(Department department) { public AjaxResult getDepartmentList(Department department) {
return AjaxResult.success(departmentService.selectDepartmentList(department)); return AjaxResult.success(departmentService.selectDepartmentList(department));
} }
/**
* 查询科室或病区信息列表 不分页
*/
@GetMapping("/selectDepartmentList")
public AjaxResult selectDepartmentByAgencyIdList(Department department) {
return departmentService.selectDepartmentByAgencyIdList(department);
}
/** /**
* 导出科室信息列表 * 导出科室信息列表
*/ */

View File

@ -8,12 +8,15 @@ import com.xinelu.common.enums.BusinessType;
import com.xinelu.common.utils.poi.ExcelUtil; import com.xinelu.common.utils.poi.ExcelUtil;
import com.xinelu.manage.domain.questioninfo.QuestionInfo; import com.xinelu.manage.domain.questioninfo.QuestionInfo;
import com.xinelu.manage.service.questioninfo.IQuestionInfoService; import com.xinelu.manage.service.questioninfo.IQuestionInfoService;
import com.xinelu.manage.vo.questionInfo.QuestionVO;
import org.apache.commons.lang3.StringUtils;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.util.List; import java.util.List;
import java.util.Objects;
/** /**
* 问卷基本信息Controller * 问卷基本信息Controller
@ -65,8 +68,11 @@ public class QuestionInfoController extends BaseController {
@PreAuthorize("@ss.hasPermi('system:question:add')") @PreAuthorize("@ss.hasPermi('system:question:add')")
@Log(title = "问卷基本信息", businessType = BusinessType.INSERT) @Log(title = "问卷基本信息", businessType = BusinessType.INSERT)
@PostMapping @PostMapping
public AjaxResult add(@RequestBody QuestionInfo questionInfo) { public AjaxResult add(@RequestBody QuestionVO questionInfo) {
return toAjax(questionInfoService.insertQuestionInfo(questionInfo)); if (Objects.isNull(questionInfo) || StringUtils.isBlank(questionInfo.getQuestionnaireName())) {
return AjaxResult.error("请添加问卷信息!");
}
return questionInfoService.insertQuestionInfo(questionInfo);
} }
/** /**

View File

@ -18,7 +18,7 @@ public interface QuestionInfoMapper {
* @param id 问卷基本信息主键 * @param id 问卷基本信息主键
* @return 问卷基本信息 * @return 问卷基本信息
*/ */
public QuestionInfo selectQuestionInfoById(Long id); QuestionInfo selectQuestionInfoById(Long id);
/** /**
* 查询问卷基本信息列表 * 查询问卷基本信息列表
@ -26,7 +26,7 @@ public interface QuestionInfoMapper {
* @param questionInfo 问卷基本信息 * @param questionInfo 问卷基本信息
* @return 问卷基本信息集合 * @return 问卷基本信息集合
*/ */
public List<QuestionInfo> selectQuestionInfoList(QuestionInfo questionInfo); List<QuestionInfo> selectQuestionInfoList(QuestionInfo questionInfo);
/** /**
* 新增问卷基本信息 * 新增问卷基本信息
@ -34,7 +34,7 @@ public interface QuestionInfoMapper {
* @param questionInfo 问卷基本信息 * @param questionInfo 问卷基本信息
* @return 结果 * @return 结果
*/ */
public int insertQuestionInfo(QuestionInfo questionInfo); int insertQuestionInfo(QuestionInfo questionInfo);
/** /**
* 修改问卷基本信息 * 修改问卷基本信息
@ -42,7 +42,7 @@ public interface QuestionInfoMapper {
* @param questionInfo 问卷基本信息 * @param questionInfo 问卷基本信息
* @return 结果 * @return 结果
*/ */
public int updateQuestionInfo(QuestionInfo questionInfo); int updateQuestionInfo(QuestionInfo questionInfo);
/** /**
* 删除问卷基本信息 * 删除问卷基本信息
@ -50,7 +50,7 @@ public interface QuestionInfoMapper {
* @param id 问卷基本信息主键 * @param id 问卷基本信息主键
* @return 结果 * @return 结果
*/ */
public int deleteQuestionInfoById(Long id); int deleteQuestionInfoById(Long id);
/** /**
* 批量删除问卷基本信息 * 批量删除问卷基本信息
@ -58,5 +58,5 @@ public interface QuestionInfoMapper {
* @param ids 需要删除的数据主键集合 * @param ids 需要删除的数据主键集合
* @return 结果 * @return 结果
*/ */
public int deleteQuestionInfoByIds(Long[] ids); int deleteQuestionInfoByIds(Long[] ids);
} }

View File

@ -59,4 +59,11 @@ public interface QuestionSubjectMapper {
* @return 结果 * @return 结果
*/ */
int deleteQuestionSubjectByIds(Long[] ids); int deleteQuestionSubjectByIds(Long[] ids);
/**
*
* @param questionSubjectList
* @return
*/
int insertQuestionSubjectList(List<QuestionSubject> questionSubjectList);
} }

View File

@ -31,6 +31,22 @@ public interface IAgencyService {
*/ */
List<Agency> selectAgencyList(Agency agency); List<Agency> selectAgencyList(Agency agency);
/**
* 查询机构信息列表
*
* @param agency 机构信息
* @return 机构信息集合
*/
AjaxResult selectAgencyByIdList(Agency agency);
/**
* 查询院区机构信息列表
*
* @param agency 机构信息
* @return 机构信息集合
*/
AjaxResult subordinateAgencyList(Agency agency);
/** /**
* 新增机构信息 * 新增机构信息
* *

View File

@ -78,6 +78,30 @@ public class AgencyServiceImpl implements IAgencyService {
return agencyMapper.selectAgencyList(agency); return agencyMapper.selectAgencyList(agency);
} }
/**
* 查询机构信息列表
*
* @param agency 机构信息
* @return 机构信息
*/
@Override
public AjaxResult selectAgencyByIdList(Agency agency) {
return AjaxResult.success(agencyMapper.selectAgencyList(agency));
}
/**
* 查询院区机构信息列表
*
* @param agency 机构信息
* @return 机构信息
*/
@Override
public AjaxResult subordinateAgencyList(Agency agency) {
return AjaxResult.success(agencyMapper.selectAgencyList(agency));
}
/** /**
* 新增机构信息 * 新增机构信息
* *

View File

@ -32,6 +32,14 @@ public interface IDepartmentService {
*/ */
List<Department> selectDepartmentList(Department department); List<Department> selectDepartmentList(Department department);
/**
* 查询科室或病区信息列表 不分页
*
* @param department 科室信息
* @return 科室信息集合
*/
AjaxResult selectDepartmentByAgencyIdList(Department department);
/** /**
* 新增科室信息 * 新增科室信息
* *

View File

@ -61,6 +61,20 @@ public class DepartmentServiceImpl implements IDepartmentService {
return departmentMapper.selectDepartmentList(department); return departmentMapper.selectDepartmentList(department);
} }
/**
* 查询科室或病区信息列表 不分页
*
* @param department 科室信息
* @return 科室信息
*/
@Override
public AjaxResult selectDepartmentByAgencyIdList(Department department) {
if (Objects.isNull(department) || (Objects.isNull(department.getAgencyId()) && Objects.isNull(department.getParentDepartmentId()))) {
return AjaxResult.success();
}
return AjaxResult.success(departmentMapper.selectDepartmentList(department));
}
/** /**
* 新增科室信息 * 新增科室信息
* *
@ -69,7 +83,7 @@ public class DepartmentServiceImpl implements IDepartmentService {
*/ */
@Override @Override
public int insertDepartment(Department department) { public int insertDepartment(Department department) {
if (Objects.isNull(department.getParentDepartmentId())){ if (Objects.isNull(department.getParentDepartmentId())) {
department.setParentDepartmentId(0L); department.setParentDepartmentId(0L);
} }
department.setCreateTime(DateUtils.getNowDate()); department.setCreateTime(DateUtils.getNowDate());

View File

@ -1,6 +1,8 @@
package com.xinelu.manage.service.questioninfo; package com.xinelu.manage.service.questioninfo;
import com.xinelu.common.core.domain.AjaxResult;
import com.xinelu.manage.domain.questioninfo.QuestionInfo; import com.xinelu.manage.domain.questioninfo.QuestionInfo;
import com.xinelu.manage.vo.questionInfo.QuestionVO;
import java.util.List; import java.util.List;
@ -18,7 +20,7 @@ public interface IQuestionInfoService {
* @param id 问卷基本信息主键 * @param id 问卷基本信息主键
* @return 问卷基本信息 * @return 问卷基本信息
*/ */
public QuestionInfo selectQuestionInfoById(Long id); QuestionInfo selectQuestionInfoById(Long id);
/** /**
* 查询问卷基本信息列表 * 查询问卷基本信息列表
@ -26,7 +28,7 @@ public interface IQuestionInfoService {
* @param questionInfo 问卷基本信息 * @param questionInfo 问卷基本信息
* @return 问卷基本信息集合 * @return 问卷基本信息集合
*/ */
public List<QuestionInfo> selectQuestionInfoList(QuestionInfo questionInfo); List<QuestionInfo> selectQuestionInfoList(QuestionInfo questionInfo);
/** /**
* 新增问卷基本信息 * 新增问卷基本信息
@ -34,7 +36,7 @@ public interface IQuestionInfoService {
* @param questionInfo 问卷基本信息 * @param questionInfo 问卷基本信息
* @return 结果 * @return 结果
*/ */
public int insertQuestionInfo(QuestionInfo questionInfo); AjaxResult insertQuestionInfo(QuestionVO questionInfo);
/** /**
* 修改问卷基本信息 * 修改问卷基本信息
@ -42,7 +44,7 @@ public interface IQuestionInfoService {
* @param questionInfo 问卷基本信息 * @param questionInfo 问卷基本信息
* @return 结果 * @return 结果
*/ */
public int updateQuestionInfo(QuestionInfo questionInfo); int updateQuestionInfo(QuestionInfo questionInfo);
/** /**
* 批量删除问卷基本信息 * 批量删除问卷基本信息
@ -50,7 +52,7 @@ public interface IQuestionInfoService {
* @param ids 需要删除的问卷基本信息主键集合 * @param ids 需要删除的问卷基本信息主键集合
* @return 结果 * @return 结果
*/ */
public int deleteQuestionInfoByIds(Long[] ids); int deleteQuestionInfoByIds(Long[] ids);
/** /**
* 删除问卷基本信息信息 * 删除问卷基本信息信息
@ -58,5 +60,5 @@ public interface IQuestionInfoService {
* @param id 问卷基本信息主键 * @param id 问卷基本信息主键
* @return 结果 * @return 结果
*/ */
public int deleteQuestionInfoById(Long id); int deleteQuestionInfoById(Long id);
} }

View File

@ -1,13 +1,25 @@
package com.xinelu.manage.service.questioninfo.impl; package com.xinelu.manage.service.questioninfo.impl;
import com.xinelu.common.core.domain.AjaxResult;
import com.xinelu.common.utils.DateUtils; import com.xinelu.common.utils.DateUtils;
import com.xinelu.common.utils.SecurityUtils;
import com.xinelu.common.utils.bean.BeanUtils;
import com.xinelu.manage.domain.questioninfo.QuestionInfo; import com.xinelu.manage.domain.questioninfo.QuestionInfo;
import com.xinelu.manage.domain.questionsubject.QuestionSubject;
import com.xinelu.manage.domain.questionsubjectoption.QuestionSubjectOption;
import com.xinelu.manage.mapper.questioninfo.QuestionInfoMapper; import com.xinelu.manage.mapper.questioninfo.QuestionInfoMapper;
import com.xinelu.manage.mapper.questionsubject.QuestionSubjectMapper;
import com.xinelu.manage.service.questioninfo.IQuestionInfoService; import com.xinelu.manage.service.questioninfo.IQuestionInfoService;
import com.xinelu.manage.vo.questionInfo.QuestionVO;
import com.xinelu.manage.vo.questionsubject.QuestionSubjectVO;
import com.xinelu.manage.vo.questionsubjectoption.QuestionSubjectOptionVO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects;
/** /**
* 问卷基本信息Service业务层处理 * 问卷基本信息Service业务层处理
@ -15,17 +27,15 @@ import java.util.List;
* @author xinelu * @author xinelu
* @date 2024-02-28 * @date 2024-02-28
*/ */
@Slf4j
@Service @Service
public class QuestionInfoServiceImpl implements IQuestionInfoService { public class QuestionInfoServiceImpl implements IQuestionInfoService {
@Resource @Resource
private QuestionInfoMapper questionInfoMapper; private QuestionInfoMapper questionInfoMapper;
@Resource
private QuestionSubjectMapper questionSubjectMapper;
/**
* 查询问卷基本信息
*
* @param id 问卷基本信息主键
* @return 问卷基本信息
*/
@Override @Override
public QuestionInfo selectQuestionInfoById(Long id) { public QuestionInfo selectQuestionInfoById(Long id) {
return questionInfoMapper.selectQuestionInfoById(id); return questionInfoMapper.selectQuestionInfoById(id);
@ -45,13 +55,49 @@ public class QuestionInfoServiceImpl implements IQuestionInfoService {
/** /**
* 新增问卷基本信息 * 新增问卷基本信息
* *
* @param questionInfo 问卷基本信息 * @param question 问卷基本信息
* @return 结果 * @return 结果
*/ */
@Override @Override
public int insertQuestionInfo(QuestionInfo questionInfo) { public AjaxResult insertQuestionInfo(QuestionVO question) {
QuestionInfo questionInfo = new QuestionInfo();
BeanUtils.copyBeanProp(questionInfo, question);
questionInfo.setCreateTime(DateUtils.getNowDate()); questionInfo.setCreateTime(DateUtils.getNowDate());
return questionInfoMapper.insertQuestionInfo(questionInfo); questionInfo.setCreateBy(SecurityUtils.getUsername());
int questionCount = questionInfoMapper.insertQuestionInfo(questionInfo);
if (questionCount <= 0) {
log.info("新增问卷表失败," + questionInfo);
throw new SecurityException("新增问卷失败!请联系管理员!");
}
List<QuestionSubjectVO> questionSubjectList = question.getQuestionSubjectList();
List<QuestionSubject> questionSubjects = new ArrayList<>();
List<QuestionSubjectOptionVO> questionSubjectOptions = new ArrayList<>();
QuestionSubject saveQuestionSubject = new QuestionSubject();
for (QuestionSubjectVO questionSubject : questionSubjectList) {
BeanUtils.copyBeanProp(saveQuestionSubject, questionSubject);
saveQuestionSubject.setQuestionInfoId(questionInfo.getId());
saveQuestionSubject.setCreateTime(DateUtils.getNowDate());
saveQuestionSubject.setCreateBy(SecurityUtils.getUsername());
questionSubjects.add(saveQuestionSubject);
questionSubjectOptions.addAll(questionSubject.getQuestionSubjectOptionList());
}
int questionSubjectCount = questionSubjectMapper.insertQuestionSubjectList(questionSubjects);
if (questionSubjectCount <= 0) {
log.info("新增问卷题目表失败," + questionSubjects);
throw new SecurityException("新增问卷失败!请联系管理员!");
}
ArrayList<QuestionSubjectOption> saveQuestionSubjectOptions = new ArrayList<>();
QuestionSubjectOption saveQuestionSubjectOption = new QuestionSubjectOption();
for (QuestionSubjectOptionVO questionSubjectOption : questionSubjectOptions) {
BeanUtils.copyBeanProp(saveQuestionSubjectOption, questionSubjectOption);
QuestionSubject questionSubject = questionSubjects.stream().filter(Objects::nonNull).filter(item -> Objects.nonNull(item.getQuestionNumber()) && questionSubjectOption.getQuestionNumber().equals(item.getQuestionNumber())).findFirst().orElse(new QuestionSubject());
questionSubjectOption.setQuestionnaireSubjectId(questionSubject.getId());
saveQuestionSubjectOption.setCreateTime(DateUtils.getNowDate());
saveQuestionSubjectOption.setCreateBy(SecurityUtils.getUsername());
saveQuestionSubjectOptions.add(questionSubjectOption);
}
return AjaxResult.success();
} }
/** /**

View File

@ -0,0 +1,25 @@
package com.xinelu.manage.vo.questionInfo;
import com.xinelu.manage.domain.questioninfo.QuestionInfo;
import com.xinelu.manage.vo.questionsubject.QuestionSubjectVO;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
/**
* 问卷基本信息VO
*
* @author xinelu
* @date 2024-02-28
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class QuestionVO extends QuestionInfo {
/**
* 题目信息
*/
private List<QuestionSubjectVO> questionSubjectList;
}

View File

@ -0,0 +1,24 @@
package com.xinelu.manage.vo.questionsubject;
import com.xinelu.manage.domain.questionsubject.QuestionSubject;
import com.xinelu.manage.vo.questionsubjectoption.QuestionSubjectOptionVO;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
/**
* 问卷题目信息对象 question_subject
*
* @author xinelu
* @date 2024-02-29
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class QuestionSubjectVO extends QuestionSubject {
/**
* 选项信信息
*/
private List<QuestionSubjectOptionVO> questionSubjectOptionList;
}

View File

@ -0,0 +1,21 @@
package com.xinelu.manage.vo.questionsubjectoption;
import com.xinelu.manage.domain.questionsubjectoption.QuestionSubjectOption;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 问卷题目选项答案对象 question_subject_option
*
* @author xinelu
* @date 2024-02-29
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class QuestionSubjectOptionVO extends QuestionSubjectOption {
/**
* 题号
*/
private Integer questionNumber;
}

View File

@ -30,7 +30,29 @@
</resultMap> </resultMap>
<sql id="selectQuestionSubjectVo"> <sql id="selectQuestionSubjectVo">
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 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
</sql> </sql>
<select id="selectQuestionSubjectList" parameterType="QuestionSubject" resultMap="QuestionSubjectResult"> <select id="selectQuestionSubjectList" parameterType="QuestionSubject" resultMap="QuestionSubjectResult">
@ -260,7 +282,9 @@
</update> </update>
<delete id="deleteQuestionSubjectById" parameterType="Long"> <delete id="deleteQuestionSubjectById" parameterType="Long">
delete from question_subject where id = #{id} delete
from question_subject
where id = #{id}
</delete> </delete>
<delete id="deleteQuestionSubjectByIds" parameterType="String"> <delete id="deleteQuestionSubjectByIds" parameterType="String">
@ -269,4 +293,51 @@
#{id} #{id}
</foreach> </foreach>
</delete> </delete>
<insert id="insertQuestionSubjectList" useGeneratedKeys="true" keyProperty="id">
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
) values
<foreach item="QuestionSubject" index="index" collection="list" separator=",">
(
#{QuestionSubject.questionInfoId},
#{QuestionSubject.questionNumber},
#{QuestionSubject.questionType},
#{QuestionSubject.questionName},
#{QuestionSubject.questionDescription},
#{QuestionSubject.writeDescription},
#{QuestionSubject.fillBlanksAnswer},
#{QuestionSubject.optionCount},
#{QuestionSubject.whetherScore},
#{QuestionSubject.scoringMethod},
#{QuestionSubject.scoringDescription},
#{QuestionSubject.questionScore},
#{QuestionSubject.customTriggerCondition},
#{QuestionSubject.propagandaInfoId},
#{QuestionSubject.propagandaTitle},
#{QuestionSubject.questionSort},
#{QuestionSubject.questionRemark},
#{QuestionSubject.createBy},
#{QuestionSubject.createTime}
)
</foreach>
</insert>
</mapper> </mapper>

View File

@ -499,8 +499,11 @@ public class SysUserServiceImpl implements ISysUserService {
SysUser sysUser = userMapper.selectUserByUserName(userName); SysUser sysUser = userMapper.selectUserByUserName(userName);
pageServiceUtil.startPage(); pageServiceUtil.startPage();
List<AgencyNameVO> agencyList = userMapper.selectAgencyList(agencyName, sysUser.getAgencyId()); List<AgencyNameVO> agencyList = userMapper.selectAgencyList(agencyName, sysUser.getAgencyId());
if (CollectionUtils.isNotEmpty(agencyList)){
return pageServiceUtil.getDataTable(agencyList); return pageServiceUtil.getDataTable(agencyList);
} }
return pageServiceUtil.getDataTable(new ArrayList<>());
}
/** /**
* 所属机构查询 * 所属机构查询