TpTicketController.java 15KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264
  1. package com.huiju.estateagents.property.controller;
  2. import com.huiju.estateagents.base.BaseController;
  3. import com.huiju.estateagents.base.ResponseBean;
  4. import com.huiju.estateagents.center.taUser.entity.TaUser;
  5. import com.huiju.estateagents.property.common.Constant;
  6. import com.huiju.estateagents.property.common.UserElement;
  7. import com.huiju.estateagents.property.model.TpTicket;
  8. import com.huiju.estateagents.property.model.TpTicketRecordComment;
  9. import com.huiju.estateagents.property.service.IUserService;
  10. import com.huiju.estateagents.property.service.TpTicketService;
  11. import io.swagger.annotations.Api;
  12. import io.swagger.annotations.ApiImplicitParam;
  13. import io.swagger.annotations.ApiImplicitParams;
  14. import io.swagger.annotations.ApiOperation;
  15. import org.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.web.bind.annotation.*;
  17. import javax.servlet.http.HttpServletRequest;
  18. import javax.servlet.http.HttpSession;
  19. import java.io.IOException;
  20. /**
  21. * <p>
  22. * 工单表 前端控制器
  23. * </p>
  24. *
  25. * @author jobob
  26. * @since 2019-02-14
  27. */
  28. @RestController
  29. @RequestMapping("/api")
  30. @Api(value = "工单列表API", tags = "工单列表API")
  31. public class TpTicketController extends BaseController {
  32. @Autowired
  33. private IUserService userService;
  34. @Autowired
  35. private TpTicketService tpTicketService;
  36. // @ApiOperation(value = "工单列表", notes = "工单列表")
  37. @ApiImplicitParams({
  38. @ApiImplicitParam(paramType = "body",dataType = "String",name = "parameter",value = "id:工单编号," +
  39. "type:工单类型(1:投诉 2:报修 3:联系物业)," +
  40. "ticketTitle:工单标题,createUser:发起人," +
  41. "status:流转状态(0:待分配 1:拒绝受理 2:待处理 3:正在处理 4:待评价 5:已评价 6:已终止')" +
  42. "tpUserId:当前处理人" )
  43. })
  44. @RequestMapping(value = "/ticketLiset", method = RequestMethod.POST)
  45. public ResponseBean ticketLiset(@RequestBody String parameter, HttpServletRequest request){
  46. TaUser userElement = getTaUser(request);
  47. ResponseBean responseBean = tpTicketService.ticketLiset(parameter,userElement.getOrgId());
  48. return responseBean;
  49. }
  50. // @ApiOperation(value = "工单详情", notes = "工单详情")
  51. @ApiImplicitParams({
  52. @ApiImplicitParam(paramType = "body",dataType = "String",name = "parameter",value = "id:工单编号")
  53. })
  54. @RequestMapping(value = "/ticketDetails", method = RequestMethod.POST)
  55. public ResponseBean ticketDetails(@RequestBody String parameter, HttpServletRequest request){
  56. TaUser userElement = getTaUser(request);
  57. ResponseBean responseBean = tpTicketService.ticketDetails(parameter,userElement.getUserId(),userElement.getOrgId());
  58. return responseBean;
  59. }
  60. // @ApiOperation(value = "添加工单对话", notes = "添加工单对话")
  61. @ApiImplicitParams({
  62. @ApiImplicitParam(paramType = "body",dataType = "String",name = "parameter",value = "content:对话内容,imageUrl:[]图片,ticketId:工单id," +
  63. "status:工单状态(0:待分配 1:拒绝受理 2:待处理 3:正在处理 4:待评价 5:已评价 6:已终止)")
  64. })
  65. @RequestMapping(value = "/addRecordComment", method = RequestMethod.POST)
  66. public ResponseBean addRecordComment(@RequestBody String parameter, HttpServletRequest request){
  67. TaUser userElement = getTaUser(request);
  68. ResponseBean responseBean = tpTicketService.addRecordComment(parameter,userElement.getUserId(),userElement.getOrgId(),userElement.getUserName());
  69. return responseBean;
  70. }
  71. // @ApiOperation(value = "工单受理分配", notes = "工单受理分配")
  72. @ApiImplicitParams({
  73. @ApiImplicitParam(paramType = "body",dataType = "String",name = "parameter",value = "ticketId:工单id," +
  74. "id:当前处理人id")
  75. })
  76. @RequestMapping(value = "/addRecord", method = RequestMethod.POST)
  77. public ResponseBean addRecord(@RequestBody String parameter, HttpServletRequest request){
  78. TaUser userElement = getTaUser(request);
  79. ResponseBean responseBean = tpTicketService.addRecord(parameter,userElement.getUserId(),userElement.getOrgId());
  80. return responseBean;
  81. }
  82. // @ApiOperation(value = "修改工单状态为拒绝处理", notes = "修改工单状态为拒绝处理")
  83. @ApiImplicitParams({
  84. @ApiImplicitParam(paramType = "body",dataType = "String",name = "parameter",value = "ticketId:工单id,textContent:拒绝的内容" )
  85. })
  86. @RequestMapping(value = "/updateTicketStatus", method = RequestMethod.POST)
  87. public ResponseBean updateTicketStatus(@RequestBody String parameter, HttpServletRequest request){
  88. TaUser userElement = getTaUser(request);
  89. ResponseBean responseBean = tpTicketService.updateTicketStatus(parameter,userElement.getUserId(),userElement.getOrgId(),userElement.getUserName(),userElement.getLoginName());
  90. return responseBean;
  91. }
  92. // @ApiOperation(value = "修改当前状态为待评价", notes = "修改当前状态为待评价")
  93. @ApiImplicitParams({
  94. @ApiImplicitParam(paramType = "body",dataType = "String",name = "parameter",value = "content:对话内容,imageUrl:[]图片,ticketId:工单id" )
  95. })
  96. @RequestMapping(value = "/updateTicket", method = RequestMethod.POST)
  97. public ResponseBean updateTicket(@RequestBody String parameter, HttpServletRequest request){
  98. TaUser userElement = getTaUser(request);
  99. ResponseBean responseBean = tpTicketService.updateTicket(parameter,userElement.getUserId(),userElement.getOrgId(),userElement.getUserName(),userElement.getLoginName());
  100. return responseBean;
  101. }
  102. @RequestMapping(value = "/wx/ticketList/{orgId}", method = RequestMethod.GET)
  103. @ApiOperation(value = "获取 报修/投诉/联系单 各3条数据", notes = "根据 小区编号,第几页,一页多少行")
  104. @ApiImplicitParams({
  105. @ApiImplicitParam(paramType = "path",dataType = "Integer",name = "orgId",value = "小区编号"),
  106. @ApiImplicitParam(paramType = "query",dataType = "Integer",name = "pageNum",value = "第几页"),
  107. @ApiImplicitParam(paramType = "query",dataType = "Integer",name = "pageSize",value = "一页多少数据"),
  108. @ApiImplicitParam(paramType = "header",dataType = "String",name = "X-Auth-Token",value = "Token"),
  109. })
  110. @Deprecated
  111. public ResponseBean getService(@PathVariable(value = "orgId") Integer orgId,
  112. @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
  113. @RequestParam(value = "pageSize", defaultValue = "3") Integer pageSize,
  114. HttpServletRequest request) {
  115. ResponseBean response = new ResponseBean();
  116. TaUser userElement = getTaUser(request);
  117. TpTicket tpTicket = new TpTicket();
  118. tpTicket.setOrgId(Integer.valueOf(orgId));
  119. tpTicket.setTaUserId(userElement.getUserId());
  120. response = tpTicketService.getList(tpTicket, pageNum, pageSize);
  121. return response;
  122. }
  123. @ApiOperation(value = "获取报修/投诉/联系单进度详情数据", notes = "获取报修/投诉/联系单进度详情数据")
  124. @ApiImplicitParams({
  125. @ApiImplicitParam(paramType = "path", dataType = "Integer", name = "orgId", value = "小区编号"),
  126. @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "ticketId", value = "报修id")
  127. })
  128. @RequestMapping(value = "/wx/ticket/schedule/{orgId}", method = RequestMethod.GET)
  129. public ResponseBean getTicketSchedule(@PathVariable(value = "orgId") Integer orgId, @RequestParam Integer ticketId) {
  130. ResponseBean responseBean = new ResponseBean();
  131. TpTicket ticket = tpTicketService.getTicketSchedule(String.valueOf(orgId), ticketId);
  132. if (null != ticket) {
  133. responseBean.addSuccess(ticket);
  134. }else {
  135. responseBean.addError("没有该工单!");
  136. }
  137. return responseBean;
  138. }
  139. @RequestMapping(value = "/wx/tickets/list/{orgId}", method = RequestMethod.GET)
  140. @ApiOperation(value = "获取 报修/投诉/联系单 数据列表", notes = "根据 小区编号,工单类型,第几页,一页多少行")
  141. @ApiImplicitParams({
  142. @ApiImplicitParam(paramType = "path",dataType = "Integer",name = "orgId", value = "小区编号"),
  143. @ApiImplicitParam(paramType = "query",dataType = "Integer",name = "pageNum", value = "第几页"),
  144. @ApiImplicitParam(paramType = "query",dataType = "Integer",name = "pageSize", value = "一页多少数据"),
  145. @ApiImplicitParam(paramType = "query",dataType = "String",name = "type", value = "工单类型 (1:投诉 2:报修 3:联系物业)"),
  146. @ApiImplicitParam(paramType = "header",dataType = "String",name = "X-Auth-Token",value = "Token"),
  147. })
  148. public ResponseBean getServiceList(@PathVariable(value = "orgId") Integer orgId,
  149. @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
  150. @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
  151. @RequestParam(value = "type") String type,
  152. HttpServletRequest request) {
  153. ResponseBean responseBean = new ResponseBean();
  154. TaUser userElement = getTaUser(request);
  155. TpTicket tpTicket = new TpTicket();
  156. tpTicket.setOrgId(Integer.valueOf(orgId));
  157. tpTicket.setTaUserId(userElement.getUserId());
  158. tpTicket.setType(type);
  159. responseBean = tpTicketService.getByTypeList(tpTicket, pageNum, pageSize);
  160. return responseBean;
  161. }
  162. @ApiOperation(value = "回复 报修/投诉/联系单 追问接口", notes = "回复 报修/投诉/联系单 追问接口")
  163. @ApiImplicitParams({@ApiImplicitParam(paramType = "path", dataType = "integer", name = "orgId", value = "小区Id"),
  164. @ApiImplicitParam(name = "tpTicketRecordComment", value = "回复记录参数(ticketId:工单id,content:回复时间,ticketRecordCommentId:需要回复的id)", paramType = "body"),
  165. @ApiImplicitParam(paramType = "header",dataType = "String",name = "X-Auth-Token",value = "Token")})
  166. @RequestMapping(value = "/wx/ticket/reply/{orgId}", method = RequestMethod.POST)
  167. public ResponseBean updateTicketsReply(@PathVariable(value = "orgId") Integer orgId, @RequestBody TpTicketRecordComment tpTicketRecordComment, HttpServletRequest request){
  168. TaUser userElement = getTaUser(request);
  169. Integer userId = userElement.getUserId();
  170. ResponseBean responseBean = new ResponseBean();
  171. tpTicketRecordComment.setOrgId(orgId);
  172. Integer size = tpTicketService.updateTicketsReply(tpTicketRecordComment, userId);
  173. if (size > 0){
  174. responseBean.addSuccess(size);
  175. } else {
  176. responseBean.addError("更新失败");
  177. }
  178. return responseBean;
  179. }
  180. @ApiOperation(value = "添加 报修/投诉/联系单", notes = "添加 报修/投诉/联系单")
  181. @ApiImplicitParams({
  182. @ApiImplicitParam(paramType = "body", dataType = "String", name = "paramets", value =
  183. "ticketTitle:工单标题,ticketContent:工单内容,type: 1:投诉 2:报修 3:联系物业 , repairType:0:公共区域 1: 房屋质量 2:户内设施, imageUrl:图片地址 "),
  184. @ApiImplicitParam(paramType = "header",dataType = "String",name = "X-Auth-Token",value = "Token")
  185. })
  186. @RequestMapping(value = "/wx/addtpTicket", method = RequestMethod.POST)
  187. @ResponseBody
  188. public ResponseBean addTransaction(@RequestBody String paramets, HttpServletRequest request) throws IOException {
  189. ResponseBean responseBean = new ResponseBean();
  190. TaUser userElement = getTaUser(request);
  191. ResponseBean response = tpTicketService.addAiTicketService(userElement, paramets);
  192. return response;
  193. }
  194. @ApiOperation(value = "修改 报修/投诉/联系单", notes = "修改 报修/投诉/联系单")
  195. @ApiImplicitParams({@ApiImplicitParam(paramType = "path", dataType = "integer", name = "ticketId", value = "工单Id"),
  196. @ApiImplicitParam(paramType = "body", dataType = "String", name = "parameter", value =
  197. "ticketTitle:工单标题,ticketContent:工单内容,type: 1:投诉 2:报修 3:联系物业 , imageUrl:图片地址 "),
  198. @ApiImplicitParam(paramType = "header",dataType = "String",name = "X-Auth-Token",value = "Token")
  199. })
  200. @RequestMapping(value = "/wx/updateTicket/{ticketId}", method = RequestMethod.POST)
  201. public ResponseBean updateTicketContent(@PathVariable("ticketId") Integer ticketId,
  202. @RequestBody String parameter,
  203. HttpServletRequest request) {
  204. ResponseBean responseBean = new ResponseBean();
  205. TaUser userElement = getTaUser(request);
  206. responseBean = tpTicketService.updateTicketContent(ticketId, parameter,userElement);
  207. return responseBean;
  208. }
  209. @ApiOperation(value = "报修进度终止", notes = "报修进度终止")
  210. @ApiImplicitParams({@ApiImplicitParam(paramType = "path", dataType = "integer", name = "orgId", value = "小区Id"),
  211. @ApiImplicitParam(paramType = "query", dataType = "integer", name = "ticketId", value = "帖子Id"),
  212. @ApiImplicitParam(paramType = "header",dataType = "String",name = "X-Auth-Token",value = "Token")})
  213. @RequestMapping(value = "/wx/stopTicket/{orgId}", method = RequestMethod.GET)
  214. public ResponseBean stopTicket(@PathVariable("orgId") Integer orgId, @RequestParam("ticketId") Integer ticketId, HttpServletRequest request) {
  215. TaUser userElement = getTaUser(request);
  216. ResponseBean responseBean = new ResponseBean();
  217. responseBean = tpTicketService.stopTpTicketRecord(orgId, ticketId, userElement);
  218. return responseBean;
  219. }
  220. @ApiOperation(value = "添加工单对话", notes = "添加工单对话")
  221. @ApiImplicitParams({
  222. @ApiImplicitParam(paramType = "body",dataType = "String",name = "parameter",value = "content:对话内容,imageUrl:[]图片,ticketId:工单id," )
  223. })
  224. @RequestMapping(value = "/wx/addWxRecordComment", method = RequestMethod.POST)
  225. public ResponseBean addWxRecordComment(@RequestBody String parameter, HttpServletRequest request){
  226. TaUser userElement = getTaUser(request);
  227. ResponseBean responseBean = tpTicketService.addWxRecordComment(parameter,userElement.getUserId(),userElement.getOrgId(),userElement.getUserName());
  228. return responseBean;
  229. }
  230. }