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接收:
則:
-------------------------------------------------------------------------------------------------------------------
看到其他模組還有這種寫法的:
相關文章
- GAT專案新需求:保險管理增加查詢統計(續)
- GAT專案新需求:ETC管理增加查詢統計
- GAT專案新需求:保險管理修改
- GAT專案新需求:加油管理修改
- 解決GAT專案Bug:ETC費用統計問題
- GAT專案新需求:車輛基本資訊查詢增加勾選不包含下級
- 分頁及查詢引數傳遞問題分享
- GAT專案-保險模組費用Double型別相加損失精度型別
- GAT保險模組的修改
- 傳統ERP管理專案有哪些問題?專案ERP系統哪個好?
- 傳統專案管理VS敏捷專案管理專案管理敏捷
- MVC + EFCore 專案實戰 - 數倉管理系統4 – 需求分解MVC
- jn專案-解決前臺中文引數傳到後臺亂碼問題
- 解決GAT專案Bug:軌跡分析查詢不到資料
- TPA測試專案管理系統-測試問題管理專案管理
- IT專案管理-敏捷和傳統薦專案管理敏捷
- MyBatis傳入多個引數的問題MyBatis
- 函式呼叫引數變數傳值的問題函式變數
- js中 函式引數的 傳值/傳引用 問題JS函式
- 新管理時代,如何制定專案管理計劃專案管理
- 專案叢集引發的問題
- 哪些需求管理工具管理專案需求比較好?
- 新產品研發專案管理常見問題?有哪些專案管理工具推薦?專案管理
- 二維陣列作為引數傳遞問題陣列
- rake 任務引數傳遞問題解決
- 電商發退貨後臺管理系統專案需求
- oracle控制檔案及引數檔案問題Oracle
- 解決GAT專案Bug:車裝車飾費用管理中的裝飾費統計(車輛)統計資料不對
- GWC和GAT專案搭建過程
- GAT專案前臺到後臺
- PMP|論傳統專案與敏捷專案管理的區別敏捷專案管理
- 15.MyBatis傳入多個引數的問題MyBatis
- js解決url傳引數中文亂碼問題JS
- IT專案管理中的原則問題專案管理
- 請教專案管理上的問題專案管理
- 專案管理常見問題解答(轉)專案管理
- IT專案管理:問題、體系、方法(轉)專案管理
- mybatis 傳遞多個引數 --解決mybatis查詢使用多個引數方法--javabean傳統方法和map方法MyBatisJavaBean