123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 |
- package com.iamberry.rst.utils;
- import com.iamberry.rst.core.cm.SalesOrder;
- import com.iamberry.rst.core.page.PagedResult;
- import com.iamberry.rst.faces.cm.SalesOrderService;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Component;
- import java.util.ArrayList;
- import java.util.LinkedList;
- /**
- * 查询订单物流公司
- */
- @Component
- public class SeleOrdeCompUtil {
- @Autowired
- private SalesOrderService salesOrderService;
- @Autowired
- private KuaiDi100 kuaiDi100;
- // 仓库最大存储量
- private final int MAX_SIZE = 20;
- private static int NODE_NUM = 1710;
- // 仓库存储的载体
- private LinkedList<SalesOrder> list = new LinkedList<SalesOrder>();
- // 生产产品
- public void produce(String producer)
- {
- synchronized (list)
- {
- // 如果仓库已满
- while (list.size() == MAX_SIZE)
- {
- try
- {
- // 由于条件不满足,生产阻塞
- list.wait();
- }
- catch (InterruptedException e)
- {
- e.printStackTrace();
- }
- }
- // 生产产品
- SalesOrder salesOrder = new SalesOrder();
- PagedResult<SalesOrder> salesOrderPagedResult = salesOrderService.listSalesOrderPage(NODE_NUM, 1, salesOrder, false);
- ArrayList<SalesOrder> array = (ArrayList<SalesOrder>) salesOrderPagedResult.getDataList();
- if(array==null || array.size() <1){
- return;
- }
- System.out.println("======shengchan"+producer+";订单号"+array.get(0).getSalesId()+"交易号"+array.get(0).getSalesDealCode());
- System.out.println("=====查询订单数/节点"+NODE_NUM);
- NODE_NUM++;
- list.add(array.get(0));
- list.notifyAll();
- }
- }
- // 消费产品
- public void consume(String consumer)
- {
- synchronized (list)
- {
- //如果仓库存储量不足
- while (list.size()==0)
- {
- try
- {
- // 由于条件不满足,消费阻塞
- list.wait();
- }
- catch (InterruptedException e)
- {
- e.printStackTrace();
- }
- }
- SalesOrder so = list.get(0);
- System.out.println("======xiaofei"+consumer+"当前执行到订单编号:"+so.getSalesId()+"交易号:"+so.getSalesDealCode());
- String salesPostNum = so.getSalesPostNum(); //salesPostNum
- if(salesPostNum == null || "".equals(salesPostNum)){
- System.out.println("----------该订单无物流编号,订单编号:" + so.getSalesId()+"----------");
- }else{
- String company = "";
- if("00000000".equals(salesPostNum)){
- company = "02";
- }else if("0".equals(salesPostNum)){
- company = "02";
- }else if(salesPostNum.length() == 1){
- company = "02";
- }else{
- String beginTwo = salesPostNum.substring(0,2);
- if("71".equals(beginTwo)){
- company = "yto";
- }else if("33".equals(beginTwo)){
- company = "STO";
- }else if("95".equals(beginTwo)){
- company = "STO";
- }else if("97".equals(beginTwo)){
- company = "YZBK";
- }else if("11".equals(beginTwo)){
- company = "EMS";
- }else if("22".equals(beginTwo)){
- company = "STO";
- }else if("21".equals(beginTwo)){
- company = "01";
- }else if("25".equals(beginTwo)){
- company = "SF";
- }else if("83".equals(beginTwo)){
- company = "DBL";
- }else if("26".equals(beginTwo)){
- company = "SF";
- }else{
- company = kuaiDi100.selectCourierCompany(salesPostNum);
- }
- }
- if(company != null && !"".equals(company)){
- so.setSalesPostFirm(company);
- Integer flag = salesOrderService.distributionExpress(so);
- if(flag < 1){
- System.out.println("*********修改订单物流方式出错,物流编号:"+ salesPostNum +";订单编号:" + so.getSalesId()+"***********");
- }
- }else{
- System.out.println("*********物流公司为空,物流编号:"+ salesPostNum +";订单编号:" + so.getSalesId()+"***********");
- }
- }
- list.remove(0);
- list.notifyAll();
- }
- }
- public LinkedList<SalesOrder> getList()
- {
- return list;
- }
- public void setList(LinkedList<SalesOrder> list)
- {
- this.list = list;
- }
- public int getMAX_SIZE()
- {
- return MAX_SIZE;
- }
- }
|