ExpenseAccountController.java 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237
  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. //不是第三方付款和抵扣的时候必须选择报销帐号
  59. if (in.getType()!=3||in.getType()!=5){
  60. if (in.getEaaid()==null){
  61. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"报销帐号"));
  62. }
  63. }
  64. res.setData(expenseAccountService.update(in));
  65. }
  66. return res;
  67. }
  68. /**
  69. * 报销列表
  70. * @param in
  71. * @return
  72. */
  73. @RequestMapping(value = "/pageList",method = RequestMethod.GET)
  74. public Result pageList(InputPageListBo in ){
  75. Result res =new Result();
  76. res.setData(expenseAccountService.pageList(in));
  77. return res;
  78. }
  79. /**
  80. * 判断当前是否存在草稿
  81. * @param in
  82. * @return
  83. */
  84. @RequestMapping(value = "/selectByPrid",method = RequestMethod.GET)
  85. public Result selectByPrid(InputExpenseAccount in ){
  86. Result res =new Result();
  87. res.setData(expenseAccountService.selectByPrid(in));
  88. return res;
  89. }
  90. /**
  91. * 报销列表
  92. * @param id
  93. * @return
  94. */
  95. @RequestMapping(value = "/selectById",method = RequestMethod.GET)
  96. public Result selectById(Integer id ){
  97. Result res =new Result();
  98. res.setData(expenseAccountService.selectById(id));
  99. return res;
  100. }
  101. /**
  102. * 新增报销详情
  103. * @param in
  104. * @return
  105. */
  106. @RequestMapping(value = "/details/add",method = RequestMethod.POST)
  107. public Result addDetails(@Validated InputExpenseAccountDetails in , BindingResult bindingResult){
  108. Result res =new Result();
  109. if (bindingResult.hasErrors()) {
  110. String param=bindingResult.getFieldError().getField();
  111. System.out.println(param);
  112. res.getError().add(buildError(ParamUtils.getParamMsg(in,param),ParamUtils.getParamName(in,param)));
  113. return res;
  114. }
  115. res.setData(expenseAccountService.addDetails(in));
  116. return res;
  117. }
  118. /**
  119. * 删除报销详情
  120. * @param id
  121. * @return
  122. */
  123. @RequestMapping(value = "/details/delete",method = RequestMethod.GET)
  124. public Result deleteDetails(Integer id){
  125. Result res =new Result();
  126. res.setData(expenseAccountService.deleteDetails(id));
  127. return res;
  128. }
  129. /**
  130. * 删除报销详情
  131. * @param eaid
  132. * @return
  133. */
  134. @RequestMapping(value = "/details/list",method = RequestMethod.GET)
  135. public Result detailsList(Integer eaid){
  136. Result res =new Result();
  137. res.setData(expenseAccountService.detailsList(eaid));
  138. return res;
  139. }
  140. @RequestMapping(value = "/log/list",method = RequestMethod.GET)
  141. public Result logList(Integer eaid){
  142. Result res =new Result();
  143. if (eaid==null){
  144. res.getError().add(buildErrorMessageParams(ErrorConstants.PARAM_EMPTY_ERROR,"报销编号"));
  145. return res;
  146. }
  147. res.setData(expenseAccountService.logList(eaid));
  148. return res;
  149. }
  150. /**
  151. * 报销审核
  152. * @param in
  153. * @param bindingResult
  154. * @return
  155. */
  156. @RequestMapping(value = "/examine",method = RequestMethod.POST)
  157. public Result examine(InputExpenseAccount in,BindingResult bindingResult){
  158. Result res =new Result();
  159. if (bindingResult.hasErrors()) {
  160. String param=bindingResult.getFieldError().getField();
  161. res.getError().add(buildError(ParamUtils.getParamMsg(in,param),ParamUtils.getParamName(in,param)));
  162. return res;
  163. }
  164. res.setData(expenseAccountService.updateExamine(in));
  165. return res;
  166. }
  167. /**
  168. * 获取借支列表
  169. * @return
  170. */
  171. @RequestMapping(value = "/selectDebitOrder",method = RequestMethod.GET)
  172. public Result selectDebitOrder(String depId,Integer id){
  173. Result res=new Result();
  174. if (depId==null){
  175. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"抵扣部门"));
  176. return res;
  177. }
  178. res.setData(expenseAccountService.selectDebitOrder(depId,id));
  179. return res;
  180. }
  181. /**
  182. * 获取后台统计数据
  183. * @return
  184. */
  185. @RequestMapping(value = "/statistics",method = RequestMethod.GET)
  186. public Result statistics(String name,String depId,String startTime,String endTime){
  187. Result res=new Result();
  188. res.setData(expenseAccountService.statistics( name, depId, startTime, endTime));
  189. return res;
  190. }
  191. @RequestMapping(value = "/statistics/evict",method = RequestMethod.GET)
  192. public Result statisticsEvict(String name,String depId,String startTime,String endTime){
  193. Result res=new Result();
  194. expenseAccountService.statisticsEvict( name, depId, startTime, endTime);
  195. return res.data(1);
  196. }
  197. /**
  198. * 获取后台统计数据
  199. * @return
  200. */
  201. @RequestMapping(value = "/statistics/export",method = RequestMethod.GET)
  202. public Result statisticsExport(String name,String depId,String startTime,String endTime){
  203. List<OutExpenseAccountStatistics> list = expenseAccountService.statistics( name, depId, startTime, endTime);
  204. NewExcelUtil<OutExpenseAccountStatistics> newExcelUtil=new NewExcelUtil<>(OutExpenseAccountStatistics.class);
  205. return newExcelUtil.exportExcel(list,"报销统计",uploadPath);
  206. }
  207. }