FundManagerOrderApiController.java 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314
  1. package com.goafanti.order.controller;
  2. import java.text.ParseException;
  3. import java.text.SimpleDateFormat;
  4. import javax.annotation.Resource;
  5. import org.springframework.web.bind.annotation.RequestMapping;
  6. import org.springframework.web.bind.annotation.RequestMethod;
  7. import org.springframework.web.bind.annotation.RestController;
  8. import com.goafanti.common.bo.Result;
  9. import com.goafanti.common.controller.CertifyApiController;
  10. import com.goafanti.common.model.TOrderBack;
  11. import com.goafanti.common.model.TOrderBillNew;
  12. import com.goafanti.common.model.TOrderNew;
  13. import com.goafanti.common.model.TOrderRefund;
  14. import com.goafanti.common.utils.StringUtils;
  15. import com.goafanti.core.shiro.token.TokenManager;
  16. import com.goafanti.order.bo.OrderListBo;
  17. import com.goafanti.order.bo.OrderRefundBo;
  18. import com.goafanti.order.service.FundManageOrderService;
  19. import com.goafanti.order.service.OrderBillService;
  20. import com.goafanti.order.service.OrderRefundService;
  21. @RestController
  22. @RequestMapping(value = "/api/admin/financial")
  23. public class FundManagerOrderApiController extends CertifyApiController {
  24. @Resource
  25. private FundManageOrderService fundManageOrderServiceImpl;
  26. @Resource
  27. private OrderBillService orderBillServiceImpl;
  28. @Resource
  29. private OrderRefundService orderRefundServiceImpl;
  30. /**
  31. * 财务管理员查看所有待分配的订单
  32. * @param order >> outsource 0否 1外包
  33. * @param pageNo
  34. * @param pageSize
  35. * @return
  36. */
  37. @RequestMapping(value="/allUnassignedOrder",method = RequestMethod.GET)
  38. public Result allUnassignedOrder(OrderListBo order, Integer pageNo, Integer pageSize){
  39. Result res = new Result();
  40. //order.setProcessStatus(2);//订单状态为2 改为前端传
  41. res.setData(fundManageOrderServiceImpl.allUnassignedOrder(order, pageNo, pageSize));
  42. return res;
  43. }
  44. /**
  45. * 财务管理员分派订单
  46. * @param financeId
  47. * @return
  48. */
  49. @RequestMapping(value="/distributionFinance", method = RequestMethod.POST)
  50. public Result distributionFinance(String orderNo, String financeId, Integer approval){
  51. Result res = new Result();
  52. Integer r = fundManageOrderServiceImpl.updateDistributionFinance(orderNo, financeId, approval);
  53. if(r == -1){
  54. res.getError().add(buildError("", "未通过特批不能分配"));
  55. return res;
  56. }else if( r == -2 ){
  57. res.getError().add(buildError("", "订单编号或者财务专员发生异常错误"));
  58. return res;
  59. }else{
  60. res.setData(r);
  61. }
  62. return res;
  63. }
  64. /**
  65. * 财务专员查看分配给自己的订单
  66. * @param order >> outsource 0否 1外包
  67. * @param pageNo
  68. * @param pageSize
  69. * @return
  70. */
  71. @RequestMapping(value="/financeList", method = RequestMethod.GET)
  72. public Result financeList(OrderListBo order, Integer pageNo, Integer pageSize ){
  73. Result res = new Result();
  74. order.setOrderStatus(2);//营销管理员审核通过
  75. res.setData(fundManageOrderServiceImpl.financeList(order, pageNo, pageSize));
  76. return res;
  77. }
  78. /**
  79. * 财务专员驳回
  80. * @param orderBack
  81. * @return
  82. */
  83. @RequestMapping(value="/reject", method = RequestMethod.POST)
  84. public Result reject(TOrderBack orderBack){
  85. Result res = new Result();
  86. if(null != orderBack.getReason() && orderBack.getReason().length() > 256){
  87. res.getError().add(buildError("", "驳回原因长度不能大于256"));
  88. return res;
  89. }
  90. Integer i = fundManageOrderServiceImpl.updateReject(orderBack);
  91. if(i>0){
  92. res.setData("驳回处理成功!");
  93. }else{
  94. res.getError().add(buildError("", "已经交款不能驳回"));
  95. }
  96. return res;
  97. }
  98. /**
  99. * 财务收款
  100. * 财务专员新增流水记录并流转订单状态
  101. * @param billNew
  102. * @return
  103. */
  104. @RequestMapping(value="/addReceiptsFlow", method = RequestMethod.POST)
  105. public Result addReceiptsFlow(TOrderBillNew billNew,String contractNo){
  106. Result res = new Result();
  107. if(null != billNew.getRemarks() && billNew.getRemarks().length() > 255){
  108. res.getError().add(buildError("", "备注长度不能大于255"));
  109. return res;
  110. }
  111. if (StringUtils.isBlank(contractNo)) {
  112. res.getError().add(buildError("", "合同编号不能为空!"));
  113. return res;
  114. } else if (contractNo.length() > 32) {
  115. res.getError().add(buildError("", "合同编号长度不能大于32!"));
  116. return res;
  117. }
  118. //流水时间处理
  119. //if(StringUtils.isNotEmpty(billNew.getFinancialPayTimes())){
  120. try {
  121. billNew.setFinancialPayTime(new SimpleDateFormat("yyyy-MM-dd").parse(billNew.getFinancialPayTimes()));
  122. } catch (ParseException e) {
  123. e.printStackTrace();
  124. res.getError().add(buildError("", "财务流水时间有误!"));
  125. return res;
  126. }
  127. //}
  128. Integer i = fundManageOrderServiceImpl.addReceiptsFlow(billNew,contractNo);
  129. if(i>0){
  130. res.setData("新增收款记录成功!");
  131. }else if(i == -3){
  132. res.getError().add(buildError("", "订单变更锁定中"));
  133. }else if(i == -2){
  134. res.getError().add(buildError("", "订单编号错误!"));
  135. }else{
  136. res.getError().add(buildError("", "本次收款金额大于应收金额!"));
  137. }
  138. return res;
  139. }
  140. /**
  141. * 财务审核
  142. */
  143. @RequestMapping(value="/financeApproval", method = RequestMethod.POST)
  144. public Result financeApproval(String orderNo,String remarks) {
  145. Result res=new Result();
  146. if (StringUtils.isBlank(orderNo)) {
  147. res.getError().add(buildError("","订单必须指定。"));
  148. }
  149. res.data(fundManageOrderServiceImpl.updateFinanceApproval(orderNo,remarks));
  150. return res;
  151. }
  152. /**
  153. * 财务专员查看自己要处理的退单数据
  154. * @param refund
  155. * @param pageNo
  156. * @param pageSize
  157. * @return
  158. */
  159. @RequestMapping(value="/getRefundList", method = RequestMethod.GET)
  160. public Result getRefundList(OrderRefundBo refund, Integer pageNo, Integer pageSize){
  161. Result res = new Result();
  162. refund.setAccept(TokenManager.getAdminId());
  163. if(null != refund.getRefundStatus()){
  164. refund.setRefundStatus(refund.getRefundStatus() + 1);
  165. }
  166. res.setData(orderRefundServiceImpl.getRefundList(refund, pageNo, pageSize));
  167. return res;
  168. }
  169. /**
  170. * 财务专员审核退款
  171. * @param refund
  172. * @return
  173. */
  174. @RequestMapping(value="/changeRefund", method = RequestMethod.POST)
  175. public Result changeRefund(TOrderRefund refund){
  176. Result res = new Result();
  177. if(null != refund.getResult() && refund.getResult().length() > 256){
  178. res.getError().add(buildError("", "审批意见长度不能大于256"));
  179. return res;
  180. }
  181. int r = fundManageOrderServiceImpl.updateChangeRefund(refund);
  182. if(r>0){
  183. res.setData("审核退款成功!");
  184. }else{
  185. res.getError().add(buildError("", "状态异常不能审批!"));
  186. }
  187. return res;
  188. }
  189. /**
  190. * 财务专员新增退款流水
  191. * @param orderRefund
  192. * @return
  193. */
  194. @RequestMapping(value="/addRefundFlow", method = RequestMethod.POST)
  195. public Result addRefundFlow(TOrderBillNew orderRefund){
  196. Result res = new Result();
  197. if(null != orderRefund.getRemarks() && orderRefund.getRemarks().length() > 255){
  198. res.getError().add(buildError("", "备注长度不能大于255"));
  199. return res;
  200. }
  201. //if(StringUtils.isNotEmpty(orderRefund.getFinancialPayTimes())){
  202. try {
  203. orderRefund.setFinancialPayTime(new SimpleDateFormat("yyyy-MM-dd").parse(orderRefund.getFinancialPayTimes()));
  204. } catch (ParseException e) {
  205. e.printStackTrace();
  206. res.getError().add(buildError("", "财务流水时间有误!"));
  207. return res;
  208. }
  209. //}
  210. int r = fundManageOrderServiceImpl.addRefundFlow(orderRefund);
  211. if(r>0){
  212. res.setData("退款记录新增成功!");
  213. }else{
  214. res.getError().add(buildError("", "退款金额不能大于已交款金额"));
  215. }
  216. return res;
  217. }
  218. /**
  219. * 根据id查看订单流水数据
  220. * @return
  221. */
  222. @RequestMapping(value="/selectOneRefundFlow", method = RequestMethod.GET)
  223. public Result selectOneRefundFlow(String billNo){
  224. Result res = new Result();
  225. res.setData(fundManageOrderServiceImpl.selectOneRefundFlow(billNo));
  226. return res;
  227. }
  228. /**
  229. * 根据订单编号查看该订单相关的所有流水
  230. * @param orderNo
  231. * @return
  232. */
  233. @RequestMapping(value="/selectOneOrderAllRefundFlow", method = RequestMethod.GET)
  234. public Result selectOneOrderAllRefundFlow(String orderNo){
  235. Result res = new Result();
  236. res.setData(fundManageOrderServiceImpl.selectOneOrderAllRefundFlow(orderNo));
  237. return res;
  238. }
  239. /**
  240. * 财务专员查看自己的流水
  241. * @param billNew
  242. * @param pageNo
  243. * @param pageSize
  244. * @return
  245. */
  246. @RequestMapping(value="/myBillList", method = RequestMethod.GET)
  247. public Result myBillList(TOrderBillNew billNew ,Integer pageNo, Integer pageSize){
  248. Result res = new Result();
  249. res.setData(orderBillServiceImpl.myBillList(billNew, pageNo, pageSize));
  250. return res;
  251. }
  252. /**
  253. * 删除流水
  254. *
  255. */
  256. @RequestMapping(value="/deleteMyBill", method = RequestMethod.GET)
  257. public Result deleteMyBill(String billNo){
  258. Result res = new Result();
  259. res.setData(orderBillServiceImpl.deleteMyBill(billNo));
  260. return res;
  261. }
  262. /**
  263. * 查看部门的流水(并入查看自己)
  264. * @param billNew
  265. * @param pageNo
  266. * @param pageSize
  267. * @return
  268. */
  269. @RequestMapping(value="/deptBillList", method = RequestMethod.GET)
  270. public Result deptBillList(TOrderBillNew billNew, Integer pageNo, Integer pageSize){
  271. Result res = new Result();
  272. res.setData(orderBillServiceImpl.myBillList(billNew,pageNo, pageSize));
  273. return res;
  274. }
  275. /**
  276. * 修改合同编号
  277. * @param orderNew
  278. * @return
  279. */
  280. @RequestMapping(value="/updateContractNo", method = RequestMethod.POST)
  281. public Result updateContractNo(TOrderNew orderNew){
  282. Result res = new Result();
  283. if(StringUtils.isBlank(orderNew.getContractNo())){
  284. res.getError().add(buildError("", "合同编号不能为空!"));
  285. return res;
  286. } else if(orderNew.getContractNo().length()>32){
  287. res.getError().add(buildError("", "合同编号长度不能大于32!"));
  288. return res;
  289. }
  290. res.setData(fundManageOrderServiceImpl.updateContractNo(orderNew));
  291. return res;
  292. }
  293. }