AdminDetectController.java 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503
  1. package com.iamberry.rst.controllers.cm;
  2. import com.iamberry.rst.core.cm.CompanyInfo;
  3. import com.iamberry.rst.core.fm.*;
  4. import com.iamberry.rst.core.order.Product;
  5. import com.iamberry.rst.core.order.ProductColor;
  6. import com.iamberry.rst.core.order.ProductType;
  7. import com.iamberry.rst.core.page.PageRequest;
  8. import com.iamberry.rst.core.page.PagedResult;
  9. import com.iamberry.rst.core.sys.Admin;
  10. import com.iamberry.rst.core.tools.LogisticsInfo;
  11. import com.iamberry.rst.faces.cm.CompanyInfoService;
  12. import com.iamberry.rst.faces.cm.SalesOrderService;
  13. import com.iamberry.rst.faces.fm.AwaitingSignclosedProductInfoService;
  14. import com.iamberry.rst.faces.fm.ComplaintDetectInfoService;
  15. import com.iamberry.rst.faces.fm.ComplaintSignclosedInfoService;
  16. import com.iamberry.rst.faces.fm.ComplaintSignclosedProductInfoService;
  17. import com.iamberry.rst.faces.product.ProductService;
  18. import com.iamberry.rst.service.fm.mapper.ComplaintSignclosedInfoMapper;
  19. import com.iamberry.rst.utils.AdminUtils;
  20. import com.iamberry.rst.utils.StitchAttrUtil;
  21. import com.iamberry.wechat.tools.ResponseJson;
  22. import org.apache.shiro.authz.annotation.RequiresPermissions;
  23. import org.springframework.beans.factory.annotation.Autowired;
  24. import org.springframework.stereotype.Controller;
  25. import org.springframework.web.bind.annotation.RequestMapping;
  26. import org.springframework.web.bind.annotation.RequestParam;
  27. import org.springframework.web.bind.annotation.ResponseBody;
  28. import org.springframework.web.servlet.ModelAndView;
  29. import javax.servlet.http.HttpServletRequest;
  30. import java.text.SimpleDateFormat;
  31. import java.util.Calendar;
  32. import java.util.Date;
  33. import java.util.List;
  34. /**
  35. * Created by wxm on 2017/8/29.
  36. */
  37. @Controller
  38. @RequestMapping("/admin/detect")
  39. public class AdminDetectController {
  40. // private
  41. @Autowired
  42. private ComplaintDetectInfoService complaintDetectInfoService;
  43. @Autowired
  44. private ProductService productService;
  45. @Autowired
  46. private ComplaintSignclosedInfoService complaintSignclosedInfoService;
  47. @Autowired
  48. private ComplaintSignclosedProductInfoService signclosedProductInfoService;
  49. @Autowired
  50. private AwaitingSignclosedProductInfoService awaitingSignclosedProductService;
  51. @Autowired
  52. private CompanyInfoService companyInfoService;
  53. @Autowired
  54. private SalesOrderService salesOrderService;
  55. /**
  56. * 跳转到添加检测记录页面
  57. *
  58. * @return
  59. */
  60. @RequiresPermissions("detect:add:detect")
  61. @RequestMapping(value = "/to_add_detect")
  62. public ModelAndView toAddDetect(HttpServletRequest request) {
  63. ModelAndView mv = new ModelAndView("cm/inspection/add_detect");
  64. Product product = new Product();
  65. List<Product> productList = productService.listProductAndColorAndfittings(product);
  66. ProductColor color = new ProductColor();
  67. color.setColorProductId(product.getProductId());
  68. List<ProductColor> productColorList = productService.listProduceColor(color);
  69. mv.addObject("productColorList",productColorList);
  70. mv.addObject("productList",productList);
  71. //获取所有维修内容
  72. DetectionBasis detectionBasis = new DetectionBasis();
  73. List<DetectionBasis> detectionBasisList = complaintDetectInfoService.listDetectionBasis(detectionBasis);
  74. mv.addObject("detectionBasisList",detectionBasisList);
  75. List<CompanyInfo> companyInfoList = companyInfoService.listCompanyInfo(new CompanyInfo());
  76. mv.addObject("companyInfoList",companyInfoList);
  77. return mv;
  78. }
  79. /**
  80. * 客诉 - 查询品质检测列表
  81. * @param request
  82. * @return
  83. */
  84. @RequiresPermissions("detect:select:detect")
  85. @RequestMapping("/select_detect_list")
  86. public ModelAndView selectDetectList(HttpServletRequest request,
  87. @RequestParam(value = "pageSize", defaultValue = "5", required = false) Integer pageSize,
  88. @RequestParam(value = "pageNO", defaultValue = "1", required = false) Integer pageNO,
  89. @RequestParam(value = "totalNum", defaultValue = "0", required = false) Integer totalNum,
  90. ComplaintDetectInfo detect) {
  91. ModelAndView mv = new ModelAndView("cm/inspection/detect_list");
  92. // 封装请求数据
  93. PageRequest<ComplaintDetectInfo> pageRequest = new PageRequest<>(detect, pageNO, pageSize, totalNum == 0);
  94. // 查询订单列表
  95. PagedResult<ComplaintDetectInfo> result = complaintDetectInfoService.listComplaintDetect(pageRequest);
  96. if (totalNum != 0) {
  97. result.setTotal(totalNum);
  98. }
  99. Calendar date = Calendar.getInstance();
  100. for (ComplaintDetectInfo info : result.getDataList()){
  101. date.setTime(info.getDetectCreateTime());
  102. date.set(Calendar.DATE, date.get(Calendar.DATE) + 6);
  103. info.setMaintenanceCutTime(date.getTime());
  104. }
  105. //获取所有产品类型
  106. ProductType productType = new ProductType();
  107. List<ProductType> productTypeList = productService.listProductType(productType);
  108. mv.addObject("productTypeList",productTypeList);
  109. Product product = new Product();
  110. List<Product> productList = productService.listProductAndColorAndfittings(product);
  111. mv.addObject("productList",productList);
  112. StitchAttrUtil.getSa().setModelAndView(detect, mv, "/admin/detect/select_detect_list", result);
  113. return mv;
  114. }
  115. /**
  116. * 添加检测信息
  117. * @param request
  118. * @return
  119. * @throws Exception
  120. */
  121. @RequiresPermissions("detect:add:detect")
  122. @ResponseBody
  123. @RequestMapping("/add_detect")
  124. public ResponseJson addDetect(HttpServletRequest request, ComplaintDetectInfo detectInfo) throws Exception {
  125. ResponseJson msg = new ResponseJson();
  126. if(detectInfo == null){
  127. msg.setResultCode(500);
  128. msg.setReturnCode(500);
  129. return msg;
  130. }
  131. /*String itemDate = request.getParameter("itemDate");
  132. if(itemDate == null ){
  133. msg.setResultCode(500);
  134. msg.setReturnCode(500);
  135. return msg;
  136. }*/
  137. detectInfo.setDetectState(1);
  138. detectInfo.setIsMaintenance(0);
  139. detectInfo.setDetectRenovation(0);
  140. detectInfo.setDetectProcessingResults(0);
  141. if(complaintDetectInfoService.insert(detectInfo) > 0){
  142. msg.setResultCode(200);
  143. msg.setReturnCode(200);
  144. }else{
  145. msg.setResultCode(500);
  146. msg.setReturnCode(500);
  147. }
  148. return msg;
  149. }
  150. /**
  151. * 跳转到添加检测备注页面
  152. *
  153. * @return
  154. */
  155. /*@RequiresPermissions("info:update:info")
  156. @RequestMapping(value = "/to_add_remark")
  157. public ModelAndView toAddRemark(HttpServletRequest request) {
  158. ModelAndView mv = new ModelAndView("cm/inspection/add_remark");
  159. String detectItemId = request.getParameter("detectItemId");
  160. if(detectItemId == null || detectItemId.equals("")){
  161. return mv;
  162. }
  163. ComplaintDetectItem detectItem = complaintDetectInfoService.getDetectItemById(Integer.valueOf(detectItemId));
  164. mv.addObject("detectItemId",detectItemId);
  165. mv.addObject("detectItem",detectItem);
  166. return mv;
  167. }*/
  168. /**
  169. * 跳转到添加修改转入信息页面
  170. *
  171. * @return
  172. *//*
  173. @RequiresPermissions("remark:add:remark")
  174. @RequestMapping(value = "/to_produced_info")
  175. public ModelAndView toProducedInfo(HttpServletRequest request) {
  176. ModelAndView mv = new ModelAndView("cm/inspection/update_produced_info");
  177. String detectId = request.getParameter("detectId");
  178. String state = request.getParameter("state");
  179. if(detectId == null || detectId.equals("")){
  180. return mv;
  181. }
  182. ComplaintDetectInfo detectInfo = complaintDetectInfoService.getComplaintDetectById(Integer.valueOf(detectId));
  183. mv.addObject("detectId",detectId);
  184. mv.addObject("detectInfo",detectInfo);
  185. mv.addObject("state",state);
  186. return mv;
  187. }*/
  188. /**
  189. * 跳转到检测完成页面
  190. *
  191. * @return
  192. */
  193. /*@RequiresPermissions("complete:update:complete")
  194. @RequestMapping(value = "/to_detect_complete")
  195. public ModelAndView toDetectComplete(HttpServletRequest request) {
  196. ModelAndView mv = new ModelAndView("cm/inspection/detect_complete");
  197. String detectId = request.getParameter("detectId");
  198. if(detectId == null || detectId.equals("")){
  199. return mv;
  200. }
  201. ComplaintDetectInfo detectInfo = complaintDetectInfoService.getComplaintDetectById(Integer.valueOf(detectId));
  202. mv.addObject("detectId",detectId);
  203. mv.addObject("detectInfo",detectInfo);
  204. return mv;
  205. }*/
  206. /**
  207. * 修改检测信息备注
  208. * @param request
  209. * @return
  210. * @throws Exception
  211. */
  212. @RequiresPermissions("remark:add:remark")
  213. @ResponseBody
  214. @RequestMapping("/update")
  215. public ResponseJson addRemark(HttpServletRequest request, ComplaintDetectInfo detectInfo) throws Exception {
  216. ResponseJson msg = new ResponseJson();
  217. if(detectInfo == null){
  218. msg.setResultCode(500);
  219. msg.setReturnCode(500);
  220. return msg;
  221. }
  222. if(detectInfo.getDetectId() == null){
  223. msg.setResultCode(500);
  224. msg.setReturnCode(500);
  225. return msg;
  226. }
  227. Integer num = complaintDetectInfoService.updateDetectById(detectInfo);
  228. if (num < 1) {
  229. msg.setResultCode(500);
  230. msg.setReturnCode(500);
  231. } else {
  232. msg.setResultCode(200);
  233. msg.setReturnCode(200);
  234. }
  235. return msg;
  236. }
  237. /**
  238. * 跳转到查看仓储进度页面
  239. *
  240. * @return
  241. */
  242. @RequiresPermissions("complete:update:complete")
  243. @RequestMapping(value = "/to_view_progress")
  244. public ModelAndView toViewProgress(HttpServletRequest request) {
  245. ModelAndView mv = new ModelAndView("cm/inspection/view_progress");
  246. String signclosedId = request.getParameter("signclosedId");
  247. if(signclosedId == null || signclosedId.equals("")){
  248. return mv;
  249. }
  250. if(Integer.valueOf(signclosedId) == 0){
  251. return mv;
  252. }
  253. List<SignclosedProductInfo> signclosedProductInfo = null;
  254. List<AwaitingSignclosedProductInfo> awaitingSignclosedProductInfo = null;
  255. ComplaintSignclosedInfo complaintSignclosedInfo = complaintSignclosedInfoService.getSignclosedById(Integer.valueOf(signclosedId));
  256. signclosedProductInfo = signclosedProductInfoService.listSignclosedById(complaintSignclosedInfo.getSignclosedId());
  257. mv.addObject("signclosedProductInfo",signclosedProductInfo);
  258. mv.addObject("signclosedInfo",complaintSignclosedInfo);
  259. mv.addObject("signclosedId",signclosedId);
  260. return mv;
  261. }
  262. /**
  263. * 跳转到查看物流信息页面
  264. *
  265. * @return
  266. */
  267. @RequestMapping(value = "/to_view_logistics")
  268. public ModelAndView toViewLogistics(HttpServletRequest request) {
  269. ModelAndView mv = new ModelAndView("cm/logistics/view_logistics");
  270. String billCode = request.getParameter("billCode");
  271. String billName = request.getParameter("billName");
  272. if(billCode == null || billCode.equals("") ||billName == null || billName.equals("")){
  273. return mv;
  274. }
  275. mv.addObject("billCode",billCode);
  276. mv.addObject("billName",billName);
  277. return mv;
  278. }
  279. /**
  280. * 跳转到修改检测完成信息页面
  281. *
  282. * @return
  283. */
  284. @RequiresPermissions("complete:update:complete")
  285. @RequestMapping(value = "/to_update_complete")
  286. public ModelAndView toUpdateComplete(HttpServletRequest request) {
  287. ModelAndView mv = new ModelAndView("cm/inspection/update_complete");
  288. String detectId = request.getParameter("detectId");
  289. if(detectId == null || detectId.equals("")){
  290. return mv;
  291. }
  292. ComplaintDetectInfo detectInfo = complaintDetectInfoService.getDetectById(Integer.valueOf(detectId));
  293. detectInfo.setDetectDate(new Date());
  294. mv.addObject("detectId",detectId);
  295. mv.addObject("detectInfo",detectInfo);
  296. return mv;
  297. }
  298. /**
  299. * 查询单个检测信息
  300. *
  301. * @return
  302. */
  303. @RequiresPermissions("complete:update:complete")
  304. @ResponseBody
  305. @RequestMapping(value = "/get_detect")
  306. public ResponseJson getDetect(HttpServletRequest request,Integer detectId) {
  307. ResponseJson msg = new ResponseJson();
  308. if(detectId == null){
  309. msg.setResultCode(500);
  310. msg.setReturnCode(500);
  311. return msg;
  312. }
  313. ComplaintDetectInfo detectInfo = complaintDetectInfoService.getDetectById(detectId);
  314. if(detectInfo == null){
  315. msg.setResultCode(500);
  316. msg.setReturnCode(500);
  317. return msg;
  318. }else {
  319. List<ComplaintDetectImg> detectImg = complaintDetectInfoService.listDetectImg(detectId);
  320. ComplaintSignclosedInfo signclosedInfo = complaintSignclosedInfoService.getSignclosedById(detectInfo.getSignclosedId());
  321. LogisticsInfo info = new LogisticsInfo();
  322. if(signclosedInfo != null){
  323. info.setLogisticsRstCode(signclosedInfo.getSignclosedLogistics());
  324. List<LogisticsInfo> logisticsInfos = salesOrderService.getLogisticsInfo(info);
  325. if(logisticsInfos != null && logisticsInfos.size() > 0){
  326. signclosedInfo.setSignclosedLogisticsName(logisticsInfos.get(0).getLogisticsName());
  327. }else{
  328. signclosedInfo.setSignclosedLogisticsName("其它快递");
  329. }
  330. }
  331. Admin admin = AdminUtils.getLoginAdmin();
  332. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  333. msg.addResponseKeyValue("detectImg",detectImg);
  334. msg.addResponseKeyValue("detectInfo",detectInfo);
  335. msg.addResponseKeyValue("signclosedInfo",signclosedInfo);
  336. msg.addResponseKeyValue("date",sdf.format(new Date()));//当前时间
  337. msg.addResponseKeyValue("adminName",admin.getAdminName());//当前登录人
  338. msg.setResultCode(200);
  339. msg.setReturnCode(200);
  340. return msg;
  341. }
  342. }
  343. /**
  344. * 跳转到查看客服录入客诉信息页面
  345. *
  346. * @return
  347. */
  348. @RequiresPermissions("complete:select:complete")
  349. @RequestMapping(value = "/to_customer_detail")
  350. public ModelAndView toCustomerDetail(HttpServletRequest request) {
  351. ModelAndView mv = new ModelAndView("cm/inspection/customer_detail");
  352. return mv;
  353. }
  354. /**
  355. * 检测完成
  356. * @param request
  357. * @return
  358. * @throws Exception
  359. */
  360. @RequiresPermissions("complete:update:complete")
  361. @ResponseBody
  362. @RequestMapping("/update_complete")
  363. public ResponseJson update_complete(HttpServletRequest request, ComplaintDetectInfo detectInfo) throws Exception {
  364. ResponseJson msg = new ResponseJson();
  365. if(detectInfo == null){
  366. msg.setResultCode(500);
  367. msg.setReturnCode(500);
  368. return msg;
  369. }
  370. if(detectInfo.getDetectId() == null || detectInfo.getDetectId().equals("")){
  371. msg.setResultCode(500);
  372. msg.setReturnCode(500);
  373. return msg;
  374. }
  375. String detectDate = request.getParameter("detect_date");
  376. if(detectDate != null){
  377. SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
  378. detectInfo.setDetectDate(format.parse(detectDate));
  379. }
  380. String[] componentsImgs = request.getParameterValues("componentsImg");
  381. Integer num = complaintDetectInfoService.updateDetectById(detectInfo,componentsImgs);
  382. if (num < 1) {
  383. msg.setResultCode(500);
  384. msg.setReturnCode(500);
  385. } else {
  386. msg.setResultCode(200);
  387. msg.setReturnCode(200);
  388. }
  389. return msg;
  390. }
  391. /**
  392. * 删除检测信息
  393. * @param request
  394. * @return
  395. * @throws Exception
  396. */
  397. @RequiresPermissions("remark:add:remark")
  398. @ResponseBody
  399. @RequestMapping("/delete")
  400. public ResponseJson delete(HttpServletRequest request, Integer detectId) throws Exception {
  401. ResponseJson msg = new ResponseJson();
  402. if(detectId == null){
  403. msg.setResultCode(500);
  404. msg.setReturnCode(500);
  405. return msg;
  406. }
  407. Integer num = complaintDetectInfoService.deleteDetect(detectId);
  408. if (num < 1) {
  409. msg.setResultCode(500);
  410. msg.setReturnCode(500);
  411. } else {
  412. msg.setResultCode(200);
  413. msg.setReturnCode(200);
  414. }
  415. return msg;
  416. }
  417. /**
  418. * 查询单个检测信息
  419. * @param request
  420. * @return
  421. * @throws Exception
  422. */
  423. @RequiresPermissions("remark:add:remark")
  424. @ResponseBody
  425. @RequestMapping("/getDetectionBasis")
  426. public ResponseJson getDetectionBasis(HttpServletRequest request, Integer basisId) throws Exception {
  427. ResponseJson msg = new ResponseJson();
  428. if(basisId == null){
  429. msg.setResultCode(500);
  430. msg.setReturnCode(500);
  431. return msg;
  432. }
  433. DetectionBasis detectionBasis = new DetectionBasis();
  434. detectionBasis.setBasisId(basisId);
  435. List<DetectionBasis> listDetectionBasis = complaintDetectInfoService.listDetectionBasis(detectionBasis);
  436. if (listDetectionBasis.size() < 1) {
  437. msg.setResultCode(500);
  438. msg.setReturnCode(500);
  439. } else {
  440. msg.addResponseKeyValue("detectionBasis",listDetectionBasis.get(0));
  441. msg.setResultCode(200);
  442. msg.setReturnCode(200);
  443. }
  444. return msg;
  445. }
  446. /**
  447. * 客服确认处理结果
  448. * @param request
  449. * @return
  450. * @throws Exception
  451. */
  452. @RequiresPermissions("complete:update:complete")
  453. @ResponseBody
  454. @RequestMapping("/customer_confirm")
  455. public ResponseJson customerConfirm(HttpServletRequest request, ComplaintDetectInfo detectInfo) throws Exception {
  456. ResponseJson msg = new ResponseJson();
  457. if(detectInfo == null){
  458. msg.setResultCode(500);
  459. msg.setReturnCode(500);
  460. return msg;
  461. }
  462. if(detectInfo.getDetectId() == null || "".equals(detectInfo.getDetectId())){
  463. msg.setResultCode(500);
  464. msg.setReturnCode(500);
  465. return msg;
  466. }
  467. if (!complaintDetectInfoService.customerConfirm(detectInfo)) {
  468. msg.setResultCode(500);
  469. msg.setReturnCode(500);
  470. } else {
  471. ComplaintDetectInfo info = complaintDetectInfoService.getDetectById(detectInfo.getDetectId());
  472. msg.setResultCode(200);
  473. msg.setReturnCode(200);
  474. msg.addResponseKeyValue("detectInfo",info);
  475. }
  476. return msg;
  477. }
  478. }