package com.ltkj.web.controller.system; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletResponse; import cn.hutool.core.date.DateTime; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.ltkj.common.core.domain.TreeSelect; import com.ltkj.common.core.domain.entity.SysDept; import com.ltkj.common.core.domain.entity.SysDictData; import com.ltkj.hosp.domain.*; import com.ltkj.hosp.service.ITjSurveyQuestionService; import com.ltkj.system.service.ISysConfigService; import com.ltkj.system.service.ISysDeptService; import com.ltkj.system.service.ISysDictDataService; import com.ltkj.tduck.domain.UserFormEntity; import com.ltkj.tduck.enums.FormSourceTypeEnum; import com.ltkj.tduck.enums.FormStatusEnum; import com.ltkj.tduck.service.UserFormService; import com.ltkj.tduck.utils.ShortIdUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import com.ltkj.common.annotation.Log; import com.ltkj.common.core.controller.BaseController; import com.ltkj.common.core.domain.AjaxResult; import com.ltkj.common.enums.BusinessType; import com.ltkj.hosp.service.ITjSurveyTemplateService; import com.ltkj.common.utils.poi.ExcelUtil; import com.ltkj.common.core.page.TableDataInfo; /** * 问卷模板Controller * * @author ltkj_赵佳豪&李格 * @date 2023-04-07 */ @RestController @RequestMapping("/hosp/surveyTemplate") @Api(tags = "问卷模板") public class TjSurveyTemplateController extends BaseController { @Autowired private ITjSurveyTemplateService tjSurveyTemplateService; @Autowired private ITjSurveyQuestionService tjSurveyQuestionService; @Autowired private ISysConfigService configService; @Autowired private UserFormService formService; @Autowired private ISysDeptService deptService; /** * 判断是否开启填鸭表单设计 */ @ApiOperation(value = "判断是否开启填鸭表单设计") @GetMapping(value = "/needDesign") public AjaxResult needDesign() { final String call = configService.selectConfigByKey("need_design"); return AjaxResult.success(call); } /** * 判断该模板是否可删除 */ @ApiOperation(value = "判断该模板是否可删除") @GetMapping(value = "/canDelete") public AjaxResult canDelete(Long id) { TjSurveyTemplate byId = tjSurveyTemplateService.selectTemplateByMid1(id); // List fwdPlanInfoVos = fwdSqlMapper.canDelete(id); if (byId !=null && byId.getQybz().equals("0")){ return AjaxResult.success(false); } return AjaxResult.success(true); } /** * 查询问卷模板列表 */ //@PreAuthorize("@ss.hasPermi('hosp:surveyTemplate:list')") @GetMapping("/list") public TableDataInfo list(TjSurveyTemplate tjSurveyTemplate) { startPage(); List list = tjSurveyTemplateService.selectTjSurveyTemplateList(tjSurveyTemplate); return getDataTable(list); } /** * 导出问卷模板列表 */ //@PreAuthorize("@ss.hasPermi('hosp:surveyTemplate:export')") @Log(title = "问卷模板", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, TjSurveyTemplate tjSurveyTemplate) { List list = tjSurveyTemplateService.selectTjSurveyTemplateList(tjSurveyTemplate); ExcelUtil util = new ExcelUtil(TjSurveyTemplate.class); util.exportExcel(response, list, "问卷模板数据"); } /** * 获取问卷模板详细信息 */ //@PreAuthorize("@ss.hasPermi('hosp:surveyTemplate:query')") @GetMapping(value = "/{mid}") public AjaxResult getInfo(@PathVariable("mid") Long mid) { return success(tjSurveyTemplateService.selectTjSurveyTemplateByMid(mid)); } // /** // * 获取问卷模板 // */ // @GetMapping("/getQuesByMid") // @ApiOperation(value = "获取问卷模板信息") // public AjaxResult getQuesByMid(@RequestParam Long mid) { // List l1=new ArrayList<>(); // TjSurveyTemplate byId = tjSurveyTemplateService.selectTjSurveyTemplateByMid(mid); // List tjSurveyTempQuesList = byId.getTjSurveyTempQuesList(); // if (tjSurveyTempQuesList!=null){ // for (TjSurveyTempQues tjSurveyTempQues : tjSurveyTempQuesList) { // TjSurveyQuestion byId1 = tjSurveyQuestionService.selectTjSurveyQuestionByQid(tjSurveyTempQues.getQid()); // if (byId1!=null){ // l1.add(byId1); // } // } // return AjaxResult.success(l1); // } // return AjaxResult.success("暂无信息"); // } @GetMapping("/getQuesByMid") @ApiOperation(value = "获取问卷模板信息") public AjaxResult getQuesByMid(@RequestParam Long mid) { TjSurveyTemplate byId = tjSurveyTemplateService.selectTemplateByMid1(Long.valueOf(mid)); if(null !=byId){ if ("1".equals(byId.getQybz())){ return AjaxResult.success("该问卷模板不存在或已停用"); } //判断是否有问题 if(byId.getDesignId()!=null){ return AjaxResult.success(byId.getDesignId()); } LambdaQueryWrapper wq1=new LambdaQueryWrapper<>(); wq1.eq(TjSurveyQuestion::getMid,byId.getMid()); final List list1 = tjSurveyQuestionService.list(wq1); for (TjSurveyQuestion tjSurveyQuestion : list1) { final List tjSurveyOptions = tjSurveyQuestionService.selectOptionsByQid(String.valueOf(tjSurveyQuestion.getQid())); tjSurveyQuestion.setTjSurveyOptionsList(tjSurveyOptions); } return AjaxResult.success(list1); } return AjaxResult.success("暂无信息"); } /** * 获取问卷模板 */ @GetMapping("/getQuesByMids") @ApiOperation(value = "获取问卷模板信息") public AjaxResult getQuesByMids(@RequestParam Long mid) { List l1 = new ArrayList<>(); // TjSurveyTemplate byId = tjSurveyTemplateService.selectTjSurveyTemplateByMid(mid); List tjSurveyTempQuesList = tjSurveyQuestionService.selectOptionsByMid(mid.toString()); if (tjSurveyTempQuesList != null && tjSurveyTempQuesList.size()>0) { for (TjSurveyTempQues tjSurveyTempQues : tjSurveyTempQuesList) { TjSurveyQuestion byId1 = tjSurveyQuestionService.selectTjSurveyQuestionByQid(tjSurveyTempQues.getQid()); if (byId1 != null) { l1.add(byId1); } } return AjaxResult.success(l1); } List optionsByMid = tjSurveyQuestionService.getOptionsByMid(mid.toString()); if(null !=optionsByMid && optionsByMid.size()>0){ return AjaxResult.success(optionsByMid); } return AjaxResult.success("暂无信息"); } /** * 新增问卷模板 */ //@PreAuthorize("@ss.hasPermi('hosp:surveyTemplate:add')") @Log(title = "问卷模板", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody TjSurveyTemplate tjSurveyTemplate) { // return toAjax(tjSurveyTemplateService.insertTjSurveyTemplate(tjSurveyTemplate)); TjSurveyTemplate byId = tjSurveyTemplateService.selectTemplateByTjCategory(tjSurveyTemplate.getTempType()); if(null !=byId){ return AjaxResult.error("该类型模板已存在 不可重复创建!!!"); } final String call = configService.selectConfigByKey("need_design"); //判断是否开启填鸭表单设计 if ("true".equals(call)){ UserFormEntity form=new UserFormEntity(); form.setFormKey(ShortIdUtils.genId()); form.setName("

"+tjSurveyTemplate.getTempName()+"

"); form.setStatus(1); form.setSourceType(1); form.setCreateTime(new DateTime()); form.setType("1"); form.setDeleted(false); final boolean save = formService.save(form); if (save){ tjSurveyTemplate.setDesignId(form.getFormKey()); final int i = tjSurveyTemplateService.insertTjSurveyTemplate(tjSurveyTemplate); if (i==1) { return AjaxResult.success(form); } } }else{ final int i = tjSurveyTemplateService.insertTjSurveyTemplate(tjSurveyTemplate); if (i==1) { return AjaxResult.success(false); } } return AjaxResult.success(false); } @GetMapping("/getQuestionsByMid") public Map getQuestionsByMid(@RequestParam("mid") Long mid, @RequestParam(required = false) String question, @RequestParam("pageNum") int pageNum, @RequestParam("pageSize") int pageSize) { Map res = new HashMap<>(); // List list = tjSurveyTemplateService.getQuestionsByMid(mid); LambdaQueryWrapper wq1=new LambdaQueryWrapper<>(); wq1.eq(TjSurveyQuestion::getMid,mid); if(null !=question && !question.equals("")){ wq1.like(TjSurveyQuestion::getQuestion,question); } final List list = tjSurveyQuestionService.list(wq1); int start = 0, end = 0; start = (pageNum - 1) * pageSize; end = start + pageSize; end = Math.min(list.size(), end); List result = new ArrayList<>(); for (int i = start; i < end; i++) { result.add(list.get(i)); } final TjSurveyTemplate byId = tjSurveyTemplateService.selectTemplateByMid1(mid); for (TjSurveyQuestion tjSurveyQuestion : result) { tjSurveyQuestion.setTemplate(byId); final List tjSurveyOptions = tjSurveyQuestionService.selectOptionsByQid(String.valueOf(tjSurveyQuestion.getQid())); tjSurveyQuestion.setTjSurveyOptionsList(tjSurveyOptions); } res.put("data", result); // res.put("temp", tjSurveyTemplateService.selectTjSurveyTemplateByMid(mid)); res.put("total", list.size()); return res; } /** * 查询问卷模板列表 */ @GetMapping("/listByDeptId") public AjaxResult listByDeptId(SysDept dept) { List treeSelects =deptService.selectDeptList1(dept); return AjaxResult.success(treeSelects); } /** * 查询问卷模板列表 */ @GetMapping("/listByDeptId1") public AjaxResult listByDeptId1() { SysDictData data=new SysDictData(); data.setDictType("question_template_type"); data.setStatus("0"); List list = tjSurveyTemplateService.selectDictDataList(data); if(null !=list && list.size()>0){ for (TreeTjSurveryTemplate dictData : list) { List templateList = tjSurveyTemplateService.getTreeTjSurveryTemplate(dictData.getVaule()); dictData.setChildren(templateList); } } return AjaxResult.success(list); } @GetMapping("/getTjrWnJuanMoBan") public AjaxResult getTjrWnJuanMoBan(String tjCategory) { TjSurveyTemplate byId = tjSurveyTemplateService.selectTemplateByTjCategory(tjCategory); // TjSurveyTemplate byId = tjSurveyTemplateService.selectTemplateByMid1(Long.valueOf(mid)); if(null !=byId){ if ("1".equals(byId.getQybz())){ return AjaxResult.success("该问卷模板不存在或已停用"); } //判断是否有问题 if(byId.getDesignId()!=null){ return AjaxResult.success(byId.getDesignId()); } LambdaQueryWrapper wq1=new LambdaQueryWrapper<>(); wq1.eq(TjSurveyQuestion::getMid,byId.getMid()); final List list1 = tjSurveyQuestionService.list(wq1); for (TjSurveyQuestion tjSurveyQuestion : list1) { final List tjSurveyOptions = tjSurveyQuestionService.selectOptionsByQid(String.valueOf(tjSurveyQuestion.getQid())); tjSurveyQuestion.setTjSurveyOptionsList(tjSurveyOptions); } return AjaxResult.success(list1); } return AjaxResult.success("暂无信息"); } /** * 修改问卷模板 */ //@PreAuthorize("@ss.hasPermi('hosp:surveyTemplate:edit')") @Log(title = "问卷模板", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody TjSurveyTemplate tjSurveyTemplate) { TjSurveyTemplate byId = tjSurveyTemplateService.selectTemplateByMid1(tjSurveyTemplate.getMid()); if(null ==byId){ return AjaxResult.error("该模板不存在!!!"); } return toAjax(tjSurveyTemplateService.updateTjSurveyTemplate(tjSurveyTemplate)); } /** * 删除问卷模板 */ //@PreAuthorize("@ss.hasPermi('hosp:surveyTemplate:remove')") @Log(title = "问卷模板", businessType = BusinessType.DELETE) @DeleteMapping("/{mids}") public AjaxResult remove(@PathVariable Long[] mids) { return toAjax(tjSurveyTemplateService.deleteTjSurveyTemplateByMids(mids)); } /** * 问卷启用禁用 */ @GetMapping("/updateQybz") @ApiOperation(value = "问卷启用禁用") public AjaxResult updateQybz(@RequestParam Long mid,@RequestParam String qybz) { final TjSurveyTemplate byId = tjSurveyTemplateService.selectTemplateByMid1(mid); byId.setQybz(qybz); if ("0".equals(qybz) && tjSurveyTemplateService.qybzTjSurveyTemplateByQy(byId.getMid())==1){ return AjaxResult.success("启用成功!"); }else if ("1".equals(qybz) && tjSurveyTemplateService.qybzTjSurveyTemplateByJy(byId.getMid())==1){ return AjaxResult.success("禁用成功!"); }else { return AjaxResult.error("出错了,请联系工作人员!"); } } }