GAT项目新需求:保险管理增加查询统计-传日期参数问题
来源:互联网 发布:二战历史书籍 知乎 编辑:程序博客网 时间:2024/05/01 03:43
需求:不分页,默认合计今年的签单保费和车船费
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
- GAT项目新需求:保险管理增加查询统计-传日期参数问题
- GAT项目新需求:保险管理增加查询统计(续)
- GAT项目新需求:ETC管理增加查询统计
- GAT项目新需求:保险管理修改
- GAT项目新需求:加油管理修改
- GAT项目新需求:车辆基本信息查询增加勾选不包含下级
- 解决GAT项目Bug:ETC费用统计问题
- GAT项目-保险模块费用Double类型相加损失精度
- GAT保险模块的修改
- 解决GAT项目Bug:车装车饰费用管理中的装饰费统计(车辆)统计数据不对
- 解决GAT项目Bug:轨迹分析查询不到数据
- 项目管理问题之需求变更
- 项目管理中常见需求问题
- mybaits查询时间段,传日期参数出现的问题
- 项目管理-需求管理
- 项目查询日期的一个小问题
- 惠安惠达项目新需求:首页增加待命车明细
- 项目管理-需求设计
- Android View那点事(一)
- Linux下分区详解之—Parted
- C语言基础知识练习
- 接口 的使用 到底 有什么 益处?完全 解耦( decoupling)
- Android vector 标签 pathData 详解
- GAT项目新需求:保险管理增加查询统计-传日期参数问题
- 开发网址
- hls协议(最清晰的讲解)
- Calendar的用法
- iOS开发之实现方法链调用
- 含章节号的题注编号以阿拉伯数字显示
- java表达式类型的自动提升
- mac安装Python3
- 《算法 第4版》随书 IDE:如何使用 DrJava 来调试 Java 程序