package com.mindskip.xzs.controller.admin;
import com.github.pagehelper.PageInfo;
import com.mindskip.xzs.base.BaseApiController;
import com.mindskip.xzs.base.RestResponse;
import com.mindskip.xzs.domain.DepartmentExamine;
import com.mindskip.xzs.domain.Notify;
import com.mindskip.xzs.domain.enums.NotifyRefType;
import com.mindskip.xzs.domain.vo.DepartmentExamineVO;
import com.mindskip.xzs.service.DepartmentExamineService;
import com.mindskip.xzs.service.NotifyService;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import java.time.LocalDateTime;
import java.util.Date;
/**
*
* 部门审核表 前端控制器
*
*
* @author gonghl
* @since 2024-05-13
*/
@RestController
@RequestMapping("/api/admin/department/examine")
@RequiredArgsConstructor
public class DepartmentExamineController extends BaseApiController {
private final DepartmentExamineService departmentExamineService;
private final NotifyService notifyService;
@RequestMapping(value = "list", method = RequestMethod.POST)
public RestResponse> list(@RequestBody DepartmentExamineVO departmentExamineVO) {
departmentExamineVO.setDeptIds(ObjectUtils.isNotEmpty(departmentExamineVO.getDeptIds()) ? departmentExamineVO.getDeptIds() : getAdminDeptIds());
return RestResponse.ok(departmentExamineService.pageInfo(departmentExamineVO));
}
@Transactional(rollbackFor = Exception.class)
@RequestMapping(value = "save", method = RequestMethod.POST)
public RestResponse save(@RequestBody DepartmentExamine departmentExamine) {
departmentExamine.setCreateTime(LocalDateTime.now());
departmentExamine.setCreateUser(getCurrentUser().getId());
departmentExamineService.save(departmentExamine);
// 添加通知
Notify notify = new Notify();
notify.setCreateTime(new Date());
notify.setReadStatus(2);
notify.setRefId(departmentExamine.getId());
notify.setRefType(NotifyRefType.MOBILIZE.getValue());
notify.setCreateUserId(webContext.getCurrentUser().getId());
notifyService.add(notify);
return RestResponse.ok();
}
@RequestMapping(value = "delete/{id}", method = RequestMethod.POST)
public RestResponse delete(@PathVariable Integer id) {
return RestResponse.ok(departmentExamineService.removeById(id));
}
@RequestMapping(value = "audit", method = RequestMethod.POST)
public RestResponse audit(@RequestBody DepartmentExamineVO departmentExamine) {
return RestResponse.ok(departmentExamineService.audit(departmentExamine));
}
}