OrderInvoiceApiController.java 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  1. package com.goafanti.order.controller;
  2. import com.goafanti.common.bo.Result;
  3. import com.goafanti.common.constant.ErrorConstants;
  4. import com.goafanti.common.controller.CertifyApiController;
  5. import com.goafanti.common.model.TOrderInvoice;
  6. import com.goafanti.common.utils.StringUtils;
  7. import com.goafanti.common.utils.excel.NewExcelUtil;
  8. import com.goafanti.order.bo.InputOrderInvoiceBo;
  9. import com.goafanti.order.bo.TOrderInvoiceBo;
  10. import com.goafanti.order.service.OrderInvoiceService;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.beans.factory.annotation.Value;
  13. import org.springframework.web.bind.annotation.RequestMapping;
  14. import org.springframework.web.bind.annotation.RequestMethod;
  15. import org.springframework.web.bind.annotation.RestController;
  16. import javax.servlet.http.HttpServletRequest;
  17. import java.util.List;
  18. @RestController
  19. @RequestMapping(value = "/api/admin/orderInvoice")
  20. public class OrderInvoiceApiController extends CertifyApiController {
  21. @Autowired
  22. private OrderInvoiceService orderInvoiceService;
  23. @Value(value = "${upload.path}")
  24. private final String uploadPath = null;
  25. /**
  26. * 创建发票申请
  27. * @return
  28. */
  29. @RequestMapping(value = "/createOrderInvoice",method = RequestMethod.POST)
  30. public Result createOrderInvoice(TOrderInvoice t){
  31. Result res = new Result();
  32. if(t==null||null==t.getInvoiceType()||StringUtils.isBlank(t.getTaxNumber())||
  33. null==t.getAmount()||null==t.getBanks()||StringUtils.isBlank(t.getContent())
  34. ||StringUtils.isBlank(t.getUnitAddress())||StringUtils.isBlank(t.getUnitMobile())
  35. ||StringUtils.isBlank(t.getUnitName())||StringUtils.isBlank(t.getVoucherUrl())
  36. ||StringUtils.isBlank(t.getOrderNo())){
  37. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","基本资料"));
  38. return res;
  39. }
  40. //status 0保存 1提交
  41. if(orderInvoiceService.checkAmount(t)) {
  42. res.getError().add(buildError("","可开票余额不足!"));
  43. return res;
  44. }
  45. res.data(orderInvoiceService.createServiceOrder(t));
  46. return res;
  47. }
  48. /**
  49. * 发票申请详情
  50. * @return
  51. */
  52. @RequestMapping(value = "/selectByIdOrderInvoice",method = RequestMethod.GET)
  53. public Result selectByIdOrderInvoice(Integer id){
  54. Result res = new Result();
  55. if(id==null){
  56. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","ID"));
  57. return res;
  58. }
  59. res.data(orderInvoiceService.selectByIdOrderInvoice(id));
  60. return res;
  61. }
  62. /**
  63. * 获取最新开票详情
  64. * @return
  65. */
  66. @RequestMapping(value = "/getInvoiceDetails",method = RequestMethod.GET)
  67. public Result getInvoiceDetails(String orderNo){
  68. Result res = new Result();
  69. if(StringUtils.isBlank(orderNo)){
  70. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","订单编号"));
  71. return res;
  72. }
  73. res.data(orderInvoiceService.getInvoiceDetails(orderNo));
  74. return res;
  75. }
  76. /**
  77. * 修改发票申请
  78. * @return
  79. */
  80. @RequestMapping(value = "/updateOrderInvoice",method = RequestMethod.POST)
  81. public Result updateOrderInvoice(TOrderInvoice t){
  82. Result res = new Result();
  83. if(t==null||null==t.getInvoiceType()||StringUtils.isBlank(t.getTaxNumber())||
  84. null==t.getAmount()||null==t.getBanks()||StringUtils.isBlank(t.getContent())
  85. ||StringUtils.isBlank(t.getUnitAddress())||StringUtils.isBlank(t.getUnitMobile())
  86. ||StringUtils.isBlank(t.getUnitName())||StringUtils.isBlank(t.getVoucherUrl())
  87. ||StringUtils.isBlank(t.getOrderNo())){
  88. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","基本资料"));
  89. return res;
  90. }
  91. if(orderInvoiceService.checkAmount(t)) {
  92. res.getError().add(buildError("","可开票余额不足!"));
  93. return res;
  94. }
  95. res.data(orderInvoiceService.updateServiceOrder(t));
  96. return res;
  97. }
  98. /**
  99. * 财务开票列表
  100. * @return
  101. */
  102. @RequestMapping(value = "/financeOrderInvoiceList",method = RequestMethod.GET)
  103. public Result financeOrderInvoiceList(InputOrderInvoiceBo o,Integer pageNo,Integer pageSize){
  104. Result res = new Result();
  105. res.data(orderInvoiceService.financeOrderInvoiceList( o,pageNo,pageSize));
  106. return res;
  107. }
  108. /**
  109. * 财务开票列表
  110. * @return
  111. */
  112. @RequestMapping(value = "/financeOrderInvoiceList/export",method = RequestMethod.GET)
  113. public Result financeOrderInvoiceListExport(InputOrderInvoiceBo o,Integer pageNo,Integer pageSize){
  114. NewExcelUtil<TOrderInvoiceBo> excelUtil=new NewExcelUtil<>(TOrderInvoiceBo.class);
  115. List<TOrderInvoiceBo> list = (List<TOrderInvoiceBo>) orderInvoiceService.financeOrderInvoiceList(o, pageNo, 99999).getList();
  116. String exportName=o.getType()==0?"省内开票查询列表":"省外开票查询列表";
  117. return excelUtil.exportExcel(list,exportName,uploadPath);
  118. }
  119. /**
  120. * 开票特批列表
  121. * @return
  122. */
  123. @RequestMapping(value = "/approvalOrderInvoiceList",method = RequestMethod.GET)
  124. public Result approvalOrderInvoiceList(Integer status,Integer approval,Integer type,String orderDep,String orderNo ,String name,String userName,Integer pageNo,Integer pageSize){
  125. Result res = new Result();
  126. res.data(orderInvoiceService.approvalOrderInvoiceList( status,approval,type, orderDep, orderNo, name,userName,pageNo,pageSize));
  127. return res;
  128. }
  129. /**
  130. * 开票审核
  131. * @return
  132. */
  133. @RequestMapping(value = "/financeExamine",method = RequestMethod.POST)
  134. public Result financeExamine(Integer id,Integer examine,String reason){
  135. Result res = new Result();
  136. if(id==null){
  137. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","ID"));
  138. return res;
  139. }
  140. //examine 2通过 3拒绝
  141. if (examine==3&&StringUtils.isBlank(reason)) {
  142. res.getError().add(buildError("","拒绝必须填写原因。"));
  143. return res;
  144. }
  145. res.data(orderInvoiceService.updatefinanceExamine( id, examine, reason));
  146. return res;
  147. }
  148. /**
  149. * 特批审核
  150. * @return
  151. */
  152. @RequestMapping(value = "/approvalExamine",method = RequestMethod.POST)
  153. public Result approvalExamine(Integer id,Integer examine,String reason){
  154. Result res = new Result();
  155. if(id==null){
  156. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","ID"));
  157. return res;
  158. }
  159. //examine 2通过 3拒绝
  160. if (examine==3&&StringUtils.isBlank(reason)) {
  161. res.getError().add(buildError("","拒绝必须填写原因。"));
  162. return res;
  163. }
  164. res.data(orderInvoiceService.updateapprovalExamine( id, examine, reason));
  165. return res;
  166. }
  167. /**
  168. * 订单开票列表
  169. * @return
  170. */
  171. @RequestMapping(value = "/salesmanOrderInvoiceList",method = RequestMethod.GET)
  172. public Result salesmanOrderInvoiceList(String orderNo,Integer pageNo,Integer pageSize){
  173. Result res = new Result();
  174. if(StringUtils.isBlank(orderNo)){
  175. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","订单编号"));
  176. return res;
  177. }
  178. res.data(orderInvoiceService.salesmanOrderInvoiceList( orderNo, pageNo,pageSize));
  179. return res;
  180. }
  181. /** 开票文件上传 **/
  182. @RequestMapping(value = "/uploadOrderInvoiceFile", method = RequestMethod.POST)
  183. public Result uploadOrderInvoiceFile(HttpServletRequest req,String sign){
  184. Result res = new Result();
  185. //order_invoice_file
  186. res.setData(handleFile(res, "/order_invoice_file/", false, req, sign));
  187. return res;
  188. }
  189. @RequestMapping(value = "/invoice/log",method = RequestMethod.GET)
  190. public Result InvoiceLog(Integer id){
  191. Result res = new Result();
  192. res .data(orderInvoiceService.InvoiceLog(id));
  193. return res;
  194. }
  195. }