AdminOrderApiController.java 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553
  1. package com.goafanti.order.controller;
  2. import javax.annotation.Resource;
  3. import javax.servlet.http.HttpServletRequest;
  4. import org.apache.commons.lang3.StringUtils;
  5. import org.springframework.web.bind.annotation.RequestMapping;
  6. import org.springframework.web.bind.annotation.RequestMethod;
  7. import org.springframework.web.bind.annotation.RestController;
  8. import com.goafanti.business.service.BusinessProjectService;
  9. import com.goafanti.common.bo.Result;
  10. import com.goafanti.common.constant.ErrorConstants;
  11. import com.goafanti.common.controller.CertifyApiController;
  12. import com.goafanti.core.shiro.token.TokenManager;
  13. import com.goafanti.order.bo.OrderListBo;
  14. import com.goafanti.order.enums.AuditState;
  15. import com.goafanti.order.service.OrderService;
  16. @RestController
  17. @RequestMapping(value = "/api/admin/order")
  18. public class AdminOrderApiController extends CertifyApiController {
  19. @Resource
  20. private OrderService orderServiceImpl;
  21. @Resource
  22. private BusinessProjectService businessProjectServiceImpl;
  23. /**
  24. * 我的服务订单
  25. * @return
  26. */
  27. @RequestMapping(value="/listServiceOrder" ,method = RequestMethod.POST)
  28. public Result listServiceOrder(OrderListBo bo,String startDate,String endDate,Integer intention,Integer formal,
  29. Integer pageNo, Integer pageSize){
  30. Result res = new Result();
  31. res.setData(orderServiceImpl.selectServiceOrder(bo, startDate, endDate, intention, formal, pageNo, pageSize));
  32. return res;
  33. }
  34. /**
  35. * 订单详细
  36. * @param orderNo
  37. * @return
  38. */
  39. @RequestMapping(value = "/serviceOrderDetail",method = RequestMethod.GET)
  40. public Result serviceOrderDetail(String orderNo){
  41. Result res = new Result();
  42. if(StringUtils.isBlank(orderNo)){
  43. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "订单编号"));
  44. return res;
  45. }
  46. res.setData(orderServiceImpl.selectServiceOrderDetail(orderNo));
  47. return res;
  48. }
  49. /**
  50. * 修改订单
  51. * @param orderNo
  52. * @param firstPayment
  53. * @param orderAmount
  54. * @param signFirstPayment
  55. * @param signTotalAmount
  56. * @param approval
  57. * @param orderRemarks
  58. * @return
  59. */
  60. @RequestMapping(value = "/updateServiceOrder",method = RequestMethod.POST)
  61. public Result updateServiceOrder(String orderNo,String signFirstPayment,String signTotalAmount,
  62. String orderRemarks){
  63. Result res = new Result();
  64. if(StringUtils.isBlank(orderNo)){
  65. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "订单编号"));
  66. return res;
  67. }
  68. if(StringUtils.isBlank(signFirstPayment) || StringUtils.isBlank(signTotalAmount)){
  69. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "订单金额 和 首付金额"));
  70. return res;
  71. }
  72. orderServiceImpl.updateServiceOrder(orderNo,signFirstPayment,signTotalAmount,
  73. orderRemarks);
  74. return res;
  75. }
  76. /**
  77. * 签单
  78. * @param orderNo
  79. * @param signFirstPayment
  80. * @param signTotalAmount
  81. * @param approval
  82. * @param orderRemarks
  83. * @return
  84. */
  85. @RequestMapping(value = "/signServiceOrder", method = RequestMethod.POST)
  86. public Result signServiceOrder(String orderNo,String signFirstPayment,String signTotalAmount,
  87. String approval,String orderRemarks){
  88. Result res = new Result();
  89. if(StringUtils.isBlank(orderNo)){
  90. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "订单编号"));
  91. return res;
  92. }
  93. if(StringUtils.isBlank(signFirstPayment) || StringUtils.isBlank(signTotalAmount)){
  94. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "订单金额 和 首付金额"));
  95. return res;
  96. }
  97. if(null == approval){
  98. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "特批状态"));
  99. return res;
  100. }
  101. orderServiceImpl.updateSignServiceOrder(orderNo,signFirstPayment,signTotalAmount,approval,orderRemarks);
  102. return res;
  103. }
  104. /**
  105. * 订单详情
  106. * @param orderNo
  107. * @return
  108. */
  109. @RequestMapping(value = "/getServiceOrderDetail", method = RequestMethod.GET)
  110. public Result getServiceOrderDetail(String orderNo){
  111. Result res = new Result();
  112. if(StringUtils.isBlank(orderNo)){
  113. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "订单编号"));
  114. return res;
  115. }
  116. res.setData(orderServiceImpl.selectServiceOrderDetail(orderNo));
  117. return res;
  118. }
  119. /**
  120. * 确认意向
  121. * @param orderNo
  122. * @param confirm
  123. * @return
  124. */
  125. @RequestMapping(value="/confirmIntention", method = RequestMethod.POST)
  126. public Result confirmIntention(String orderNo,boolean confirm){
  127. Result res = new Result();
  128. if(StringUtils.isBlank(orderNo)){
  129. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","订单编号"));
  130. return res;
  131. }
  132. orderServiceImpl.updateConfirmIntention(orderNo,confirm);
  133. return res;
  134. }
  135. /**
  136. * 作废订单
  137. * @param orderNo
  138. * @return
  139. */
  140. @RequestMapping(value = "/revokeOrder", method = RequestMethod.GET)
  141. public Result revokeOrder(String orderNo){
  142. Result res = new Result();
  143. if(StringUtils.isBlank(orderNo)){
  144. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","订单编号"));
  145. return res;
  146. }
  147. orderServiceImpl.updateRevokeOrder(orderNo);
  148. return res;
  149. }
  150. /**
  151. * 模糊查询业务项目
  152. * @param businessName
  153. * @return
  154. */
  155. @RequestMapping(value = "/getBusinessProjectByName", method = RequestMethod.GET)
  156. public Result getBusinessProjectByName(String businessName,String cid){
  157. Result res = new Result();
  158. res.setData(businessProjectServiceImpl.selectBusinessProjectByName(businessName,cid));
  159. return res;
  160. }
  161. /**
  162. * 查询业务项目分类
  163. * @return
  164. */
  165. @RequestMapping(value="/getBusinessProjectCatalog",method = RequestMethod.GET)
  166. public Result getBusinessProjectCatalog(){
  167. Result res = new Result();
  168. res.setData(businessProjectServiceImpl.selectBusinessProjectCatalog());
  169. return res;
  170. }
  171. /**
  172. * 获取订单商品信息
  173. * @param orderNo
  174. * @return
  175. */
  176. @RequestMapping(value = "/getOrderCommodity",method = RequestMethod.GET)
  177. public Result getOrderCommodity(String orderNo){
  178. Result res = new Result();
  179. res.setData(orderServiceImpl.selectOrderCommodity(orderNo));
  180. return res;
  181. }
  182. /**
  183. * 添加订单商品
  184. * @param orderNo
  185. * @param commodityId
  186. * @param commodityMode
  187. * @param commodityQuantity
  188. * @param commodityType
  189. * @param discountPrice
  190. * @param remarks
  191. * @return
  192. */
  193. @RequestMapping(value = "/addOrderCommodity",method = RequestMethod.POST)
  194. public Result addOrderCommodity(String orderNo, String commodityId, String commodityName,String commodityMode, Integer commodityQuantity,Integer commodityType,
  195. String commodityPrice, String discountPrice,String commodityFirstPayment,String discountFirstPayment,String remarks){
  196. Result res = new Result();
  197. if(StringUtils.isBlank(orderNo)){
  198. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","订单编号"));
  199. return res;
  200. }
  201. orderServiceImpl.addOrderCommodity(orderNo,commodityId,commodityName,commodityMode,commodityQuantity,commodityType,
  202. commodityPrice,discountPrice,commodityFirstPayment,discountFirstPayment,remarks);
  203. return res;
  204. }
  205. /**
  206. * 进入修改商品信息
  207. * @param id
  208. * @return
  209. */
  210. @RequestMapping(value = "/toUpdateOrderCommodity",method = RequestMethod.GET)
  211. public Result toUpdateOrderCommodity(String id){
  212. Result res = new Result();
  213. if(StringUtils.isBlank(id)){
  214. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","明细ID"));
  215. return res;
  216. }
  217. return res;
  218. }
  219. /**
  220. * 修改订单商品
  221. * @param detailId
  222. * @param orderNo
  223. * @param oldCommodityPrice
  224. * @param oldDiscountPrice
  225. * @param oldCommodityQuantity
  226. * @param newCommodityId
  227. * @param newCommodityPrice
  228. * @param newDiscountPrice
  229. * @param newCommodityQuantity
  230. * @param newRemarks
  231. * @return
  232. */
  233. public Result updateOrderCommodity(String detailId,String orderNo,String oldCommodityPrice,String oldDiscountPrice,Integer oldCommodityQuantity,
  234. String commodityId, String commodityName,String commodityMode, Integer commodityQuantity,Integer commodityType,
  235. String commodityPrice, String discountPrice,String commodityFirstPayment,String discountFirstPayment,String remarks){
  236. Result res = new Result();
  237. if(StringUtils.isBlank(detailId)){
  238. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","详情编号"));
  239. return res;
  240. }
  241. orderServiceImpl.updateOrderCommodity(detailId, commodityId, commodityName, commodityMode, commodityQuantity,
  242. commodityType, commodityPrice, discountPrice, commodityFirstPayment, discountFirstPayment, remarks);
  243. return res;
  244. }
  245. /**
  246. * 删除订单商品
  247. * @param detailId
  248. * @return
  249. */
  250. @RequestMapping(value = "/deleteOrderCommodity",method = RequestMethod.GET)
  251. public Result deleteOrderCommodity(String detailId){
  252. Result res = new Result();
  253. if(StringUtils.isBlank(detailId)){
  254. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","详情编号"));
  255. return res;
  256. }
  257. orderServiceImpl.deleteOrderCommodity(detailId);
  258. return res;
  259. }
  260. /**
  261. * 查询分管部门
  262. * @return
  263. */
  264. @RequestMapping(value = "/selectMyDeps")
  265. public Result selectMyDeps(){
  266. Result res = new Result();
  267. res.setData(orderServiceImpl.selectMyDeps());
  268. return res;
  269. }
  270. /**
  271. * 部门服务订单
  272. * @return
  273. */
  274. @RequestMapping(value="/listDepServiceOrder" ,method = RequestMethod.POST)
  275. public Result listDepServiceOrder(OrderListBo bo,String startDate,String endDate,Integer intention,Integer formal,
  276. String depIds,Integer pageNo, Integer pageSize){
  277. Result res = new Result();
  278. res.setData(orderServiceImpl.selectDepServiceOrder(bo, startDate, endDate, intention, formal, depIds, pageNo, pageSize));
  279. return res;
  280. }
  281. /**
  282. * 查询特批订单
  283. * @return
  284. */
  285. @RequestMapping(value="/listApprovalServiceOrder" ,method = RequestMethod.POST)
  286. public Result listApprovalServiceOrder(OrderListBo bo,String startDate,String endDate,
  287. String depIds,Integer approvalHistory,Integer pageNo, Integer pageSize){
  288. Result res = new Result();
  289. res.setData(orderServiceImpl.selectApprovalServiceOrder(bo, startDate, endDate, depIds, approvalHistory, pageNo, pageSize));
  290. return res;
  291. }
  292. /**
  293. * 审批特批订单
  294. * @param orderNo
  295. * @return
  296. */
  297. @RequestMapping(value = "/approvalServiceOrder",method = RequestMethod.GET)
  298. public Result approvalServiceOrder(String orderNo,Integer confirm){
  299. Result res = new Result();
  300. orderServiceImpl.updateApprovalServiceOrder(orderNo,confirm);
  301. return res;
  302. }
  303. /**
  304. * 创建订单
  305. * @param uid
  306. * @param orderType
  307. * @return
  308. */
  309. @RequestMapping(value = "/createOrder",method = RequestMethod.POST)
  310. public Result createOrder(String uid,Integer orderType){
  311. Result res = new Result();
  312. if(StringUtils.isBlank(uid)){
  313. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","客户编号"));
  314. return res;
  315. }
  316. if(orderType == null){
  317. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","订单类型"));
  318. return res;
  319. }
  320. orderServiceImpl.createServiceOrder(uid,orderType);
  321. return res;
  322. }
  323. /** 图片上传 **/
  324. @RequestMapping(value = "/uploadOrderImg", method = RequestMethod.POST)
  325. public Result uploadCustomerImg(HttpServletRequest req,String sign){
  326. Result res = new Result();
  327. res.setData(handleFile(res, "/order_file/", false, req, sign));
  328. return res;
  329. }
  330. /** 查询公共订单 **/
  331. @RequestMapping(value = "/listPublicOrder", method = RequestMethod.POST)
  332. public Result listPublicOrder(OrderListBo bo,String startDate,String endDate,Integer pageNo, Integer pageSize){
  333. Result res = new Result();
  334. res.setData(orderServiceImpl.selectPublicOrder(bo,startDate,endDate,pageNo,pageSize));
  335. return res;
  336. }
  337. /** 分配订单到营销员 **/
  338. @RequestMapping(value = "/appointSalesman", method = RequestMethod.GET)
  339. public Result appointSalesman(String orderNo,String salesmanId){
  340. Result res = new Result();
  341. if(StringUtils.isBlank(orderNo)){
  342. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","订单编号"));
  343. return res;
  344. }
  345. if(StringUtils.isBlank(salesmanId)){
  346. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","指定人员编号"));
  347. return res;
  348. }
  349. orderServiceImpl.updateAppointSalesman(orderNo, salesmanId);
  350. return res;
  351. }
  352. /** 我的结算查询 **/
  353. @RequestMapping(value = "/listMySettlement", method = RequestMethod.POST)
  354. public Result listMySettlement(String orderNo, String depId,String buyerName,String salesmanName, String financeName,
  355. Integer orderStatus,Integer liquidationStatus,Integer approval,String startDate,
  356. String endDate,Integer pageNo, Integer pageSize){
  357. Result res = new Result();
  358. res.setData(orderServiceImpl.selectSettlementList(orderNo, depId, buyerName, salesmanName,
  359. TokenManager.getAdminId(), financeName, orderStatus, liquidationStatus, approval,startDate,endDate, pageNo, pageSize));
  360. return res;
  361. }
  362. /** 结算订单管理 **/
  363. @RequestMapping(value = "/listAllSettlement", method = RequestMethod.POST)
  364. public Result listAllSettlement(String orderNo, String depId,String buyerName,String salesmanName, String financeName,
  365. Integer orderStatus,Integer liquidationStatus,Integer approval,String startDate,String endDate,
  366. Integer pageNo, Integer pageSize){
  367. Result res = new Result();
  368. res.setData(orderServiceImpl.selectSettlementList(orderNo, depId, buyerName, salesmanName,
  369. "", financeName, orderStatus, liquidationStatus, approval, startDate,endDate, pageNo, pageSize));
  370. return res;
  371. }
  372. /** 我的订单流水管理 **/
  373. @RequestMapping(value = "/listMyBill", method = RequestMethod.POST)
  374. public Result selectMyBillList(String payeeName, String payerName, String depId,
  375. String salesmanName,String orderNo, Integer confirmSign,Integer deleteSign,Integer pageNo, Integer pageSize){
  376. Result res = new Result();
  377. res.setData(orderServiceImpl.selectMyBillList(payeeName, payerName, depId, salesmanName,orderNo,
  378. confirmSign, deleteSign, pageNo, pageSize));
  379. return res;
  380. }
  381. /** 我的订单流水查询 **/
  382. @RequestMapping(value = "/queryMyBill", method = RequestMethod.POST)
  383. public Result queryMyBillList(String payeeName, String payerName, String depId,
  384. String salesmanName,String orderNo, Integer confirmSign,Integer deleteSign,Integer pageNo, Integer pageSize){
  385. Result res = new Result();
  386. res.setData(orderServiceImpl.queryMyBillList(payeeName, payerName, depId, salesmanName,orderNo,
  387. confirmSign, deleteSign, pageNo, pageSize));
  388. return res;
  389. }
  390. /** 所有订单流水查询 **/
  391. @RequestMapping(value = "/queryAllBill", method = RequestMethod.POST)
  392. public Result queryAllBill(String payeeName, String payerName, String depId,
  393. String salesmanName,String financeName,String orderNo, Integer pageNo, Integer pageSize){
  394. Result res = new Result();
  395. res.setData(orderServiceImpl.queryAllBillList(payeeName, payerName, depId, salesmanName,financeName, orderNo, pageNo, pageSize));
  396. return res;
  397. }
  398. /** 查询流水详情 **/
  399. @RequestMapping(value = "/selectBillDetail", method = RequestMethod.GET)
  400. public Result selectBillDetail(String billNo){
  401. Result res = new Result();
  402. if(StringUtils.isBlank(billNo)){
  403. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","流水编号"));
  404. return res;
  405. }
  406. res.setData(orderServiceImpl.selectBillDetail(billNo));
  407. return res;
  408. }
  409. /**
  410. * 订单流水确认
  411. * @param billNo
  412. * @param orderNo
  413. * @param confirm
  414. * @param financialPayNo
  415. * @param financialPayTime
  416. * @param remarks
  417. * @return
  418. */
  419. @RequestMapping(value = "/confrimBill", method = RequestMethod.POST)
  420. public Result confrimBill(String billNo,String orderNo,Integer confirm,String financialPayNo,String financialPayTime,String remarks){
  421. Result res = new Result();
  422. if(StringUtils.isBlank(billNo)){
  423. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","流水编号"));
  424. return res;
  425. }
  426. if(StringUtils.isBlank(orderNo)){
  427. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","订单编号"));
  428. return res;
  429. }
  430. if(null == confirm){
  431. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","确认状态"));
  432. return res;
  433. }else if(confirm == AuditState.AUDIT_SUCCESS.getCode()){
  434. if(StringUtils.isBlank(financialPayNo) || StringUtils.isBlank(financialPayTime)){
  435. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","财务流水号和财务流水时间"));
  436. return res;
  437. }
  438. }
  439. orderServiceImpl.updateBill(billNo,orderNo,confirm,financialPayNo,financialPayTime,remarks);
  440. return res;
  441. }
  442. /**
  443. * 修改流水
  444. * @param billNo
  445. * @param financialPayNo
  446. * @param financialPayTime
  447. * @param remarks
  448. * @return
  449. */
  450. @RequestMapping(value = "/updateBill", method = RequestMethod.POST)
  451. public Result updateBill(String billNo,String orderNo, String financialPayNo, String financialPayTime, String remarks){
  452. Result res = new Result();
  453. if(StringUtils.isBlank(billNo)){
  454. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","流水编号"));
  455. return res;
  456. }
  457. if(StringUtils.isBlank(financialPayNo) || StringUtils.isBlank(financialPayTime)){
  458. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","财务流水号和财务流水时间"));
  459. return res;
  460. }
  461. orderServiceImpl.updateBill(billNo, orderNo,financialPayNo, financialPayTime, remarks);
  462. return res;
  463. }
  464. /**
  465. * 订单支付(测试用)
  466. * @return
  467. */
  468. @RequestMapping(value = "/testPay",method = RequestMethod.POST)
  469. public Result testPay(String orderNo,String payAmount){
  470. Result res = new Result();
  471. if(StringUtils.isBlank(orderNo) || StringUtils.isBlank(payAmount)){
  472. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","订单编号和支付金额"));
  473. return res;
  474. }
  475. orderServiceImpl.updatePayForTest(orderNo, payAmount);
  476. return res;
  477. }
  478. /**
  479. * 派单
  480. * @param orderNo
  481. * @param financeId
  482. * @return
  483. */
  484. @RequestMapping(value = "/distributionOrder",method = RequestMethod.POST)
  485. public Result distributionOrder(String orderNo,String financeId){
  486. Result res = new Result();
  487. if(StringUtils.isBlank(orderNo) || StringUtils.isBlank(financeId)){
  488. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","订单编号和指定负责人"));
  489. return res;
  490. }
  491. orderServiceImpl.updateDistributionOrder(orderNo,financeId);
  492. return res;
  493. }
  494. /**
  495. * 解锁、锁定、作废
  496. * @param operatorType
  497. * @param orderNo
  498. * @return
  499. */
  500. @RequestMapping(value = "/lockOrRevokeOrder",method = RequestMethod.GET)
  501. public Result lockOrRevokeOrder(String orderNo,Integer operatorType){
  502. Result res = new Result();
  503. if(StringUtils.isBlank(orderNo) || operatorType == null){
  504. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","订单编号和操作类型"));
  505. return res;
  506. }
  507. orderServiceImpl.updateLockOrRevokeOrder(orderNo,operatorType);
  508. return res;
  509. }
  510. }