SchedulePlanInfoService.java 11.3 KB
package com.bsth.service.schedule;

import com.bsth.entity.schedule.SchedulePlanInfo;
import com.bsth.service.BaseService;
import org.joda.time.DateTime;

import java.util.Date;
import java.util.List;

/**
 * Created by xu on 16/6/16.
 */
public interface SchedulePlanInfoService extends BaseService<SchedulePlanInfo, Long> {
    /**
     * 查找分组排班信息。
     * @param xlid 线路Id
     * @param scheduleDate 排班日期
     * @return
     */
    List<GroupInfo> findGroupInfo(Integer xlid, Date scheduleDate);

    /**
     * 更新分组信息。
     * type=1,替换车辆
     * type=2,修改出场班次1时间(首班车时间)
     * type=3,替换分组人员(驾驶员1和售票员1)
     * type=4,如果分班,修改出场班次2时间(分班后的第一个出场班次时间)
     * type=5,如果分班,修改分组人员(驾驶员2和售票员2)
     * @param groupInfoUpdate 分组更新信息,包含类型,更新前的信息,更新后的信息
     * @return
     */
    int updateGroupInfo(GroupInfoUpdate groupInfoUpdate);

    /**
     * 分组更新信息。
     */
    static class GroupInfoUpdate {
        /** 类型 */
        private int type;
        /** 原始分组值 */
        private GroupInfo src;
        /** 更新分组值 */
        private GroupInfo update;

        public int getType() {
            return type;
        }

        public void setType(int type) {
            this.type = type;
        }

        public GroupInfo getSrc() {
            return src;
        }

        public void setSrc(GroupInfo src) {
            this.src = src;
        }

        public GroupInfo getUpdate() {
            return update;
        }

        public void setUpdate(GroupInfo update) {
            this.update = update;
        }
    }

    /**
     * 分组信息。
     */
    static class GroupInfo {
        /** 线路Id */
        private Integer xlId;
        /** 线路名称 */
        private String xlName;
        /** 排班时间 */
        private Date scheduleDate;
        /** 路牌名字 */
        private String lpName;
        /** 车辆Id */
        private Integer clId;
        /** 车辆自编号 */
        private String clZbh;
        /** 出场班次1时间 */
        private String ccsj1;
        /** 出场班次2时间 */
        private String ccsj2;

        /** 驾驶员1id */
        private Integer jsy1Id;
        /** 驾驶员1工号 */
        private String jsy1Gh;
        /** 驾驶员1姓名 */
        private String jsy1Name;
        /** 驾驶员1id */
        private Integer jsy2Id;
        /** 驾驶员1工号 */
        private String jsy2Gh;
        /** 驾驶员1姓名 */
        private String jsy2Name;

        /** 售票员1id */
        private Integer spy1Id;
        /** 售票员1工号 */
        private String spy1Gh;
        /** 售票员1姓名 */
        private String spy1Name;
        /** 售票员1id */
        private Integer spy2Id;
        /** 售票员1工号 */
        private String spy2Gh;
        /** 售票员1姓名 */
        private String spy2Name;

        /** 创建时间 */
        private Date createDate;

        public GroupInfo() {}

        public GroupInfo(Object[] datas) {
            // 线路Id
            this.xlId = Integer.valueOf(String.valueOf(datas[0]));
            // 线路名称
            this.xlName = String.valueOf(datas[1]);
            // 排班时间
            this.scheduleDate = new DateTime(datas[2]).toDate();
            // 路牌名字
            this.lpName = String.valueOf(datas[3]);
            // 车辆id
            this.clId = Integer.valueOf(String.valueOf(datas[4]));
            // 车辆自编号
            this.clZbh = String.valueOf(datas[5]);
            // 出场时间,如果有多个,需要分开
            Object ccsj = datas[6];
            if (ccsj != null) {
                String[] ccsj_array = ((String) ccsj).split(",");
                if (ccsj_array.length > 1) {
                    this.ccsj1 = String.valueOf(ccsj_array[0]);
                    this.ccsj2 = String.valueOf(ccsj_array[1]);
                } else {
                    this.ccsj1 = String.valueOf(ccsj_array[0]);
                }
            }
            // 驾驶员id,如果有多个,需要分开
            Object jsyId = datas[7];
            if (jsyId != null) {
                String[] jsyId_array = ((String) jsyId).split(",");
                if (jsyId_array.length > 1) {
                    this.jsy1Id = Integer.valueOf(String.valueOf(jsyId_array[0]));
                    this.jsy2Id = Integer.valueOf(String.valueOf(jsyId_array[1]));
                } else {
                    this.jsy1Id = Integer.valueOf(String.valueOf(jsyId_array[0]));
                }
            }
            // 驾驶员工号,如果有多个,需要分开
            Object jsyGh = datas[8];
            if (jsyGh != null) {
                String[] jsyGh_array = ((String) jsyGh).split(",");
                if (jsyGh_array.length > 1) {
                    this.jsy1Gh = String.valueOf(jsyGh_array[0]);
                    this.jsy2Gh = String.valueOf(jsyGh_array[1]);
                } else {
                    this.jsy1Gh = String.valueOf(jsyGh_array[0]);
                }
            }
            // 驾驶员名字,如果有多个,需要分开
            Object jsyName = datas[9];
            if (jsyName != null) {
                String[] jsyName_array = ((String) jsyName).split(",");
                if (jsyName_array.length > 1) {
                    this.jsy1Name = String.valueOf(jsyName_array[0]);
                    this.jsy2Name = String.valueOf(jsyName_array[1]);
                } else {
                    this.jsy1Name = String.valueOf(jsyName_array[0]);
                }
            }

            // 售票员id,如果有多个,需要分开
            Object spyId = datas[10];
            if (spyId != null) {
                String[] spyId_array = ((String) spyId).split(",");
                if (spyId_array.length > 1) {
                    this.spy1Id = Integer.valueOf(String.valueOf(spyId_array[0]));
                    this.spy2Id = Integer.valueOf(String.valueOf(spyId_array[1]));
                } else {
                    this.spy1Id = Integer.valueOf(String.valueOf(spyId_array[0]));
                }
            }

            // 售票员工号,如果有多个,需要分开
            Object spyGh = datas[11];
            if (spyGh != null) {
                String[] spyGh_array = ((String) spyGh).split(",");
                if (spyGh_array.length > 1) {
                    this.spy1Gh = String.valueOf(spyGh_array[0]);
                    this.spy2Gh = String.valueOf(spyGh_array[1]);
                } else {
                    this.spy1Gh = String.valueOf(spyGh_array[0]);
                }
            }
            // 售票员名字,如果有多个,需要分开
            Object spyName = datas[12];
            if (spyName != null) {
                String[] spyName_array = ((String) spyName).split(",");
                if (spyName_array.length > 1) {
                    this.spy1Name = String.valueOf(spyName_array[0]);
                    this.spy2Name = String.valueOf(spyName_array[1]);
                } else {
                    this.spy1Name = String.valueOf(spyName_array[0]);
                }
            }
            // 创建时间
            this.createDate = new DateTime(datas[13]).toDate();

            // TODO:可能还有其他字段
        }

        public String getXlName() {
            return xlName;
        }

        public void setXlName(String xlName) {
            this.xlName = xlName;
        }

        public Date getScheduleDate() {
            return scheduleDate;
        }

        public void setScheduleDate(Date scheduleDate) {
            this.scheduleDate = scheduleDate;
        }

        public String getLpName() {
            return lpName;
        }

        public void setLpName(String lpName) {
            this.lpName = lpName;
        }

        public Integer getClId() {
            return clId;
        }

        public void setClId(Integer clId) {
            this.clId = clId;
        }

        public String getClZbh() {
            return clZbh;
        }

        public void setClZbh(String clZbh) {
            this.clZbh = clZbh;
        }

        public String getCcsj1() {
            return ccsj1;
        }

        public void setCcsj1(String ccsj1) {
            this.ccsj1 = ccsj1;
        }

        public String getCcsj2() {
            return ccsj2;
        }

        public void setCcsj2(String ccsj2) {
            this.ccsj2 = ccsj2;
        }

        public Integer getJsy1Id() {
            return jsy1Id;
        }

        public void setJsy1Id(Integer jsy1Id) {
            this.jsy1Id = jsy1Id;
        }

        public String getJsy1Gh() {
            return jsy1Gh;
        }

        public void setJsy1Gh(String jsy1Gh) {
            this.jsy1Gh = jsy1Gh;
        }

        public String getJsy1Name() {
            return jsy1Name;
        }

        public void setJsy1Name(String jsy1Name) {
            this.jsy1Name = jsy1Name;
        }

        public Integer getJsy2Id() {
            return jsy2Id;
        }

        public void setJsy2Id(Integer jsy2Id) {
            this.jsy2Id = jsy2Id;
        }

        public String getJsy2Gh() {
            return jsy2Gh;
        }

        public void setJsy2Gh(String jsy2Gh) {
            this.jsy2Gh = jsy2Gh;
        }

        public String getJsy2Name() {
            return jsy2Name;
        }

        public void setJsy2Name(String jsy2Name) {
            this.jsy2Name = jsy2Name;
        }

        public Integer getSpy1Id() {
            return spy1Id;
        }

        public void setSpy1Id(Integer spy1Id) {
            this.spy1Id = spy1Id;
        }

        public String getSpy1Gh() {
            return spy1Gh;
        }

        public void setSpy1Gh(String spy1Gh) {
            this.spy1Gh = spy1Gh;
        }

        public String getSpy1Name() {
            return spy1Name;
        }

        public void setSpy1Name(String spy1Name) {
            this.spy1Name = spy1Name;
        }

        public Integer getSpy2Id() {
            return spy2Id;
        }

        public void setSpy2Id(Integer spy2Id) {
            this.spy2Id = spy2Id;
        }

        public String getSpy2Gh() {
            return spy2Gh;
        }

        public void setSpy2Gh(String spy2Gh) {
            this.spy2Gh = spy2Gh;
        }

        public String getSpy2Name() {
            return spy2Name;
        }

        public void setSpy2Name(String spy2Name) {
            this.spy2Name = spy2Name;
        }

        public Date getCreateDate() {
            return createDate;
        }

        public void setCreateDate(Date createDate) {
            this.createDate = createDate;
        }

        public Integer getXlId() {
            return xlId;
        }

        public void setXlId(Integer xlId) {
            this.xlId = xlId;
        }
    }
}