package com.consum.base.controller; import java.util.List; import cn.hutool.core.collection.CollectionUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.consum.base.BaseController; import com.consum.base.core.type.StatesType; import com.consum.base.core.utils.CommonUtil; import com.consum.base.pojo.FinSysTenantDepartmentParam; import com.consum.base.service.FinSysTenantDepartmentService; import com.consum.model.po.FinSysTenantDepartment; import com.consum.model.po.FinSysTenantUser; import com.walker.db.page.GenericPager; import com.walker.infrastructure.utils.StringUtils; import com.walker.web.ResponseValue; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; /** * @Description 部门管理 * @Author 卢庆阳 * @Date 2023/10/26 */ @Api(value = "部门管理", tags = "部门管理") @RestController @RequestMapping("/pc/fin/sys/tenant/department") public class FinSysTenantDepartmentController extends BaseController { @Autowired private FinSysTenantDepartmentService departmentService; /** * @Description 新增 * @Author 卢庆阳 * @Date 2023/10/26 */ @ApiOperation(value = "新增", notes = "新增") @ApiImplicitParams(value = { @ApiImplicitParam(name = "param", value = "部门信息", required = true, dataType = "FinSysTenantDepartmentParam")}) @PostMapping("/add") public ResponseValue add() { FinSysTenantDepartmentParam param = CommonUtil.getObjFromReqBody(FinSysTenantDepartmentParam.class); FinSysTenantDepartmentParam finSysTenantDepartmentParam = new FinSysTenantDepartmentParam(); CommonUtil.copyProperties(param, finSysTenantDepartmentParam); param = finSysTenantDepartmentParam; if (StringUtils.isEmpty(param.getName())) { return ResponseValue.error("部门名称为空"); } if (StringUtils.isEmpty(param.getCode())) { return ResponseValue.error("编号为空"); } FinSysTenantDepartment tenantDepartment = departmentService.getTenantDepartment(null, param.getTenantId(), param.getCode()); if (tenantDepartment != null) { return ResponseValue.error("部门编号已存在"); } // 判断同一机构id下 部门名称 是否重复 FinSysTenantDepartment department = departmentService.getTenantDepartment(param.getName(), param.getTenantId(), null); if (department != null) { return ResponseValue.error("部门名称已存在"); } // 部门编号 FinSysTenantDepartmentParam finSysTenantDepartmentParam1 = new FinSysTenantDepartmentParam(); finSysTenantDepartmentParam1.setCode(param.getCode()); List datas = departmentService.queryDataList(finSysTenantDepartmentParam1); if(!CollectionUtil.isEmpty(datas)){ return ResponseValue.error("此编号已存在"); } int result = this.departmentService.add(param, this.getSysInfo()); if (result > 0) { return ResponseValue.success(); } return ResponseValue.error("新增失败!"); } /** * @Description 部门列表查询 * @Author 卢庆阳 * @Date 2023/10/26 */ // 如果不传机构id,默认查省级机构的部门 @GetMapping("/list") public ResponseValue queryList() { FinSysTenantDepartmentParam param = CommonUtil.getObjFromReq(FinSysTenantDepartmentParam.class); FinSysTenantDepartmentParam param2 = new FinSysTenantDepartmentParam(); CommonUtil.copyProperties(param, param2); param = param2; FinSysTenantUser sysInfo = this.getSysInfo(); if (sysInfo == null) { return ResponseValue.error("登录用户信息不存在"); } GenericPager pager = this.departmentService.queryList(param); return ResponseValue.success(pager); } @ApiOperation(value = "根据机构id查询所有部门列表信息", notes = "根据机构id查询所有部门列表信息") @ApiImplicitParams(value = { @ApiImplicitParam(name = "param", value = "部门信息", required = true, dataType = "FinSysTenantDepartmentParam")}) @GetMapping("/list/all") public ResponseValue queryAllDepartment(Long tenantId) { FinSysTenantUser sysInfo = this.getSysInfo(); if (sysInfo == null) { return ResponseValue.error("登录用户信息不存在"); } FinSysTenantDepartment finSysTenantDepartment = new FinSysTenantDepartment(); finSysTenantDepartment.setTenantId(tenantId); finSysTenantDepartment.setStatus(StatesType.NORMAL.getValue()); List finSysTenantDepartments = this.departmentService.select(finSysTenantDepartment); return ResponseValue.success(finSysTenantDepartments); } /** * @Description 编辑(修改状态) * @Author 卢庆阳 * @Date 2023/10/26 */ @PostMapping("/edit") public ResponseValue edit() { FinSysTenantDepartment param = CommonUtil.getObjFromReqBody(FinSysTenantDepartment.class); FinSysTenantDepartment finSysTenantDepartment = new FinSysTenantDepartment(); CommonUtil.copyProperties(param, finSysTenantDepartment); param = finSysTenantDepartment; Long id = param.getId(); if (id == null || id <= 0) { return ResponseValue.error("编辑的部门不存在"); } if (StringUtils.isEmpty(param.getName())) { return ResponseValue.error("部门名称为空"); } if (StringUtils.isEmpty(param.getCode())) { return ResponseValue.error("部门编号为空"); } FinSysTenantUser sysInfo = this.getSysInfo(); if (sysInfo == null) { return ResponseValue.error("登录用户信息不存在"); } FinSysTenantDepartment tenantDepartment = this.departmentService.getTenantDepartment(null, param.getTenantId(), param.getCode()); if (tenantDepartment != null) { //return ResponseValue.error("部门编号已存在"); } // 部门编号 FinSysTenantDepartmentParam finSysTenantDepartmentParam1 = new FinSysTenantDepartmentParam(); finSysTenantDepartmentParam1.setCode(param.getCode()); List datas = departmentService.queryDataList(finSysTenantDepartmentParam1); if(!CollectionUtil.isEmpty(datas)){ FinSysTenantDepartment finSysTenantDepartment1 = datas.get(0); if(!finSysTenantDepartment1.getId().equals(param.getId())){ return ResponseValue.error("此编号已存在"); } } int num = this.departmentService.updateFinSysTenantDepartment(param, sysInfo); return num > 0 ? ResponseValue.success() : ResponseValue.error("编辑失败!"); } /** * 根据部门id查询部门详情 * * @author 卢庆阳 * @Date 2023/10/26 */ @GetMapping("/detail") public ResponseValue getById(Long id) { if (id == null) { return ResponseValue.error("部门id为空"); } FinSysTenantDepartment department = this.departmentService.getById(id); if (department == null) { return ResponseValue.error("查询失败!"); } return ResponseValue.success("查询成功!", department); } /** * @Description 根据id删除部门 * @Author 卢庆阳 * @Date 2023/10/26 */ @DeleteMapping("/del") public ResponseValue updateById() { FinSysTenantDepartment param = CommonUtil.getObjFromReqBody(FinSysTenantDepartment.class); FinSysTenantDepartment finSysTenantDepartment = new FinSysTenantDepartment(); CommonUtil.copyProperties(param, finSysTenantDepartment); param = finSysTenantDepartment; if (param.getId() == null) { return ResponseValue.error("部门id为空"); } FinSysTenantUser sysInfo = this.getSysInfo(); if (sysInfo == null) { return ResponseValue.error("登录用户信息不存在"); } int num = this.departmentService.updateById(param, sysInfo); return num > 0 ? ResponseValue.success(1) : ResponseValue.error("删除失败!"); } }