package com.xcgl.taskresult.controller; import java.io.BufferedInputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.URI; import java.net.URLEncoder; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; import java.util.Set; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.validation.ConstraintViolation; import javax.validation.Validator; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import org.jeecgframework.core.beanvalidator.BeanValidators; import org.jeecgframework.core.common.controller.BaseController; import org.jeecgframework.core.common.exception.BusinessException; import org.jeecgframework.core.common.hibernate.qbc.CriteriaQuery; import org.jeecgframework.core.common.model.json.AjaxJson; import org.jeecgframework.core.common.model.json.DataGrid; import org.jeecgframework.core.constant.Globals; import org.jeecgframework.core.util.BrowserUtils; import org.jeecgframework.core.util.ExceptionUtil; import org.jeecgframework.core.util.MyBeanUtils; import org.jeecgframework.core.util.ResourceUtil; import org.jeecgframework.core.util.StringUtil; import org.jeecgframework.core.util.oConvertUtils; import org.jeecgframework.poi.excel.ExcelImportUtil; import org.jeecgframework.poi.excel.entity.ExportParams; import org.jeecgframework.poi.excel.entity.ImportParams; import org.jeecgframework.poi.excel.entity.vo.NormalExcelConstants; import org.jeecgframework.tag.core.easyui.TagUtil; import org.jeecgframework.web.system.pojo.base.TSUser; import org.jeecgframework.web.system.service.SystemService; import org.springframework.beans.BeanWrapper; import org.springframework.beans.BeanWrapperImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseStatus; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.util.UriComponentsBuilder; import com.aliyun.oss.OSSClient; import com.aliyun.oss.model.OSSObject; import com.xcgl.projecttask.entity.ProjecttaskEntity; import com.xcgl.projecttask.service.ProjecttaskServiceI; import com.xcgl.taskresult.entity.TaskResultEntity; import com.xcgl.taskresult.entity.TaskResultPageDto; import com.xcgl.taskresult.service.TaskResultServiceI; import com.xcgl.utils.XcglConstant; import cn.com.lzt.common.service.TSysFileServiceI; import cn.com.lzt.common.util.CustomerConstant; /** * @Title: Controller * @Description: 工作执行结果 * @author onlineGenerator * @date 2018-09-07 18:09:38 * @version V1.0 * */ @Controller @RequestMapping("/taskResultController") public class TaskResultController extends BaseController { /** * Logger for this class */ private static final Logger logger = Logger.getLogger(TaskResultController.class); @Autowired private TaskResultServiceI taskResultService; @Autowired private SystemService systemService; @Autowired private Validator validator; @Autowired private ProjecttaskServiceI taskService; @Autowired private TSysFileServiceI tSysFileService; /** * 工作执行结果列表 页面跳转 * * @return */ @RequestMapping(params = "list") public ModelAndView list(HttpServletRequest request) { ModelAndView mv = new ModelAndView("com/xcgl/taskresult/taskResultList"); String taskid = request.getParameter("taskid"); if(StringUtils.isNotEmpty(taskid)) { mv = new ModelAndView("com/xcgl/taskresult/taskResultListByTaskID"); ProjecttaskEntity task = systemService.get(ProjecttaskEntity.class, taskid); if(task.getTasktype().equals("pmdept")) { mv = new ModelAndView("com/xcgl/taskresult/taskResultListByTaskID-attachment-noscore"); } List ls = systemService.findByProperty(TaskResultEntity.class, "taskid", taskid); if(ls.size() > 0) { request.setAttribute("memo",ls.get(0).getMemo()); request.setAttribute("taskresult",ls.get(0)); } request.setAttribute("taskid",taskid); request.setAttribute("name",task.getName()); } return mv; } public String suffix(String file){ String suffix = file.substring(file.indexOf(".") + 1, file.length()); suffix = suffix.toLowerCase(); if (!"png".equals(suffix) && !"jpg".equals(suffix) && !"gif".equals(suffix) && !"jpeg".equals(suffix)) { return "1"; }else{ return "2"; } } /** * easyui AJAX请求数据 * * @param request * @param response * @param dataGrid */ @RequestMapping(params = "datagrid") public void datagrid(TaskResultEntity taskResult,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) { CriteriaQuery cq = new CriteriaQuery(TaskResultEntity.class, dataGrid); String taskid = request.getParameter("taskid"); String entrance = request.getParameter("entrance"); String hideDelete = "1";//显示 if("weeklyMeeting".equals(entrance)){ TSUser sessionUser = ResourceUtil.getSessionUser(); ProjecttaskEntity projecttaskEntity = taskResultService.get(ProjecttaskEntity.class, taskid); if(!sessionUser.getId().equals(projecttaskEntity.getOwner())){ hideDelete = "2";//隐藏 } } if(StringUtils.isNotEmpty(taskid)) { //TODO cq.eq("taskid", taskid); } cq.add(); List lsResults = this.taskResultService.getListByCriteriaQuery(cq, false); List pageData = new ArrayList(); if(lsResults.size() > 0) { TaskResultEntity taskret = lsResults.get(0); TaskResultPageDto pagedto =null; int i = 1; if(StringUtils.isNotEmpty(taskret.getPicture1())) { pagedto = new TaskResultPageDto(); pagedto.setTaskid(taskid); pagedto.setPicture("工作执行结果"+i); pagedto.setId(taskret.getPicture1()); pagedto.setSuffix(suffix(taskret.getPicture1())); pagedto.setHideDelete(hideDelete); pagedto.setTaskResultId(taskret.getId()); pagedto.setImgIndex(i); i++; pageData.add(pagedto); } if(StringUtils.isNotEmpty(taskret.getPicture2())) { pagedto = new TaskResultPageDto(); pagedto.setTaskid(taskid); pagedto.setPicture("工作执行结果"+i); pagedto.setId(taskret.getPicture2()); pagedto.setSuffix(suffix(taskret.getPicture2())); pagedto.setHideDelete(hideDelete); pagedto.setTaskResultId(taskret.getId()); pagedto.setImgIndex(i); i++; pageData.add(pagedto); } if(StringUtils.isNotEmpty(taskret.getPicture3())) { pagedto = new TaskResultPageDto(); pagedto.setTaskid(taskid); pagedto.setPicture("工作执行结果"+i); pagedto.setId(taskret.getPicture3()); pagedto.setSuffix(suffix(taskret.getPicture3())); pagedto.setHideDelete(hideDelete); pagedto.setTaskResultId(taskret.getId()); pagedto.setImgIndex(i); i++; pageData.add(pagedto); } if(StringUtils.isNotEmpty(taskret.getPicture4())) { pagedto = new TaskResultPageDto(); pagedto.setTaskid(taskid); pagedto.setPicture("工作执行结果"+i); pagedto.setId(taskret.getPicture4()); pagedto.setSuffix(suffix(taskret.getPicture4())); pagedto.setHideDelete(hideDelete); pagedto.setTaskResultId(taskret.getId()); pagedto.setImgIndex(i); i++; pageData.add(pagedto); } if(StringUtils.isNotEmpty(taskret.getPicture5())) { pagedto = new TaskResultPageDto(); pagedto.setTaskid(taskid); pagedto.setPicture("工作执行结果"+i); pagedto.setId(taskret.getPicture5()); pagedto.setSuffix(suffix(taskret.getPicture5())); pagedto.setHideDelete(hideDelete); pagedto.setTaskResultId(taskret.getId()); pagedto.setImgIndex(i); i++; pageData.add(pagedto); } if(StringUtils.isNotEmpty(taskret.getPicture6())) { pagedto = new TaskResultPageDto(); pagedto.setTaskid(taskid); pagedto.setPicture("工作执行结果"+i); pagedto.setId(taskret.getPicture6()); pagedto.setSuffix(suffix(taskret.getPicture6())); pagedto.setHideDelete(hideDelete); pagedto.setTaskResultId(taskret.getId()); pagedto.setImgIndex(i); i++; pageData.add(pagedto); } if(StringUtils.isNotEmpty(taskret.getPicture7())) { pagedto = new TaskResultPageDto(); pagedto.setTaskid(taskid); pagedto.setPicture("工作执行结果"+i); pagedto.setId(taskret.getPicture7()); pagedto.setSuffix(suffix(taskret.getPicture7())); pagedto.setHideDelete(hideDelete); pagedto.setTaskResultId(taskret.getId()); pagedto.setImgIndex(i); i++; pageData.add(pagedto); } if(StringUtils.isNotEmpty(taskret.getPicture8())) { pagedto = new TaskResultPageDto(); pagedto.setTaskid(taskid); pagedto.setPicture("工作执行结果"+i); pagedto.setId(taskret.getPicture8()); pagedto.setSuffix(suffix(taskret.getPicture8())); pagedto.setHideDelete(hideDelete); pagedto.setTaskResultId(taskret.getId()); pagedto.setImgIndex(i); i++; pageData.add(pagedto); } if(StringUtils.isNotEmpty(taskret.getPicture9())) { pagedto = new TaskResultPageDto(); pagedto.setTaskid(taskid); pagedto.setPicture("工作执行结果"+i); pagedto.setId(taskret.getPicture9()); pagedto.setSuffix(suffix(taskret.getPicture9())); pagedto.setHideDelete(hideDelete); pagedto.setTaskResultId(taskret.getId()); pagedto.setImgIndex(i); i++; pageData.add(pagedto); } if(StringUtils.isNotEmpty(taskret.getPicture10())) { pagedto = new TaskResultPageDto(); pagedto.setTaskid(taskid); pagedto.setPicture("工作执行结果"+i); pagedto.setId(taskret.getPicture10()); pagedto.setSuffix(suffix(taskret.getPicture10())); pagedto.setHideDelete(hideDelete); pagedto.setTaskResultId(taskret.getId()); pagedto.setImgIndex(i); i++; pageData.add(pagedto); } } dataGrid.setResults(pageData); TagUtil.datagrid(response, dataGrid); } /** * 跳转至图片预览页面 * @param fileUrl 文件的访问路径 * @param req * @return */ @RequestMapping(params = "showPictureview") public ModelAndView showPictureview(String fileUrl, String aliyunflg, HttpServletRequest req) { if (StringUtils.isNotEmpty(fileUrl)) { String dbpath = ""; if ("0".equals(aliyunflg)) { dbpath = "showOrDownByurl.do?dbPath=" + fileUrl; } else { dbpath = "taskResultController.do?aliyunshowOrDownByurl&dbPath=" + fileUrl; } req.setAttribute("dbpath", dbpath); } return new ModelAndView("com/xcgl/taskresult/pictureview"); } /** * 阿里云文件下载及查看 * @author yulong.zhao * @date 2017年12月28日下午5:58:01 * @param response * @param request * @throws Exception */ @RequestMapping(params="aliyunshowOrDownByurl") public void getAliyunImgByurl(HttpServletResponse response, HttpServletRequest request) throws Exception{ String flag = request.getParameter("down");//是否下载否则展示图片 String dbpath = oConvertUtils.getString(request.getParameter("dbPath")); String fileName = "执行结果图片"; if("1".equals(flag)){ response.setContentType("application/x-msdownload;charset=utf-8"); if (BrowserUtils.isIE(request)) { // IE fileName = URLEncoder.encode(fileName, "UTF-8"); } else { // 非IE fileName = new String(fileName.getBytes("UTF-8"), "iso-8859-1"); } response.setHeader("Content-disposition", "attachment; filename="+fileName); }else{ response.setContentType("image/jpeg;charset=utf-8"); } String key = ""; if(!"".equals(dbpath)){ key = dbpath; } InputStream inputStream = null; OutputStream outputStream = null; try { // 创建OSSClient实例 OSSClient ossClient = new OSSClient(XcglConstant.ENDPOINT_INTERNET, CustomerConstant.ACCESSKEY_ID, CustomerConstant.ACCESSKEY_SECRET); OSSObject ossObject = ossClient.getObject(CustomerConstant.BUCKETNAME, key); inputStream = new BufferedInputStream(ossObject.getObjectContent()); outputStream = response.getOutputStream(); byte[] buf = new byte[1024]; int len; while ((len = inputStream.read(buf)) > 0) { outputStream.write(buf, 0, len); } // 关闭client ossClient.shutdown(); response.flushBuffer(); } catch (Exception e) { logger.info("--通过流的方式获取文件异常--" + e.getMessage()); }finally{ if(inputStream != null){ inputStream.close(); } if(outputStream != null){ outputStream.close(); } } } /** * 删除工作执行结果 * * @return */ @RequestMapping(params = "doDel") @ResponseBody public AjaxJson doDel(TaskResultEntity taskResult, HttpServletRequest request) { String message = null; AjaxJson j = new AjaxJson(); taskResult = systemService.getEntity(TaskResultEntity.class, taskResult.getId()); message = "工作执行结果删除成功"; try{ taskResultService.delete(taskResult); systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO); }catch(Exception e){ e.printStackTrace(); message = "工作执行结果删除失败"; throw new BusinessException(e.getMessage()); } j.setMsg(message); return j; } @RequestMapping(params = "savePicture") @ResponseBody public AjaxJson savePicture(TaskResultEntity taskResult, HttpServletRequest request) { String message = "上传图片成功,执行结果图片保存完成"; AjaxJson j = new AjaxJson(); TaskResultEntity t = systemService.getEntity(TaskResultEntity.class, taskResult.getId()); try { MyBeanUtils.copyBeanNotNull2Bean(taskResult, t); taskResultService.saveOrUpdate(t); systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO); } catch (Exception e) { e.printStackTrace(); message = "上传图片失败,回写执行结果"; throw new BusinessException(e.getMessage()); } j.setMsg(message); return j; } @RequestMapping(params = "removePicture") @ResponseBody public AjaxJson removePicture(TaskResultEntity taskResult, HttpServletRequest request) { String message = "删除成功"; AjaxJson j = new AjaxJson(); TaskResultEntity t = systemService.getEntity(TaskResultEntity.class, taskResult.getId()); try { Integer index = oConvertUtils.getInt(request.getParameter("index")); if(index>0){ BeanWrapper bean = new BeanWrapperImpl(t); for(int i=index;i<=10;i++){ if(i!=10) { bean.setPropertyValue("picture" + i, bean.getPropertyValue("picture" + (i + 1))); }else { bean.setPropertyValue("picture" + i,null); } } } MyBeanUtils.copyBeanNotNull2Bean(taskResult, t); taskResultService.saveOrUpdate(t); systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO); } catch (Exception e) { e.printStackTrace(); message = "删除失败"; throw new BusinessException(e.getMessage()); } j.setMsg(message); return j; } /** * 批量删除工作执行结果 * * @return */ @RequestMapping(params = "doBatchDel") @ResponseBody public AjaxJson doBatchDel(String ids,HttpServletRequest request){ String message = null; AjaxJson j = new AjaxJson(); message = "工作执行结果删除成功"; try{ for(String id:ids.split(",")){ TaskResultEntity taskResult = systemService.getEntity(TaskResultEntity.class, id ); taskResultService.delete(taskResult); systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO); } }catch(Exception e){ e.printStackTrace(); message = "工作执行结果删除失败"; throw new BusinessException(e.getMessage()); } j.setMsg(message); return j; } /** * 添加工作执行结果 * * @return */ @RequestMapping(params = "doAdd") @ResponseBody public AjaxJson doAdd(TaskResultEntity taskResult, HttpServletRequest request) { String message = null; AjaxJson j = new AjaxJson(); message = "工作执行结果添加成功"; try{ taskResultService.save(taskResult); systemService.addLog(message, Globals.Log_Type_INSERT, Globals.Log_Leavel_INFO); }catch(Exception e){ e.printStackTrace(); message = "工作执行结果添加失败"; throw new BusinessException(e.getMessage()); } j.setMsg(message); return j; } /** * 更新工作执行结果 * 完成工作ß * @return */ @RequestMapping(params = "doUpdate") @ResponseBody public AjaxJson doUpdate(TaskResultEntity taskResult, HttpServletRequest request) { String message = null; AjaxJson j = new AjaxJson(); message = "工作执行结果更新成功"; TaskResultEntity t = taskResultService.get(TaskResultEntity.class, taskResult.getId()); try { MyBeanUtils.copyBeanNotNull2Bean(taskResult, t); taskResultService.saveOrUpdate(t); tSysFileService.updateBusiId(t.getAttachment(), t.getId()); String temp = request.getParameter("temp"); ProjecttaskEntity task = systemService.getEntity(ProjecttaskEntity.class, t.getTaskid()); String per =request.getParameter("completePer"); task.setCompletePer(per); t.setProgress(Integer.valueOf(per)); if(!StringUtils.equals(temp,"1" ) && StringUtils.equals(per,"100")) { task.setExeendtime(new Date()); task.setTaskstatus(XcglConstant.TASKSTATUS_DONE); taskService.afterDone(task,taskResult); systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO); } if(!StringUtils.equals(temp, "1")){ task.setTemp(0); } taskService.saveOrUpdate(task); systemService.updateEntitie(t); } catch (Exception e) { e.printStackTrace(); message = "工作执行结果更新失败"; throw new BusinessException(e.getMessage()); } j.setMsg(message); return j; } /** * 工作执行结果新增页面跳转 * * @return */ @RequestMapping(params = "goAdd") public ModelAndView goAdd(TaskResultEntity taskResult, HttpServletRequest req) { if (StringUtil.isNotEmpty(taskResult.getId())) { taskResult = taskResultService.getEntity(TaskResultEntity.class, taskResult.getId()); req.setAttribute("taskResultPage", taskResult); } return new ModelAndView("com/xcgl/taskresult/taskResult-add"); } /** * 工作执行结果编辑页面跳转 * * @return */ @RequestMapping(params = "goUpdate") public ModelAndView goUpdate(TaskResultEntity taskResult, HttpServletRequest req) { if (StringUtil.isNotEmpty(taskResult.getId())) { taskResult = taskResultService.getEntity(TaskResultEntity.class, taskResult.getId()); req.setAttribute("taskResultPage", taskResult); } return new ModelAndView("com/xcgl/taskresult/taskResult-update"); } /** * 导入功能跳转 * * @return */ @RequestMapping(params = "upload") public ModelAndView upload(HttpServletRequest req) { req.setAttribute("controller_name","taskResultController"); return new ModelAndView("common/upload/pub_excel_upload"); } /** * 导出excel * * @param request * @param response */ @RequestMapping(params = "exportXls") public String exportXls(TaskResultEntity taskResult,HttpServletRequest request,HttpServletResponse response , DataGrid dataGrid,ModelMap modelMap) { CriteriaQuery cq = new CriteriaQuery(TaskResultEntity.class, dataGrid); org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, taskResult, request.getParameterMap()); List taskResults = this.taskResultService.getListByCriteriaQuery(cq,false); modelMap.put(NormalExcelConstants.FILE_NAME,"工作执行结果"); modelMap.put(NormalExcelConstants.CLASS,TaskResultEntity.class); modelMap.put(NormalExcelConstants.PARAMS,new ExportParams("工作执行结果列表", "导出人:"+ResourceUtil.getSessionUser().getRealName(), "导出信息")); modelMap.put(NormalExcelConstants.DATA_LIST,taskResults); return NormalExcelConstants.JEECG_EXCEL_VIEW; } /** * 导出excel 使模板 * * @param request * @param response */ @RequestMapping(params = "exportXlsByT") public String exportXlsByT(TaskResultEntity taskResult,HttpServletRequest request,HttpServletResponse response , DataGrid dataGrid,ModelMap modelMap) { modelMap.put(NormalExcelConstants.FILE_NAME,"工作执行结果"); modelMap.put(NormalExcelConstants.CLASS,TaskResultEntity.class); modelMap.put(NormalExcelConstants.PARAMS,new ExportParams("工作执行结果列表", "导出人:"+ResourceUtil.getSessionUser().getRealName(), "导出信息")); modelMap.put(NormalExcelConstants.DATA_LIST,new ArrayList()); return NormalExcelConstants.JEECG_EXCEL_VIEW; } @SuppressWarnings("unchecked") @RequestMapping(params = "importExcel", method = RequestMethod.POST) @ResponseBody public AjaxJson importExcel(HttpServletRequest request, HttpServletResponse response) { AjaxJson j = new AjaxJson(); MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; Map fileMap = multipartRequest.getFileMap(); for (Map.Entry entity : fileMap.entrySet()) { MultipartFile file = entity.getValue();// 获取上传文件对象 ImportParams params = new ImportParams(); params.setTitleRows(2); params.setHeadRows(1); params.setNeedSave(true); try { List listTaskResultEntitys = ExcelImportUtil.importExcel(file.getInputStream(),TaskResultEntity.class,params); for (TaskResultEntity taskResult : listTaskResultEntitys) { taskResultService.save(taskResult); } j.setMsg("文件导入成功!"); } catch (Exception e) { j.setMsg("文件导入失败!"); logger.error(ExceptionUtil.getExceptionMessage(e)); }finally{ try { file.getInputStream().close(); } catch (IOException e) { e.printStackTrace(); } } } return j; } @RequestMapping(method = RequestMethod.GET) @ResponseBody public List list() { List listTaskResults=taskResultService.getList(TaskResultEntity.class); return listTaskResults; } @RequestMapping(value = "/{id}", method = RequestMethod.GET) @ResponseBody public ResponseEntity get(@PathVariable("id") String id) { TaskResultEntity task = taskResultService.get(TaskResultEntity.class, id); if (task == null) { return new ResponseEntity(HttpStatus.NOT_FOUND); } return new ResponseEntity(task, HttpStatus.OK); } @RequestMapping(method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE) @ResponseBody public ResponseEntity create(@RequestBody TaskResultEntity taskResult, UriComponentsBuilder uriBuilder) { //调用JSR303 Bean Validator进行校验,如果出错返回含400错误码及json格式的错误信息. Set> failures = validator.validate(taskResult); if (!failures.isEmpty()) { return new ResponseEntity(BeanValidators.extractPropertyAndMessage(failures), HttpStatus.BAD_REQUEST); } //保存 try{ taskResultService.save(taskResult); } catch (Exception e) { e.printStackTrace(); return new ResponseEntity(HttpStatus.NO_CONTENT); } //按照Restful风格约定,创建指向新任务的url, 也可以直接返回id或对象. String id = taskResult.getId(); URI uri = uriBuilder.path("/rest/taskResultController/" + id).build().toUri(); HttpHeaders headers = new HttpHeaders(); headers.setLocation(uri); return new ResponseEntity(headers, HttpStatus.CREATED); } @RequestMapping(value = "/{id}", method = RequestMethod.PUT, consumes = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity update(@RequestBody TaskResultEntity taskResult) { //调用JSR303 Bean Validator进行校验,如果出错返回含400错误码及json格式的错误信息. Set> failures = validator.validate(taskResult); if (!failures.isEmpty()) { return new ResponseEntity(BeanValidators.extractPropertyAndMessage(failures), HttpStatus.BAD_REQUEST); } //保存 try{ taskResultService.saveOrUpdate(taskResult); } catch (Exception e) { e.printStackTrace(); return new ResponseEntity(HttpStatus.NO_CONTENT); } //按Restful约定,返回204状态码, 无内容. 也可以返回200状态码. return new ResponseEntity(HttpStatus.NO_CONTENT); } @RequestMapping(value = "/{id}", method = RequestMethod.DELETE) @ResponseStatus(HttpStatus.NO_CONTENT) public void delete(@PathVariable("id") String id) { taskResultService.deleteEntityById(TaskResultEntity.class, id); } }