TpTicketController.java 20KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373
  1. package com.huiju.estateagents.property.controller;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  4. import com.huiju.estateagents.base.BaseController;
  5. import com.huiju.estateagents.base.ResponseBean;
  6. import com.huiju.estateagents.center.taUser.entity.TaUser;
  7. import com.huiju.estateagents.center.taUser.service.ITaUserService;
  8. import com.huiju.estateagents.common.StringUtils;
  9. import com.huiju.estateagents.entity.TaPerson;
  10. import com.huiju.estateagents.property.common.Constant;
  11. import com.huiju.estateagents.property.common.UserElement;
  12. import com.huiju.estateagents.property.model.TpTicket;
  13. import com.huiju.estateagents.property.model.TpTicketRecordComment;
  14. import com.huiju.estateagents.property.service.IUserService;
  15. import com.huiju.estateagents.property.service.TpTicketService;
  16. import com.huiju.estateagents.service.ITaPersonService;
  17. import io.swagger.annotations.Api;
  18. import io.swagger.annotations.ApiImplicitParam;
  19. import io.swagger.annotations.ApiImplicitParams;
  20. import io.swagger.annotations.ApiOperation;
  21. import org.springframework.beans.factory.annotation.Autowired;
  22. import org.springframework.web.bind.annotation.*;
  23. import javax.servlet.http.HttpServletRequest;
  24. import javax.servlet.http.HttpSession;
  25. import java.io.IOException;
  26. import java.util.List;
  27. /**
  28. * <p>
  29. * 工单表 前端控制器
  30. * </p>
  31. *
  32. * @author jobob
  33. * @since 2019-02-14
  34. */
  35. @RestController
  36. @RequestMapping("/api")
  37. @Api(value = "工单列表API", tags = "工单列表API")
  38. public class TpTicketController extends BaseController {
  39. @Autowired
  40. private ITaUserService userService;
  41. @Autowired
  42. private ITaPersonService taPersonService;
  43. @Autowired
  44. private TpTicketService tpTicketService;
  45. // @ApiOperation(value = "工单列表", notes = "工单列表")
  46. @ApiImplicitParams({
  47. @ApiImplicitParam(paramType = "body",dataType = "String",name = "parameter",value = "id:工单编号," +
  48. "type:工单类型(1:投诉 2:报修 3:联系物业)," +
  49. "ticketTitle:工单标题,createUser:发起人," +
  50. "status:流转状态(0:待分配 1:拒绝受理 2:待处理 3:正在处理 4:待评价 5:已评价 6:已终止')" +
  51. "tpUserId:当前处理人" )
  52. })
  53. @RequestMapping(value = "/admin/ticketLiset", method = RequestMethod.POST)
  54. public ResponseBean ticketLiset(@RequestBody String parameter, HttpServletRequest request){
  55. TaUser userElement = getTaUser(request);
  56. ResponseBean responseBean = tpTicketService.ticketLiset(parameter,userElement.getOrgId());
  57. return responseBean;
  58. }
  59. // @ApiOperation(value = "工单详情", notes = "工单详情")
  60. @ApiImplicitParams({
  61. @ApiImplicitParam(paramType = "body",dataType = "String",name = "parameter",value = "id:工单编号")
  62. })
  63. @RequestMapping(value = "/admin/ticketDetails", method = RequestMethod.POST)
  64. public ResponseBean ticketDetails(@RequestBody String parameter, HttpServletRequest request){
  65. TaUser userElement = getTaUser(request);
  66. ResponseBean responseBean = tpTicketService.ticketDetails(parameter,userElement.getUserId(),userElement.getOrgId());
  67. return responseBean;
  68. }
  69. @ApiOperation(value = "工单详情", notes = "工单详情")
  70. @ApiImplicitParams({
  71. @ApiImplicitParam(paramType = "body",dataType = "String",name = "parameter",value = "id:工单编号")
  72. })
  73. @RequestMapping(value = "/wx/ticketDetails", method = RequestMethod.POST)
  74. public ResponseBean wxTicketDetails(@RequestBody String parameter, HttpServletRequest request){
  75. ResponseBean responseBean = tpTicketService.ticketDetails(parameter,null,getOrgId(request));
  76. return responseBean;
  77. }
  78. // @ApiOperation(value = "添加工单对话", notes = "添加工单对话")
  79. @ApiImplicitParams({
  80. @ApiImplicitParam(paramType = "body",dataType = "String",name = "parameter",value = "content:对话内容,imageUrl:[]图片,ticketId:工单id," +
  81. "status:工单状态(0:待分配 1:拒绝受理 2:待处理 3:正在处理 4:待评价 5:已评价 6:已终止)")
  82. })
  83. @RequestMapping(value = "/admin/addRecordComment", method = RequestMethod.POST)
  84. public ResponseBean addRecordComment(@RequestBody String parameter, HttpServletRequest request){
  85. TaUser userElement = getTaUser(request);
  86. ResponseBean responseBean = tpTicketService.addRecordComment(parameter,userElement.getUserId(),userElement.getOrgId(),userElement.getUserName());
  87. return responseBean;
  88. }
  89. // @ApiOperation(value = "工单受理分配", notes = "工单受理分配")
  90. @ApiImplicitParams({
  91. @ApiImplicitParam(paramType = "body",dataType = "String",name = "parameter",value = "ticketId:工单id," +
  92. "id:当前处理人id")
  93. })
  94. @RequestMapping(value = "/admin/addRecord", method = RequestMethod.POST)
  95. public ResponseBean addRecord(@RequestBody String parameter, HttpServletRequest request){
  96. TaUser userElement = getTaUser(request);
  97. ResponseBean responseBean = tpTicketService.addRecord(parameter,userElement.getUserId(),userElement.getOrgId());
  98. return responseBean;
  99. }
  100. @ApiImplicitParams({
  101. @ApiImplicitParam(paramType = "body",dataType = "String",name = "parameter",value = "ticketId:工单编号,id:选中的分配人员的id")
  102. })
  103. @RequestMapping(value = "/admin/addWorkerRecord", method = RequestMethod.POST)
  104. public ResponseBean addWorkerRecord(@RequestBody String parameter, HttpServletRequest request){
  105. TaUser taUser = getTaUser(request);
  106. ResponseBean responseBean = tpTicketService.addWxRecord(parameter,taUser.getUserId(),getOrgId(request));
  107. return responseBean;
  108. }
  109. @ApiOperation(value = "生活管家给维修工分配工单", notes = "生活管家给维修工分配工单")
  110. @ApiImplicitParams({
  111. @ApiImplicitParam(paramType = "body",dataType = "String",name = "parameter",value = "ticketId:工单编号,id:选中的分配人员的id")
  112. })
  113. @RequestMapping(value = "/wx/addRecord", method = RequestMethod.POST)
  114. public ResponseBean wxAddRecord(@RequestBody String parameter, HttpServletRequest request){
  115. TaUser taUser = getPropUserByPersonId(getPersonId(request));
  116. ResponseBean responseBean = tpTicketService.addWxRecord(parameter,taUser.getUserId(),getOrgId(request));
  117. return responseBean;
  118. }
  119. private TaUser getPropUserByPersonId(String personId) {
  120. TaPerson person = taPersonService.getById(personId);
  121. LambdaQueryWrapper<TaUser> queryWrapper = new LambdaQueryWrapper<>();
  122. queryWrapper.eq(TaUser::getPhone,person.getPhone());
  123. List<TaUser> list = userService.list(queryWrapper);
  124. TaUser taUser = new TaUser();
  125. if (list.size() > 0){
  126. taUser = list.get(0);
  127. }
  128. return taUser;
  129. }
  130. // @ApiOperation(value = "修改工单状态为拒绝处理", notes = "修改工单状态为拒绝处理")
  131. @ApiImplicitParams({
  132. @ApiImplicitParam(paramType = "body",dataType = "String",name = "parameter",value = "ticketId:工单id,textContent:拒绝的内容" )
  133. })
  134. @RequestMapping(value = "/admin/updateTicketStatus", method = RequestMethod.POST)
  135. public ResponseBean updateTicketStatus(@RequestBody String parameter, HttpServletRequest request){
  136. TaUser userElement = getTaUser(request);
  137. ResponseBean responseBean = tpTicketService.updateTicketStatus(parameter,userElement.getUserId(),userElement.getOrgId(),userElement.getUserName(),userElement.getPhone());
  138. return responseBean;
  139. }
  140. // @ApiOperation(value = "修改当前状态为待评价", notes = "修改当前状态为待评价")
  141. @ApiImplicitParams({
  142. @ApiImplicitParam(paramType = "body",dataType = "String",name = "parameter",value = "content:对话内容,imageUrl:[]图片,ticketId:工单id" )
  143. })
  144. @RequestMapping(value = "/admin/updateTicket", method = RequestMethod.POST)
  145. public ResponseBean updateTicket(@RequestBody String parameter, HttpServletRequest request){
  146. TaUser userElement = getTaUser(request);
  147. ResponseBean responseBean = tpTicketService.updateTicket(parameter,userElement.getUserId(),userElement.getOrgId(),userElement.getUserName(),userElement.getPhone());
  148. return responseBean;
  149. }
  150. /**
  151. * 已完成订单
  152. * @param parameter
  153. * @param request
  154. * @return
  155. */
  156. @RequestMapping(value = "/admin/endTicket", method = RequestMethod.POST)
  157. public ResponseBean endTicket(@RequestBody String parameter, HttpServletRequest request){
  158. TaUser userElement = getTaUser(request);
  159. ResponseBean responseBean = tpTicketService.endTicket(parameter,userElement.getUserId(),userElement.getOrgId(),userElement.getUserName(),userElement.getLoginName());
  160. return responseBean;
  161. }
  162. /**
  163. * 已完成订单
  164. * @param parameter
  165. * @param request
  166. * @return
  167. */
  168. @ApiOperation(value = "生活管家结束工单", notes = "生活管家结束工单")
  169. @ApiImplicitParams({
  170. @ApiImplicitParam(paramType = "body",dataType = "String",name = "parameter",value = "ticketId:工单编号")
  171. })
  172. @RequestMapping(value = "/wx/endTicket", method = RequestMethod.POST)
  173. public ResponseBean wxEndTicket(@RequestBody String parameter, HttpServletRequest request){
  174. TaUser taUser = getPropUserByPersonId(getPersonId(request));
  175. ResponseBean responseBean = tpTicketService.endTicket(parameter,taUser.getUserId(),taUser.getOrgId(),taUser.getUserName(),taUser.getLoginName());
  176. return responseBean;
  177. }
  178. @RequestMapping(value = "/admin/updateTicketPrice", method = RequestMethod.POST)
  179. public ResponseBean updateTicketPrice(@RequestBody String parameter, HttpServletRequest request){
  180. TaUser userElement = getTaUser(request);
  181. ResponseBean responseBean = tpTicketService.updateTicketPrice(parameter,userElement.getUserId(),userElement.getOrgId());
  182. return responseBean;
  183. }
  184. @RequestMapping(value = "/wx/ticketList/{orgId}", method = RequestMethod.GET)
  185. @ApiOperation(value = "获取 报修/投诉/联系单 各3条数据", notes = "根据 小区编号,第几页,一页多少行")
  186. @ApiImplicitParams({
  187. @ApiImplicitParam(paramType = "path",dataType = "Integer",name = "orgId",value = "小区编号"),
  188. @ApiImplicitParam(paramType = "query",dataType = "Integer",name = "pageNum",value = "第几页"),
  189. @ApiImplicitParam(paramType = "query",dataType = "Integer",name = "pageSize",value = "一页多少数据"),
  190. @ApiImplicitParam(paramType = "header",dataType = "String",name = "X-Auth-Token",value = "Token"),
  191. })
  192. @Deprecated
  193. public ResponseBean getService(@PathVariable(value = "orgId") Integer orgId,
  194. @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
  195. @RequestParam(value = "pageSize", defaultValue = "3") Integer pageSize,
  196. HttpServletRequest request) {
  197. ResponseBean response = new ResponseBean();
  198. TpTicket tpTicket = new TpTicket();
  199. tpTicket.setOrgId(Integer.valueOf(orgId));
  200. tpTicket.setPersonId(getPersonId(request));
  201. response = tpTicketService.getList(tpTicket, pageNum, pageSize);
  202. return response;
  203. }
  204. @ApiOperation(value = "获取报修/投诉/联系单进度详情数据", notes = "获取报修/投诉/联系单进度详情数据")
  205. @ApiImplicitParams({
  206. @ApiImplicitParam(paramType = "path", dataType = "Integer", name = "orgId", value = "小区编号"),
  207. @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "ticketId", value = "报修id")
  208. })
  209. @RequestMapping(value = "/wx/ticket/schedule/{orgId}", method = RequestMethod.GET)
  210. public ResponseBean getTicketSchedule(@PathVariable(value = "orgId") Integer orgId, @RequestParam Integer ticketId) {
  211. ResponseBean responseBean = new ResponseBean();
  212. TpTicket ticket = tpTicketService.getTicketSchedule(String.valueOf(orgId), ticketId);
  213. if (null != ticket) {
  214. responseBean.addSuccess(ticket);
  215. }else {
  216. responseBean.addError("没有该工单!");
  217. }
  218. return responseBean;
  219. }
  220. @RequestMapping(value = "/wx/tickets/list/{orgId}", method = RequestMethod.GET)
  221. @ApiOperation(value = "获取 报修/投诉/联系单 数据列表", notes = "根据 小区编号,工单类型,第几页,一页多少行")
  222. @ApiImplicitParams({
  223. @ApiImplicitParam(paramType = "path",dataType = "Integer",name = "orgId", value = "小区编号"),
  224. @ApiImplicitParam(paramType = "query",dataType = "Integer",name = "pageNum", value = "第几页"),
  225. @ApiImplicitParam(paramType = "query",dataType = "Integer",name = "pageSize", value = "一页多少数据"),
  226. @ApiImplicitParam(paramType = "query",dataType = "String",name = "type", value = "工单类型 (1:投诉 2:报修 3:联系物业)"),
  227. @ApiImplicitParam(paramType = "header",dataType = "String",name = "X-Auth-Token",value = "Token"),
  228. })
  229. public ResponseBean getServiceList(@PathVariable(value = "orgId") Integer orgId,
  230. @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
  231. @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
  232. @RequestParam(value = "type") String type,
  233. @RequestParam(value = "taUserVerifyId") Integer taUserVerifyId,
  234. HttpServletRequest request) {
  235. ResponseBean responseBean = new ResponseBean();
  236. TpTicket tpTicket = new TpTicket();
  237. tpTicket.setOrgId(Integer.valueOf(orgId));
  238. tpTicket.setPersonId(getPersonId(request));
  239. tpTicket.setType(type);
  240. tpTicket.setTaUserVerifyId(taUserVerifyId);
  241. responseBean = tpTicketService.getByTypeList(tpTicket, pageNum, pageSize);
  242. return responseBean;
  243. }
  244. @ApiOperation(value = "回复 报修/投诉/联系单 追问接口", notes = "回复 报修/投诉/联系单 追问接口")
  245. @ApiImplicitParams({@ApiImplicitParam(paramType = "path", dataType = "integer", name = "orgId", value = "小区Id"),
  246. @ApiImplicitParam(name = "tpTicketRecordComment", value = "回复记录参数(ticketId:工单id,content:回复时间,ticketRecordCommentId:需要回复的id)", paramType = "body"),
  247. @ApiImplicitParam(paramType = "header",dataType = "String",name = "X-Auth-Token",value = "Token")})
  248. @RequestMapping(value = "/wx/ticket/reply/{orgId}", method = RequestMethod.POST)
  249. public ResponseBean updateTicketsReply(@PathVariable(value = "orgId") Integer orgId, @RequestBody TpTicketRecordComment tpTicketRecordComment, HttpServletRequest request){
  250. ResponseBean responseBean = new ResponseBean();
  251. tpTicketRecordComment.setOrgId(orgId);
  252. Integer size = tpTicketService.updateTicketsReply(tpTicketRecordComment, getPersonId(request));
  253. if (size > 0){
  254. responseBean.addSuccess(size);
  255. } else {
  256. responseBean.addError("更新失败");
  257. }
  258. return responseBean;
  259. }
  260. @ApiOperation(value = "添加 报修/投诉/联系单", notes = "添加 报修/投诉/联系单")
  261. @ApiImplicitParams({
  262. @ApiImplicitParam(paramType = "body", dataType = "String", name = "paramets", value =
  263. "ticketTitle:工单标题,ticketContent:工单内容,type: 1:投诉 2:报修 3:联系物业 , repairType:0:公共区域 1: 房屋质量 2:户内设施, imageUrl:图片地址 "),
  264. @ApiImplicitParam(paramType = "header",dataType = "String",name = "X-Auth-Token",value = "Token")
  265. })
  266. @RequestMapping(value = "/wx/addtpTicket", method = RequestMethod.POST)
  267. @ResponseBody
  268. public ResponseBean addTransaction(@RequestBody String paramets, HttpServletRequest request) throws IOException {
  269. ResponseBean responseBean = new ResponseBean();
  270. ResponseBean response = tpTicketService.addAiTicketService(getPersonId(request), paramets);
  271. return response;
  272. }
  273. @ApiOperation(value = "修改 报修/投诉/联系单", notes = "修改 报修/投诉/联系单")
  274. @ApiImplicitParams({@ApiImplicitParam(paramType = "path", dataType = "integer", name = "ticketId", value = "工单Id"),
  275. @ApiImplicitParam(paramType = "body", dataType = "String", name = "parameter", value =
  276. "ticketTitle:工单标题,ticketContent:工单内容,type: 1:投诉 2:报修 3:联系物业 , imageUrl:图片地址 "),
  277. @ApiImplicitParam(paramType = "header",dataType = "String",name = "X-Auth-Token",value = "Token")
  278. })
  279. @RequestMapping(value = "/wx/updateTicket/{ticketId}", method = RequestMethod.POST)
  280. public ResponseBean updateTicketContent(@PathVariable("ticketId") Integer ticketId,
  281. @RequestBody String parameter,
  282. HttpServletRequest request) {
  283. ResponseBean responseBean = new ResponseBean();
  284. responseBean = tpTicketService.updateTicketContent(ticketId, parameter,getPersonId(request));
  285. return responseBean;
  286. }
  287. @ApiOperation(value = "报修进度终止", notes = "报修进度终止")
  288. @ApiImplicitParams({@ApiImplicitParam(paramType = "path", dataType = "integer", name = "orgId", value = "小区Id"),
  289. @ApiImplicitParam(paramType = "query", dataType = "integer", name = "ticketId", value = "帖子Id"),
  290. @ApiImplicitParam(paramType = "header",dataType = "String",name = "X-Auth-Token",value = "Token")})
  291. @RequestMapping(value = "/wx/stopTicket/{orgId}", method = RequestMethod.GET)
  292. public ResponseBean stopTicket(@PathVariable("orgId") Integer orgId, @RequestParam("ticketId") Integer ticketId, HttpServletRequest request) {
  293. ResponseBean responseBean = new ResponseBean();
  294. responseBean = tpTicketService.stopTpTicketRecord(orgId, ticketId, getPersonId(request));
  295. return responseBean;
  296. }
  297. @ApiOperation(value = "添加工单对话", notes = "添加工单对话")
  298. @ApiImplicitParams({
  299. @ApiImplicitParam(paramType = "body",dataType = "String",name = "parameter",value = "content:对话内容,imageUrl:[]图片,ticketId:工单id," )
  300. })
  301. @RequestMapping(value = "/wx/addWxRecordComment", method = RequestMethod.POST)
  302. public ResponseBean addWxRecordComment(@RequestBody String parameter, HttpServletRequest request){
  303. TaPerson taPerson = taPersonService.getById(getPersonId(request));
  304. ResponseBean responseBean = tpTicketService.addWxRecordComment(parameter,taPerson.getPersonId(),1,taPerson.getName());
  305. return responseBean;
  306. }
  307. /**
  308. * 获取维修人员的订单列表
  309. * @param
  310. * @param request
  311. * @return
  312. */
  313. @ApiOperation(value = "获取生活管家的工单列表", notes = "获取生活管家的工单列表")
  314. @ApiImplicitParams({
  315. @ApiImplicitParam(paramType = "query",dataType = "Integer",name = "pageNum", value = "第几页"),
  316. @ApiImplicitParam(paramType = "query",dataType = "Integer",name = "pageSize", value = "一页多少数据")
  317. })
  318. @RequestMapping(value = "/wx/life/ticket/list", method = RequestMethod.GET)
  319. public ResponseBean getWorkerList(@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
  320. @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
  321. @RequestParam(value = "communityId", required = false) String communityId,
  322. HttpServletRequest request){
  323. Integer community = StringUtils.isEmpty(communityId) ? null : Integer.parseInt(communityId);
  324. TaUser taUser = getPropUserByPersonId(getPersonId(request));
  325. ResponseBean responseBean = tpTicketService.getWorkerList(pageNum,pageSize,taUser.getUserId(),taUser.getOrgId(), community);
  326. return responseBean;
  327. }
  328. }