OrderChangeServiceImpl.java 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. package com.goafanti.order.service.impl;
  2. import java.math.BigDecimal;
  3. import java.util.List;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.stereotype.Service;
  6. import com.goafanti.common.dao.NewOrderChangeMapper;
  7. import com.goafanti.common.dao.OrderChangeLogMapper;
  8. import com.goafanti.common.dao.TOrderDunMapper;
  9. import com.goafanti.common.dao.TOrderNewMapper;
  10. import com.goafanti.common.dao.TOrderTaskMapper;
  11. import com.goafanti.common.model.OrderChangeLog;
  12. import com.goafanti.common.model.TOrderDun;
  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.shiro.token.TokenManager;
  17. import com.goafanti.order.bo.NewOrderChangeBo;
  18. import com.goafanti.order.bo.OrderChangeLogBo;
  19. import com.goafanti.order.bo.TOrderTaskBo;
  20. import com.goafanti.order.service.OrderChangeService;
  21. @Service
  22. public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper> implements OrderChangeService {
  23. @Autowired
  24. private NewOrderChangeMapper newOrderChangeMapper;
  25. @Autowired
  26. private OrderChangeLogMapper orderChangeLogMapper;
  27. @Autowired
  28. private TOrderNewMapper tOrderNewMapper;
  29. @Autowired
  30. private TOrderDunMapper tOrderDunMapper;
  31. @Autowired
  32. private TOrderTaskMapper tOrderTaskMapper;
  33. @Autowired
  34. private JDBCIdGenerator idGenerator;
  35. @Override
  36. public int addOrderChange(NewOrderChangeBo t) {
  37. TOrderNew ton=new TOrderNew();
  38. ton.setOrderNo(t.getOrderNo());
  39. ton.setDeleteSign(2);//将订单置为锁定
  40. t.setProcessState(2);//设置营销管理员来审核
  41. tOrderNewMapper.updateByPrimaryKeySelective(ton);
  42. newOrderChangeMapper.insertSelective(t);
  43. NewOrderChangeBo ncb=newOrderChangeMapper.selectByorderNo(t.getOrderNo());
  44. OrderChangeLog ocl=new OrderChangeLog();
  45. ocl.setAuditor(TokenManager.getAdminId());
  46. ocl.setOrderNo(t.getOrderNo());
  47. ocl.setRemarks("发起了订单变更");
  48. ocl.setChangeId(ncb.getId());
  49. ocl.setStatus(0);
  50. orderChangeLogMapper.insertSelective(ocl);
  51. return 1;
  52. }
  53. @Override
  54. public NewOrderChangeBo orderChangeDetails(String orderNo) {
  55. NewOrderChangeBo nb=newOrderChangeMapper.selectByorderNo(orderNo);
  56. return nb;
  57. }
  58. @Override
  59. public int pushOrderChangeAudit(String orderNo, String remarks, Integer status) {
  60. NewOrderChangeBo nb=newOrderChangeMapper.selectByorderNo(orderNo);
  61. //2通过 3驳回
  62. if (status==2) {
  63. //变更类型 0退单退款 1项目及金额变更 2仅项目变更 3仅金额变更 4重报 5赠送
  64. if(nb.getType()==0){
  65. if (nb.getChangeAmount().compareTo(new BigDecimal("0.2"))<0) {//小于则总裁通过,大于则董事长
  66. if(nb.getProcessState()==7) {changgeAdopt(nb);}//项目变更通过
  67. }else {
  68. if(nb.getProcessState()==8) {changgeAdopt(nb);}//项目变更通过
  69. }
  70. nb.setProcessState(nb.getProcessState()+1);
  71. }else {
  72. if(nb.getProcessState()==5) {changgeAdopt(nb);}//项目变更通过
  73. //流程状态 1营销员 2营销管理员 3技术员 4技术经理 5技术总监 5财务专员 6财务总监 7总裁 8董事长
  74. if (nb.getProcessState()==2)nb.setProcessState(7);
  75. if (nb.getProcessState()==7)nb.setProcessState(5);
  76. }
  77. }else {
  78. nb.setProcessState(1);
  79. }
  80. OrderChangeLog ocl=new OrderChangeLog();
  81. ocl.setAuditor(TokenManager.getAdminId());
  82. ocl.setOrderNo(orderNo);
  83. ocl.setRemarks(remarks);
  84. ocl.setChangeId(nb.getId());
  85. ocl.setStatus(status);
  86. orderChangeLogMapper.insertSelective(ocl);
  87. newOrderChangeMapper.updateByPrimaryKeySelective(nb);
  88. return 1;
  89. }
  90. private void changgeAdopt(NewOrderChangeBo nb) {
  91. TOrderNew t1=tOrderNewMapper.selectByPrimaryKey(nb.getOrderNo());
  92. List<TOrderDun> td1=tOrderDunMapper.selectByOrderNoDunSubject(nb.getOrderNo());
  93. List<TOrderTaskBo> tt1=tOrderTaskMapper.selectOrderTask(nb.getOrderNo());
  94. String newOrderNo=idGenerator.generateId().toString();
  95. t1.setOrderNo(newOrderNo);
  96. tOrderNewMapper.insertSelective(t1);
  97. for (TOrderTaskBo tOrderTaskBo : tt1) {
  98. tOrderTaskBo.setId(null);
  99. tOrderTaskBo.setOrderNo(newOrderNo);
  100. tOrderTaskMapper.insertSelective(tOrderTaskBo);
  101. }
  102. for (TOrderDun tOrderDun : td1) {
  103. tOrderDun.setId(null);
  104. tOrderDun.setOrderNo(newOrderNo);
  105. tOrderDunMapper.insertSelective(tOrderDun);
  106. }
  107. //将订单恢复正常
  108. TOrderNew orderNew =new TOrderNew();
  109. orderNew.setOrderNo(nb.getOrderNo());
  110. orderNew.setDeleteSign(4);//设置为变更中
  111. orderNew .setPrimaryOrder(newOrderNo);
  112. tOrderNewMapper.updateByPrimaryKeySelective(orderNew);
  113. }
  114. @Override
  115. public boolean checkOderNo(String orderNo) {
  116. int i=newOrderChangeMapper.checkOderNo(orderNo);
  117. if (i>0) {
  118. return true;
  119. }
  120. return false;
  121. }
  122. @Override
  123. public List<OrderChangeLogBo> selectOrderChangeLogList(String changeId) {
  124. return orderChangeLogMapper.selectOrderChangeLogList(changeId);
  125. }
  126. }