java 多线程

来源:互联网 发布:听音识曲软件 编辑:程序博客网 时间:2024/06/04 12:49
package com.mx.travel.op.team.service.impl;

import java.util.ArrayList;
import java.util.List;

import javax.jws.WebService;

import com.mx.travel.ba.flight.api.helper.TicketGroupOrderHelper;
import com.mx.travel.ba.flight.pojo.TicketGroupOrder;
import com.mx.travel.my.system.api.helper.CodeHelper;
import com.mx.travel.my.system.api.helper.LogHelper;
import com.mx.travel.op.team.dao.ITeamDao;
import com.mx.travel.op.team.dao.ITeamOperatorDao;
import com.mx.travel.op.team.dao.ITeamStockDao;
import com.mx.travel.op.team.pojo.Team;
import com.mx.travel.op.team.pojo.TeamOperator;
import com.mx.travel.op.team.pojo.TeamStock;
import com.mx.travel.op.team.service.ITeamDoubleService;
import com.mx.travel.op.util.Util;

@WebService(endpointInterface = "com.mx.travel.op.team.service.ITeamDoubleService", serviceName = "TeamDubleServiceImpl", targetNamespace = "http://service.team.op.travel.mx.com/")
public class TeamDoubleServiceImpl implements ITeamDoubleService, Runnable {
    
    private ITeamDao teamDao;
    private ITeamStockDao teamStockDao;
    private ITeamOperatorDao teamOperatorDao;
    //子线程
    private List<Team> teamList;
    private List<TeamStock> teamStockList;
    private List<TicketGroupOrder> ticketGroupOrderList;
    private List<TeamOperator> teamOperatorList;
    
    public ITeamDao getTeamDao() {
        return teamDao;
    }
    public void setTeamDao(ITeamDao teamDao) {
        this.teamDao = teamDao;
    }
    public ITeamStockDao getTeamStockDao() {
        return teamStockDao;
    }
    public void setTeamStockDao(ITeamStockDao teamStockDao) {
        this.teamStockDao = teamStockDao;
    }
    public ITeamOperatorDao getTeamOperatorDao() {
        return teamOperatorDao;
    }
    public void setTeamOperatorDao(ITeamOperatorDao teamOperatorDao) {
        this.teamOperatorDao = teamOperatorDao;
    }
    public List<Team> getTeamList() {
        return teamList;
    }
    public void setTeamList(List<Team> teamList) {
        this.teamList = teamList;
    }
    public List<TeamStock> getTeamStockList() {
        return teamStockList;
    }
    public void setTeamStockList(List<TeamStock> teamStockList) {
        this.teamStockList = teamStockList;
    }
    public List<TicketGroupOrder> getTicketGroupOrderList() {
        return ticketGroupOrderList;
    }
    public void setTicketGroupOrderList(List<TicketGroupOrder> ticketGroupOrderList) {
        this.ticketGroupOrderList = ticketGroupOrderList;
    }
    public List<TeamOperator> getTeamOperatorList() {
        return teamOperatorList;
    }
    public void setTeamOperatorList(List<TeamOperator> teamOperatorList) {
        this.teamOperatorList = teamOperatorList;
    }
    @Override
    public int addTeamDouble(List<Team> teamList, List<TeamStock> teamStockList, List<TicketGroupOrder> ticketGroupOrderList, List<TeamOperator> teamOperatorList) {
        try {
            //封装arrList分配子线程操作
            for (int j = 0, optionCount=teamList.size();j < optionCount; j++) {
                // 创建子线程
                TeamDoubleServiceImpl teamdoubleserviceimpl=new TeamDoubleServiceImpl();
                
                List<Team> newTeamList=new ArrayList<Team>();
                if (teamList != null && teamList.size() > 0) {
                    newTeamList.add(teamList.get(j));
                }
                teamdoubleserviceimpl.setTeamList(newTeamList);
                //2
                List<TeamStock> newteamStockList=new ArrayList<TeamStock>();
                if (teamStockList != null && teamStockList.size() > 0) {
                    newteamStockList.add(teamStockList.get(j));
                }
                teamdoubleserviceimpl.setTeamStockList(newteamStockList);
                //3
                List<TicketGroupOrder> newticketGroupOrderList=new ArrayList<TicketGroupOrder>();
                if (ticketGroupOrderList != null && ticketGroupOrderList.size() > 0) {
                    newticketGroupOrderList.add(ticketGroupOrderList.get(j));
                }
                teamdoubleserviceimpl.setTicketGroupOrderList(newticketGroupOrderList);
                //4
                List<TeamOperator> newteamOperatorList=new ArrayList<TeamOperator>();
                if (teamOperatorList != null && teamOperatorList.size() > 0) {
                    newteamOperatorList.add(teamOperatorList.get(j));
                }
                teamdoubleserviceimpl.setTeamOperatorList(newteamOperatorList);
                
                teamdoubleserviceimpl.setTeamDao(this.teamDao);
                teamdoubleserviceimpl.setTeamOperatorDao(this.teamOperatorDao);
                teamdoubleserviceimpl.setTeamStockDao(this.teamStockDao);
                Thread objThread = new Thread(teamdoubleserviceimpl);
                
                objThread.setName("teamid"+String.valueOf(j));
                objThread.start();
            }
        } catch (Exception e) {
            e.printStackTrace();
            return 0;
        }
        return 1;
    }
    @Override
    public void run() {
                Team team = null;
                TeamOperator teamOperator = null;
                // 获取商品数组
                //for (int i = 0; i <this.getTeamStockList().size(); i++) {
                    // 获取商品信息并填充
                    team = this.getTeamList().get(0);
                     this.teamDao.save(team);
                    teamOperator=this.getTeamOperatorList().get(0);
                    // 操作表
                    teamOperator.setTeam(team);
                    this.teamOperatorDao.save(teamOperator);
    
                    // 获取商品库存信息填充
                    Integer ckdCountNums = 0;//
                    Integer totalNums = 0;
                    String arrStockType = "";
                    String arrStockNote = "";
                    String arrNumPlanVal = "";
                    Integer numPlan =this.getTeamStockList().get(0).getStockNum();//商品预售数
                    Integer numPlanGuide = this.getTeamStockList().get(0).getNumPlanGuide();
                    Integer numPlanLeader = this.getTeamStockList().get(0).getNumPlanLeader();
    
                    if ((!Util.isEqual(numPlan) && numPlan != 0) && (!Util.isEqual(numPlanGuide) && numPlanGuide != 0) && (!Util.isEqual(numPlanLeader) && numPlanLeader != 0)) {
                        ckdCountNums = 3;
                        arrStockType = "cust/guide/leader";
                        arrStockNote = "客人/导游/领队";
                        arrNumPlanVal = numPlan + "/" + numPlanGuide + "/" + numPlanLeader;
                        totalNums = numPlan + numPlanGuide + numPlanLeader;
                    } else if ((!Util.isEqual(numPlan) && numPlan != 0) && (!Util.isEqual(numPlanLeader) && numPlanLeader != 0)) {
                        ckdCountNums = 2;
                        arrStockType = "cust/leader";
                        arrStockNote = "客人/领队";
                        arrNumPlanVal = numPlan + "/" + numPlanLeader;
                        totalNums = numPlan + numPlanLeader;
                    } else if ((!Util.isEqual(numPlan) && numPlan != 0) && (!Util.isEqual(numPlanGuide) && numPlanGuide != 0)) {
                        ckdCountNums = 2;
                        arrStockType = "cust/guide";
                        arrStockNote = "客人/导游";
                        arrNumPlanVal = numPlan + "/" + numPlanGuide;
                        totalNums = numPlan + numPlanGuide;
                    } else if (!Util.isEqual(numPlan) && numPlan != 0) {
                        ckdCountNums = 1;
                        arrStockType = "cust";
                        arrStockNote = "客人";
                        arrNumPlanVal = numPlan.toString();
                        totalNums = numPlan;
                    }
    
                    String[] arrCkdType = arrStockType.split("/");
                    String[] arrCkdNote = arrStockNote.split("/");
                    String[] arrCkdNumVal = arrNumPlanVal.split("/");
                    
                    if (this.getTicketGroupOrderList() != null && this.getTicketGroupOrderList().size() > 0) {
                        TicketGroupOrderHelper.toInsertTicketGroupOrder(this.getTicketGroupOrderList().get(0).getResOrderCode(),
                                this.getTicketGroupOrderList().get(0).getAirTicketCode(),
                                this.getTeamList().get(0).getProductCode(), this.getTicketGroupOrderList().get(0).getOrderState(),
                                this.getTicketGroupOrderList().get(0).getIsEnable(), totalNums, "",
                                this.getTicketGroupOrderList().get(0).getEmpCode(),
                                this.getTicketGroupOrderList().get(0).getEmpName(),
                                this.getTicketGroupOrderList().get(0).getDeptCode(),
                                this.getTicketGroupOrderList().get(0).getDeptName(),
                                this.getTicketGroupOrderList().get(0).getCreateTime());
                    }
                    
                    for (int s = 0; s < ckdCountNums; s++) {
                        TeamStock teamStock = new TeamStock();
                        teamStock.setStockCode(CodeHelper.getCode("SYS_CODE_RULE_OP_TEAM_STOCKCODE"));
                        if(this.getTicketGroupOrderList() != null && this.getTicketGroupOrderList().size()>0){
                            teamStock.setResStockCode(this.getTicketGroupOrderList().get(0).getResOrderCode());
                        }else{
                            teamStock.setResStockCode("0");
                        }
                        teamStock.setProductCode(this.getTeamList().get(0).getProductCode());
                        teamStock.setPnrCode(this.getTeamStockList().get(0).getPnrCode());
                        teamStock.setChannelCode("0");
                        teamStock.setCompCode("0");
                        teamStock.setStockType(arrCkdType[s]);
                        teamStock.setStockNum(Integer.valueOf(arrCkdNumVal[s]));
                        teamStock.setNote(arrCkdNote[s]);
                        teamStock.setCreateTime(this.getTeamStockList().get(0).getCreateTime());
                        teamStockDao.save(teamStock);
                    }
                    
                    // 商品管理---增加单团日志
                    LogHelper.opToAddLog(1, team.getProductCode(), "操作员:" + team.getEmpName() + "新增"+team.getExtendService()+"商品:" + team.getTitle(), "Team", "商品创建", team.getEmpCode(), team.getEmpName());
            //    }
                //return 1;//
        
    }
}


0 0
原创粉丝点击