OrdersIssueAction.java 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317
  1. package com.fuzamei.web;
  2. import java.util.List;
  3. import java.util.Map;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.beans.factory.annotation.Value;
  6. import org.springframework.web.bind.annotation.RequestBody;
  7. import org.springframework.web.bind.annotation.RequestMapping;
  8. import org.springframework.web.bind.annotation.RequestMethod;
  9. import org.springframework.web.bind.annotation.RestController;
  10. import com.fuzamei.constant.HintMSG;
  11. import com.fuzamei.constant.RegexConstant;
  12. import com.fuzamei.constant.Role;
  13. import com.fuzamei.constant.Status;
  14. import com.fuzamei.entity.Box;
  15. import com.fuzamei.entity.Orders;
  16. import com.fuzamei.entity.Params;
  17. import com.fuzamei.entity.Part;
  18. import com.fuzamei.entity.UserDetail;
  19. import com.fuzamei.service.BoxService;
  20. import com.fuzamei.service.OrderService;
  21. import com.fuzamei.service.OrdersIssueService;
  22. import com.fuzamei.service.PartService;
  23. import com.fuzamei.service.UserAuthoricationService;
  24. import com.fuzamei.util.JSONUtil;
  25. import com.fuzamei.util.PageDTO;
  26. import com.fuzamei.util.ReadConfUtil;
  27. import com.fuzamei.util.ValidationUtil;
  28. @RestController
  29. @RequestMapping("/ordersIssue")
  30. public class OrdersIssueAction {
  31. @Autowired
  32. private OrdersIssueService ordersIssueService;
  33. @Autowired
  34. private UserAuthoricationService userAuthoricationService;
  35. @Autowired
  36. private OrderService orderService;
  37. @Autowired
  38. private BoxService boxService;
  39. @Autowired
  40. private PartService partService;
  41. private static final Integer ROWNUM=Integer.parseInt(ReadConfUtil.getProperty("rowNum"));
  42. public static final String ORDER_ID_PATTERN=RegexConstant.ORDER_ID;
  43. /**
  44. *
  45. * @Title: queryOrdersByPlanner
  46. * @Description: TODO(由计划员查询订单信息)
  47. {
  48. "tokenId":"xxx",
  49. "page":"1",
  50. "supplierName":"",
  51. "boxNo":"",
  52. "startTime":"",
  53. "endTime":""
  54. }
  55. * @return Map<String,Object> 返回类型
  56. * @author ylx
  57. * @date 2018年1月24日 下午8:58:24
  58. * @throws
  59. */
  60. @RequestMapping(value="/queryOrdersByPlanner",method=RequestMethod.POST)
  61. public Map<String, Object> queryOrdersByPlanner(@RequestBody Params params){
  62. try {
  63. String userId = params.getTokenId().split("&")[1];
  64. userAuthoricationService.queryUserAuthority(ValidationUtil.checkAndAssignInt(userId), Role.PLANNER);
  65. int page = ValidationUtil.checkMinAndAssignInt(params.getPage(), 1);
  66. Long startTime=ValidationUtil.checkAndAssignDefaultLong(params.getStartTime(), 0L);
  67. Long endTime=ValidationUtil.checkAndAssignDefaultLong(params.getEndTime(), Long.MAX_VALUE);
  68. params.setStartTime(startTime);
  69. if(startTime<=endTime) params.setEndTime(endTime);
  70. else params.setEndTime(Long.MAX_VALUE);
  71. params.setStartPage((page - 1) * ROWNUM);
  72. params.setRowNum(ROWNUM);
  73. PageDTO pageDto = ordersIssueService.queryOrdersByPlanner(params);
  74. return JSONUtil.getJsonMap(200, true, HintMSG.QUERY_SUCCESS, pageDto);
  75. } catch (Exception e) {
  76. return JSONUtil.getJsonMap(500, false, HintMSG.QUERY_FAIL+":"+e.getMessage(), null);
  77. }
  78. }
  79. /**
  80. *
  81. * @Title: queryOrdersBySupplier
  82. * @Description: TODO(供应商查询订单信息)
  83. {
  84. "tokenId":"",
  85. "page":"1",
  86. "orderId":"",
  87. "boxNo":"",
  88. "statusId":"",
  89. "startTime":"",
  90. "endTime":""
  91. }
  92. * @params @return 设定文件
  93. * @return Map<String,Object> 返回类型
  94. * @author ylx
  95. * @date 2018年1月26日 上午10:34:41
  96. * @throws
  97. */
  98. @RequestMapping(value="/queryOrdersBySupplier",method=RequestMethod.POST)
  99. public Map<String, Object> queryOrdersBySupplier(@RequestBody Params params){
  100. try {
  101. String userId = params.getTokenId().split("&")[1];
  102. userAuthoricationService.queryUserAuthority(ValidationUtil.checkAndAssignInt(userId), Role.SUPPLIER);
  103. int page = ValidationUtil.checkMinAndAssignInt(params.getPage(), 1);
  104. Long startTime=ValidationUtil.checkAndAssignDefaultLong(params.getStartTime(), 0L);
  105. Long endTime=ValidationUtil.checkAndAssignDefaultLong(params.getEndTime(), Long.MAX_VALUE);
  106. params.setStartTime(startTime);
  107. if(startTime<=endTime) params.setEndTime(endTime);
  108. else params.setEndTime(Long.MAX_VALUE);
  109. params.setStartPage((page - 1) * ROWNUM);
  110. params.setRowNum(ROWNUM);
  111. PageDTO pageDto = ordersIssueService.queryOrdersBySupplier(params);
  112. return JSONUtil.getJsonMap(200, true, HintMSG.QUERY_SUCCESS, pageDto);
  113. } catch (Exception e) {
  114. return JSONUtil.getJsonMap(500, false, HintMSG.QUERY_FAIL+":"+e.getMessage(), null);
  115. }
  116. }
  117. /**
  118. *
  119. * @Title: Consignment
  120. * @Description: TODO(供应商点击发货这个动作)
  121. {
  122. "tokenId":"xxx",
  123. "orderId":"",
  124. "carrierId":""
  125. }
  126. * @params @return 设定文件
  127. * @return Map<String,Object> 返回类型
  128. * @author ylx
  129. * @date 2018年1月26日 上午11:07:58
  130. * @throws
  131. */
  132. @RequestMapping(value="/consignment",method=RequestMethod.POST)
  133. public Map<String, Object> consignment(@RequestBody Params params){
  134. try {
  135. String userId = params.getTokenId().split("&")[1];
  136. userAuthoricationService.queryUserAuthority(ValidationUtil.checkAndAssignInt(userId), Role.SUPPLIER);
  137. userAuthoricationService.queryUserAuthority(ValidationUtil.checkAndAssignInt(params.getCarrierId()), Role.CARRIER);
  138. Orders order = orderService.queryFullOrderByOrderId(ValidationUtil.checkAndAssignInt(params.getOrderId()));
  139. if(order==null) throw new RuntimeException("订单不存在");
  140. if(!Status.UNSEND.equals(order.getStatusId())) throw new RuntimeException(HintMSG.ILLEGAL);
  141. if(!params.getUserId().equals(order.getSupplierId())) throw new RuntimeException(HintMSG.NO_AUTH);
  142. ordersIssueService.consignment(params);
  143. return JSONUtil.getJsonMap(200, true, HintMSG.OPERATION_SUCCESS, null);
  144. } catch (Exception e) {
  145. return JSONUtil.getJsonMap(500, false, HintMSG.OPERATION_FAIL+":"+e.getMessage(), null);
  146. }
  147. }
  148. /**
  149. *
  150. * @Title: addOrder
  151. * @Description: TODO(由计划员增加新订单)
  152. {
  153. "tokenId":"xxx",
  154. "orderId":"",
  155. "supplierId":"",
  156. "partNo":"",
  157. "boxNo":"",
  158. "inboxQty":""
  159. }
  160. * @params @return 设定文件
  161. * @return Map<String,Object> 返回类型
  162. * @author ylx
  163. * @date 2018年1月25日 下午1:58:45
  164. * @throws
  165. */
  166. @RequestMapping(value="/addOrder",method=RequestMethod.POST)
  167. public Map<String, Object> addOrder(@RequestBody Params params){
  168. try {
  169. String userId = params.getTokenId().split("&")[1];
  170. orderService.checkIfHasTheSameId(ValidationUtil.checkAndAssignInt(params.getOrderId(),ORDER_ID_PATTERN));
  171. UserDetail userDetail = userAuthoricationService.queryUserDetail(ValidationUtil.checkAndAssignInt(userId), Role.PLANNER);//检测当前操作用户权限
  172. ValidationUtil.checkBlankString(params.getPartNo());
  173. List<UserDetail> users = userDetail.getUsers();
  174. int supplierId = ValidationUtil.checkAndAssignInt(params.getSupplierId());
  175. boolean flag=false;
  176. for (UserDetail user : users) {
  177. if(user.getUserId().equals(supplierId)){
  178. flag=true;
  179. break;
  180. }
  181. }
  182. if(!flag) throw new RuntimeException("查无此供应商");
  183. boxService.checkIfHasTheBoxNo(ValidationUtil.checkBlankAndAssignString(params.getBoxNo()));//检测箱号是否存在
  184. ValidationUtil.checkMinAndAssignInt(params.getInboxQty(),0);
  185. ordersIssueService.addOrder(params);//生成新订单
  186. return JSONUtil.getJsonMap(200, true, HintMSG.OPERATION_SUCCESS, null);
  187. } catch (Exception e) {
  188. return JSONUtil.getJsonMap(500, false, HintMSG.OPERATION_FAIL+":"+e.getMessage(), null);
  189. }
  190. }
  191. /**
  192. *
  193. * @Title: showSuppliersUnderPlanner
  194. * @Description: TODO(当用户添加订单时点击供应商列表时显示该计划员下的所有供应商)
  195. {
  196. "tokenId":"xxx"
  197. }
  198. * @return Map<String,Object> 返回类型
  199. * @author ylx
  200. * @date 2018年1月25日 下午3:24:56
  201. * @throws
  202. */
  203. @RequestMapping(value="/showSuppliersUnderPlanner",method=RequestMethod.POST)
  204. public Map<String, Object> showSuppliersUnderPlanner(@RequestBody Params params){
  205. try {
  206. String userId = params.getTokenId().split("&")[1];
  207. UserDetail userDetail = userAuthoricationService.queryUserDetail(ValidationUtil.checkAndAssignInt(userId), Role.PLANNER);//检测当前操作用户权限
  208. return JSONUtil.getJsonMap(200, true, HintMSG.QUERY_SUCCESS, userDetail.getUsers());
  209. } catch (Exception e) {
  210. return JSONUtil.getJsonMap(500, false, HintMSG.QUERY_FAIL+":"+e.getMessage(), null);
  211. }
  212. }
  213. /**
  214. *
  215. * @Title: showAllBoxNo
  216. * @Description: TODO(当计划员点击箱号,显示所有箱号)
  217. {
  218. "tokenId":"xxx"
  219. }
  220. * @params @return 设定文件
  221. * @return Map<String,Object> 返回类型
  222. * @author ylx
  223. * @date 2018年1月25日 下午3:57:17
  224. * @throws
  225. */
  226. /*@RequestMapping(value="/showAllBoxNo",method=RequestMethod.POST)
  227. public Map<String, Object> showAllBoxNo(@RequestBody Params params){
  228. try {
  229. String userId = params.getTokenId().split("&")[1];
  230. userAuthoricationService.queryUserAuthority(ValidationUtil.checkAndAssignInt(userId), Role.PLANNER);//检测当前操作用户权限
  231. List<Box> boxList = boxService.queryAllBoxInformation();
  232. return JSONUtil.getJsonMap(200, true, HintMSG.QUERY_SUCCESS, boxList);
  233. } catch (Exception e) {
  234. return JSONUtil.getJsonMap(500, false, HintMSG.QUERY_FAIL+":"+e.getMessage(), null);
  235. }
  236. }*/
  237. /**
  238. *
  239. * @Title: showAllPartNo
  240. * @Description: TODO(当计划员点击零件号,显示所有零件号)
  241. {
  242. "tokenId":"xxx"
  243. }
  244. * @params @return 设定文件
  245. * @return Map<String,Object> 返回类型
  246. * @author ylx
  247. * @date 2018年1月25日 下午3:57:17
  248. * @throws
  249. */
  250. @RequestMapping(value="/showAllPartNo",method=RequestMethod.POST)
  251. public Map<String, Object> showAllPartNo(@RequestBody Params params){
  252. try {
  253. String userId = params.getTokenId().split("&")[1];
  254. userAuthoricationService.queryUserAuthority(ValidationUtil.checkAndAssignInt(userId), Role.PLANNER);//检测当前操作用户权限
  255. List<Part> partList = partService.queryAllPartInformation();
  256. return JSONUtil.getJsonMap(200, true, HintMSG.QUERY_SUCCESS, partList);
  257. } catch (Exception e) {
  258. return JSONUtil.getJsonMap(500, false, HintMSG.QUERY_FAIL+":"+e.getMessage(), null);
  259. }
  260. }
  261. /**
  262. *
  263. * @Title: orderTracking
  264. * @Description: TODO(查询订单的跟踪情况)
  265. {
  266. "tokenId":"xxx",
  267. "orderId":""
  268. }
  269. * @params @return 设定文件
  270. * @return Map<String,Object> 返回类型
  271. * @author ylx
  272. * @date 2018年1月25日 下午7:41:16
  273. * @throws
  274. */
  275. @RequestMapping(value="/orderTracking",method=RequestMethod.POST)
  276. public Map<String, Object> orderTracking(@RequestBody Params params){
  277. try {
  278. String userId = params.getTokenId().split("&")[1];
  279. UserDetail userDetail = userAuthoricationService.queryUserAuthority(ValidationUtil.checkAndAssignInt(userId),Role.PLANNER,Role.SUPPLIER);//检测当前操作用户权限
  280. Orders order = orderService.queryFullOrderByOrderId(ValidationUtil.checkAndAssignInt(params.getOrderId()));
  281. if(Role.PLANNER.equals(userDetail.getRoleName())){
  282. if(!params.getUserId().equals(order.getPlannerId())) throw new RuntimeException(HintMSG.NO_AUTH);
  283. }
  284. if(Role.SUPPLIER.equals(userDetail.getRoleName())){
  285. if(!params.getUserId().equals(order.getSupplierId())) throw new RuntimeException(HintMSG.NO_AUTH);
  286. }
  287. params.setOrder(order);
  288. Map<String, Object> map = ordersIssueService.orderTracking(params);
  289. return JSONUtil.getJsonMap(200, true, HintMSG.QUERY_SUCCESS, map);
  290. } catch (Exception e) {
  291. return JSONUtil.getJsonMap(500, false, HintMSG.QUERY_FAIL+":"+e.getMessage(), null);
  292. }
  293. }
  294. }