AdminSignclosedController.java 15 KB

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