AdminSignclosedController.java 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387
  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.faces.cm.AwaitingSignclosedProductInfoService;
  7. import com.iamberry.rst.faces.cm.ComplaintDetectInfoService;
  8. import com.iamberry.rst.faces.cm.ComplaintSignclosedInfoService;
  9. import com.iamberry.rst.faces.cm.FittingsInfoService;
  10. import com.iamberry.rst.faces.product.ProductService;
  11. import com.iamberry.rst.service.cm.mapper.AwaitingSignclosedProductMapper;
  12. import com.iamberry.rst.service.cm.mapper.ComplaintSignclosedInfoMapper;
  13. import com.iamberry.rst.service.cm.mapper.ComplaintSignclosedProductInfoMapper;
  14. import com.iamberry.rst.utils.StitchAttrUtil;
  15. import com.iamberry.wechat.tools.ResponseJson;
  16. import org.apache.commons.lang.StringUtils;
  17. import org.apache.shiro.authz.annotation.RequiresPermissions;
  18. import org.springframework.beans.factory.annotation.Autowired;
  19. import org.springframework.stereotype.Controller;
  20. import org.springframework.web.bind.annotation.RequestMapping;
  21. import org.springframework.web.bind.annotation.RequestParam;
  22. import org.springframework.web.bind.annotation.ResponseBody;
  23. import org.springframework.web.servlet.ModelAndView;
  24. import javax.servlet.http.HttpServletRequest;
  25. import java.text.SimpleDateFormat;
  26. import java.util.*;
  27. /**
  28. * Created by wxm on 2017/8/29.
  29. */
  30. @Controller
  31. @RequestMapping("/admin/signclosed")
  32. public class AdminSignclosedController {
  33. // private
  34. @Autowired
  35. private ComplaintDetectInfoService complaintDetectInfoService;
  36. @Autowired
  37. private ProductService productService;
  38. @Autowired
  39. private FittingsInfoService fittingsInfoService;
  40. @Autowired
  41. private ComplaintSignclosedInfoService complaintSignclosedInfoService;
  42. @Autowired
  43. private AwaitingSignclosedProductInfoService awaitingSignclosedProductInfoService;
  44. /**
  45. * 跳转到添加签收记录页面
  46. *
  47. * @return
  48. */
  49. @RequiresPermissions("signclosed:add:signclosed")
  50. @RequestMapping(value = "/to_add_signclosed")
  51. public ModelAndView toAddDetect(HttpServletRequest request) {
  52. ModelAndView mv = new ModelAndView("cm/signclosed/add_signclosed");
  53. //获取所有产品及其颜色,配件
  54. Product product = new Product();
  55. List<Product> productList = productService.listProductAndColorAndfittings(product);
  56. mv.addObject("productList",productList);
  57. return mv;
  58. }
  59. /**
  60. * 客诉 - 查询签收/仓储列表
  61. * @param request
  62. * @return
  63. */
  64. @RequiresPermissions("signclosed:select:signclosed")
  65. @RequestMapping("/select_signclosed_list")
  66. public ModelAndView selectDetectList(HttpServletRequest request,
  67. @RequestParam(value = "pageNO", defaultValue = "1", required = false) int pageNO,
  68. @RequestParam(value = "pageTotal", required = false) Integer pageTotal,
  69. @RequestParam(value = "pageSize", defaultValue = "5", required = false) int pageSize,
  70. ComplaintSignclosedInfo signclosedInfo) {
  71. ModelAndView mv = new ModelAndView("cm/signclosed/signclosed_list");
  72. StringBuilder url = new StringBuilder("/admin/signclosed/select_signclosed_list?pageSize=" + pageSize);
  73. // 封装请求数据
  74. PageRequest<ComplaintSignclosedInfo> pageRequest = new PageRequest<>(signclosedInfo, pageNO, pageSize, pageTotal == null);
  75. // 查询订单列表
  76. PagedResult<ComplaintSignclosedInfo> result = complaintSignclosedInfoService.listSignclosed(pageRequest);
  77. long total = 0;
  78. if (pageTotal == null) {
  79. total = result.getPages();
  80. } else {
  81. total = pageTotal;
  82. result.setPages(total);
  83. }
  84. /* url.append("&pageTotal=").append(total).append("&pageNO=");
  85. mv.addObject("page", result);
  86. mv.addObject("url", url.toString());*/
  87. StitchAttrUtil.setModelAndView(signclosedInfo, mv, "/admin/signclosed/select_signclosed_list", result);
  88. return mv;
  89. }
  90. /**
  91. * 添加签收信息
  92. * @param request
  93. * @return
  94. * @throws Exception
  95. */
  96. @RequiresPermissions("signclosed:add:signclosed")
  97. @ResponseBody
  98. @RequestMapping("/add_signclosed")
  99. public ResponseJson addSignclosed(HttpServletRequest request,ComplaintSignclosedInfo signclosedInfo) throws Exception {
  100. ResponseJson msg = new ResponseJson();
  101. if(signclosedInfo == null){
  102. msg.setResultCode(200);
  103. msg.setReturnCode(500);
  104. return msg;
  105. }
  106. /**寄回产品**/
  107. /*String[] colorName = request.getParameterValues("colorName");
  108. String[] fittingsName = request.getParameterValues("fittingsName");*/
  109. /**签收产品**/
  110. String[] alreadyColorName = request.getParameterValues("alreadyColorName");
  111. String[] alreadyFittingsName = request.getParameterValues("alreadyFittingsName");
  112. if(alreadyColorName == null && alreadyFittingsName == null){
  113. msg.setResultCode(200);
  114. msg.setReturnCode(502);
  115. return msg;
  116. }
  117. /*Map<String,Integer> colorNameMap = new HashMap<>();
  118. if(colorName != null && colorName.length> 0){
  119. for (int i = 0;i<colorName.length;i++){
  120. colorNameMap.put(colorName[i],Integer.valueOf(request.getParameter("colorId"+colorName[i])));
  121. }
  122. }
  123. Map<String,Integer> fittingsNameMap = new HashMap<>();
  124. if(fittingsName != null && fittingsName.length> 0){
  125. for (int i = 0;i<fittingsName.length;i++){
  126. fittingsNameMap.put(fittingsName[i],Integer.valueOf(request.getParameter("fittingsId"+fittingsName[i])));
  127. }
  128. }*/
  129. Map<String,Integer> alreadyColorMap = new HashMap<>();
  130. Map<String,String[]> machineNumberMap = new HashMap<>();
  131. if(alreadyColorName != null && alreadyColorName.length> 0){
  132. for (int i = 0;i<alreadyColorName.length;i++){
  133. /**获取机器数量**/
  134. String number = request.getParameter("alreadyColorId"+alreadyColorName[i]);
  135. if(number == null || number.equals("")){
  136. msg.setResultCode(200);
  137. msg.setReturnCode(503);
  138. return msg;
  139. }
  140. alreadyColorMap.put(alreadyColorName[i],Integer.valueOf(number));
  141. /**获取机器编号数组**/
  142. String[] machineNumbers = request.getParameterValues("machineNumber"+alreadyColorName[i]);
  143. if(machineNumbers.length != Integer.valueOf(number)){
  144. msg.setResultCode(200);
  145. msg.setReturnCode(501);
  146. return msg;
  147. }
  148. machineNumberMap.put("machineNumber"+alreadyColorName[i],machineNumbers);
  149. }
  150. }
  151. Map<String, Integer> alreadyFittingsMap = new HashMap<>();
  152. if(alreadyFittingsName != null && alreadyFittingsName.length> 0) {
  153. for (int i = 0; i < alreadyFittingsName.length; i++) {
  154. alreadyFittingsMap.put(alreadyFittingsName[i], Integer.valueOf(request.getParameter("alreadyFittingsId" + alreadyFittingsName[i])));
  155. }
  156. }
  157. String signclosedDate = request.getParameter("signclosed_date");
  158. if(signclosedDate != null){
  159. SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
  160. signclosedInfo.setSignclosedDate(format.parse(signclosedDate));
  161. }
  162. if(signclosedInfo.getSignclosedState() == 2){
  163. signclosedInfo.setSignclosedObjectsState(3);
  164. }
  165. signclosedInfo.setSignclosedCreateTime(new Date());
  166. boolean num = complaintSignclosedInfoService.insert(signclosedInfo,alreadyColorMap,machineNumberMap,alreadyFittingsMap);
  167. if (!num) {
  168. msg.setResultCode(200);
  169. msg.setReturnCode(500);
  170. } else {
  171. msg.setResultCode(200);
  172. msg.setReturnCode(200);
  173. }
  174. return msg;
  175. }
  176. /**
  177. * 跳转到完成签收记录页面
  178. *
  179. * @return
  180. */
  181. @RequiresPermissions("signclosed:update:signclosed")
  182. @RequestMapping(value = "/to_complete_signclosed")
  183. public ModelAndView toCompleteDetect(HttpServletRequest request,Integer signclosedId) {
  184. ModelAndView mv = new ModelAndView("cm/signclosed/complete_signclosed");
  185. //获取所有待收产品及其颜色,配件
  186. if(signclosedId == null){
  187. return mv;
  188. }
  189. ComplaintSignclosedInfo complaintSignclosedInfo = complaintSignclosedInfoService.getSignclosedById(signclosedId);
  190. List<AwaitingSignclosedProductInfo> signclosedList = awaitingSignclosedProductInfoService.listBySignclosedId(signclosedId);
  191. mv.addObject("signclosedList",signclosedList);
  192. mv.addObject("complaintSignclosedInfo",complaintSignclosedInfo);
  193. return mv;
  194. }
  195. /**
  196. * 完成签收信息
  197. * @param request
  198. * @return
  199. * @throws Exception
  200. */
  201. @RequiresPermissions("signclosed:update:signclosed")
  202. @ResponseBody
  203. @RequestMapping("/complete_signclosed")
  204. public ResponseJson completeSignclosed(HttpServletRequest request,ComplaintSignclosedInfo signclosedInfo) throws Exception {
  205. ResponseJson msg = new ResponseJson();
  206. if(signclosedInfo == null){
  207. msg.setResultCode(500);
  208. msg.setReturnCode(500);
  209. return msg;
  210. }
  211. /**签收产品**/
  212. String[] alreadyColorName = request.getParameterValues("alreadyColorName");
  213. String[] alreadyFittingsName = request.getParameterValues("alreadyFittingsName");
  214. if(alreadyColorName == null && alreadyFittingsName == null){
  215. msg.setResultCode(200);
  216. msg.setReturnCode(502);
  217. return msg;
  218. }
  219. Map<String,Integer> alreadyColorMap = new HashMap<>();
  220. Map<String,String[]> machineNumberMap = new HashMap<>();
  221. if(alreadyColorName != null && alreadyColorName.length> 0){
  222. for (int i = 0;i<alreadyColorName.length;i++){
  223. /**获取机器数量**/
  224. String number = request.getParameter("alreadyColorId"+alreadyColorName[i]);
  225. alreadyColorMap.put(alreadyColorName[i],Integer.valueOf(number));
  226. /**获取机器编号数组**/
  227. String[] machineNumbers = request.getParameterValues("machineNumber"+alreadyColorName[i]);
  228. machineNumberMap.put("machineNumber"+alreadyColorName[i],machineNumbers);
  229. }
  230. }
  231. Map<String, Integer> alreadyFittingsMap = new HashMap<>();
  232. if(alreadyFittingsName != null && alreadyFittingsName.length> 0) {
  233. for (int i = 0; i < alreadyFittingsName.length; i++) {
  234. alreadyFittingsMap.put(alreadyFittingsName[i], Integer.valueOf(request.getParameter("alreadyFittingsId" + alreadyFittingsName[i])));
  235. }
  236. }
  237. String signclosedDate = request.getParameter("signclosed_date");
  238. if(signclosedDate != null){
  239. SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
  240. signclosedInfo.setSignclosedDate(format.parse(signclosedDate));
  241. }
  242. signclosedInfo.setSignclosedState(1);
  243. boolean num = complaintSignclosedInfoService.updateSignclosedById(signclosedInfo,alreadyColorMap,machineNumberMap,alreadyFittingsMap);
  244. if (!num) {
  245. msg.setResultCode(500);
  246. msg.setReturnCode(500);
  247. } else {
  248. msg.setResultCode(200);
  249. msg.setReturnCode(200);
  250. }
  251. return msg;
  252. }
  253. /**
  254. * 跳转到修改备注页面
  255. *
  256. * @return
  257. */
  258. @RequiresPermissions("signclosed:update:signclosed")
  259. @RequestMapping(value = "/to_update_remark")
  260. public ModelAndView toUpdateRemark(HttpServletRequest request,Integer signclosedId) {
  261. ModelAndView mv = new ModelAndView("cm/signclosed/update_remark");
  262. ComplaintSignclosedInfo complaintSignclosedInfo = complaintSignclosedInfoService.getSignclosedById(signclosedId);
  263. mv.addObject("signclosedId",signclosedId);
  264. mv.addObject("complaintSignclosedInfo",complaintSignclosedInfo);
  265. return mv;
  266. }
  267. /**
  268. * 修改备注
  269. *
  270. * @return
  271. */
  272. @ResponseBody
  273. @RequiresPermissions("signclosed:update:signclosed")
  274. @RequestMapping(value = "/update_remark")
  275. public ResponseJson updateRemark(HttpServletRequest request,ComplaintSignclosedInfo signclosedInfo){
  276. ResponseJson msg = new ResponseJson();
  277. if(signclosedInfo == null){
  278. msg.setResultCode(500);
  279. msg.setReturnCode(500);
  280. return msg;
  281. }
  282. Integer num = complaintSignclosedInfoService.updateSignclosedById(signclosedInfo);
  283. if (num < 1) {
  284. msg.setResultCode(500);
  285. msg.setReturnCode(500);
  286. } else {
  287. msg.setResultCode(200);
  288. msg.setReturnCode(200);
  289. }
  290. return msg;
  291. }
  292. /**
  293. * 跳转到修改寄件人信息页面
  294. *
  295. * @return
  296. */
  297. @RequiresPermissions("signclosed:update:signclosed")
  298. @RequestMapping(value = "/to_update_sender")
  299. public ModelAndView toUpdateSender(HttpServletRequest request,Integer signclosedId) {
  300. ModelAndView mv = new ModelAndView("cm/signclosed/update_sender");
  301. ComplaintSignclosedInfo complaintSignclosedInfo = complaintSignclosedInfoService.getSignclosedById(signclosedId);
  302. mv.addObject("signclosedId",signclosedId);
  303. mv.addObject("complaintSignclosedInfo",complaintSignclosedInfo);
  304. return mv;
  305. }
  306. /**
  307. * 转入品质
  308. *
  309. * @return
  310. */
  311. @ResponseBody
  312. @RequiresPermissions("signclosed:update:signclosed")
  313. @RequestMapping(value = "/into_complaint")
  314. public ResponseJson intoComplaint(HttpServletRequest request,Integer signclosedId){
  315. ResponseJson msg = new ResponseJson();
  316. if(signclosedId == null){
  317. msg.setResultCode(500);
  318. msg.setReturnCode(500);
  319. return msg;
  320. }
  321. Integer num = complaintSignclosedInfoService.intoComplaint(signclosedId);
  322. if (num < 1) {
  323. msg.setResultCode(500);
  324. msg.setReturnCode(500);
  325. } else {
  326. msg.setResultCode(200);
  327. msg.setReturnCode(200);
  328. }
  329. return msg;
  330. }
  331. /**
  332. * 根据产品名称查询产品数据
  333. *
  334. * @return
  335. */
  336. @ResponseBody
  337. @RequiresPermissions("signclosed:select:signclosed")
  338. @RequestMapping(value = "/select_product")
  339. public ResponseJson selectProduct(HttpServletRequest request,String productName){
  340. ResponseJson msg = new ResponseJson();
  341. if(productName == null){
  342. msg.setResultCode(500);
  343. msg.setReturnCode(500);
  344. return msg;
  345. }
  346. //获取所有产品及其颜色,配件
  347. Product product = new Product();
  348. product.setProductName(productName);
  349. List<Product> productList = productService.listProductAndColorAndfittings(product);
  350. if (productList.size() == 0) {
  351. msg.setResultCode(500);
  352. msg.setReturnCode(500);
  353. } else {
  354. msg.setResultCode(200);
  355. msg.setReturnCode(200);
  356. msg.addResponseKeyValue("productList",productList);
  357. }
  358. return msg;
  359. }
  360. }