package com.kidgrow.usercenter.controller; import com.kidgrow.common.annotation.LoginUser; import com.kidgrow.common.constant.DictionariesConstants; import com.kidgrow.common.controller.BaseController; import com.kidgrow.common.model.PageResult; import com.kidgrow.common.model.ResultBody; import com.kidgrow.common.model.SysOrganization; import com.kidgrow.common.model.SysUser; import com.kidgrow.usercenter.model.SysHospital; import com.kidgrow.usercenter.service.ISysDepartmentService; import com.kidgrow.usercenter.service.ISysHospitalService; import com.kidgrow.usercenter.service.ISysOrganizationService; import com.kidgrow.usercenter.vo.HospitalListVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.BindingResult; import org.springframework.validation.ObjectError; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.util.ArrayList; import java.util.List; import java.util.Map; /** * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020
* * @Description: 医院基础信息表 * @Project: 用户中心 * @CreateDate: Created in 2020-04-02 18:32:36
* @Author: liuke * @version: 1.0 */ @Slf4j @RestController @RequestMapping("/syshospital") @Api(tags = "医院基础信息表") public class SysHospitalController extends BaseController { @Autowired private ISysHospitalService sysHospitalService; @Autowired private ISysDepartmentService departmentService; @Autowired private ISysOrganizationService organizationService; /** * 列表 */ @ApiOperation(value = "查询列表/单表") @ApiImplicitParams({ @ApiImplicitParam(name = "page", value = "分页起始位置", required = true, dataType = "Integer"), @ApiImplicitParam(name = "limit", value = "分页结束位置", required = true, dataType = "Integer") }) @GetMapping("/findOne") public PageResult listOne(@RequestParam Map params) { if (params.size() == 0) { params.put("page", 1); params.put("limit", 10); } return sysHospitalService.findList(params); } /** * 列表 */ @ApiOperation(value = "查询列表") @ApiImplicitParams({ @ApiImplicitParam(name = "page", value = "分页起始位置", required = true, dataType = "Integer"), @ApiImplicitParam(name = "limit", value = "分页结束位置", required = true, dataType = "Integer") }) @GetMapping public PageResult list(@RequestParam Map params, @LoginUser SysUser user) { if (params.size() == 0) { params.put("page", 1); params.put("limit", 10); } return sysHospitalService.findHospitalList(params,user); } @PostMapping("findAll") @ApiOperation(value = "查询所有列表") public ResultBody findAll(@RequestBody Map params) { if (params.get("hospitalName") != null) { return sysHospitalService.findAll(params); } else { return ResultBody.ok().data(null); } } @PostMapping("findAllByMap") @ApiOperation(value = "查询所有列表") public ResultBody findAllByMap(@RequestBody Map params) { return sysHospitalService.findAll(params); } /** * 查询 */ @ApiOperation(value = "查询") @GetMapping("/{id}") public ResultBody findById(@PathVariable Long id) { SysHospital model = sysHospitalService.getById(id); return ResultBody.ok().data(model).msg("查询成功"); } /** * 查询 */ @ApiOperation(value = "查询") @GetMapping("/findByName") public ResultBody findByName(@RequestParam String hospitalName) { if (!hospitalName.isEmpty()) { return ResultBody.ok().data(sysHospitalService.findByName(hospitalName).getData()).msg("查询成功"); } else { return ResultBody.ok().data(null).msg(""); } } /** * 根据SysHospital当做查询条件进行查询 */ @ApiOperation(value = "根据SysHospital当做查询条件进行查询") @PostMapping("/query") public ResultBody findByObject(@RequestBody SysHospital sysHospital) { SysHospital model = sysHospitalService.findByObject(sysHospital); return ResultBody.ok().data(model).msg("查询成功"); } /** * 新增or更新 */ @ApiOperation(value = "保存") @PostMapping public ResultBody save(@Valid @RequestBody SysHospital sysHospital, BindingResult bindingResult, @LoginUser SysUser sysUser) { List errMsg = new ArrayList<>(); if (bindingResult.hasErrors()) { for (ObjectError error : bindingResult.getAllErrors()) { errMsg.add(error.getDefaultMessage()); } return ResultBody.failed().msg(errMsg.toString()); } else { //先检查该医院是否存在组织信息 SysOrganization sysOrganization=new SysOrganization(); if(sysHospital.getOrgId()!=null){ sysOrganization.setId(sysHospital.getOrgId());} else{ sysOrganization.setOrgName(sysHospital.getHospitalName()); sysOrganization.setOrgParentId(DictionariesConstants.ORG_PARENT_ID); } sysOrganization=organizationService.findByObject(sysOrganization); if(sysOrganization==null) { //创建一个组织 sysOrganization=new SysOrganization(); sysOrganization.setOrgName(sysHospital.getHospitalName()); sysOrganization.setOrgAttr(1); sysOrganization.setOrgLevel(1); sysOrganization.setOrgParentId(DictionariesConstants.ORG_PARENT_ID); } else { sysOrganization.setOrgName(sysHospital.getHospitalName()); } boolean org=organizationService.saveOrUpdate(sysOrganization); sysHospital.setOrgId(sysOrganization.getId()); List organizations = sysUser.getOrganizations(); if (organizations.size()>0) { sysHospital.setCreateUserOrgCode(organizations.get(organizations.size()-1).getOrgCode()); } boolean v = sysHospitalService.saveOrUpdate(sysHospital); if (v) { return ResultBody.ok().data(sysHospital).msg("保存成功"); } else { return ResultBody.failed().msg("保存失败"); } } } /** * 删除 */ @ApiOperation(value = "删除") @GetMapping("/delete") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Integer"), @ApiImplicitParam(name = "departmentId", value = "departmentId", required = true, dataType = "Integer") }) public ResultBody delete(@RequestParam Map params) { if (params.size() == 0) { return ResultBody.failed().msg("参数异常!"); } return sysHospitalService.delete(params); } /** * 修改状态 * * @param params * @return */ @ApiOperation(value = "修改反馈数据状态") @GetMapping("/updateEnabled") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Integer"), @ApiImplicitParam(name = "departmentId", value = "departmentId", required = true, dataType = "Integer"), @ApiImplicitParam(name = "enabled", value = "是否启用", required = true, dataType = "Boolean") }) public ResultBody updateEnabled(@RequestParam Map params) { if (params.size() == 0) { return ResultBody.failed().msg("参数异常!"); } return sysHospitalService.updateEnabled(params); } }