package com.jiuqi.mobile.nigo.comeclose.manager.master;
import java.util.List;
import java.util.Map;
import java.util.Set;
import com.jiuqi.mobile.nigo.comeclose.bean.LoadOnGetList;
import com.jiuqi.mobile.nigo.comeclose.bean.app.file.CooperFileBean;
import com.jiuqi.mobile.nigo.comeclose.bean.master.CarBean;
import com.jiuqi.mobile.nigo.comeclose.bean.master.DriverBean;
import com.jiuqi.mobile.nigo.comeclose.bean.master.DriverOwnerBean;
import com.jiuqi.mobile.nigo.comeclose.bean.master.DriverQueryBean;
import com.jiuqi.mobile.nigo.comeclose.exception.NiGoException;
import com.jiuqi.mobile.nigo.comeclose.manager.ISimpleUserManger;
import com.jiuqi.mobile.nigo.comeclose.manager.ManagerAnnotation;
import com.jiuqi.mobile.nigo.comeclose.portal.PortalAnnotation;
import com.jiuqi.mobile.nigo.comeclose.portal.PortalMethodAnnctation;
@ManagerAnnotation(implClass = "com.jiuqi.mobile.nigo.biz.master.manager.DriverManagerImpl")
@PortalAnnotation(implClass = "com.jiuqi.mobile.nigo.biz.master.manager.DriverManagerImpl")
public interface IDriverManager extends ISimpleUserManger<DriverBean> {
/*
* (non-Javadoc)
*
* @see
* com.jiuqi.mobile.nigo.comeclose.manager.ISimpleManger#create(java.lang
* .Object)
*/
/**
* 通过当前登录人,自动判断用户未填入信息。
* <p>
* 后台自动设置用户角色
* <p>
* DriverBean 添加人GUID,组织机构GUID,
* <p>
* 如果是DriverOwnerBean,自动添加关联的车辆
*/
@PortalMethodAnnctation
void create(DriverBean bean) throws NiGoException;
/**
* 当使用excel导入机手时使用该方法创建机手
*
* @param bean
* @throws NiGoException
*/
void createWhenImport(DriverBean bean, CooperFileBean cooperFileBean)
throws NiGoException;
/**
* 把机手升级成机主
*
* @param bean
* @throws NiGoException
*/
@Deprecated
void upgrade(DriverOwnerBean bean) throws NiGoException;
/**
* 机手升级成机主
*
* @param guid
* @param cars
*/
@Deprecated
void upgrade(String guid, CarBean... cars) throws NiGoException;
/**
* 通过机手手机号获得几手对象
*
* @param moblieNum
* @return
*/
DriverBean getDriverByMobileNumber(String moblieNumber);
/**
* 通过机手手机号获得几手只获得机手
*
* @param moblieNum
* @return
*/
@PortalMethodAnnctation
DriverBean getDriverByMobileNumber1(String moblieNumber);
/**
* 简单driverBean 只满足 位置查询等树形的使用
*
* @auth lizh
* @Date 2013-12-12上午11:43:04
* @method getSimpleDriverByCoopGuid
* @fileName IDriverManager
* @package com.jiuqi.mobile.nigo.comeclose.manager.master
* @project comeclose
* @param guid
* @param fastFind
* @return
* @return DriverBean
*/
List<DriverBean> getSimpleDriverByCoopGuid(String guid, String fastFind);
/**
* 驾照年审更新车辆信息(map为要更新的字段和字段值的集合 )e.g:<"auditDate",new Date()>
*
* @param map
* @param guid
* @return
*/
boolean annualDriver(Map<String, Object> map, String guid);
// 20130808
/**
* 查询机手信息
*
* @param key
* @return
*/
LoadOnGetList<DriverBean> get(SelectDriverKey key);
/**
* 查询机手信息
*
* @param key
* @return
*/
LoadOnGetList<DriverBean> search(SelectDriverKey key);
/**
* 通过车牌号,查询开这辆车的机手
*
* @param vehicleNumber
* @return
*/
LoadOnGetList<DriverBean> getByVehicleNumber(String vehicleNumber);
/**
* 获得直属组织结构的指定用户类别的用户列表(直属)(可按用户名称模糊查询)
* <p>
* 20130809 转移至IDriverManger
*
* @param username
* 用户名称
* @param orgId
* 组织机构ID
* @return
*/
LoadOnGetList<DriverBean> searchDriversByOrg(String username, String orgGuid);
/**
* 获得直属组织结构的指定用户类别的用户列表(直属)(可按用户名称模糊查询)
* <p>
* 20130809 转移至IDriverManger
* <p>
* 20130912 提供简单实现,返回的drvicerBean没有关联对象(测量、组织机构没有,用户有)
*
* @param username
* 用户名称
* @param orgId
* 组织机构ID
* @return
*/
LoadOnGetList<DriverBean> searchDriversByOrgSimple(String username,
String orgGuid);
// 20130809
/**
* 检索机主
*
* @param key
* @return
*/
LoadOnGetList<DriverOwnerBean> get(SelectDriverOwnerKey key);
/**
* 查询机主
*
* @param guid
* @return
*/
DriverOwnerBean findOwner(String guid);
/**
* 更新添加机构的guid
*
* @auth lizh
* @Date 2013-10-30下午5:21:13
* @method updateOrgGuid
* @fileName IDriverManager
* @package com.jiuqi.mobile.nigo.comeclose.manager.master
* @project comeclose
* @param driverGuid
* @param orgGuid
* @return void
*/
@PortalMethodAnnctation
void updateOrgGuid(String driverGuid, String orgGuid);
/**
* 查找司机(短信使用)
*
* @auth lizh
* @Date 2013-12-4上午11:43:28
* @method findDriverMobileByArea
* @fileName IDriverManager
* @package com.jiuqi.mobile.nigo.comeclose.manager.master
* @project comeclose
* @param areaCode
* @param cartype
* @return
* @return Set<String>
*/
Set<String> findDriverMobileByArea(List<Long> areaCode, String cartype);
/**
* @Title: updatePer
* @Description: 完善机手信息
* @param @param bean
* @param @param password
* @param @return
* @param @throws NiGoException 设定文件
* @return String 返回类型
* @throws
*/
String updatePer(DriverBean bean, String password) throws NiGoException;
/**
* @Title: updateDriver
* @Description: 修改机手信息
* @param @param driverBean
* @param @param cooperFileBean
* @param @return
* @param @throws NiGoException 设定文件
* @return int 返回类型
* @throws
*/
int updateDriver(DriverBean driverBean, CooperFileBean cooperFileBean)
throws NiGoException;
/**
* 机手查询
*
* @param fastFind
* @return
*/
List<DriverQueryBean> queryDriver(String fastFind, String code, int state,
int rolecode);
/**
* @Title: queryDriverSize
* @Description: 有条件的机手信息查询,查询条数限制)
* @param @param fastFind
* @param @param rolecode
* @param @param code
* @param @param state
* @param @param start
* @param @param size
* @param @return 设定文件
* @return List<DriverQueryBean> 返回类型
* @throws
*/
List<DriverQueryBean> queryDriverSize(String fastFind, int rolecode,
String code, int state, int start, int size);
/**
* 用于天气预报推送查询机手
*
* @return
*/
@PortalMethodAnnctation
List<DriverBean> getDrivers();
/**
* 6月3日徐强 应急发玄武短信查询条件临时用
*
* @auth lizh
* @Date 2014-6-3下午6:06:48
* @method getTj
* @fileName IDriverManager
* @package com.jiuqi.mobile.nigo.comeclose.manager.master
* @project comeclose
* @return
* @return List<String>
*/
@PortalMethodAnnctation
@Deprecated
List<String> getTj();
/**
*
* @方法描述: 根据区域查询机手(供安徽短信树使用,不属于合作社的) <br/>
* @项目名称:comeclose<br/>
* @类路径:com.jiuqi.mobile.nigo.comeclose.manager.master.IDriverManager.java<br/>
* @版权所有(c):JOIN-CHEER <br/>
* @作者:xuzhe <br/>
* @创建时间:2015-1-15下午2:23:30 <br/>
* @修改时间:<br/>
* @修改备注: <br/>
* @返回类型:List<DriverBean><br/>
* @param area
* @return
*/
List<DriverBean> findDriverByArea(long area);
List<DriverBean> findDriverByArea(long area, long start, long end);
/**
*
* @方法描述:根据区域查询机手(供安徽短信树使用,不属于合作社的)供县级使用 <br/>
* @项目名称:comeclose<br/>
* @类路径:com.jiuqi.mobile.nigo.comeclose.manager.master.IDriverManager.java<br/>
* @版权所有(c):JOIN-CHEER <br/>
* @作者:xuzhe <br/>
* @创建时间:2015-1-20下午5:58:47 <br/>
* @修改时间:<br/>
* @修改备注: <br/>
* @返回类型:List<DriverBean><br/>
* @param area
* @return
*/
List<DriverBean> findDriverByArea1(long area);
List<DriverBean> findDriverByArea1(long area, long start, long end);
/**
*
* @方法描述: 根据行政区划获取机手总数<br/>
* @项目名称:comeclose<br/>
* @类路径:com.jiuqi.mobile.nigo.comeclose.manager.master.IDriverManager.java<br/>
* @版权所有(c):JOIN-CHEER <br/>
* @作者:xuzhe <br/>
* @创建时间:2015-1-15下午4:28:08 <br/>
* @修改时间:<br/>
* @修改备注: <br/>
* @返回类型:int<br/>
* @param area
* @return
*/
int getDriverCountByArea(long area);
/**
*
* @方法描述:根据行政区划查询机手手机号码 <br/>
* @项目名称:comeclose<br/>
* @类路径:com.jiuqi.mobile.nigo.comeclose.manager.master.IDriverManager.java<br/>
* @版权所有(c):JOIN-CHEER <br/>
* @作者:xuzhe <br/>
* @创建时间:2015-1-19下午3:46:33 <br/>
* @修改时间:<br/>
* @修改备注: <br/>
* @返回类型:List<String><br/>
* @param area
* @return
*/
List<String> findDriverMobileNumberByArea(long area);
/**
*
* @方法描述: 根据合作社guid查询机手手机号(激活的)<br/>
* @项目名称:comeclose<br/>
* @类路径:com.jiuqi.mobile.nigo.comeclose.manager.master.IDriverManager.java<br/>
* @版权所有(c):JOIN-CHEER <br/>
* @作者:xuzhe <br/>
* @创建时间:2015-1-19下午4:14:00 <br/>
* @修改时间:<br/>
* @修改备注: <br/>
* @返回类型:List<String><br/>
* @param cooperGuid
* @return
*/
List<String> findDriverMobileNumberByCooperGuid(String cooperGuid);
/**
*
* @方法描述: 根据电话号码和用户名快速查找机手<br/>
* @项目名称:comeclose<br/>
* @类路径:com.jiuqi.mobile.nigo.comeclose.manager.master.IDriverManager.java<br/>
* @版权所有(c):JOIN-CHEER <br/>
* @作者:xuzhe <br/>
* @创建时间:2015-1-20下午2:05:19 <br/>
* @修改时间:<br/>
* @修改备注: <br/>
* @返回类型:List<DriverBean><br/>
* @param fastFind
* @param area
* @return
*/
List<DriverBean> findDriverByMobileNumberOrUserName(String fastFind,
long area);
}