ExpenseAccountController.java 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  1. package com.goafanti.expenseAccount.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.utils.ParamUtils;
  6. import com.goafanti.common.utils.excel.NewExcelUtil;
  7. import com.goafanti.core.shiro.token.TokenManager;
  8. import com.goafanti.expenseAccount.bo.InputExpenseAccount;
  9. import com.goafanti.expenseAccount.bo.InputExpenseAccountDetails;
  10. import com.goafanti.expenseAccount.bo.InputPageListBo;
  11. import com.goafanti.expenseAccount.bo.OutExpenseAccountStatistics;
  12. import com.goafanti.expenseAccount.service.ExpenseAccountService;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.beans.factory.annotation.Value;
  15. import org.springframework.validation.BindingResult;
  16. import org.springframework.validation.annotation.Validated;
  17. import org.springframework.web.bind.annotation.RequestMapping;
  18. import org.springframework.web.bind.annotation.RequestMethod;
  19. import org.springframework.web.bind.annotation.RestController;
  20. import java.util.List;
  21. @RestController
  22. @RequestMapping("/api/admin/expenseAccount")
  23. public class ExpenseAccountController extends CertifyApiController {
  24. @Autowired
  25. private ExpenseAccountService expenseAccountService;
  26. @Value(value = "${upload.path}")
  27. private final String uploadPath = null;
  28. /**
  29. * 新增私有报销帐号
  30. * @param in
  31. * @return
  32. */
  33. @RequestMapping(value = "/add",method = RequestMethod.POST)
  34. public Result add(@Validated InputExpenseAccount in , BindingResult bindingResult){
  35. Result res =new Result();
  36. if (bindingResult.hasErrors()) {
  37. String param=bindingResult.getFieldError().getField();
  38. res.getError().add(buildError(ParamUtils.getParamMsg(in,param),ParamUtils.getParamName(in,param)));
  39. return res;
  40. }
  41. in.setAid(TokenManager.getAdminId());
  42. res.setData(expenseAccountService.add(in));
  43. return res;
  44. }
  45. /**
  46. * 新增私有报销帐号
  47. * @param in updateType=1时,作为修改类型。会删除所有子项
  48. * @return
  49. */
  50. @RequestMapping(value = "/update",method = RequestMethod.POST)
  51. public Result update( InputExpenseAccount in ){
  52. Result res =new Result();
  53. in.setAid(TokenManager.getAdminId());
  54. //只修改状态
  55. if (in.getUpdateType()==1){
  56. res.setData(expenseAccountService.updateType(in));
  57. }else {
  58. res.setData(expenseAccountService.update(in));
  59. }
  60. return res;
  61. }
  62. /**
  63. * 报销列表
  64. * @param in
  65. * @return
  66. */
  67. @RequestMapping(value = "/pageList",method = RequestMethod.GET)
  68. public Result pageList(InputPageListBo in ){
  69. Result res =new Result();
  70. res.setData(expenseAccountService.pageList(in));
  71. return res;
  72. }
  73. /**
  74. * 判断当前是否存在草稿
  75. * @param in
  76. * @return
  77. */
  78. @RequestMapping(value = "/selectByPrid",method = RequestMethod.GET)
  79. public Result selectByPrid(InputExpenseAccount in ){
  80. Result res =new Result();
  81. res.setData(expenseAccountService.selectByPrid(in));
  82. return res;
  83. }
  84. /**
  85. * 报销列表
  86. * @param id
  87. * @return
  88. */
  89. @RequestMapping(value = "/selectById",method = RequestMethod.GET)
  90. public Result selectById(Integer id ){
  91. Result res =new Result();
  92. res.setData(expenseAccountService.selectById(id));
  93. return res;
  94. }
  95. /**
  96. * 新增报销详情
  97. * @param in
  98. * @return
  99. */
  100. @RequestMapping(value = "/details/add",method = RequestMethod.POST)
  101. public Result addDetails(@Validated InputExpenseAccountDetails in , BindingResult bindingResult){
  102. Result res =new Result();
  103. if (bindingResult.hasErrors()) {
  104. String param=bindingResult.getFieldError().getField();
  105. System.out.println(param);
  106. res.getError().add(buildError(ParamUtils.getParamMsg(in,param),ParamUtils.getParamName(in,param)));
  107. return res;
  108. }
  109. res.setData(expenseAccountService.addDetails(in));
  110. return res;
  111. }
  112. /**
  113. * 删除报销详情
  114. * @param id
  115. * @return
  116. */
  117. @RequestMapping(value = "/details/delete",method = RequestMethod.GET)
  118. public Result deleteDetails(Integer id){
  119. Result res =new Result();
  120. res.setData(expenseAccountService.deleteDetails(id));
  121. return res;
  122. }
  123. /**
  124. * 删除报销详情
  125. * @param eaid
  126. * @return
  127. */
  128. @RequestMapping(value = "/details/list",method = RequestMethod.GET)
  129. public Result detailsList(Integer eaid){
  130. Result res =new Result();
  131. res.setData(expenseAccountService.detailsList(eaid));
  132. return res;
  133. }
  134. @RequestMapping(value = "/log/list",method = RequestMethod.GET)
  135. public Result logList(Integer eaid){
  136. Result res =new Result();
  137. if (eaid==null){
  138. res.getError().add(buildErrorMessageParams(ErrorConstants.PARAM_EMPTY_ERROR,"报销编号"));
  139. return res;
  140. }
  141. res.setData(expenseAccountService.logList(eaid));
  142. return res;
  143. }
  144. /**
  145. * 报销审核
  146. * @param in
  147. * @param bindingResult
  148. * @return
  149. */
  150. @RequestMapping(value = "/examine",method = RequestMethod.POST)
  151. public Result examine(InputExpenseAccount in,BindingResult bindingResult){
  152. Result res =new Result();
  153. if (bindingResult.hasErrors()) {
  154. String param=bindingResult.getFieldError().getField();
  155. res.getError().add(buildError(ParamUtils.getParamMsg(in,param),ParamUtils.getParamName(in,param)));
  156. return res;
  157. }
  158. res.setData(expenseAccountService.updateExamine(in));
  159. return res;
  160. }
  161. /**
  162. * 获取借支列表
  163. * @return
  164. */
  165. @RequestMapping(value = "/selectDebitOrder",method = RequestMethod.GET)
  166. public Result selectDebitOrder(String depId){
  167. Result res=new Result();
  168. if (depId==null){
  169. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"抵扣部门"));
  170. return res;
  171. }
  172. res.setData(expenseAccountService.selectDebitOrder(depId));
  173. return res;
  174. }
  175. /**
  176. * 获取后台统计数据
  177. * @return
  178. */
  179. @RequestMapping(value = "/statistics",method = RequestMethod.GET)
  180. public Result statistics(String name,String depId,String startTime,String endTime){
  181. Result res=new Result();
  182. res.setData(expenseAccountService.statistics( name, depId, startTime, endTime));
  183. return res;
  184. }
  185. @RequestMapping(value = "/statistics/evict",method = RequestMethod.GET)
  186. public Result statisticsEvict(String name,String depId,String startTime,String endTime){
  187. Result res=new Result();
  188. expenseAccountService.statisticsEvict( name, depId, startTime, endTime);
  189. return res.data(1);
  190. }
  191. /**
  192. * 获取后台统计数据
  193. * @return
  194. */
  195. @RequestMapping(value = "/statistics/export",method = RequestMethod.GET)
  196. public Result statisticsExport(String name,String depId,String startTime,String endTime){
  197. List<OutExpenseAccountStatistics> list = expenseAccountService.statistics( name, depId, startTime, endTime);
  198. NewExcelUtil<OutExpenseAccountStatistics> newExcelUtil=new NewExcelUtil<>(OutExpenseAccountStatistics.class);
  199. return newExcelUtil.exportExcel(list,"报销统计",uploadPath);
  200. }
  201. }