package cn.timer.api.controller.spmk; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import cn.timer.api.bean.spmk.SpmkIcon; import cn.timer.api.bean.spmk.SpmkJqgz; import cn.timer.api.bean.spmk.SpmkLcjd; import cn.timer.api.bean.spmk.SpmkLcjdEmpAsso; import cn.timer.api.bean.spmk.SpmkMb; import cn.timer.api.bean.spmk.SpmkSpcz; import cn.timer.api.bean.spmk.SpmkSpgl; import cn.timer.api.bean.spmk.SpmkSpz; import cn.timer.api.bean.spmk.SpmkSxpz; import cn.timer.api.config.annotation.CurrentUser; import cn.timer.api.config.annotation.UserBean; import cn.timer.api.config.enums.CommonEnum; import cn.timer.api.dao.spmk.SpmkSpglMapper; import cn.timer.api.dao.spmk.SpmkSpzMapper; import cn.timer.api.dto.spmk.SpmkMbKjDto; import cn.timer.api.dto.spmk.SpmkSpglDto; import cn.timer.api.dto.spmk.SpmkSpglMoveDto; import cn.timer.api.dto.spmk.SpmkSpglSortDto; import cn.timer.api.dto.spmk.SpmkSpzDto; import cn.timer.api.dto.spmk.SpmkSpzSortDto; import cn.timer.api.dto.spmk.SpmkSpzSpglDto; import cn.timer.api.utils.Result; import cn.timer.api.utils.ResultUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @Api(tags = "3.0审批模块") @RestController @Transactional @RequestMapping(value = "/spmk", produces = { "application/json","multipart/form-data" }) public class SpmkServiceImpl { @Autowired private SpmkSpglMapper spmkSpglMapper; @Autowired private SpmkSpzMapper spmkSpzMapper; // @Autowired // private SpmkLcjdMapper spmkLcjdMapper; // @Autowired // private SpmkSxpzMapper spmkSxpzMapper; // @Autowired // private SpmkLcjdEmpAssoMapper spmkLcjdEmpAssoMapper; /** * 审批组-列表 */ @GetMapping(value = "/spzs") @ApiOperation(value = "审批组-列表",httpMethod = "GET") @ApiOperationSupport(order = 2) public Result<List<SpmkSpzSpglDto>> selectListspz(@CurrentUser UserBean userBean) { Integer orgCode = userBean.getOrgCode(); List<SpmkSpzSpglDto> spmkSpzSpglDtos = spmkSpzMapper.selectSpglListByOrgCode(orgCode); return ResultUtil.data(spmkSpzSpglDtos, "获取审批组列表成功"); } /** * 审批组-新增 */ @PostMapping(value = "/spzs") @ApiOperation(value = "审批组-新建",httpMethod = "POST") @ApiOperationSupport(order = 3) public Result<SpmkSpz> addspz(@CurrentUser UserBean userBean ,@RequestBody SpmkSpz spmkSpz) { Integer orgCode = userBean.getOrgCode(); if (spmkSpz == null || spmkSpz.getName() == null) return ResultUtil.error("请填入审批组名"); SpmkSpz one = spmkSpz.selectOne(new QueryWrapper<SpmkSpz>().eq("org_code", orgCode).eq("name", spmkSpz.getName())); if (one != null) return ResultUtil.error("新增失败,换个审批组名试一试~"); List<SpmkSpz> spmkSpzs = SpmkSpz.builder().build().selectList(new QueryWrapper<SpmkSpz>().eq("org_code", orgCode)); Integer maxSort = 0; if (spmkSpzs != null && spmkSpzs.size() > 0) { for (SpmkSpz spz : spmkSpzs) { Integer i = spz.getSort() == null ? 0 : spz.getSort(); // 999999 是 【其他】 审批组 ,固定排最后 if (maxSort < i && i < CommonEnum.SPZ_OTHER.getType()) maxSort = i; } } spmkSpz.setOrgCode(orgCode); spmkSpz.setIsEditable(0); spmkSpz.setSort(maxSort+1); spmkSpz.insert(); return ResultUtil.data(spmkSpz, "审批组-新建成功"); } /** * 审批组-删除 */ @DeleteMapping(value = "/spzs/{id}") @ApiOperation(value = "审批组-删除",httpMethod = "DELETE") @ApiOperationSupport(order = 4) public Result<SpmkSpz> delspz(@CurrentUser UserBean userBean ,@PathVariable("id") Integer id){ Integer orgCode = userBean.getOrgCode(); SpmkSpz spmkSpz = SpmkSpz.builder().build(); SpmkSpz thisSpz = spmkSpz.selectById(id); if ("其他".equals(thisSpz.getName())) return ResultUtil.error("该审批组无法删除"); SpmkSpz otherSpz = spmkSpz.selectOne((new QueryWrapper<SpmkSpz>().eq("org_code", orgCode).eq("sort", CommonEnum.SPZ_OTHER.getType()))); SpmkSpgl one = SpmkSpgl.builder().build().selectOne(new QueryWrapper<SpmkSpgl>().eq("spz_id", "").orderByDesc("sort").last("limit 1")); Integer max = (one == null || one.getSort() == null) ? 1 : one.getSort(); List<SpmkSpgl> spmkSpgls = SpmkSpgl.builder().build().selectList(new QueryWrapper<SpmkSpgl>().eq("spz_id", id)); if (spmkSpgls != null && spmkSpgls.size() > 0) { for (SpmkSpgl spmkSpgl : spmkSpgls) { spmkSpgl.setSort(max); spmkSpgl.setSpzId(otherSpz.getId()); spmkSpgl.updateById(); max++; } } boolean b = spmkSpz.deleteById(id); if(b) return ResultUtil.success("审批组-删除成功"); return ResultUtil.error("审批组-删除失败"); } /** * 审批管理-编辑 */ @PutMapping(value = "/spgl") @ApiOperation(value = "审批管理-编辑", httpMethod = "PUT", notes = "接口发布说明") @ApiOperationSupport(order = 9) public Result<SpmkSpgl> updateSpgl(@CurrentUser UserBean userBean,@RequestBody SpmkSpglDto spmkSpglDto){ @SuppressWarnings("unused") Integer orgCode = userBean.getOrgCode(); SpmkSpgl spmkSpgl = SpmkSpgl.builder().build(); BeanUtil.copyProperties(spmkSpglDto, spmkSpgl, "lcjd","spyj"); spmkSpgl.setMbId(null); spmkSpgl.setSpzId(null); spmkSpgl.setOrgCode(null); spmkSpgl.setSpyj(ArrayUtil.join(spmkSpglDto.getSpyj(),",")); spmkSpgl.setLcjd(ObjectUtil.serialize(spmkSpglDto.getLcjd())); boolean b = spmkSpgl.updateById(); if (!b) return ResultUtil.error("编辑管理员列失败"); return ResultUtil.success("编辑管理员列成功"); } /** * 审批模版-新增/编辑 */ @PutMapping(value = "/mb") @ApiOperation(value = "审批模版-新增/编辑", httpMethod = "PUT", notes = "接口发布说明") @ApiOperationSupport(order = 10) public Result<SpmkSpgl> updateMb(@CurrentUser UserBean userBean,@RequestBody SpmkMbKjDto spmkMbKjDto) { // TODO Auto-generated method stub SpmkMb spmkMb = SpmkMb.builder().build(); BeanUtil.copyProperties(spmkMbKjDto, spmkMb, "kj"); spmkMb.setKj(ObjectUtil.serialize(spmkMbKjDto.getKj())); boolean b = spmkMb.insertOrUpdate(); if (!b) return ResultUtil.error("审批模版-新增/编辑失败"); return ResultUtil.success("审批模版-新增/编辑成功"); } /** * 审批组-重命名 */ @PutMapping(value = "/updatespz") @ApiOperation(value = "审批组-重命名", httpMethod = "PUT", notes = "接口发布说明") @ApiOperationSupport(order = 5) public Result<SpmkSpzDto> updatespz(@CurrentUser UserBean userBean,@RequestBody SpmkSpzDto spmkSpzDto) { // TODO Auto-generated method stub Integer orgCode = userBean.getOrgCode(); if (spmkSpzDto == null || spmkSpzDto.getName() == null) return ResultUtil.error("请填入审批组名"); SpmkSpz one = SpmkSpz.builder().build().selectOne(new QueryWrapper<SpmkSpz>().eq("org_code", orgCode).eq("name", spmkSpzDto.getName())); if (one != null) return ResultUtil.error("新增失败,换个审批组名试一试~"); Integer id = spmkSpzDto.getId(); String name = spmkSpzDto.getName(); SpmkSpz.builder().id(id).name(name).build().updateById(); return ResultUtil.data(spmkSpzDto, "审批组重命名成功"); } /** * 审批组-批量排序 */ @PutMapping(value = "/updatespzsort") @ApiOperation(value = "审批组-排序", httpMethod = "PUT", notes = "接口发布说明") @ApiOperationSupport(order = 6) public Result<Void> updatespzsort(@CurrentUser UserBean userBean,@RequestBody List<SpmkSpzSortDto> spmkSpzSortDtos) { Integer orgCode = userBean.getOrgCode(); SpmkSpz.builder().sort(CommonEnum.SPZ_OTHER.getType()).build().update(new UpdateWrapper<SpmkSpz>().eq("org_code", orgCode).eq("name", "其他")); Integer count = spmkSpzMapper.updateListSortById(spmkSpzSortDtos); System.out.println(count); return ResultUtil.success("审批组批量排序成功"); } /** * 审批管理-批量排序 */ @PutMapping(value = "/updatespglsort") @ApiOperation(value = "审批管理-排序", httpMethod = "PUT", notes = "接口发布说明") @ApiOperationSupport(order = 8) public Result<Void> updatespglsort(@CurrentUser UserBean userBean,@RequestBody List<SpmkSpglSortDto> spmkSpglSortDtos) { Integer count = spmkSpglMapper.updateListSortById(spmkSpglSortDtos); System.out.println(count); return ResultUtil.success("审批管理批量排序成功"); } /** * 审批管理-查询 */ @GetMapping(value = "/spgl/{id}") @ApiOperation(value = "审批管理-查询", httpMethod = "GET", notes = "接口发布说明") @ApiOperationSupport(order = 11) public Result<SpmkSpglDto> selectspgl(@CurrentUser UserBean userBean,@PathVariable("id") Integer id) { SpmkSpgl spmkSpgl = spmkSpglMapper.selectSpglById2(id); if (spmkSpgl == null) { return ResultUtil.success(); } SpmkSpglDto spmkSpglDto = SpmkSpglDto.builder().build(); SpmkMbKjDto spmkMbKjDto = SpmkMbKjDto.builder().build(); BeanUtil.copyProperties(spmkSpgl,spmkSpglDto, "lcjd","spmkMb"); if (spmkSpgl.getLcjd() != null && spmkSpgl.getLcjd().length > 0) { spmkSpglDto.setSpyj(StrUtil.splitToInt(spmkSpgl.getSpyj(), ",")); spmkSpglDto.setLcjd(ObjectUtil.unserialize(spmkSpgl.getLcjd())); } BeanUtil.copyProperties(spmkSpgl.getSpmkMb(),spmkMbKjDto, "kj"); if (spmkSpgl.getSpmkMb() != null && spmkSpgl.getSpmkMb().getKj() != null && spmkSpgl.getSpmkMb().getKj().length > 0) { System.out.println(spmkSpgl.getSpmkMb().getKj()); spmkMbKjDto.setKj(ObjectUtil.unserialize(spmkSpgl.getSpmkMb().getKj())); } spmkSpglDto.setSpmkMbKjDto(spmkMbKjDto); return ResultUtil.data(spmkSpglDto, "审批管理查询成功"); } public void addlcjd(SpmkLcjd spmkLcjd, Integer upId) { if (spmkLcjd != null) { spmkLcjd.setUpId(upId); spmkLcjd.insert(); System.out.println("spmkLcjdId" + spmkLcjd); List<SpmkSxpz> spmkSxpzs = spmkLcjd.getSpmkSxpzs(); Integer spmkLcjdId = spmkLcjd.getId(); if (spmkSxpzs != null && spmkSxpzs.size() > 0) { for (SpmkSxpz spmkSxpz : spmkSxpzs) { spmkSxpz.setLcjdId(spmkLcjdId); spmkSxpz.insert(); } } List<SpmkLcjdEmpAsso> spmkLcjdEmpAssos = spmkLcjd.getSpmkLcjdEmpAssos(); if (spmkLcjdEmpAssos != null && spmkLcjdEmpAssos.size() > 0) { for (SpmkLcjdEmpAsso spmkLcjdEmpAsso : spmkLcjdEmpAssos) { spmkLcjdEmpAsso.setLcjdId(spmkLcjdId); spmkLcjdEmpAsso.insert(); } } List<SpmkLcjd> spmkLcjds = spmkLcjd.getSpmkLcjds(); if (spmkLcjds != null && spmkLcjds.size() > 0) { for (SpmkLcjd spmkLcjd2 : spmkLcjds) { this.addlcjd(spmkLcjd2, spmkLcjdId); } } } } /** * 审批管理-流程节点-批量添加/更新 */ @Transactional @PostMapping(value = "/lcjd") @ApiOperation(value = "流程节点-批量添加/更新", httpMethod = "POST", notes = "接口发布说明") @ApiOperationSupport(order = 12) public Result<Void> addlistlcjd(@CurrentUser UserBean userBean,@RequestBody SpmkLcjd spmkLcjd) { return null; } /** * 审批操作-发起审批 */ @PostMapping(value = "/spcz") @ApiOperation(value = "审批操作-发起审批", httpMethod = "POST", notes = "接口发布说明") @ApiOperationSupport(order = 13) public Result<Void> addspcz(@CurrentUser UserBean userBean,@RequestBody SpmkSpcz spmkSpcz) { return ResultUtil.success("审批操作-发起审批成功"); } /** * 审批总汇-流程 */ @PostMapping(value = "/sphz") @ApiOperation(value = "审批汇总-流程", httpMethod = "POST", notes = "接口发布说明") @ApiOperationSupport(order = 14) public Result<Void> sphz(@CurrentUser UserBean userBean) { return null; } /** * 移动到 */ @PutMapping(value = "/movespgl") @ApiOperation(value = "移动到", httpMethod = "PUT", notes = "接口发布说明") @ApiOperationSupport(order = 7) public Result<SpmkSpgl> moveSpgl(@CurrentUser UserBean userBean,@RequestBody SpmkSpglMoveDto spmkSpglMoveDto) { Integer id = spmkSpglMoveDto.getId(); Integer spzId = spmkSpglMoveDto.getSpzId(); List<SpmkSpgl> spgls = SpmkSpgl.builder().build().selectList(new QueryWrapper<SpmkSpgl>().eq("spz_id", spzId)); Integer maxSort = 0; if (spgls != null && spgls.size() > 0) { for (SpmkSpgl spmkSpgl : spgls) { Integer i = spmkSpgl.getSort() == null ? 0 : spmkSpgl.getSort(); if (maxSort < i) maxSort = i; } } boolean b = SpmkSpgl.builder().id(id).spzId(spzId).sort(maxSort + 1).build().updateById(); if (!b) return ResultUtil.error("移动审批失败"); return ResultUtil.success("移动审批成功"); } /** * 图标列表 */ @GetMapping(value = "/icon") @ApiOperation(value = "图标列表", httpMethod = "GET", notes = "接口发布说明") @ApiOperationSupport(order = 1) public Result<List<SpmkIcon>> selectListIcon(@CurrentUser UserBean userBean){ List<SpmkIcon> spmkIcons = SpmkIcon.builder().build().selectAll(); return ResultUtil.data(spmkIcons,"获取图标列表成功"); } /** * 假期规则列表 */ @GetMapping(value = "/jqgz") @ApiOperation(value = "假期规则列表", httpMethod = "GET", notes = "接口发布说明") @ApiOperationSupport(order = 1) public Result<Object> selectListjqgz( @RequestParam(defaultValue = "1") Integer currentPage, @RequestParam(defaultValue = "10") Integer totalPage, @RequestParam Integer id, @CurrentUser UserBean userBean){ Page<SpmkJqgz> p = new Page<SpmkJqgz>(currentPage, totalPage); Integer orgCode = userBean.getOrgCode(); IPage<SpmkJqgz> sPage = SpmkJqgz.builder().build().selectPage(p, new QueryWrapper<SpmkJqgz>().eq("org_code",orgCode)); List<SpmkJqgz> spmkJqgzs = sPage.getRecords(); sPage.getCurrent(); sPage.getPages(); sPage.getTotal(); sPage.getSize(); return ResultUtil.data(sPage, spmkJqgzs, "获取假期规则列表成功"); } }