Newer
Older
huludao / src / main / java / com / newfiber / api / pc / dao / EventsManage / ComplaintDao.java
package com.newfiber.api.pc.dao.EventsManage;

import com.newfiber.api.core.base.BaseDao;
import com.newfiber.api.mobile.model.domain.PatrolProblem;
import com.newfiber.api.mobile.model.domain.ProblemStatistical;
import com.newfiber.api.pc.model.EventsManage.*;
import com.newfiber.api.pc.model.River.RiverInfoBasis;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

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

@Repository
public interface ComplaintDao extends BaseDao<Complaint>{
    int countByExample(ComplaintQuery example);

    int insertSelective(Complaint record);

    List<Complaint> selectByExample(ComplaintQuery example);

    int updateByExampleSelective(@Param("record") Complaint record, @Param("example") ComplaintQuery example);

    //根据事件编号查询
    Complaint selectEvetByEventNo(@Param("eventNo") String eventNo);

    //查询我批示过的事件或者领导批示过的事件
    List<Complaint> selectCommandEvent(ComplaintQuery example);

    //批示计数
    int countCommandEvent(ComplaintQuery example);

    //查询不同事件来源数量
    List<Complaint> selectEventSourceCount(@Param("startTime") Date startTime,
                                           @Param("endTime") Date endTime,
                                           @Param("typeList") List<String> typeList,
                                           @Param("divisionList") List<String> divisionList);

    YearCount countEventOfYear(@Param("typeList") List<String> typeList,
                                   @Param("divisionList") List<String> divisionList,
                                   @Param("year")Integer year);
    //根据时间以及状态查询时间数量
    int countEventByTimeAndState(@Param("startTime") Date startTime,
                                 @Param("endTime") Date endTime,
                                 @Param("state") Integer state,
                                 @Param("typeList") List<String> typeList,
                                 @Param("divisionList") List<String> divisionList);
    
    //工作台--我的河道事件查询(图表)
    int getMyRiverEventsCount(@Param("elist") List<Integer> elist,
                              @Param("ulist") List<String> ulist,
                              @Param("startTime") String startTime,
                              @Param("endTime") String endTime);

    int getMyRiverEventsCountNew(@Param("elist") List<Integer> elist,
                              @Param("divisionList") List<String> divisionList,
                              @Param("startTime") String startTime,
                              @Param("endTime") String endTime);
    List<String> getCurrentUserRole(String userNo);

    //工作台--河道事件查询
    List<Complaint> getMyRiverEvents(@Param("list") List<String> list,
                                     @Param("elist") List<Integer> elist,
                                     @Param("riverNo") String riverNo,
                                     @Param("sort") String sort,
                                     @Param("order") String order);
    int getEventsCount(@Param("list") List<String> list,
                       @Param("elist") List<Integer> elist,
                       @Param("riverNo") String riverNo);

    //工作台--查询管辖河道
    List<RiverInfoBasis> getMyRuleRiver(List<String> list);
    int getMyRuleRiverCount(List<String> list);
    //工作台--查询我的跟踪事件
    List<Complaint> getMyTraceEvents(@Param("userNo") String userNo,
                                     @Param("sort") String sort,
                                     @Param("order") String order);

    //查询河长用户编号(治水办用户查平级河长)
    List<String> getMyRiverChief(String userNo);

    //查询用户的跟踪事件
    List<Complaint> selectEventTraceList(ComplaintQuery example);

    //计算该用户有多少跟踪事项
    int countTraceEvent(@Param("userNo") String userNo);

    //查询用户可添加的跟踪事项
    List<Complaint> selectAddableTraceEvent(@Param("userNo") String userNo, @Param("startRow") Integer startRow, @Param("pageSize") Integer pageSize);
    //计数可添加的跟踪事项
    int countAddableTraceEvent(@Param("userNo") String userNo);
    //统计每种类型时间发生个数
    List<EventStatistics> getEventStatisticsInfo(@Param("divisions") List<String> divisions,
                                                 @Param("st")Date st,
                                                 @Param("et")Date et);
    /**
     * 根据机构编号查询待办事项列表
     * @param
     * @return
     */
    int countPendingList(Complaint complaint);

    /**
     * 分页根据机构查询待办事项列表
     * @param
     * @return
     */
    List<Complaint> selectPendingComplaint(Complaint complaint);

    /**
     * 根据行政区划编号查询投诉列表
     * @param divisionNo
     * @return
     */
    List<Complaint> selectByDivisionNo(@Param("divisionNo") String divisionNo);

    /**
     * 根据投诉事件编号查询投诉详情
     * @param eventNo
     * @return
     */
    Complaint selectInfo(@Param("eventNo") String eventNo);

    /**
     * 根据事件编号查询负责机构的名称
     * @param eventNo
     * @return
     */
    String selectOrgNameByEventNo(@Param("eventNo") String eventNo);


    /**
     * 根据区划/时间/事件来源查询计数
     * @return
     */
    List<Complaint> selectStaticData(Complaint complaint);
    //排除待上报的数据
    List<Complaint> selectWithOutType1(Complaint complaint);

    /**
     * 行政区划/时间/事件来源查询计数
     * @param complaint
     * @return
     */
    int countStaticData(Complaint complaint);

    List<InspectStatistical> getInspectStatisticalDivision(@Param("st")Date st,
                                                           @Param("et")Date et,
                                                           @Param("paraList")List<String> paraList,
                                                           @Param("order")String order,
                                                           @Param("sort")String sort);
    List<InspectStatistical> getInspectStatisticalRiver(@Param("st")Date st,
                                                        @Param("et")Date et,
                                                        @Param("paraList")List<String> paraList,
                                                        @Param("order")String order,
                                                        @Param("sort")String sort);

    List<EventSourceBasis> selectEventSourceList();
    EventSourceBasis selectEventSource(@Param("sourceNo") String sourceNo);


    /**
     *获取某时间段当前用户本级别河流各类投诉问题数量
     * @author chg
     * @date 2018-12-06
     */
    public List<ProblemStatistical> problemStatisticalInfo(Map<String,Object> params);

    /**
     *获取当前用户某时间段本级河流所有投诉问题总数量
     * @author chg
     * @date 2018-12-06
     */
    public int problemTotal(Map<String,Object> params);

    /**
     *获取当前用户某时间段下级河流各类投诉问题总数量
     * @author chg
     * @date 2018-12-06
     */
    public List<ProblemStatistical> problemStatisticalSubordinate(Map<String,Object> params);

    /**
     *获取当前用户某时间段下级河流所有投诉问题总数量
     * @author chg
     * @date 2018-12-06
     */
    public int problemTotalSubordinate(Map<String,Object> params);

    /**
     *获取当前用户某时间段同本级河流投诉事件数量
     * @author chg
     * @date 2018-12-07
     */
    public List<ProblemStatistical> InspectEvent(Map<String,Object> params);

    /**
     *获取当前用户某时间段下级区域投诉事件数量
     * @author chg
     * @date 2018-12-07
     */
    public List<ProblemStatistical> InspectEventSubordinate(Map<String,Object> params);

    /**
     * 查询河流的投诉事件(根据河流编号)
     * @param params
     * @return
     */
    public List<PatrolProblem> queryListByRiver(Map<String,Object> params);

    /**
     * 查询区域的投诉问题数量
     * @author chg
     * @date 2018-12-10
     */
    public List<ProblemStatistical> problemTotalOfArea(Map<String,Object> params);

    /**
     * 根据行政区划编号查询投诉列表
     * @param params 区域编号、起止时间
     * @return
     */
    List<Complaint> selectByDivisionNoNew(Map<String,Object> params);

    /**
     * 根据河流查询投诉列表
     * @param params 区域编号、起止时间
     * @return
     */
    List<Complaint> selectByRiverNo(Map<String,Object> params);

    /**
     * 通过id查询单个事件
     * @param eventNo
     * @return
     */
    Complaint getComplaint(@Param("eventNo") String eventNo);

    /**
     * 查询代办事项
     * @param state 1为代办事项
     * @param nextRiver
     * @return
     */
    List<Complaint> selectByRivers(@Param("state")Integer state,@Param("nextRiver")List<String> nextRiver,@Param("userNo")String userNo);

    int selectCompCount(@Param("nextRiver")List<String> nextRiver,@Param("userNo")String userNo);
}