BillInvoiceController.java 12KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246
  1. package com.huiju.estateagents.property.controller;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.huiju.estateagents.base.BaseController;
  4. import com.huiju.estateagents.base.ResponseBean;
  5. import com.huiju.estateagents.center.taUser.entity.TaUser;
  6. import com.huiju.estateagents.property.common.UserElement;
  7. import com.huiju.estateagents.property.model.Bill;
  8. import com.huiju.estateagents.property.model.BillInvoice;
  9. import com.huiju.estateagents.property.service.IBillInvoiceService;
  10. import com.huiju.estateagents.property.service.IBillService;
  11. import io.swagger.annotations.Api;
  12. import io.swagger.annotations.ApiImplicitParam;
  13. import io.swagger.annotations.ApiImplicitParams;
  14. import io.swagger.annotations.ApiOperation;
  15. import org.apache.commons.lang3.StringUtils;
  16. import org.apache.poi.hssf.usermodel.HSSFWorkbook;
  17. import org.springframework.beans.factory.annotation.Autowired;
  18. import org.springframework.web.bind.annotation.*;
  19. import javax.servlet.http.HttpServletRequest;
  20. import javax.servlet.http.HttpServletResponse;
  21. import javax.servlet.http.HttpSession;
  22. import java.io.OutputStream;
  23. import java.util.List;
  24. /**
  25. * <p>
  26. * 缴费单 前端控制器
  27. * </p>
  28. *
  29. * @author weiximei
  30. * @since 2019-02-13
  31. */
  32. @RestController
  33. @RequestMapping("/api")
  34. @Api(value = "缴费单 API", description = "缴费单 API")
  35. public class BillInvoiceController extends BaseController {
  36. @Autowired
  37. private IBillInvoiceService iBillInvoiceService;
  38. @Autowired
  39. private IBillService iBillService;
  40. // @ApiOperation(value = "查询缴费单", notes = "查询缴费单")
  41. @ApiImplicitParams({
  42. @ApiImplicitParam(dataTypeClass = String.class, paramType = "body", name = "parameter", value = "billId: 缴费项目id," +
  43. "phase: 期,building: 栋,unit: 单元,roomNo: 户号,ownerName: 业主姓名," +
  44. "billStatus: 缴费状态,payName: 缴费人,pageSize: 一页多少行,pageNum: 第几页"),
  45. })
  46. @RequestMapping(value = "/admin/bill/invoice/list", method = RequestMethod.POST)
  47. public ResponseBean getBillList(HttpServletRequest request, @RequestBody String parameter) {
  48. ResponseBean responseBean = new ResponseBean();
  49. TaUser userElement = getTaUser(request);
  50. responseBean = iBillInvoiceService.getBillList(parameter, userElement);
  51. return responseBean;
  52. }
  53. @RequestMapping(value = "/admin/bill/invoice/collection", method = RequestMethod.POST)
  54. public ResponseBean collectionBillList(HttpServletRequest request, @RequestBody BillInvoice billInvoice) {
  55. ResponseBean responseBean = new ResponseBean();
  56. TaUser userElement = getTaUser(request);
  57. responseBean = iBillInvoiceService.collectionBillList(billInvoice, userElement);
  58. return responseBean;
  59. }
  60. // @ApiOperation(value = "修改缴费项 收费项名称,缴费项说明,截止时间", notes = "修改缴费项 收费项名称,缴费项说明,截止时间")
  61. @ApiImplicitParams({
  62. @ApiImplicitParam(dataTypeClass = String.class, paramType = "body", name = "parameter", value = "billName收费项名称,billExplain缴费项说明,endDate截止时间"),
  63. })
  64. @RequestMapping(value = "/admin/bill/invoice/updateBill", method = RequestMethod.PUT)
  65. public ResponseBean updateBill(HttpServletRequest request, @RequestBody Bill bill) {
  66. ResponseBean responseBean = new ResponseBean();
  67. TaUser userElement = getTaUser(request);
  68. responseBean = iBillService.updateBillNameAndBillExplainAndEndDate(userElement, bill);
  69. return responseBean;
  70. }
  71. // @ApiOperation(value = "根据 id集合 删除缴费单", notes = "根据 id集合 删除缴费单")
  72. @ApiImplicitParams({
  73. @ApiImplicitParam(dataTypeClass = String.class, paramType = "body", name = "ids", value = "id集合"),
  74. })
  75. @RequestMapping(value = "/admin/bill/invoice/delete", method = RequestMethod.POST)
  76. public ResponseBean delete(HttpServletRequest request, @RequestBody List<Integer> ids) {
  77. ResponseBean responseBean = new ResponseBean();
  78. TaUser userElement = getTaUser(request);
  79. responseBean = iBillInvoiceService.deleteBillInvoice(ids, userElement);
  80. return responseBean;
  81. }
  82. // @ApiOperation(value = "设置线下缴费", notes = "设置线下缴费")
  83. @ApiImplicitParams({
  84. @ApiImplicitParam(dataTypeClass = String.class, paramType = "body", name = "ids", value = "id集合"),
  85. })
  86. @RequestMapping(value = "/admin/bill/invoice/offlinePayment", method = RequestMethod.POST)
  87. public ResponseBean offlinePayment(HttpServletRequest request, @RequestBody List<Integer> ids) {
  88. ResponseBean responseBean = new ResponseBean();
  89. responseBean = iBillInvoiceService.offlinePayment(ids, getUserId(request).toString());
  90. return responseBean;
  91. }
  92. // @ApiOperation(value = "由前台批量添加收费单, 默认定为 作废", notes = "由前台批量添加收费单, 默认定为 作废")
  93. @ApiImplicitParams({
  94. @ApiImplicitParam(dataTypeClass = String.class, paramType = "body", name = "parameter", value = "billId缴费项编号,phase期/区," +
  95. "building栋,unit单元,roomNo户号,worthOf截止时间(催缴日期),billInvoiceExplain收费单说明,payPrice收费金额"),
  96. })
  97. @RequestMapping(value = "/admin/bill/invoice/addTempBillInvoice", method = RequestMethod.POST)
  98. public ResponseBean addTempBillInvoice(HttpServletRequest request, @RequestBody String parameter) {
  99. ResponseBean responseBean = new ResponseBean();
  100. TaUser userElement = getTaUser(request);
  101. responseBean = iBillInvoiceService.addTempBillInvoice(parameter, userElement);
  102. return responseBean;
  103. }
  104. // @ApiOperation(value = "由前台批量添加收费单, 进行统一的提交, 修改为有效", notes = "由前台批量添加收费单, 进行统一的提交, 修改为有效")
  105. @ApiImplicitParams({
  106. @ApiImplicitParam(dataTypeClass = String.class, paramType = "body", name = "ids", value = "id集合"),
  107. })
  108. @RequestMapping(value = "/admin/bill/invoice/updateBillInvoiceStatus", method = RequestMethod.POST)
  109. public ResponseBean updateBillInvoiceStatus(HttpServletRequest request, @RequestBody List<Integer> ids) {
  110. ResponseBean responseBean = new ResponseBean();
  111. TaUser userElement = getTaUser(request);
  112. responseBean = iBillInvoiceService.updateBillInvoiceStatus(ids, userElement);
  113. return responseBean;
  114. }
  115. // @ApiOperation(value = "查询前台批量添加的收费单, 状态是作废", notes = "查询前台批量添加的收费单, 状态是作废")
  116. @ApiImplicitParams({
  117. @ApiImplicitParam(dataTypeClass = String.class, paramType = "path", name = "billId", value = "缴费id"),
  118. })
  119. @RequestMapping(value = "/admin/bill/invoice/getTempBillInvoice/{billId}", method = RequestMethod.GET)
  120. public ResponseBean getTempBillInvoice(HttpServletRequest request, @PathVariable("billId") Integer billId) {
  121. ResponseBean responseBean = new ResponseBean();
  122. TaUser userElement = getTaUser(request);
  123. responseBean = iBillInvoiceService.getTempBillInvoice(billId, userElement);
  124. return responseBean;
  125. }
  126. // @ApiOperation(value = "根据id删除收费单, 只能删除作废的", notes = "根据id删除收费单, 只能删除作废的")
  127. @ApiImplicitParams({
  128. @ApiImplicitParam(dataTypeClass = String.class, paramType = "path", name = "billId", value = "缴费id"),
  129. })
  130. @RequestMapping(value = "/admin/bill/invoice/deleteTempBillInvoice/{billId}", method = RequestMethod.DELETE)
  131. public ResponseBean deleteTempBillInvoice(HttpServletRequest request, @PathVariable("billId") Integer billId) {
  132. ResponseBean responseBean = new ResponseBean();
  133. TaUser userElement = getTaUser(request);
  134. responseBean = iBillInvoiceService.deleteTempBillInvoice(billId, userElement);
  135. return responseBean;
  136. }
  137. // @ApiOperation(value = "根据缴费单id, 修改金额", notes = "根据缴费单id, 修改金额")
  138. @ApiImplicitParams({
  139. @ApiImplicitParam(dataTypeClass = String.class, paramType = "path", name = "billId", value = "缴费id"),
  140. @ApiImplicitParam(dataTypeClass = String.class, paramType = "body", name = "parameter", value = "payPrice金额"),
  141. })
  142. @RequestMapping(value = "/admin/bill/invoice/updateBillInvoiceIdPayPrice/{billId}", method = RequestMethod.POST)
  143. public ResponseBean updateBillInvoiceIdPayPrice(HttpServletRequest request, @PathVariable Integer billId, @RequestBody String parameter) {
  144. ResponseBean responseBean = new ResponseBean();
  145. TaUser userElement = getTaUser(request);
  146. Double payPrice = JSONObject.parseObject(parameter).getDouble("payPrice");
  147. responseBean = iBillInvoiceService.updateBillInvoiceIdPayPrice(billId, (int) (payPrice * 100 ), userElement);
  148. return responseBean;
  149. }
  150. // @ApiOperation(value = "根据缴费单id, 修改收费说明", notes = "根据缴费单id, 修改收费说明")
  151. @ApiImplicitParams({
  152. @ApiImplicitParam(dataTypeClass = String.class, paramType = "path", name = "billId", value = "缴费id"),
  153. @ApiImplicitParam(dataTypeClass = String.class, paramType = "body", name = "parameter", value = "billInvoiceExplain收费说明"),
  154. })
  155. @RequestMapping(value = "/admin/bill/invoice/updateBillInvoiceIdBillInvoiceExplain/{billId}", method = RequestMethod.POST)
  156. public ResponseBean updateBillInvoiceIdBillInvoiceExplain(HttpServletRequest request, @PathVariable Integer billId, @RequestBody String parameter) {
  157. ResponseBean responseBean = new ResponseBean();
  158. TaUser userElement = getTaUser(request);
  159. String billInvoiceExplain = JSONObject.parseObject(parameter).getString("billInvoiceExplain");
  160. if (StringUtils.isBlank(billInvoiceExplain)) {
  161. responseBean.addError("收费说明不能为空!");
  162. return responseBean;
  163. }
  164. BillInvoice billInvoice = iBillInvoiceService.getById(billId);
  165. billInvoice.setBillInvoiceExplain(billInvoiceExplain);
  166. boolean b = iBillInvoiceService.updateById(billInvoice);
  167. if (b) {
  168. responseBean.addSuccess("操作成功!");
  169. return responseBean;
  170. }
  171. responseBean.addError("操作失败!");
  172. return responseBean;
  173. }
  174. // @ApiOperation(value = "导出Excel", notes = "导出Excel")
  175. @ApiImplicitParams({
  176. @ApiImplicitParam(dataTypeClass = String.class, paramType = "path", name = "billId", value = "缴费id"),
  177. })
  178. @RequestMapping(value = "/admin/bill/invoice/exportExcel/{billId}", method = RequestMethod.GET)
  179. public void exportExcel(HttpServletResponse response, HttpServletRequest request, @PathVariable("billId") Integer billId) {
  180. ResponseBean responseBean = new ResponseBean();
  181. TaUser userElement = getTaUser(request);
  182. HSSFWorkbook workbook = (HSSFWorkbook) iBillInvoiceService.exportExcel(userElement, billId).getData();
  183. //响应到客户端
  184. try {
  185. response.setContentType("application/octet-stream");
  186. response.setCharacterEncoding("utf-8");
  187. response.setHeader("Content-disposition", "attachment;filename=缴费单.xlsx");
  188. OutputStream os = response.getOutputStream();
  189. workbook.write(os);
  190. os.flush();
  191. os.close();
  192. } catch (Exception e) {
  193. e.printStackTrace();
  194. }
  195. }
  196. // @ApiOperation(value = "根据缴费项id, 查询草稿", notes = "根据缴费项id, 查询草稿")
  197. @ApiImplicitParams({
  198. @ApiImplicitParam(dataTypeClass = String.class, paramType = "path", name = "billId", value = "billId缴费项id,pageNum当前页,pageSize一页多少行"),
  199. })
  200. @RequestMapping(value = "/admin/bill/invoice/getInvoiceInvalid", method = RequestMethod.POST)
  201. public ResponseBean getInvoiceInvalid(HttpServletRequest request, @RequestBody String parameter) {
  202. ResponseBean responseBean = new ResponseBean();
  203. TaUser userElement = getTaUser(request);
  204. responseBean = iBillInvoiceService.getInvoiceInvalid(userElement, parameter);
  205. return responseBean;
  206. }
  207. }