123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375 |
- 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 com.example.civilizedcity.entity.SysUser;
- import com.example.civilizedcity.entity.TaAttach;
- import com.example.civilizedcity.entity.TaIssue;
- import com.example.civilizedcity.service.*;
- import com.example.civilizedcity.vo.IssueExport;
- 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.web.bind.annotation.*;
-
- import javax.servlet.http.HttpServletResponse;
- import java.time.LocalDateTime;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
-
-
- @Api(tags = "问题表对象功能接口")
- @RestController
- @RequestMapping("/")
- public class TaIssueController extends BaseController {
-
- @Autowired
- private TaIssueService taIssueService;
-
- @Autowired
- private TaOrgIssueService taOrgIssueService;
-
- @Autowired
- private TaAttachService taAttachService;
-
- @Autowired
- private TaIssueProcessService taIssueProcessService;
-
- @Autowired
- private SysUserDutyService sysUserDutyService;
-
- @Autowired
- private SysOrgService sysOrgService;
-
- @Autowired
- private ExportIssueUtil exportIssueUtil;
-
-
-
- @ApiOperation("通过ID查询单条数据")
- @GetMapping("/taIssue/{id}")
- public ResponseBean queryById(@ApiParam("对象ID") @PathVariable Integer id) throws Exception {
-
- TaIssue taIssue = taIssueService.getById(id);
- List<TaAttach> attachList = taAttachService.getListBy(Constants.SOURCE_ISSUE, taIssue.getIssueId().toString());
- taIssue.setAttachList(attachList);
-
- return ResponseBean.success(taIssue);
- }
-
-
-
- private QueryWrapper<TaIssue> buildQuery(SysUser sysUser, Map<String, Object> params) {
-
- String issueId = (String) params.get("issueId");
- String typeId = (String) params.get("typeId");
- String bizStatus = (String) params.get("bizStatus");
- String sourceType = (String) params.get("sourceType");
- String sourceType2 = (String) params.get("sourceType2");
- String locId = (String) params.get("locId");
- Boolean mine = (Boolean) params.get("mine");
- String orgId = (String) params.get("orgId");
- String userName = (String) params.get("userName");
- Boolean all = (Boolean) params.get("all");
-
- LocalDateTime createDateStart = null;
- LocalDateTime createDateEnd = null;
- if (null != params.get("createDateStart")) {
- String dt1 = (String) params.get("createDateStart");
- String dt2 = (String) params.get("createDateEnd");
-
- if (StringUtils.isNotEmpty(dt1)) {
- createDateStart = DateUtils.day2LocalDateime(dt1);
- createDateEnd = DateUtils.day2LocalDateime2(dt2);
- }
- }
-
- LocalDateTime endDateStart = null;
- LocalDateTime endDateEnd = null;
- if (null != params.get("endDateStart")) {
- String dt1 = (String) params.get("endDateStart");
- String dt2 = (String) params.get("endDateEnd");
-
- if (StringUtils.isNotEmpty(dt1)) {
- endDateStart = DateUtils.day2LocalDateime(dt1);
- endDateEnd = DateUtils.day2LocalDateime2(dt2);
- }
- }
-
- QueryWrapper<TaIssue> queryWrapper = new QueryWrapper<>();
- queryWrapper.eq(StringUtils.isNotEmpty(issueId), "issue_id", issueId);
- queryWrapper.eq(StringUtils.isNotEmpty(typeId), "type_id", typeId);
-
- if (Constants.PROCESS_START.equals(bizStatus)) {
-
- queryWrapper.likeRight("process_node", bizStatus);
- } else if (Constants.PROCESS_ASSIGNED.equals(bizStatus)) {
-
- queryWrapper.likeRight("process_node", bizStatus);
- } else if (Constants.PROCESS_END.equals(bizStatus)) {
-
- queryWrapper.eq("process_node", bizStatus);
- } else if ("expired".equals(bizStatus)) {
-
- queryWrapper.ne("process_node", Constants.PROCESS_END);
- queryWrapper.lt("expire_date", DateUtils.today());
- } else if ("expiredEnd".equals(bizStatus)) {
-
- queryWrapper.eq("process_node", Constants.PROCESS_END);
- queryWrapper.lt("expire_date", DateUtils.today());
- } else if ("reject".equals(bizStatus)) {
-
- queryWrapper.eq("process_node", Constants.PROCESS_APPLY_REJECT);
- queryWrapper.eq("process_status", Constants.APPLY_PASS);
- } else {
-
- queryWrapper.likeRight(!StringUtils.isEmpty(bizStatus), "process_node", bizStatus);
- }
-
- if (mine) {
- queryWrapper.eq("create_user", sysUser.getUserId());
- }
-
- queryWrapper.eq(StringUtils.isNotEmpty(locId), "loc_id", locId);
- queryWrapper.eq(StringUtils.isNotEmpty(orgId), "org_id", orgId);
-
- queryWrapper.eq(StringUtils.isNotEmpty(sourceType2), "source_type", sourceType2);
- queryWrapper.like(StringUtils.isNotEmpty(userName), "user_name", userName);
- queryWrapper.between(null != createDateStart, "create_date", createDateStart, createDateEnd);
- queryWrapper.between(null != endDateStart, "end_date", endDateStart, endDateEnd);
- queryWrapper.eq(Constants.SOURCE_FEEDBACK.equals(sourceType) && !all, "source_type", Constants.SOURCE_FEEDBACK);
- queryWrapper.ne(!Constants.SOURCE_FEEDBACK.equals(sourceType) && !all, "source_type", Constants.SOURCE_FEEDBACK);
- queryWrapper.gt("status", Constants.STATUS_DELETE);
- queryWrapper.orderByDesc("create_date");
-
- return queryWrapper;
- }
-
-
-
- @ApiOperation("分页查询")
- @GetMapping("/taIssue")
- public ResponseBean list(@ApiParam("页码") @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
- @ApiParam("单页数据量") @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
- @ApiParam("问题单ID") @RequestParam(value = "issueId", required = false) String issueId,
- @ApiParam("类型ID") @RequestParam(value = "typeId", required = false) String typeId,
- @ApiParam("问题单状态") @RequestParam(value = "bizStatus", required = false) String bizStatus,
- @ApiParam("来源") @RequestParam(value = "sourceType", required = false) String sourceType,
- @ApiParam("PC来源") @RequestParam(value = "sourceType2", required = false) String sourceType2,
- @ApiParam("点位") @RequestParam(value = "locId", required = false) String locId,
- @ApiParam("我的") @RequestParam(value = "mine", defaultValue = "false") Boolean mine,
- @ApiParam("责任单位") @RequestParam(value = "orgId", required = false) String orgId,
- @ApiParam("上报人") @RequestParam(value = "userName", required = false) String userName,
- @ApiParam(value = "创建时间-开始", example = "2023-03-01") @RequestParam(value = "createDateStart", required = false) String createDateStart,
- @ApiParam(value = "创建时间-结束", example = "2023-03-31") @RequestParam(value = "createDateEnd", required = false) String createDateEnd,
- @ApiParam(value = "结单时间-开始", example = "2023-03-01") @RequestParam(value = "endDateStart", required = false) String endDateStart,
- @ApiParam(value = "结单时间-结束", example = "2023-03-31") @RequestParam(value = "endDateEnd", required = false) String endDateEnd,
- @ApiParam("是否全部") @RequestParam(value = "all", defaultValue = "false") Boolean all) throws Exception {
-
- SysUser sysUser = currentUser();
- boolean isRooter = Constants.ROOT_ID.equals(sysUser.getUserId());
-
- List<String> dutyList = sysUserDutyService.getListByUser(sysUser.getUserId());
- if (!isRooter && (dutyList == null || dutyList.size() < 1)) {
- return ResponseBean.error("暂无权限查询数据");
- }
-
- Map<String, Object> params = new HashMap<>();
- params.put("issueId", issueId);
- params.put("typeId", typeId);
- params.put("bizStatus", bizStatus);
- params.put("sourceType", sourceType);
- params.put("sourceType2", sourceType2);
- params.put("locId", locId);
- params.put("mine", mine);
- params.put("orgId", orgId);
- params.put("userName", userName);
- params.put("all", all);
- params.put("createDateStart", createDateStart);
- params.put("createDateEnd", createDateEnd);
- params.put("endDateStart", endDateStart);
- params.put("endDateEnd", endDateEnd);
-
- IPage<TaIssue> pg = new Page<>(pageNum, pageSize);
- QueryWrapper<TaIssue> queryWrapper = buildQuery(sysUser, params);
- IPage<TaIssue> result = taIssueService.page(pg, queryWrapper);
-
- return ResponseBean.success(result);
- }
-
-
-
-
- @ApiOperation("导出")
- @PostMapping("/taIssue/export")
- public ResponseBean export(@ApiParam("问题单ID") @RequestParam(value = "issueId", required = false) String issueId,
- @ApiParam("问题单状态") @RequestParam(value = "bizStatus", required = false) String bizStatus,
- @ApiParam("类型ID") @RequestParam(value = "typeId", required = false) String typeId,
- @ApiParam("来源") @RequestParam(value = "sourceType", required = false) String sourceType,
- @ApiParam("问题来源") @RequestParam(value = "sourceType2", required = false) String sourceType2,
- @ApiParam("点位") @RequestParam(value = "locId", required = false) String locId,
- @ApiParam("我的") @RequestParam(value = "mine", defaultValue = "false") Boolean mine,
- @ApiParam("责任单位") @RequestParam(value = "orgId", required = false) String orgId,
- @ApiParam("上报人") @RequestParam(value = "userName", required = false) String userName,
- @ApiParam(value = "创建时间-开始", example = "2023-03-01") @RequestParam(value = "createDateStart", required = false) String createDateStart,
- @ApiParam(value = "创建时间-结束", example = "2023-03-31") @RequestParam(value = "createDateEnd", required = false) String createDateEnd,
- @ApiParam(value = "结单时间-开始", example = "2023-03-01") @RequestParam(value = "endDateStart", required = false) String endDateStart,
- @ApiParam(value = "结单时间-结束", example = "2023-03-31") @RequestParam(value = "endDateEnd", required = false) String endDateEnd,
- @ApiParam("是否全部") @RequestParam(value = "all", defaultValue = "false") Boolean all,
- @ApiParam("是否带图") @RequestParam(value = "withImage", defaultValue = "true") Boolean withImage,
- HttpServletResponse response) throws Exception {
-
- SysUser sysUser = currentUser();
- boolean isRooter = Constants.ROOT_ID.equals(sysUser.getUserId());
-
- List<String> dutyList = sysUserDutyService.getListByUser(sysUser.getUserId());
- if (!isRooter && (dutyList == null || dutyList.size() < 1)) {
- return ResponseBean.error("暂无权限查询数据");
- }
-
-
- Map<String, Object> params = new HashMap<>();
- params.put("issueId", issueId);
- params.put("typeId", typeId);
- params.put("bizStatus", bizStatus);
- params.put("sourceType", sourceType);
- params.put("sourceType2", sourceType2);
- params.put("locId", locId);
- params.put("mine", mine);
- params.put("orgId", orgId);
- params.put("userName", userName);
- params.put("all", all);
- params.put("createDateStart", createDateStart);
- params.put("createDateEnd", createDateEnd);
- params.put("endDateStart", endDateStart);
- params.put("endDateEnd", endDateEnd);
-
- QueryWrapper<TaIssue> queryWrapper = buildQuery(sysUser, params);
- List<TaIssue> list = taIssueService.list(queryWrapper);
-
- List<IssueExport> exportList = exportIssueUtil.getExportList(list, withImage);
- ExcelUtils.flush(response, IssueExport.class, exportList, "问题单列表");
-
- return null;
- }
-
-
-
- @ApiOperation("新增数据")
- @PostMapping("/taIssue")
- public ResponseBean add(@ApiParam("对象实体") @RequestBody TaIssue taIssue) throws Exception {
-
-
- if (null == taIssue.getAttachList() || taIssue.getAttachList().size() == 0) {
- return ResponseBean.error("请上传照片");
- }
-
- SysUser user = currentUser();
- taIssueService.createNew(taIssue, user);
- return ResponseBean.success(taIssue);
- }
-
-
-
- @ApiOperation("更新数据")
- @PutMapping("/taIssue/{id}")
- public ResponseBean edit(@ApiParam("对象实体") @RequestBody TaIssue taIssue,
- @ApiParam("对象ID") @PathVariable Integer id) throws Exception {
-
- TaIssue origin = taIssueService.getById(id);
- if (null == origin || origin.getStatus() == Constants.STATUS_DELETE) {
- return ResponseBean.error("未找到原始问题单");
- }
-
- List<TaAttach> attachList = taIssue.getAttachList();
- if (null == attachList || attachList.size() == 0) {
- return ResponseBean.error("拍照或者视频没有上传");
- }
-
- taIssueService.updateIssue(taIssue, origin);
- return ResponseBean.success(origin);
- }
-
-
-
-
- @ApiOperation("复制问题单")
- @PostMapping("/taIssue/{id}/copy")
- public ResponseBean copy(@ApiParam("对象ID") @PathVariable Integer id) throws Exception {
-
- TaIssue origin = taIssueService.getById(id);
- if (null == origin || origin.getStatus() == Constants.STATUS_DELETE) {
- return ResponseBean.error("未找到原始问题单");
- }
-
- SysUser sysUser = currentUser();
- TaIssue taIssue = taIssueService.copyIssue(origin, sysUser);
- return ResponseBean.success(taIssue);
- }
-
-
-
- @SaCheckPermission("manager")
- @ApiOperation("通过主键删除数据")
- @DeleteMapping("/taIssue/{id}")
- public ResponseBean deleteById(@ApiParam("对象ID") @PathVariable Integer id) throws Exception {
-
-
- TaIssue taIssue = taIssueService.getById(id);
- if (null == taIssue || taIssue.getStatus() == Constants.STATUS_DELETE) {
- return ResponseBean.error("未找到问题");
- }
-
- taIssue.setUpdateUser(currentUser().getUserId());
- taIssue.setUpdateDate(LocalDateTime.now());
- taIssue.setStatus(Constants.STATUS_DELETE);
-
- taIssueService.updateById(taIssue);
- return ResponseBean.success("success");
- }
- }
|