| | |
| | | package com.kidgrow.usercenter.controller; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.kidgrow.common.annotation.LoginUser; |
| | | import com.kidgrow.common.model.ResultBody; |
| | | import com.kidgrow.common.model.SysOrganization; |
| | | import com.kidgrow.common.model.SysUser; |
| | | import com.kidgrow.common.model.SysUserOrg; |
| | | import com.kidgrow.usercenter.model.SysDepartment; |
| | | import com.kidgrow.usercenter.model.SysHospital; |
| | | import com.kidgrow.usercenter.service.ISysOrganizationService; |
| | | import com.kidgrow.usercenter.service.ISysUserOrgService; |
| | | import com.kidgrow.usercenter.service.impl.SysDepartmentServiceImpl; |
| | | import com.kidgrow.usercenter.service.impl.SysHospitalServiceImpl; |
| | | import io.swagger.annotations.Api; |
| | | 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.web.bind.annotation.*; |
| | | |
| | | import javax.validation.Valid; |
| | | import java.util.ArrayList; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | @Slf4j |
| | | @RestController |
| | | @RequestMapping("/sysuserorg") |
| | | @Api(tags = "") |
| | | @Api(tags = "用户与部门") |
| | | public class SysUserOrgController { |
| | | @Autowired |
| | | private ISysUserOrgService iSysUserOrgService; |
| | | private ISysUserOrgService sysUserOrgService; |
| | | @Autowired |
| | | private ISysOrganizationService sysOrganizationService; |
| | | @Autowired |
| | | private SysDepartmentServiceImpl sysDepartmentService; |
| | | @Autowired |
| | | private SysHospitalServiceImpl sysHospitalService; |
| | | |
| | | @PostMapping("getListByMap") |
| | | public List<SysUserOrg> getListByMap(@RequestParam Map<String,Object> map){ |
| | | List<SysUserOrg> sysUserOrgs = iSysUserOrgService.listByMap(map); |
| | | public List<SysUserOrg> getListByMap(@RequestParam Map<String, Object> map) { |
| | | List<SysUserOrg> sysUserOrgs = sysUserOrgService.listByMap(map); |
| | | return sysUserOrgs; |
| | | } |
| | | |
| | | /** |
| | | * 根据条件查询列表 |
| | | * |
| | | * @param map |
| | | * @return |
| | | */ |
| | | @ApiOperation(value = "根据条件查询列表") |
| | | @GetMapping |
| | | public ResultBody listByMap(@RequestParam Map<String, Object> map) { |
| | | return ResultBody.ok().data(sysUserOrgService.listByMap(map)).msg("查询成功"); |
| | | } |
| | | |
| | | /** |
| | | * 新增or更新 |
| | | */ |
| | | @ApiOperation(value = "保存") |
| | | @PostMapping |
| | | public ResultBody save(@Valid @RequestBody SysUserOrg sysUserOrg, BindingResult bindingResult, @LoginUser SysUser sysUser) { |
| | | if (bindingResult.hasErrors()) { |
| | | return ResultBody.failed().msg(bindingResult.getFieldError().getDefaultMessage()); |
| | | } else { |
| | | if (sysUserOrg.getUserId() != null) { |
| | | String createUserOrgCode = ""; |
| | | List<SysOrganization> userOrgData = new ArrayList<>(); |
| | | SysOrganization byId = sysOrganizationService.getById(sysUserOrg.getOrgId()); |
| | | if(byId==null){ |
| | | return ResultBody.failed().data(null).msg("该组织id异常"); |
| | | } |
| | | SysOrganization parentId = sysOrganizationService.getById(byId.getOrgParentId()); |
| | | userOrgData.add(parentId); |
| | | userOrgData.add(byId); |
| | | if(parentId==null){ |
| | | return ResultBody.failed().data(null).msg("该组织id异常"); |
| | | } |
| | | if (userOrgData != null) { |
| | | if (userOrgData.size() == 2) { |
| | | createUserOrgCode = userOrgData.get(1).getOrgCode(); |
| | | } |
| | | } |
| | | if (!createUserOrgCode.isEmpty()) { |
| | | //查出用户的所有组织关系数据 |
| | | Map<String, Object> map = new HashMap<String, Object>(); |
| | | map.put("user_id", sysUserOrg.getUserId()); |
| | | List<SysUserOrg> userOrgList = sysUserOrgService.getListByMap(map); |
| | | if (userOrgList.size() > 0) { |
| | | for (int i = 0; i < userOrgList.size(); i++) { |
| | | if (sysUserOrg.getId().equals(userOrgList.get(i).getId())) { |
| | | userOrgList.get(i).setOrgId(sysUserOrg.getOrgId()); |
| | | userOrgList.get(i).setFromLevel(2); |
| | | |
| | | //查询 科室 |
| | | QueryWrapper queryWrapper = new QueryWrapper(); |
| | | queryWrapper.eq("org_id", sysUserOrg.getOrgId()); |
| | | queryWrapper.eq("is_del", 0); |
| | | queryWrapper.eq("enabled", 1); |
| | | List<SysDepartment> list = sysDepartmentService.list(queryWrapper); |
| | | if (!list.isEmpty()) { |
| | | userOrgList.get(i).setFromId(list.get(0).getId()); |
| | | } else { |
| | | userOrgList.get(i).setFromId(null); |
| | | } |
| | | } else { |
| | | QueryWrapper queryWrapper = new QueryWrapper(); |
| | | queryWrapper.eq("org_id", sysUserOrg.getUpdateUserId()); |
| | | queryWrapper.eq("is_del", 0); |
| | | queryWrapper.eq("enabled", 1); |
| | | List<SysHospital> listHospital = sysHospitalService.list(queryWrapper); |
| | | if (!listHospital.isEmpty()) { |
| | | userOrgList.get(i).setFromId(listHospital.get(0).getId()); |
| | | } |
| | | userOrgList.get(i).setFromLevel(1); |
| | | userOrgList.get(i).setOrgId(sysUserOrg.getUpdateUserId()); |
| | | } |
| | | userOrgList.get(i).setEnabled(sysUserOrg.getEnabled()); |
| | | userOrgList.get(i).setCreateUserOrgCode(createUserOrgCode); |
| | | } |
| | | } else { |
| | | userOrgList = new ArrayList<>(); |
| | | //查出来的上级组织信息建立用户关系 |
| | | //借用字段承载数据 |
| | | SysOrganization sysOrganization = sysOrganizationService.getById(sysUserOrg.getUpdateUserId()); |
| | | if (sysOrganization != null) { |
| | | SysUserOrg sysUserOrgTemp = new SysUserOrg(); |
| | | sysUserOrgTemp.setOrgId(sysOrganization.getId()); |
| | | sysUserOrgTemp.setUserId(sysUserOrg.getUserId()); |
| | | sysUserOrgTemp.setEnabled(sysUserOrg.getEnabled()); |
| | | sysUserOrgTemp.setCreateUserOrgCode(createUserOrgCode); |
| | | sysUserOrgTemp.setFromLevel(2); |
| | | |
| | | //查询 科室 |
| | | QueryWrapper queryWrapper = new QueryWrapper(); |
| | | queryWrapper.eq("org_id", sysUserOrg.getOrgId()); |
| | | queryWrapper.eq("is_del", 0); |
| | | queryWrapper.eq("enabled", 1); |
| | | List<SysDepartment> list = sysDepartmentService.list(queryWrapper); |
| | | if (!list.isEmpty()) { |
| | | sysUserOrgTemp.setFromId(list.get(0).getId()); |
| | | } |
| | | userOrgList.add(sysUserOrgTemp); |
| | | //查询 医院 |
| | | queryWrapper = new QueryWrapper(); |
| | | queryWrapper.eq("org_id", sysUserOrg.getUpdateUserId()); |
| | | queryWrapper.eq("is_del", 0); |
| | | queryWrapper.eq("enabled", 1); |
| | | List<SysHospital> listHospital = sysHospitalService.list(queryWrapper); |
| | | if (!listHospital.isEmpty()) { |
| | | sysUserOrg.setFromId(listHospital.get(0).getId()); |
| | | } |
| | | sysUserOrg.setFromLevel(1); |
| | | // sysUserOrg.setUpdateUserId(0L); |
| | | sysUserOrg.setOrgId(sysOrganization.getOrgParentId()); |
| | | sysUserOrg.setCreateUserOrgCode(createUserOrgCode); |
| | | userOrgList.add(sysUserOrg); |
| | | } else { |
| | | return ResultBody.failed().data(null).msg("该组织的上级组织数据异常!"); |
| | | } |
| | | } |
| | | //查询 |
| | | boolean v = sysUserOrgService.saveOrUpdateBatch(userOrgList); |
| | | if (v) { |
| | | return ResultBody.ok().data(sysUserOrg).msg("保存成功"); |
| | | } else { |
| | | return ResultBody.failed().data(null).msg("数据保存失败!"); |
| | | } |
| | | } else { |
| | | return ResultBody.failed().data(null).msg("该组织数据不完整!"); |
| | | } |
| | | } else { |
| | | return ResultBody.failed().data(null).msg("该组数据不完整!"); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 删除 |
| | | */ |
| | | @ApiOperation(value = "删除") |
| | | @DeleteMapping("/{id}") |
| | | public ResultBody delete(@PathVariable Long id) { |
| | | sysUserOrgService.removeById(id); |
| | | return ResultBody.ok().msg("删除成功"); |
| | | } |
| | | |
| | | /** |
| | | * 查询 |
| | | */ |
| | | @ApiOperation(value = "查询") |
| | | @GetMapping("/{id}") |
| | | public ResultBody findById(@PathVariable Long id) { |
| | | SysUserOrg model = sysUserOrgService.getById(id); |
| | | return ResultBody.ok().data(model).msg("查询成功"); |
| | | } |
| | | } |