SeleOrdeCompUtil.java 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. package com.iamberry.rst.utils;
  2. import com.iamberry.rst.core.cm.SalesOrder;
  3. import com.iamberry.rst.core.page.PagedResult;
  4. import com.iamberry.rst.faces.cm.SalesOrderService;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.stereotype.Component;
  7. import java.util.ArrayList;
  8. import java.util.LinkedList;
  9. /**
  10. * 查询订单物流公司
  11. */
  12. @Component
  13. public class SeleOrdeCompUtil {
  14. @Autowired
  15. private SalesOrderService salesOrderService;
  16. @Autowired
  17. private KuaiDi100 kuaiDi100;
  18. // 仓库最大存储量
  19. private final int MAX_SIZE = 20;
  20. private static int NODE_NUM = 1710;
  21. // 仓库存储的载体
  22. private LinkedList<SalesOrder> list = new LinkedList<SalesOrder>();
  23. // 生产产品
  24. public void produce(String producer)
  25. {
  26. synchronized (list)
  27. {
  28. // 如果仓库已满
  29. while (list.size() == MAX_SIZE)
  30. {
  31. try
  32. {
  33. // 由于条件不满足,生产阻塞
  34. list.wait();
  35. }
  36. catch (InterruptedException e)
  37. {
  38. e.printStackTrace();
  39. }
  40. }
  41. // 生产产品
  42. SalesOrder salesOrder = new SalesOrder();
  43. PagedResult<SalesOrder> salesOrderPagedResult = salesOrderService.listSalesOrderPage(NODE_NUM, 1, salesOrder, false);
  44. ArrayList<SalesOrder> array = (ArrayList<SalesOrder>) salesOrderPagedResult.getDataList();
  45. if(array==null || array.size() <1){
  46. return;
  47. }
  48. System.out.println("======shengchan"+producer+";订单号"+array.get(0).getSalesId()+"交易号"+array.get(0).getSalesDealCode());
  49. System.out.println("=====查询订单数/节点"+NODE_NUM);
  50. NODE_NUM++;
  51. list.add(array.get(0));
  52. list.notifyAll();
  53. }
  54. }
  55. // 消费产品
  56. public void consume(String consumer)
  57. {
  58. synchronized (list)
  59. {
  60. //如果仓库存储量不足
  61. while (list.size()==0)
  62. {
  63. try
  64. {
  65. // 由于条件不满足,消费阻塞
  66. list.wait();
  67. }
  68. catch (InterruptedException e)
  69. {
  70. e.printStackTrace();
  71. }
  72. }
  73. SalesOrder so = list.get(0);
  74. System.out.println("======xiaofei"+consumer+"当前执行到订单编号:"+so.getSalesId()+"交易号:"+so.getSalesDealCode());
  75. String salesPostNum = so.getSalesPostNum(); //salesPostNum
  76. if(salesPostNum == null || "".equals(salesPostNum)){
  77. System.out.println("----------该订单无物流编号,订单编号:" + so.getSalesId()+"----------");
  78. }else{
  79. String company = "";
  80. if("00000000".equals(salesPostNum)){
  81. company = "02";
  82. }else if("0".equals(salesPostNum)){
  83. company = "02";
  84. }else if(salesPostNum.length() == 1){
  85. company = "02";
  86. }else{
  87. String beginTwo = salesPostNum.substring(0,2);
  88. if("71".equals(beginTwo)){
  89. company = "yto";
  90. }else if("33".equals(beginTwo)){
  91. company = "STO";
  92. }else if("95".equals(beginTwo)){
  93. company = "STO";
  94. }else if("97".equals(beginTwo)){
  95. company = "YZBK";
  96. }else if("11".equals(beginTwo)){
  97. company = "EMS";
  98. }else if("22".equals(beginTwo)){
  99. company = "STO";
  100. }else if("21".equals(beginTwo)){
  101. company = "01";
  102. }else if("25".equals(beginTwo)){
  103. company = "SF";
  104. }else if("83".equals(beginTwo)){
  105. company = "DBL";
  106. }else if("26".equals(beginTwo)){
  107. company = "SF";
  108. }else{
  109. company = kuaiDi100.selectCourierCompany(salesPostNum);
  110. }
  111. }
  112. if(company != null && !"".equals(company)){
  113. so.setSalesPostFirm(company);
  114. Integer flag = salesOrderService.distributionExpress(so);
  115. if(flag < 1){
  116. System.out.println("*********修改订单物流方式出错,物流编号:"+ salesPostNum +";订单编号:" + so.getSalesId()+"***********");
  117. }
  118. }else{
  119. System.out.println("*********物流公司为空,物流编号:"+ salesPostNum +";订单编号:" + so.getSalesId()+"***********");
  120. }
  121. }
  122. list.remove(0);
  123. list.notifyAll();
  124. }
  125. }
  126. public LinkedList<SalesOrder> getList()
  127. {
  128. return list;
  129. }
  130. public void setList(LinkedList<SalesOrder> list)
  131. {
  132. this.list = list;
  133. }
  134. public int getMAX_SIZE()
  135. {
  136. return MAX_SIZE;
  137. }
  138. }