ComplaintMaintenanceController.java 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343
  1. package com.iamberry.rst.controllers.cm;
  2. import com.iamberry.rst.core.cm.*;
  3. import com.iamberry.rst.core.order.Product;
  4. import com.iamberry.rst.core.page.PageRequest;
  5. import com.iamberry.rst.core.page.PagedResult;
  6. import com.iamberry.rst.core.pts.PtsMachine;
  7. import com.iamberry.rst.core.pts.PtsSalesCompany;
  8. import com.iamberry.rst.faces.cm.*;
  9. import com.iamberry.rst.faces.product.ProductService;
  10. import com.iamberry.rst.faces.pts.MachineService;
  11. import com.iamberry.rst.faces.pts.PtsSalesCompanyService;
  12. import com.iamberry.rst.service.pts.mapper.MachineMapper;
  13. import com.iamberry.rst.utils.StitchAttrUtil;
  14. import com.iamberry.wechat.tools.ResponseJson;
  15. import org.apache.shiro.authz.annotation.RequiresPermissions;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.stereotype.Controller;
  18. import org.springframework.web.bind.annotation.RequestMapping;
  19. import org.springframework.web.bind.annotation.RequestParam;
  20. import org.springframework.web.bind.annotation.ResponseBody;
  21. import org.springframework.web.servlet.ModelAndView;
  22. import javax.servlet.http.HttpServletRequest;
  23. import java.text.ParseException;
  24. import java.text.SimpleDateFormat;
  25. import java.util.Date;
  26. import java.util.List;
  27. /**
  28. * Created by wxm
  29. * 问题
  30. */
  31. @Controller
  32. @RequestMapping("/admin/maintenance")
  33. public class ComplaintMaintenanceController {
  34. @Autowired
  35. private ComplaintMaintenanceInfoService complaintMaintenanceInfoService;
  36. @Autowired
  37. private MachineService machineService;
  38. @Autowired
  39. private ProductService productService;
  40. @Autowired
  41. private PtsSalesCompanyService ptsSalesCompanyService;
  42. @Autowired
  43. private ComplaintDetectInfoService complaintDetectInfoService;
  44. /**
  45. * 客诉 - 查询签收/仓储列表
  46. * @param request
  47. * @return
  48. */
  49. @RequiresPermissions("maintenance:select:maintenance")
  50. @RequestMapping("/select_maintenance_list")
  51. public ModelAndView selectmaintenanceList(HttpServletRequest request,
  52. @RequestParam(value = "pageNO", defaultValue = "1", required = false) int pageNO,
  53. @RequestParam(value = "pageTotal", required = false) Integer pageTotal,
  54. @RequestParam(value = "pageSize", defaultValue = "5", required = false) int pageSize,
  55. ComplaintMaintenanceInfo complaintMaintenanceInfo) {
  56. ModelAndView mv = new ModelAndView("cm/maintenance/maintenance_list");
  57. // 封装请求数据
  58. PageRequest<ComplaintMaintenanceInfo> pageRequest = new PageRequest<>(complaintMaintenanceInfo, pageNO, pageSize, pageTotal == null);
  59. PagedResult<ComplaintMaintenanceInfo> result = complaintMaintenanceInfoService.listMaintenance(pageRequest);
  60. long total = 0;
  61. if (pageTotal == null) {
  62. total = result.getPages();
  63. } else {
  64. total = pageTotal;
  65. result.setPages(total);
  66. }
  67. StitchAttrUtil.setModelAndView(complaintMaintenanceInfo, mv, "/admin/maintenance/select_maintenance_list", result);
  68. return mv;
  69. }
  70. /**
  71. * 修改维修记录
  72. *
  73. * @return
  74. */
  75. @ResponseBody
  76. @RequiresPermissions("maintenance:update:maintenance")
  77. @RequestMapping(value = "/update_maintenance")
  78. public ResponseJson updateMaintenance(HttpServletRequest request,ComplaintMaintenanceInfo maintenanceInfo)throws Exception{
  79. ResponseJson msg = new ResponseJson();
  80. if(maintenanceInfo == null){
  81. msg.setResultCode(500);
  82. msg.setReturnCode(500);
  83. return msg;
  84. }
  85. String maintenanceContentDate = request.getParameter("maintenanceContent_Date");
  86. if(maintenanceContentDate != null){
  87. SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
  88. maintenanceInfo.setMaintenanceContentDate(format.parse(maintenanceContentDate));
  89. }
  90. if(maintenanceInfo.getProductId() != null){
  91. maintenanceInfo.setProductColorId(Integer.valueOf(request.getParameter("colorId"+maintenanceInfo.getProductId())));
  92. maintenanceInfo.setMaintenanceEquipmentNumber(request.getParameter("maintenanceEquipmentNumber"+maintenanceInfo.getProductId()));
  93. }
  94. Product product = productService.getProduce(maintenanceInfo.getProductId());
  95. maintenanceInfo.setMaintenanceProductNumber(product.getProductNumber());
  96. Integer num = complaintMaintenanceInfoService.updateMaintenanceById(maintenanceInfo);
  97. if (num < 1) {
  98. msg.setResultCode(500);
  99. msg.setReturnCode(500);
  100. } else {
  101. msg.setResultCode(200);
  102. msg.setReturnCode(200);
  103. }
  104. return msg;
  105. }
  106. /**
  107. * 跳转到修改维修记录页面
  108. *
  109. * @return
  110. */
  111. @RequiresPermissions("maintenance:update:maintenance")
  112. @RequestMapping(value = "/to_update_maintenance")
  113. public ModelAndView toUpdateMaintenance(HttpServletRequest request,Integer maintenanceId) {
  114. ModelAndView mv = new ModelAndView("cm/maintenance/update_maintenance");
  115. //获取所有产品及其颜色,配件
  116. Product product = new Product();
  117. List<Product> productList = productService.listProductAndColorAndfittings(product);
  118. ComplaintMaintenanceInfo complaintMaintenanceInfo = complaintMaintenanceInfoService.getMaintenanceByid(maintenanceId);
  119. mv.addObject("productList",productList);
  120. mv.addObject("maintenanceInfo",complaintMaintenanceInfo);
  121. return mv;
  122. }
  123. /**
  124. * 跳转到增加维修记录页面
  125. *
  126. * @return
  127. */
  128. @RequiresPermissions("maintenance:add:maintenance")
  129. @RequestMapping(value = "/to_add_maintenance")
  130. public ModelAndView toAddMaintenance(HttpServletRequest request) {
  131. ModelAndView mv = new ModelAndView("cm/maintenance/add_maintenance");
  132. //获取所有产品及其颜色,配件
  133. Product product = new Product();
  134. List<Product> productList = productService.listProductAndColorAndfittings(product);
  135. mv.addObject("productList",productList);
  136. return mv;
  137. }
  138. /**
  139. * 增加维修记录
  140. *
  141. * @return
  142. */
  143. @ResponseBody
  144. @RequiresPermissions("maintenance:add:maintenance")
  145. @RequestMapping(value = "/add_maintenance")
  146. public ResponseJson addMaintenance(HttpServletRequest request,ComplaintMaintenanceInfo maintenanceInfo) throws Exception {
  147. ResponseJson msg = new ResponseJson();
  148. if(maintenanceInfo == null){
  149. msg.setResultCode(500);
  150. msg.setReturnCode(500);
  151. return msg;
  152. }
  153. String maintenanceContentDate = request.getParameter("maintenanceContent_Date");
  154. if(maintenanceContentDate != null){
  155. SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
  156. maintenanceInfo.setMaintenanceContentDate(format.parse(maintenanceContentDate));
  157. }
  158. if(maintenanceInfo.getProductId() != null){
  159. maintenanceInfo.setProductColorId(Integer.valueOf(request.getParameter("colorId"+maintenanceInfo.getProductId())));
  160. maintenanceInfo.setMaintenanceEquipmentNumber(request.getParameter("maintenanceEquipmentNumber"+maintenanceInfo.getProductId()));
  161. }
  162. Product product = productService.getProduce(maintenanceInfo.getProductId());
  163. maintenanceInfo.setMaintenanceProductNumber(product.getProductNumber());
  164. maintenanceInfo.setMaintenanceCreateTime(new Date());
  165. Integer num = complaintMaintenanceInfoService.insert(maintenanceInfo);
  166. if (num < 1) {
  167. msg.setResultCode(500);
  168. msg.setReturnCode(500);
  169. } else {
  170. msg.setResultCode(200);
  171. msg.setReturnCode(200);
  172. }
  173. return msg;
  174. }
  175. /**
  176. *
  177. *根据机器编号搜索机器出库记录
  178. * @return
  179. */
  180. @ResponseBody
  181. @RequiresPermissions("maintenance:update:maintenance")
  182. @RequestMapping(value = "/select_outbound")
  183. public ResponseJson selectOutbound(HttpServletRequest request,String machineNum){
  184. ResponseJson msg = new ResponseJson();
  185. if(machineNum == null){
  186. msg.setResultCode(500);
  187. msg.setReturnCode(500);
  188. return msg;
  189. }
  190. PtsMachine ptsMachine = machineService.getMachineByBarCode(machineNum);
  191. if (ptsMachine == null) {
  192. msg.setResultCode(500);
  193. msg.setReturnCode(500);
  194. } else {
  195. msg.setResultCode(200);
  196. msg.setReturnCode(200);
  197. msg.addResponseKeyValue("ptsMachine",ptsMachine);
  198. }
  199. return msg;
  200. }
  201. /**
  202. * 跳转到完善机器编号页面
  203. *
  204. * @return
  205. */
  206. @RequiresPermissions("maintenance:update:maintenance")
  207. @RequestMapping(value = "/to_perfecting_machine")
  208. public ModelAndView toPerfectingMachine(HttpServletRequest request,Integer maintenanceId) {
  209. ModelAndView mv = new ModelAndView("cm/maintenance/perfecting_machine");
  210. PtsSalesCompany ptsSalesCompany = new PtsSalesCompany();
  211. List<PtsSalesCompany> listSalesCompany = ptsSalesCompanyService.listPtsSalesCompany(ptsSalesCompany);
  212. mv.addObject("listSalesCompany",listSalesCompany);
  213. ComplaintMaintenanceInfo complaintMaintenanceInfo = complaintMaintenanceInfoService.getMaintenanceByid(maintenanceId);
  214. mv.addObject("maintenanceInfo",complaintMaintenanceInfo);
  215. return mv;
  216. }
  217. /**
  218. * 完善机器编号(出库录入)
  219. */
  220. @ResponseBody
  221. @RequiresPermissions("maintenance:update:maintenance")
  222. @RequestMapping("/perfecting_machine")
  223. public ResponseJson perfectingMachine(HttpServletRequest request, ComplaintMaintenanceInfo complaintMaintenanceInfo)throws Exception {
  224. ResponseJson rj = new ResponseJson(500, "ERROR", 500);
  225. if(complaintMaintenanceInfo == null){
  226. return rj;
  227. }
  228. PtsMachine ptsMachine = machineService.getMachineByBarCode(complaintMaintenanceInfo.getMaintenanceEquipmentNumber());
  229. if(ptsMachine == null){
  230. return rj;
  231. }
  232. if(ptsMachine.getMachineSalesState() == 2){//如果未出库,则将该机器编号录入到这条维修任务
  233. String machineSalesCompanyId = request.getParameter("machineSalesCompanyId"); //销售公司
  234. String machineSales_date = request.getParameter("machineSales_date");//销售时间
  235. if(machineSalesCompanyId == null || machineSalesCompanyId.equals("")|| machineSales_date == null || machineSales_date.equals("")){
  236. return rj;
  237. }
  238. SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
  239. Date machineSalesDate = format.parse(machineSales_date);
  240. //将机器出库
  241. PtsMachine machine = new PtsMachine();
  242. machine.setMachineBarcode(complaintMaintenanceInfo.getMaintenanceEquipmentNumber());
  243. machine.setMachineSalesDate(machineSalesDate);
  244. machine.setMachineSalesCompanyId(Integer.valueOf(machineSalesCompanyId));
  245. machine.setMachineSalesState(1); //设置状态为已售出
  246. int flag = machineService.updateMachineSalesInfo(machine);
  247. if(flag < 1){
  248. rj.setResultCode(500);
  249. rj.setResultMsg("ERROR");
  250. rj.setReturnCode(500);
  251. return rj;
  252. }else{
  253. rj.setResultCode(200);
  254. rj.setResultMsg("SUCCESS");
  255. rj.setReturnCode(200);
  256. }
  257. }
  258. int msg = complaintMaintenanceInfoService.updateMaintenanceById(complaintMaintenanceInfo);
  259. if(msg < 1){
  260. rj.setResultCode(500);
  261. rj.setResultMsg("ERROR");
  262. rj.setReturnCode(500);
  263. }else{
  264. rj.setResultCode(200);
  265. rj.setResultMsg("SUCCESS");
  266. rj.setReturnCode(200);
  267. }
  268. return rj;
  269. }
  270. /**
  271. * 跳转到完成返修页面
  272. *
  273. * @return
  274. */
  275. @RequiresPermissions("maintenance:update:maintenance")
  276. @RequestMapping(value = "/to_complete_reorder")
  277. public ModelAndView toCompleteReorder(HttpServletRequest request,Integer maintenanceId) {
  278. ModelAndView mv = new ModelAndView("cm/maintenance/complete_reorder");
  279. ComplaintMaintenanceInfo complaintMaintenanceInfo = complaintMaintenanceInfoService.getMaintenanceByid(maintenanceId);
  280. mv.addObject("maintenanceInfo",complaintMaintenanceInfo);
  281. return mv;
  282. }
  283. /**
  284. * 完成返修
  285. *
  286. * @return
  287. */
  288. @ResponseBody
  289. @RequiresPermissions("maintenance:update:maintenance")
  290. @RequestMapping(value = "/complete_reorder")
  291. public ResponseJson completeReorder(HttpServletRequest request,ComplaintMaintenanceInfo maintenanceInfo)throws Exception{
  292. ResponseJson msg = new ResponseJson();
  293. if(maintenanceInfo == null){
  294. msg.setResultCode(500);
  295. msg.setReturnCode(500);
  296. return msg;
  297. }
  298. Integer num = complaintMaintenanceInfoService.updateMaintenanceById(maintenanceInfo);
  299. if (num < 1) {
  300. msg.setResultCode(500);
  301. msg.setReturnCode(500);
  302. } else {
  303. msg.setResultCode(200);
  304. msg.setReturnCode(200);
  305. }
  306. return msg;
  307. }
  308. /**
  309. * 跳转到查看品检页面
  310. *
  311. * @return
  312. */
  313. @RequiresPermissions("maintenance:update:maintenance")
  314. @RequestMapping(value = "/to_view_detect")
  315. public ModelAndView toViewDetect(HttpServletRequest request,Integer detectId) {
  316. ModelAndView mv = new ModelAndView("cm/maintenance/view_detect");
  317. ComplaintDetectInfo complaintDetectInfo = complaintDetectInfoService.getComplaintDetectById(detectId);
  318. mv.addObject("detectInfo",complaintDetectInfo);
  319. return mv;
  320. }
  321. }