123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461 |
- package com.example.civilizedcity.controller;
-
- import cn.dev33.satoken.annotation.SaCheckPermission;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.baomidou.mybatisplus.core.metadata.IPage;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.example.civilizedcity.common.*;
-
- import java.time.LocalDateTime;
- import java.util.List;
-
- import com.example.civilizedcity.entity.SysUser;
- import com.example.civilizedcity.entity.TaIssue;
- import com.example.civilizedcity.event.MessagEvent;
- import com.example.civilizedcity.service.TaIssueService;
- import com.example.civilizedcity.service.TaOrgIssueService;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiOperation;
- import io.swagger.annotations.ApiParam;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.context.ApplicationEventPublisher;
- import org.springframework.web.bind.annotation.*;
- import com.example.civilizedcity.entity.TaIssueProcess;
- import com.example.civilizedcity.service.TaIssueProcessService;
-
-
- @Api(tags = "问题处理对象功能接口")
- @RestController
- @RequestMapping("/")
- public class TaIssueProcessController extends BaseController {
-
- @Autowired
- private TaIssueProcessService taIssueProcessService;
-
- @Autowired
- private TaIssueService taIssueService;
-
- @Autowired
- private TaOrgIssueService taOrgIssueService;
-
- @Autowired
- ApplicationEventPublisher applicationEventPublisher;
-
-
-
- @ApiOperation("通过ID查询单条数据")
- @GetMapping("/taIssueProcess/{id}")
- public ResponseBean queryById(@ApiParam("对象ID") @PathVariable Integer id) throws Exception {
- return ResponseBean.success(taIssueProcessService.getById(id));
- }
-
-
-
- @ApiOperation("分页查询")
- @GetMapping("/taIssueProcess")
- public ResponseBean list(@ApiParam("页码") @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
- @ApiParam("单页数据量") @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
- @ApiParam("问题单ID") @RequestParam(value = "issueId") Integer issueId) throws Exception {
-
- IPage<TaIssueProcess> pg = new Page<>(pageNum, pageSize);
- QueryWrapper<TaIssueProcess> queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("issue_id", issueId);
- queryWrapper.gt("status", Constants.STATUS_DELETE);
- queryWrapper.orderByDesc("create_date");
- IPage<TaIssueProcess> result = taIssueProcessService.page(pg, queryWrapper);
-
- return ResponseBean.success(result);
- }
-
- private TaIssue checkIssue(TaIssueProcess taIssueProcess) throws Exception {
- if (null == taIssueProcess.getIssueId()) {
- throw new Exception("找不到对应问题");
- }
-
- TaIssue taIssue = taIssueService.getById(taIssueProcess.getIssueId());
- if (null == taIssue || taIssue.getStatus() == Constants.STATUS_DELETE) {
- throw new Exception("找不到对应问题");
- }
-
- if (Constants.PROCESS_END.equals(taIssue.getProcessNode())) {
- throw new Exception("当前问题已办结");
- }
-
- return taIssue;
- }
-
- private void updateUser(TaIssueProcess taIssueProcess, SysUser sysUser) {
- taIssueProcess.setOrgId(sysUser.getOrgId());
- taIssueProcess.setCreateUser(sysUser.getUserId());
- taIssueProcess.setUserName(sysUser.getName());
- taIssueProcess.setStatus(Constants.STATUS_NORMAL);
- taIssueProcess.setCreateDate(LocalDateTime.now());
- }
-
- private void updateIssue(TaIssue taIssue, TaIssueProcess taIssueProcess) {
- taIssue.setProcessNode(taIssueProcess.getProcessNode());
- taIssue.setProcessStatus(taIssueProcess.getProcessStatus());
- taIssueService.updateById(taIssue);
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- @SaCheckPermission("manager")
- @ApiOperation("交办")
- @PostMapping("/taIssueProcess/assigned")
- public ResponseBean assigned(@ApiParam("对象实体") @RequestBody TaIssueProcess taIssueProcess) throws Exception {
- TaIssue taIssue = checkIssue(taIssueProcess);
-
- if (StringUtils.isEmpty(taIssueProcess.getOrgId())) {
- return ResponseBean.error("请指定交办单位");
- } else {
- taIssue.setOrgId(taIssueProcess.getOrgId());
- }
- if (StringUtils.isEmpty(taIssueProcess.getExpireDate())) {
- return ResponseBean.error("请设置截止日期");
- } else {
- if (DateUtils.isAfter(taIssueProcess.getExpireDate() + " 23:59:59")) {
- return ResponseBean.error("请设置有效的截止日期");
- }
-
- taIssue.setExpireDate(taIssueProcess.getExpireDate());
- }
-
- SysUser sysUser = currentUser();
-
- updateUser(taIssueProcess, sysUser);
- taIssueProcess.setProcessNode(Constants.PROCESS_ASSIGNED);
- taIssueProcess.setProcessStatus(Constants.PROCESS_STATUS_READY);
- taIssueProcessService.save(taIssueProcess);
-
- updateIssue(taIssue, taIssueProcess);
-
- taOrgIssueService.createNewIssue(taIssue, sysUser);
-
- return ResponseBean.success(taIssueProcess);
- }
-
-
-
- @SaCheckPermission("org_user")
- @ApiOperation("驳回")
- @PostMapping("/taIssueProcess/reject")
- public ResponseBean reject(@ApiParam("对象实体") @RequestBody TaIssueProcess taIssueProcess) throws Exception {
- TaIssue taIssue = checkIssue(taIssueProcess);
-
- if (StringUtils.isEmpty(taIssueProcess.getProcessResult())) {
- return ResponseBean.error("请填写未驳回原因");
- }
-
- updateUser(taIssueProcess, currentUser());
- taIssueProcess.setProcessNode(Constants.PROCESS_START);
- taIssueProcess.setProcessStatus(Constants.PROCESS_STATUS_REJECT);
- taIssueProcessService.save(taIssueProcess);
-
- updateIssue(taIssue, taIssueProcess);
-
-
- applicationEventPublisher.publishEvent(new MessagEvent(this, taIssue));
- return ResponseBean.success(taIssueProcess);
- }
-
-
-
- @SaCheckPermission("org_user")
- @ApiOperation("单位驳回")
- @PostMapping("/taIssueProcess/org/reject")
- public ResponseBean orgReject(@ApiParam("对象实体") @RequestBody TaIssueProcess taIssueProcess) throws Exception {
- TaIssue taIssue = checkIssue(taIssueProcess);
-
- TaIssueProcess prevProcess = taIssueProcessService.getById(taIssueProcess.getPrevProcess());
- if (null == prevProcess) {
- return ResponseBean.error("未找到上级流程");
- }
-
- if (StringUtils.isEmpty(taIssueProcess.getProcessResult())) {
- return ResponseBean.error("请填写未驳回原因");
- }
-
- updateUser(taIssueProcess, currentUser());
- taIssueProcess.setNextOrg(prevProcess.getOrgId());
- taIssueProcess.setProcessNode(Constants.PROCESS_ASSIGNED);
- taIssueProcess.setProcessStatus(Constants.PROCESS_STATUS_REJECT);
- taIssueProcessService.save(taIssueProcess);
-
- updateIssue(taIssue, taIssueProcess);
-
- return ResponseBean.success(taIssueProcess);
- }
-
-
-
- @SaCheckPermission("org_user")
- @ApiOperation("延期申请")
- @PostMapping("/taIssueProcess/org/delay/apply")
- public ResponseBean delayApply(@ApiParam("对象实体") @RequestBody TaIssueProcess taIssueProcess) throws Exception {
- TaIssue taIssue = checkIssue(taIssueProcess);
-
- if (StringUtils.isEmpty(taIssueProcess.getExpireDate())) {
- return ResponseBean.error("请设置延期日期");
- } else {
- if (DateUtils.isAfter(taIssueProcess.getExpireDate() + " 23:59:59")) {
- return ResponseBean.error("请设置有效的延期日期");
- }
- }
-
- TaIssueProcess prevProcess = taIssueProcessService.getById(taIssueProcess.getPrevProcess());
- if (null == prevProcess) {
- return ResponseBean.error("未找到上级流程");
- }
-
- updateUser(taIssueProcess, currentUser());
- taIssueProcess.setNextOrg(prevProcess.getOrgId());
- taIssueProcess.setProcessNode(Constants.PROCESS_ORG_DELAY_APPLY);
- taIssueProcess.setProcessStatus(Constants.PROCESS_STATUS_READY);
- taIssueProcessService.save(taIssueProcess);
-
- updateIssue(taIssue, taIssueProcess);
-
- return ResponseBean.success(taIssueProcess);
- }
-
-
-
- @SaCheckPermission("manager")
- @ApiOperation("延期审核")
- @PostMapping("/taIssueProcess/delay/verify")
- public ResponseBean delayVerify(@ApiParam("对象实体") @RequestBody TaIssueProcess taIssueProcess) throws Exception {
- TaIssue taIssue = checkIssue(taIssueProcess);
-
- TaIssueProcess prevProcess = taIssueProcessService.getById(taIssueProcess.getPrevProcess());
- if (null == prevProcess) {
- return ResponseBean.error("未找到上级流程");
- }
-
- if (!Constants.PROCESS_ORG_DELAY_APPLY.equals(prevProcess.getProcessNode())) {
- return ResponseBean.error("上级流程验证不正确");
- }
-
- if (Constants.PROCESS_STATUS_REJECT.equals(taIssueProcess.getProcessStatus())) {
-
- if (StringUtils.isEmpty(taIssueProcess.getProcessResult())) {
- return ResponseBean.error("请填写未通过原因");
- }
- } else {
- taIssue.setExpireDate(prevProcess.getExpireDate());
- }
-
- updateUser(taIssueProcess, currentUser());
- taIssueProcess.setNextOrg(prevProcess.getOrgId());
- taIssueProcess.setProcessNode(Constants.PROCESS_DELAY_VERIFY);
- taIssueProcessService.save(taIssueProcess);
-
- updateIssue(taIssue, taIssueProcess);
-
- return ResponseBean.success(taIssueProcess);
- }
-
-
-
- @SaCheckPermission("org_user")
- @ApiOperation("单位交办")
- @PostMapping("/taIssueProcess/org/assigned")
- public ResponseBean orgAssigned(@ApiParam("对象实体") @RequestBody TaIssueProcess taIssueProcess) throws Exception {
- TaIssue taIssue = checkIssue(taIssueProcess);
-
- updateUser(taIssueProcess, currentUser());
- taIssueProcess.setProcessNode(Constants.PROCESS_ORG_ASSIGNED);
- taIssueProcess.setProcessStatus(Constants.PROCESS_STATUS_READY);
- taIssueProcessService.save(taIssueProcess);
-
- updateIssue(taIssue, taIssueProcess);
-
- return ResponseBean.success(taIssueProcess);
- }
-
-
-
- @SaCheckPermission("org_manager")
- @ApiOperation("单位审核")
- @PostMapping("/taIssueProcess/org/verify")
- public ResponseBean orgVerify(@ApiParam("对象实体") @RequestBody TaIssueProcess taIssueProcess) throws Exception {
- TaIssue taIssue = checkIssue(taIssueProcess);
-
- if (StringUtils.isEmpty(taIssueProcess.getProcessStatus())) {
- return ResponseBean.error("请设置审批是否通过");
- }
-
- if (Constants.PROCESS_STATUS_REJECT.equals(taIssueProcess.getProcessStatus())) {
-
- if (StringUtils.isEmpty(taIssueProcess.getProcessResult())) {
- return ResponseBean.error("请填写未通过原因");
- }
- }
-
- updateUser(taIssueProcess, currentUser());
- taIssueProcess.setProcessNode(Constants.PROCESS_ORG_VERIFY);
- taIssueProcessService.save(taIssueProcess);
-
- updateIssue(taIssue, taIssueProcess);
-
- return ResponseBean.success(taIssueProcess);
- }
-
-
-
- @SaCheckPermission("org_user")
- @ApiOperation("办结申请")
- @PostMapping("/taIssueProcess/org/finish/apply")
- public ResponseBean finishApply(@ApiParam("对象实体") @RequestBody TaIssueProcess taIssueProcess) throws Exception {
- TaIssue taIssue = checkIssue(taIssueProcess);
-
- updateUser(taIssueProcess, currentUser());
- taIssueProcess.setNextOrg(Constants.ROOT_ORG);
- taIssueProcess.setProcessNode(Constants.PROCESS_ORG_FINISH_APPLY);
- taIssueProcess.setProcessStatus(Constants.PROCESS_STATUS_READY);
- taIssueProcessService.save(taIssueProcess);
-
- updateIssue(taIssue, taIssueProcess);
-
- return ResponseBean.success(taIssueProcess);
- }
-
-
-
-
- @SaCheckPermission("manager")
- @ApiOperation("办结审核")
- @PostMapping("/taIssueProcess/finish/verify")
- public ResponseBean finishVerify(@ApiParam("对象实体") @RequestBody TaIssueProcess taIssueProcess) throws Exception {
- TaIssue taIssue = checkIssue(taIssueProcess);
-
- TaIssueProcess prevProcess = taIssueProcessService.getById(taIssueProcess.getPrevProcess());
- if (null == prevProcess) {
- return ResponseBean.error("未找到上级流程");
- }
-
- if (!Constants.PROCESS_ORG_FINISH_APPLY.equals(prevProcess.getProcessNode())) {
- return ResponseBean.error("上级流程验证不正确");
- }
-
- if (StringUtils.isEmpty(taIssueProcess.getProcessStatus())) {
- return ResponseBean.error("请设置审批是否通过");
- }
-
- if (Constants.PROCESS_STATUS_REJECT.equals(taIssueProcess.getProcessStatus())) {
-
- if (StringUtils.isEmpty(taIssueProcess.getProcessResult())) {
- return ResponseBean.error("请填写未通过原因");
- }
- taIssueProcess.setNextOrg(prevProcess.getOrgId());
- taIssueProcess.setProcessNode(Constants.PROCESS_FINISH_VERIFY);
- } else {
-
- taIssue.setProcessNode(Constants.PROCESS_END);
- taIssue.setProcessStatus(Constants.PROCESS_STATUS_PASS);
- }
-
- updateUser(taIssueProcess, currentUser());
- taIssueProcessService.save(taIssueProcess);
-
- taIssue.setOrgId(taIssueProcess.getOrgId());
- taIssueService.updateById(taIssue);
-
- return ResponseBean.success(taIssueProcess);
- }
-
-
-
- @ApiOperation("通过主键删除数据")
- @DeleteMapping("/taIssueProcess/{id}")
- public ResponseBean deleteById(@ApiParam("对象ID") @PathVariable Integer id) {
- taIssueProcessService.removeLogicById(id);
- return ResponseBean.success("success");
- }
- }
|