InvInvoiceInfoController.java 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. package com.ydtech.modules.inv.controller;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.baomidou.mybatisplus.core.metadata.IPage;
  4. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  5. import com.ydtech.aop.exception.DescribeException;
  6. import com.ydtech.constants.enums.dict.ApprovalStatusEnum;
  7. import com.ydtech.core.page.HttpResult;
  8. import com.ydtech.core.page.PageRequest;
  9. import com.ydtech.core.page.PageResult;
  10. import com.ydtech.modules.base.controller.BaseController;
  11. import com.ydtech.modules.inv.model.InvInvoiceInfo;
  12. import com.ydtech.modules.inv.model.InvInvoiceInfoInOut;
  13. import com.ydtech.modules.inv.model.dto.InvInvoiceInfoDto;
  14. import com.ydtech.modules.inv.model.vo.req.InvInvoiceInfoReqVO;
  15. import com.ydtech.modules.inv.service.InvInvoiceInfoInOutService;
  16. import com.ydtech.modules.inv.service.InvInvoiceInfoService;
  17. import com.ydtech.utils.StringUtils;
  18. import io.swagger.annotations.*;
  19. import org.springframework.beans.factory.annotation.Autowired;
  20. import org.springframework.web.bind.annotation.*;
  21. import org.springframework.web.multipart.MultipartFile;
  22. import javax.servlet.http.HttpServletRequest;
  23. import javax.servlet.http.HttpServletResponse;
  24. import java.util.List;
  25. /**
  26. * 发票信息管理
  27. *
  28. * @author: lig
  29. * @date: 2023-05-15
  30. */
  31. @Api(tags = "发票信息管理")
  32. @RestController
  33. @RequestMapping("api/inv/invoiceInfo")
  34. public class InvInvoiceInfoController extends BaseController {
  35. @Autowired
  36. private InvInvoiceInfoService invInvoiceInfoService;
  37. @Autowired
  38. private InvInvoiceInfoInOutService invInvoiceInfoInOutService;
  39. @ApiOperation(value = "保存(外部合同开票)")
  40. @PostMapping(value = "/saveTypeOne")
  41. public HttpResult saveTypeOne(@RequestBody InvInvoiceInfoDto dto) {
  42. dto.getInvoiceInfo().setType(1);
  43. return HttpResult.ok(invInvoiceInfoService.saveInvoice(dto));
  44. }
  45. @ApiOperation(value = "保存(手续费开票)")
  46. @PostMapping(value = "/saveTypeTwo")
  47. public HttpResult saveTypeTwo(@RequestBody InvInvoiceInfoDto dto) {
  48. dto.getInvoiceInfo().setType(2);
  49. return HttpResult.ok(invInvoiceInfoService.saveInvoice(dto));
  50. }
  51. @ApiOperation(value = "保存")
  52. @PostMapping(value = "/save")
  53. public HttpResult save(@RequestBody InvInvoiceInfoDto dto) {
  54. return HttpResult.ok(invInvoiceInfoService.saveInvoice(dto));
  55. }
  56. /**
  57. * 分页查询
  58. *
  59. * @param reqVo
  60. * @return
  61. */
  62. @ApiOperation(value = "分页查询")
  63. @PostMapping(value = "/queryPage")
  64. public HttpResult queryPage(@RequestBody InvInvoiceInfoReqVO reqVo){
  65. LambdaQueryWrapper<InvInvoiceInfo> lqw = new LambdaQueryWrapper();
  66. lqw.eq(StringUtils.isNotEmpty(reqVo.getApprovalStatus()),InvInvoiceInfo::getApprovalStatus,reqVo.getApprovalStatus());
  67. lqw.eq(StringUtils.isNotEmpty(reqVo.getInvoiceClerk()),InvInvoiceInfo::getInvoiceClerk,reqVo.getInvoiceClerk());
  68. lqw.eq(StringUtils.isNotEmpty(reqVo.getInvCompanyId()),InvInvoiceInfo::getInvCompanyId,reqVo.getInvCompanyId());
  69. Page p = PageRequest.buildPageRequestByVo(reqVo);
  70. IPage<InvInvoiceInfo> pResult = invInvoiceInfoService.page(p, lqw);
  71. //传入查询条件
  72. PageResult pageResult = PageResult.buildPageResult(pResult);
  73. return HttpResult.ok(pageResult);
  74. }
  75. /**
  76. * 审批通过
  77. *
  78. * @param
  79. * @return
  80. */
  81. // @PreAuthorize("hasAuthority('inv:invoice:info:approval:pass')")
  82. @ApiOperation(value = "审批通过")
  83. @PostMapping(value = "/approvalPass")
  84. public HttpResult approvalPass(@RequestParam("ids") List<String> ids){
  85. return HttpResult.ok(invInvoiceInfoService.approval(ApprovalStatusEnum.AS1,ids));
  86. }
  87. /**
  88. * 审批退回
  89. *
  90. * @param
  91. * @return
  92. */
  93. // @PreAuthorize("hasAuthority('inv:invoice:info:approval:back')")
  94. @ApiOperation(value = "审批退回")
  95. @PostMapping(value = "/approvalBack")
  96. public HttpResult approvalBack(@RequestParam("ids") List<String> ids){
  97. return HttpResult.ok(invInvoiceInfoService.approval(ApprovalStatusEnum.AS3,ids));
  98. }
  99. // /**
  100. // * 批量删除
  101. // *
  102. // * @param
  103. // * @return
  104. // */
  105. // @ApiOperation(value = "批量删除")
  106. // @PostMapping(value = "/batchDelete")
  107. // public HttpResult batchDelete(List<String> ids){
  108. //
  109. // return HttpResult.ok(invInvoiceInfoService.removeBatchByIds(ids));
  110. // }
  111. @PostMapping("/import")
  112. @ApiOperation(value = "excel导入数据")
  113. public HttpResult importData(@ApiParam(name = "file", value = "excel文件") MultipartFile file, HttpServletRequest request) {
  114. HttpResult result = null;
  115. return invInvoiceInfoService.importData(file);
  116. }
  117. // @PostMapping("/export")
  118. @GetMapping("/export")
  119. @ApiOperation(value = "excel导出数据")
  120. public void exportData(@RequestParam("ids") List<String> ids, HttpServletRequest request, HttpServletResponse response) {
  121. try {
  122. invInvoiceInfoService.exportData(ids,request,response);
  123. } catch (Exception e) {
  124. e.printStackTrace();
  125. throw new DescribeException("信息导出失败!" + e.getMessage());
  126. }
  127. }
  128. @GetMapping(value = "/details/{id}")
  129. @ApiOperation(value = "获取发票详情(包含进出帐)")
  130. @ApiImplicitParams({
  131. @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "String")
  132. })
  133. public HttpResult<InvInvoiceInfoDto> details(@PathVariable String id) {
  134. InvInvoiceInfo invInfo = invInvoiceInfoService.getById(id);
  135. LambdaQueryWrapper<InvInvoiceInfoInOut> lqw = new LambdaQueryWrapper<>();
  136. lqw.eq(InvInvoiceInfoInOut::getId,invInfo.getId());
  137. List<InvInvoiceInfoInOut> inOutList = invInvoiceInfoInOutService.list(lqw);
  138. InvInvoiceInfoDto iiiDto = new InvInvoiceInfoDto();
  139. iiiDto.setInvoiceInfo(invInfo);
  140. iiiDto.setInvoiceInfoInOutList(inOutList);
  141. return HttpResult.ok(iiiDto);
  142. }
  143. }