package com.dg.core.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.dg.core.ResultData; import com.dg.core.annotation.Authorization; import com.dg.core.annotation.CurrentUser; import com.dg.core.db.gen.AjaxResult; import com.dg.core.db.gen.entity.AutomessageSmartConsulting; import com.dg.core.db.gen.entity.Slideshow; import com.dg.core.db.gen.entity.SysUser; import com.dg.core.db.gen.entity.TransactionEvent; import com.dg.core.db.manual.pojo.QueryResults; import com.dg.core.db.manual.pojo.RecommendResult; import com.dg.core.db.manual.pojo.Search; import com.dg.core.file.FtpConstants; import com.dg.core.file.MimeTypeUtils; import com.dg.core.file.SFTPUtil; import com.dg.core.service.IAutomessageSmartConsultingService; import com.dg.core.service.IOrganizationChartService; import com.dg.core.service.ITransactionEventService; import com.dg.core.util.TableDataInfo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.commons.io.FilenameUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.Assert; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import java.io.InputStream; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; import java.util.UUID; import static com.dg.core.file.FileTypeUploadUtils.assertAllowed; @Api(tags = {"导办事项管理接口"}) @RestController @RequestMapping("/transaction") public class TransactionEventController extends BaseController { @Autowired(required = true) ITransactionEventService iTransactionEventService; @Autowired(required = true) IOrganizationChartService iOrganizationChartService; @Autowired(required = true) IAutomessageSmartConsultingService iAutomessageSmartConsultingService; /** * 查询导办事务详情 * @param Id * @return */ @ApiOperation("查询导办事务详情") @GetMapping("/getData") public ResultData selectConfigData(@RequestParam("Id") String Id,@CurrentUser SysUser sysUser) { Assert.notNull(Id, "Id 不能为空"); return ResultData.success(iTransactionEventService.selectConfigData(Id,sysUser)); } /** * 导办事物列表 * @param * @return */ @ApiOperation("导办事物列表") @GetMapping("/getList") @Authorization public TableDataInfo selectConfigList(@RequestParam(value = "pageNum",required = false) Integer pageNum, @RequestParam(value = "pageSize",required = false) Integer pageSize, @RequestParam(value = "keyword",required = false) String keyword, @RequestParam(value = "classifyGrade",required = false) String classifyGrade, @RequestParam(value = "departmentId",required = false) String departmentId, @CurrentUser SysUser sysUser) { Assert.notNull(pageNum, "pageNum 不能为空"); Assert.notNull(pageSize, "pageSize 不能为空"); Page pageParam = new Page<>(pageNum,pageSize); List list; int num; if (departmentId!=null&&departmentId.length()>0){ List ids=iOrganizationChartService.getDepartmentId(departmentId); list = iTransactionEventService.selectConfigList(pageParam,pageSize,keyword, classifyGrade,ids); num=iTransactionEventService.countNum(keyword,classifyGrade,ids); }else { list = iTransactionEventService.selectConfigList(pageParam,pageSize,keyword, classifyGrade,null); num=iTransactionEventService.countNum(keyword,classifyGrade,null); } return getDataTable(list,num); } /** * 导办事物列表 * @param * @return */ @ApiOperation("根据部门id获取导办事物列表") @PostMapping("/department/getList") @Authorization public TableDataInfo selectConfigList(@RequestBody List DepartmentId, @CurrentUser SysUser sysUser) { if(DepartmentId==null||DepartmentId.size()<1) { DepartmentId=null; } List list = iTransactionEventService.selectConfigList(null,null,DepartmentId); int num=iTransactionEventService.countNum(null,null,DepartmentId); return getDataTable(list,num); } /** * 导办事物列表(不分页) * @param * @return */ @ApiOperation(value = "导办事物列表(不分页)",response = TransactionEvent.class) @GetMapping("/selectList") public TableDataInfo selectList(@RequestParam(value = "keyWord",required = false) String keyWord) { return getDataTable(iTransactionEventService.selectList(keyWord)); } /** * 新增导办事务 * @param entity * @return */ @ApiOperation("新增导办事务") @PostMapping("/add") @Authorization public ResultData insertConfig(@RequestBody TransactionEvent entity) { if(StringUtils.isEmpty(entity.getDepartmentId())) { return ResultData.error("部门id不能为空"); } if(StringUtils.isEmpty(entity.getMatterName())) { return ResultData.error("事件名称不能为空"); } String id=iTransactionEventService.selectDataIfExist(entity.getDepartmentId(),entity.getMatterName()); if(!StringUtils.isEmpty(id)) { return ResultData.error("事件名称已存在"); } return toAjax(iTransactionEventService.insertConfig(entity)); } /** * 修改导办事务 * @param entity * @return */ @ApiOperation("修改导办事务") @PostMapping("/update") @Authorization public ResultData updateConfig(@RequestBody TransactionEvent entity) { if(StringUtils.isEmpty(entity.getDepartmentId())) { return ResultData.error("部门id不能为空"); } if(StringUtils.isEmpty(entity.getMatterName())) { return ResultData.error("事件名称不能为空"); } return toAjax(iTransactionEventService.updateConfig(entity)); } /** * 删除接口 * @param Id * @return */ @ApiOperation("删除导办事务") @DeleteMapping("/delete") @Authorization public ResultData deleteConfigById(@RequestParam(value = "Id",required = false) String Id) { Assert.notNull(Id, "Id 不能为空"); int i = iTransactionEventService.deleteConfigById(Id); if (i>0) return ResultData.success("删除成功"); else return ResultData.error("删除失败可能该工单有单据"); } /** * 导办事务搜索 * @param keyWord * @return */ @ApiOperation(value = "导办事务搜索",response = QueryResults.class) @GetMapping("/queryKeyWordList") public QueryResults queryMatterNameList(@RequestParam(value = "pageNum",required = false) Integer pageNum, @RequestParam(value = "pageSize",required = false) Integer pageSize, @RequestParam(value = "recommendSize",required = false) Integer recommendSize, @RequestParam(value = "keyWord",required = false) String keyWord) { Assert.notNull(pageNum, "pageNum 不能为空"); Assert.notNull(pageSize, "pageSize 不能为空"); Assert.notNull(keyWord, "keyWord 不能为空"); Assert.notNull(keyWord, "recommendSize 不能为空"); Page pageParam = new Page<>(pageNum,pageSize); QueryResults queryResults = iTransactionEventService.queryMatterNameList(pageParam, pageSize,recommendSize, keyWord); return queryResults; } /** * 根据分类id查询导办事务(分页) * @param classifyId * @return */ @ApiOperation(value = "根据分类id查询导办事务(分页)",response = TransactionEvent.class) @GetMapping("/queryByClassifyIdConfigList") public TableDataInfo queryByClassifyIdConfigList(@RequestParam(value = "pageNum",required = false) Integer pageNum, @RequestParam(value = "pageSize",required = false) Integer pageSize, @RequestParam(value = "classifyId",required = false) String classifyId, @RequestParam(required = false,name="departmentId") Integer departmentId){ Assert.notNull(pageNum, "pageNum 不能为空"); Assert.notNull(pageSize, "pageSize 不能为空"); Page pageParam = new Page<>(pageNum,pageSize); return getDataTable(iTransactionEventService.queryByClassifyIdList(pageParam,pageSize,classifyId,departmentId),iTransactionEventService.countNumByClassifyIdList(classifyId,departmentId)); } /** * 根据查询时间查询导办事务 * @return */ @ApiOperation(value = "根据查询时间查询导办事务",response = TransactionEvent.class) @GetMapping("/queryByQueryTime") public TableDataInfo queryByQueryTime() { List transactionEvents = iTransactionEventService.queryByQueryTime( ); return getDataTable(transactionEvents); } /** * 根据浏览次数查询导办事务 * @return */ @ApiOperation(value = "根据浏览次数查询导办事务",response = TransactionEvent.class) @GetMapping("/queryByBrowseNum") public TableDataInfo queryByBrowseNum() { List transactionEvents = iTransactionEventService.queryByBrowseNum( ); return getDataTable(transactionEvents); } /** * 查询导办事务求和 * @return */ @ApiOperation(value = "查询导办事务求和",response = TransactionEvent.class) @GetMapping("/sumTransactionNum") public ResultData sumTransactionNum(){ return ResultData.success(iTransactionEventService.sumTransactionNum()); } /** * 智能咨询 * @return */ @ApiOperation(value = "智能咨询",response = RecommendResult.class) @GetMapping("/smartConsulting") public RecommendResult smartConsulting(@RequestParam("keyWord") String keyWord,@CurrentUser SysUser sysUser){ AutomessageSmartConsulting automessageSmartConsulting = new AutomessageSmartConsulting(); if (sysUser!=null){ automessageSmartConsulting.setCreateUserId(sysUser.getUserId()); } automessageSmartConsulting.setType(2); automessageSmartConsulting.setCreateTime(LocalDateTime.now()); iAutomessageSmartConsultingService.add(automessageSmartConsulting); return iTransactionEventService.smartConsulting(keyWord); } /** * 办事指南复制 * @return */ @ApiOperation(value = "办事指南复制",response = ResultData.class) @GetMapping("/copy") @Authorization public ResultData copy(@RequestParam("Id") String Id,@CurrentUser SysUser sysUser) { if(StringUtils.isEmpty(Id)) { return ResultData.error("Id不能为空"); } TransactionEvent transactionEvent=iTransactionEventService.selectConfigData(Id,null); if(transactionEvent==null) { return ResultData.error("复制项不存在"); } transactionEvent.setDepartmentId(sysUser.getDepartmentId()); transactionEvent.setMatterName(transactionEvent.getMatterName()+"(副本)"); transactionEvent.setId(null); return toAjax(iTransactionEventService.insertConfig(transactionEvent)); } /** * 办事指南根据分类id筛选 * @return */ @ApiOperation(value = "办事指南根据分类id筛选",response = ResultData.class) @GetMapping("/selectClassifyList") @Authorization public TableDataInfo selectClassifyList(@RequestParam("ids") List ids) { if(ids==null || ids.size()<1) { ids=null; } return getDataTable(iTransactionEventService.selectClassifyList(ids)); } @ApiOperation("文件导入") @PostMapping("/import") public ResultData uploadFiles(MultipartFile file) throws Exception { boolean a = false; String fileName = file.getOriginalFilename(); Integer b = iTransactionEventService.batchImport(fileName, file); if (b == 3) {// return ResultData.success("全部导入成功");//全部导入成功 } else if (b == 2) { return ResultData.success("部分导入成功");//部分导入成功 } else if (b == 0) { return ResultData.error("部分失败");//导入失败 } return ResultData.error("部分失败");//导入失败 } }