OrderInvoiceApiController.java 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222
  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. Result res = new Result();
  115. NewExcelUtil<TOrderInvoiceBo> excelUtil=new NewExcelUtil<>(TOrderInvoiceBo.class);
  116. List<TOrderInvoiceBo> list = (List<TOrderInvoiceBo>) orderInvoiceService.financeOrderInvoiceList(o, pageNo, 99999).getList();
  117. String exportName=o.getType()==0?"省内开票查询列表":"省外开票查询列表";
  118. res.data(excelUtil.exportExcel(list,exportName,uploadPath));
  119. return res;
  120. }
  121. /**
  122. * 开票特批列表
  123. * @return
  124. */
  125. @RequestMapping(value = "/approvalOrderInvoiceList",method = RequestMethod.GET)
  126. public Result approvalOrderInvoiceList(Integer status,Integer approval,Integer type,String orderDep,String orderNo ,String name,String userName,Integer pageNo,Integer pageSize){
  127. Result res = new Result();
  128. res.data(orderInvoiceService.approvalOrderInvoiceList( status,approval,type, orderDep, orderNo, name,userName,pageNo,pageSize));
  129. return res;
  130. }
  131. /**
  132. * 开票审核
  133. * @return
  134. */
  135. @RequestMapping(value = "/financeExamine",method = RequestMethod.POST)
  136. public Result financeExamine(Integer id,Integer examine,String reason){
  137. Result res = new Result();
  138. if(id==null){
  139. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","ID"));
  140. return res;
  141. }
  142. //examine 2通过 3拒绝
  143. if (examine==3&&StringUtils.isBlank(reason)) {
  144. res.getError().add(buildError("","拒绝必须填写原因。"));
  145. return res;
  146. }
  147. res.data(orderInvoiceService.updatefinanceExamine( id, examine, reason));
  148. return res;
  149. }
  150. /**
  151. * 特批审核
  152. * @return
  153. */
  154. @RequestMapping(value = "/approvalExamine",method = RequestMethod.POST)
  155. public Result approvalExamine(Integer id,Integer examine,String reason){
  156. Result res = new Result();
  157. if(id==null){
  158. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","ID"));
  159. return res;
  160. }
  161. //examine 2通过 3拒绝
  162. if (examine==3&&StringUtils.isBlank(reason)) {
  163. res.getError().add(buildError("","拒绝必须填写原因。"));
  164. return res;
  165. }
  166. res.data(orderInvoiceService.updateapprovalExamine( id, examine, reason));
  167. return res;
  168. }
  169. /**
  170. * 订单开票列表
  171. * @return
  172. */
  173. @RequestMapping(value = "/salesmanOrderInvoiceList",method = RequestMethod.GET)
  174. public Result salesmanOrderInvoiceList(String orderNo,Integer pageNo,Integer pageSize){
  175. Result res = new Result();
  176. if(StringUtils.isBlank(orderNo)){
  177. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","订单编号"));
  178. return res;
  179. }
  180. res.data(orderInvoiceService.salesmanOrderInvoiceList( orderNo, pageNo,pageSize));
  181. return res;
  182. }
  183. /** 开票文件上传 **/
  184. @RequestMapping(value = "/uploadOrderInvoiceFile", method = RequestMethod.POST)
  185. public Result uploadOrderInvoiceFile(HttpServletRequest req,String sign){
  186. Result res = new Result();
  187. //order_invoice_file
  188. res.setData(handleFile(res, "/order_invoice_file/", false, req, sign));
  189. return res;
  190. }
  191. @RequestMapping(value = "/invoice/log",method = RequestMethod.GET)
  192. public Result InvoiceLog(Integer id){
  193. Result res = new Result();
  194. res .data(orderInvoiceService.InvoiceLog(id));
  195. return res;
  196. }
  197. }