GAT项目新需求:保险管理增加查询统计-传日期参数问题

需求:不分页,默认合计今年的签单保费和车船费


1.CarSecureController

2.查询条件


3.接口


4.接口的实现


5.Dao接口


6.Dao实现


查询条件:generateConditionTotal


private void generateConditionTotal(CarSecureListReqFrist req, HibernateParams hParams) throws Exception{

    StringBuilder sb = new StringBuilder();
    
    Integer querySysId = 0;
    Integer queryDeptId = 0;

    if(Util.isEmpty(req.getAppSysId()) || Util.isEmpty(req.getAppDeptId())){
        //未传值 查询当前登录人的机构部门信息
        UserSysDeptRes userSysDeptRes = Common.getLoginInfo().getUserSysDept();
        querySysId = userSysDeptRes.getAppSysId();
        queryDeptId = userSysDeptRes.getAppDeptId();
    }else{
        //传值 查询输入机构部门信息
        querySysId = req.getAppSysId();
        queryDeptId = req.getAppDeptId();
    }
    // 包含下级
    OrgDeptSearchFilter helper = new OrgDeptSearchFilter();
    sb.append(" and((po.appsysid,po.appdeptid) in(");
    sb.append(helper.getSubDeptSql(querySysId, queryDeptId, hParams));
    sb.append("))");
    
    //车牌号码
    if(!Util.isEmpty(req.getCarHostNO())){
        sb.append(" and t.HOST_NO like ? ");
        hParams.addParamObj(likeValue(req.getCarHostNO()));
    }
    
    //查询范围
    if(Util.isEmpty(req.getQueryQbBeginTime()) && Util.isEmpty(req.getQueryZbEndTime()) &&  Util.isEmpty(req.getQueryZbBeginTime()) && Util.isEmpty(req.getQueryZbEndTime())){
        //什么都不填,默认查询当年的
        sb.append(" and t.SECURE_START_TIME >= (select trunc(sysdate,'yyyy') FROM DUAL) ");
        sb.append(" and t.SECURE_START_TIME <= (select add_months(trunc(sysdate,'yyyy'),12)-1 from dual) ");
    }
    if(!Util.isEmpty(req.getQueryQbBeginTime())){
        sb.append(" and t.SECURE_START_TIME >= ? ");
        hParams.addParamObj(req.getQueryQbBeginTime());
    }
    
    if(!Util.isEmpty(req.getQueryQbEndTime())){
        sb.append(" and t.SECURE_START_TIME <= ? ");
        hParams.addParamObj(req.getQueryQbEndTime());
    }
    
    if(!Util.isEmpty(req.getQueryZbBeginTime())){
        sb.append(" and t.SECURE_END_TIME >= ? ");
        hParams.addParamObj(req.getQueryZbBeginTime());
    }
    
    if(!Util.isEmpty(req.getQueryZbEndTime())){
        sb.append(" and t.SECURE_END_TIME <= ? ");
        hParams.addParamObj(req.getQueryZbEndTime());
    }
    
    hParams.addSqlStrBuffer(sb.toString());
}

测试OK:


SQL语句:



select t.RECORD_ID as recordId,
       t.HOST_ID as hostId,
       t.HOST_NO as carHostNO,
       t.SECURE_PAY as securePay,
       p.HOST_VIN as hostVin,
       p.ENGINE_ID as engineId,
       po.APPSYSID as appSysId,
       po.APPDEPTID as appDeptId,
       t.SECURE_NO as secureNo,
       to_char(t.SECURE_START_TIME, 'yyyy-MM-dd') as secureStartTime,
       to_char(t.SECURE_END_TIME, 'yyyy-MM-dd') as secureEndTime,
       t.SECURE_HANDLE as secureHandle,
       t.SECURE_TAX as secureTax,
       t.SECURE_REMARK as secureRemark
  from CAR_SECURE t, POSITION_HOST_INFO_EXTEND p, POSITION_HOST_INFO po
 where t.host_id = p.hostid
   and t.host_id = po.hostid
   and ((po.appsysid, po.appdeptid) in
       (select appsysid, appdeptid from table(get_subdept(-1, 2000, 0))))
   and t.HOST_NO like '%人a1002%'
   and t.SECURE_START_TIME >= to_date('2017-1-1','yyyy-mm-dd')
   and t.SECURE_START_TIME <= to_date('2017-2-25','yyyy-mm-dd')
   and t.SECURE_END_TIME >= to_date('2017-3-20','yyyy-mm-dd')
   and t.SECURE_END_TIME <= to_date('2017-4-25','yyyy-mm-dd')
 order by t.UPDATE_TIME desc

注意:

使用注解把接收到的日期String类型"queryQbBeginTime":"2017-1-1"转成Date类型




所以sql语句要用to_date转:


select t.RECORD_ID as recordId,
       t.HOST_ID as hostId,
       t.HOST_NO as carHostNO,
       t.SECURE_PAY as securePay,
       p.HOST_VIN as hostVin,
       p.ENGINE_ID as engineId,
       po.APPSYSID as appSysId,
       po.APPDEPTID as appDeptId,
       t.SECURE_NO as secureNo,
       to_char(t.SECURE_START_TIME, 'yyyy-MM-dd') as secureStartTime,
       to_char(t.SECURE_END_TIME, 'yyyy-MM-dd') as secureEndTime,
       t.SECURE_HANDLE as secureHandle,
       t.SECURE_TAX as secureTax,
       t.SECURE_REMARK as secureRemark
  from CAR_SECURE t, POSITION_HOST_INFO_EXTEND p, POSITION_HOST_INFO po
 where t.host_id = p.hostid
   and t.host_id = po.hostid
   and ((po.appsysid, po.appdeptid) in
       (select appsysid, appdeptid from table(get_subdept(-1, 2000, 0))))
   and t.HOST_NO like '%人a1002%'
   and t.SECURE_START_TIME >= to_date('2017-1-1','yyyy-mm-dd')
   and t.SECURE_START_TIME <= to_date('2017-2-25','yyyy-mm-dd')
   and t.SECURE_END_TIME >= to_date('2017-3-20','yyyy-mm-dd')
   and t.SECURE_END_TIME <= to_date('2017-4-25','yyyy-mm-dd')
 order by t.UPDATE_TIME desc

-------------------------------------------------------------------------------------------------------------------
如果用String接收:


则:


-------------------------------------------------------------------------------------------------------------------

如果用String接收:


则:


-------------------------------------------------------------------------------------------------------------------

看到其他模块还有这种写法的:





  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZHOU_VIP

您的鼓励将是我创作最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值