FundManagerOrderServiceImpl.java 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. package com.goafanti.order.service.impl;
  2. import java.math.BigDecimal;
  3. import java.util.HashMap;
  4. import java.util.Map;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.stereotype.Service;
  7. import com.goafanti.common.dao.AdminMapper;
  8. import com.goafanti.common.dao.TOrderBackMapper;
  9. import com.goafanti.common.dao.TOrderBillNewMapper;
  10. import com.goafanti.common.dao.TOrderNewMapper;
  11. import com.goafanti.common.model.TOrderBack;
  12. import com.goafanti.common.model.TOrderBillNew;
  13. import com.goafanti.common.model.TOrderNew;
  14. import com.goafanti.core.mybatis.BaseMybatisDao;
  15. import com.goafanti.core.mybatis.JDBCIdGenerator;
  16. import com.goafanti.core.mybatis.page.Pagination;
  17. import com.goafanti.core.shiro.token.TokenManager;
  18. import com.goafanti.order.bo.OrderListBo;
  19. import com.goafanti.order.service.FundManageOrderService;
  20. @Service
  21. public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper> implements FundManageOrderService {
  22. @Autowired
  23. private TOrderNewMapper tOrderNewMapper;
  24. @Autowired
  25. private AdminMapper adminMapper;
  26. @Autowired
  27. private TOrderBillNewMapper billNewMapper;
  28. @Autowired
  29. private TOrderBackMapper backMapper;
  30. @Autowired
  31. JDBCIdGenerator idGenerator;
  32. @SuppressWarnings("unchecked")
  33. @Override
  34. public Pagination<OrderListBo> allUnassignedOrder(OrderListBo order, Integer pageNo,
  35. Integer pageSize,Integer ob) {
  36. Map<String, Object> params = new HashMap<String, Object>();
  37. params.put("o", order);
  38. params.put("ob", ob);
  39. Pagination<OrderListBo> data = (Pagination<OrderListBo>)findPage("getAllUnassignedListOrder", "getAllUnassignedCountOrder", params, pageNo, pageSize);
  40. return data;
  41. }
  42. @Override
  43. public Integer distributionFinance(String orderNo, String financeId, Integer approval) {
  44. // 先判断订单id和财务专员是否存在或者能够使用
  45. TOrderNew onew = new TOrderNew();
  46. //判断是不是特批的数据
  47. if(approval == 0){
  48. onew.setLiquidationStatus(1);//看有没有付钱
  49. }else if(approval != 2){//特批未通过
  50. return -1;
  51. }
  52. onew.setOrderNo(orderNo);
  53. onew.setDeleteSign(0);//正常
  54. onew.setProcessStatus(2);//已派财务管理员
  55. onew.setApproval(approval);//特批状态
  56. onew.setOrderStatus(2);//营销管理员审核通过
  57. int idCount = tOrderNewMapper.getCountByIdAndStatus(onew);
  58. int fidCount = adminMapper.getCountById(financeId);
  59. Integer r = null;
  60. if(idCount == 1 && fidCount == 1){
  61. //修改订单流程状态
  62. TOrderNew record = new TOrderNew();
  63. record.setOrderNo(orderNo);
  64. record.setFinanceId(financeId);
  65. record.setProjectStatus(3);
  66. r = tOrderNewMapper.updateByPrimaryKeySelective(record);
  67. }else{
  68. //返回错误标志 提示订单编号或者财务专员选择错误
  69. r = -2;
  70. }
  71. return r;
  72. }
  73. @SuppressWarnings("unchecked")
  74. @Override
  75. public Pagination<OrderListBo> financeList(OrderListBo order,
  76. Integer pageNo, Integer pageSize) {
  77. Map<String, Object> params = new HashMap<String, Object>();
  78. params.put("o", order);
  79. Pagination<OrderListBo> data = (Pagination<OrderListBo>)findPage("financeList", "financeCount", params, pageNo, pageSize);
  80. return data;
  81. }
  82. @Override
  83. public Integer reject(TOrderBack back) {
  84. // 是否已经收款
  85. BigDecimal bd = billNewMapper.getAmountByOid(back.getOrderNo());
  86. if(bd.compareTo(new BigDecimal(0.0)) == 1){
  87. return 0;//已经收款不能驳回
  88. }
  89. //否 可以处理驳回
  90. //修改订单状态
  91. TOrderNew orderNew = new TOrderNew();
  92. orderNew.setOrderNo(back.getOrderNo());
  93. orderNew.setOrderStatus(5);
  94. int c = tOrderNewMapper.updateByPrimaryKeySelective(orderNew);
  95. //新增驳回数据
  96. if(c>0){
  97. back.setBackStatus(0);
  98. System.out.println(TokenManager.getUserId());
  99. System.out.println(TokenManager.getAdminId());
  100. back.setInitiate(TokenManager.getUserId());//发起人
  101. back.setAccept(tOrderNewMapper.getSaleIdByOno(back.getOrderNo())); //查看该订单的负责人
  102. c = backMapper.insertSelective(back);
  103. }
  104. return c;
  105. }
  106. @Override
  107. public Integer addReceiptsFlow(TOrderBillNew billNew) {
  108. //判断有没有要加入的金额有没有超过总金额
  109. BigDecimal bd = billNewMapper.getAmountByOid(billNew.getOrderNo());
  110. //获得的单个订单金额数据(首付金额和总金额)
  111. TOrderNew o = tOrderNewMapper.selectByPrimaryKey(billNew.getOrderNo());
  112. bd.add(billNew.getTransactionAmount());
  113. int lstaus = 0;
  114. //如果订单流水总额大于总金额 return -1
  115. //如果订单流水等于于总金额 lstaus 2
  116. //如果订单流水小于总金额大于首付 lstaus 1
  117. //如果订单流水小于首付 lstaus 0
  118. if(bd.compareTo(o.getTotalAmount()) == 1){
  119. return -1;//超过不能添加
  120. }else if(bd.compareTo(o.getTotalAmount()) == 0){
  121. lstaus = 2;
  122. }else if(bd.compareTo(o.getTotalAmount()) == -1 && bd.compareTo(o.getFirstAmount()) == 1){
  123. lstaus = 1;
  124. }
  125. //否则新增流水信息
  126. billNew.setBillNo(idGenerator.generateId().toString());
  127. billNew.setCreater(TokenManager.getUserId());
  128. int result = billNewMapper.insertSelective(billNew);
  129. //修改订单结算金额和结算状态
  130. //如果已经首付并且流程状态是没有派给咨询师的修改流程状态为4
  131. TOrderNew orderNew = new TOrderNew();
  132. orderNew.setOrderNo(billNew.getOrderNo());
  133. orderNew.setSettlementAmount(bd);
  134. orderNew.setLiquidationStatus(lstaus);
  135. if(lstaus == 1 && o.getProcessStatus() == 3){
  136. orderNew.setProcessStatus(4);
  137. }
  138. if(result > 0){
  139. result = tOrderNewMapper.updateByPrimaryKeySelective(orderNew);
  140. }
  141. return result;
  142. }
  143. }