From b82b3ea3d176bfee754cf027d24b254565bf990b Mon Sep 17 00:00:00 2001 From: sun Date: Fri, 27 Jun 2025 15:02:54 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B4=B9=E7=94=A8=E5=8D=95=E6=8D=AE=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E8=8A=82=E7=82=B9=E6=96=B0=E5=A2=9E=E6=94=B6=E6=AC=BE?= =?UTF-8?q?=E4=BA=BA=E6=9F=A5=E8=AF=A2=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../erm/billmanage/BillManageServiceImpl.java | 1439 ++++++++++------- 1 file changed, 827 insertions(+), 612 deletions(-) diff --git a/erm/src/private/nccloud/pubimpl/erm/billmanage/BillManageServiceImpl.java b/erm/src/private/nccloud/pubimpl/erm/billmanage/BillManageServiceImpl.java index a634b8d..f521735 100644 --- a/erm/src/private/nccloud/pubimpl/erm/billmanage/BillManageServiceImpl.java +++ b/erm/src/private/nccloud/pubimpl/erm/billmanage/BillManageServiceImpl.java @@ -46,616 +46,831 @@ import nccloud.pubitf.platform.query.INCCloudQueryService; import org.apache.commons.lang3.StringUtils; public class BillManageServiceImpl implements IBillManageService { - private final String APPCODE_DJGL = "201104DJGL"; - private final String SQLKEY_JK = "JK"; - private final String SQLKEY_BX = "BX"; - private final String SQLKEY_HK = "HK"; - private final String SQLKEY_TZ = "TZ"; - private final String SQLKEY_SQ = "SQ"; - private final String SQLKEY_YT = "YT"; - private final String SQLKEY_JZ = "JZ"; - private final String SQLKEY_TX = "TX"; - - public BillManageServiceImpl() { - } - - public List queryBillInfoByPks(String[] pks) throws Exception { - if (pks != null && pks.length != 0) { - String whereSql = SqlUtils.getInStr("pk_jkbx", pks, true); - StringBuilder sqlBuilder = new StringBuilder(); - sqlBuilder.append("select *").append(" from (select pk_jkbx as pk_jkbx,").append(" pk_tradetypeid as pk_tradetypeid,").append(" djlxbm as djlxbm,").append(" pk_billtype as pk_billtype,").append(" djbh as djbh,").append(" djrq as djrq,").append(" bzbm as bzbm,").append(" ybje as ybje,").append(" djzt as djzt,").append(" spzt as spzt,").append(" deptid as deptid_v,").append(" jkbxr as jkbxr,").append(" approver as approver,").append(" pk_org as pk_org, ").append(" creator as creator, ").append(" red_status as red_status, ").append(" saga_frozen as saga_frozen, ").append(" saga_btxid as saga_btxid, ").append(" saga_gtxid as saga_gtxid, ").append(" saga_status as saga_status, ").append(" shrq as shrq").append(" from er_jkzb where dr = 0 ").append(" union all").append(" select pk_jkbx as pk_jkbx,").append(" pk_tradetypeid as pk_tradetypeid,").append(" djlxbm as djlxbm,").append(" pk_billtype as pk_billtype,").append(" djbh as djbh,").append(" djrq as djrq,").append(" bzbm as bzbm,").append(" ybje as ybje,").append(" djzt as djzt,").append(" spzt as spzt,").append(" deptid as deptid_v,").append(" jkbxr as jkbxr,").append(" approver as approver,").append(" pk_org as pk_org, ").append(" creator as creator, ").append(" red_status as red_status, ").append(" saga_frozen as saga_frozen, ").append(" saga_btxid as saga_btxid, ").append(" saga_gtxid as saga_gtxid, ").append(" saga_status as saga_status, ").append(" shrq as shrq").append(" from er_bxzb where dr = 0 ").append(" union all").append(" select pk_accrued_bill as pk_jkbx,").append(" pk_tradetypeid as pk_tradetypeid,").append(" pk_tradetype as djlxbm,").append(" pk_billtype as pk_billtype,").append(" billno as djbh,").append(" billdate as djrq,").append(" pk_currtype as bzbm,").append(" org_amount as ybje,").append(" billstatus as djzt,").append(" apprstatus as spzt,").append(" operator_dept as deptid_v,").append(" operator as jkbxr,").append(" approver as approver,").append(" pk_org as pk_org, ").append(" creator as creator, ").append(" redflag as red_status, ").append(" saga_frozen as saga_frozen, ").append(" saga_btxid as saga_btxid, ").append(" saga_gtxid as saga_gtxid, ").append(" saga_status as saga_status, ").append(" approvetime as shrq").append(" from er_accrued where dr=0 ").append(" union all").append(" select pk_mtapp_bill as pk_jkbx,").append(" pk_tradetypeid as pk_tradetypeid,").append(" pk_tradetype as djlxbm,").append(" pk_billtype as pk_billtype,").append(" billno as djbh,").append(" billdate as djrq,").append(" pk_currtype as bzbm,").append(" orig_amount as ybje,").append(" billstatus as djzt,").append(" apprstatus as spzt,").append(" apply_dept as deptid_v,").append(" billmaker as jkbxr,").append(" approver as approver,").append(" pk_org as pk_org, ").append(" creator as creator, ").append(" null as red_status, ").append(" saga_frozen as saga_frozen, ").append(" saga_btxid as saga_btxid, ").append(" saga_gtxid as saga_gtxid, ").append(" saga_status as saga_status, ").append(" approvetime as shrq").append(" from er_mtapp_bill where dr = 0 ").append(" union all").append(" select pk_costshare as pk_jkbx,").append(" pk_tradetypeid as pk_tradetypeid,").append(" pk_tradetype as djlxbm,").append(" pk_billtype as pk_billtype,").append(" billno as djbh,").append(" billdate as djrq,").append(" bzbm as bzbm,").append(" ybje as ybje,").append(" billstatus as djzt,").append(" case when billstatus=2 or billstatus=3 then 1 else -1 end as spzt,").append(" deptid as deptid_v,").append(" jkbxr as jkbxr,").append(" approver as approver,").append(" pk_org as pk_org, ").append(" creator as creator, ").append(" null as red_status, ").append(" saga_frozen as saga_frozen, ").append(" saga_btxid as saga_btxid, ").append(" saga_gtxid as saga_gtxid, ").append(" saga_status as saga_status, ").append(" approvedate as shrq").append(" from er_costshare").append(" where dr = 0 ").append(" union all").append(" select e.pk_jkbx as pk_jkbx,").append(" t.pk_billtypeid as pk_tradetypeid,").append(" e.bx_pk_billtype as djlxbm,").append(" t.parentbilltype as pk_billtype,").append(" e.bx_billno as djbh,").append(" e.bx_djrq as djrq,").append(" e.bzbm as bzbm,").append(" e.total_amount as ybje,").append(" 3 as djzt,").append(" \t\t\t\t 1\t\t as spzt,").append(" e.bx_deptid as deptid_v,").append(" e.bx_jkbxr as jkbxr,").append(" null as approver,").append(" e.pk_org as pk_org, ").append(" e.creator as creator, ").append(" null as red_status, ").append(" e.saga_frozen as saga_frozen, ").append(" e.saga_btxid as saga_btxid, ").append(" e.saga_gtxid as saga_gtxid, ").append(" e.saga_status as saga_status, ").append(" null as shrq").append(" from er_expamtinfo e").append(" left join bd_billtype t on t.PK_BILLTYPECODE=e.bx_pk_billtype and t.PK_GROUP=e.PK_GROUP").append(" where e.dr = 0 ").append(" ) temp where ").append(whereSql); - sqlBuilder.append(" order by temp.djrq desc"); - String sql = sqlBuilder.toString(); - SQLParameter sqlParam = new SQLParameter(); - IUAPQueryBS iuapQryService = (IUAPQueryBS)NCLocator.getInstance().lookup(IUAPQueryBS.class); - List resultList = (List)iuapQryService.executeQuery(sql, sqlParam, new JKBXHeaderResultSetProcessor()); - return resultList; - } else { - return null; - } - } - - public List queryPermBillType(String userId, String currentDate, String pkGroup) { - List permBillTypeList = new ArrayList(); - - try { - String sql = " select distinct pub_publishapp.pk_billtypecode as pk_billtypecode,sm_appregister.code as apppcode,sm_apppage.pagecode as pagecode,sm_apppage.pageurl as url, bd_billtype.parentbilltype as parentbilltype, bd_billtype.pk_billtypeid as pk_billtypeid, bd_billtype.billtypename" + MultiLangUtil.getCurrentLangSeqSuffix() + " as billtypename from sm_appregister inner join pub_publishapp on sm_appregister.pk_appregister=pub_publishapp.publishappid inner join sm_apppage on sm_apppage.parent_id=sm_appregister.pk_appregister inner join bd_billtype on pub_publishapp.pk_billtypecode=bd_billtype.pk_billtypecode where sm_appregister.pk_appregister in ( select distinct ra.pk_app from sm_resp_app ra, sm_perm_func pf, sm_appregister app where ra.pk_responsibility = pf.ruleid and app.pk_appregister = ra.pk_app and exists ( select 1 from sm_user_role ur where pf.subjectid = ur.pk_role and cuserid = ? and enabledate <= ? and ( isnull(cast(disabledate as char),'~')='~' or disabledate > ?)) and app.isenable = 'Y' and ( isnull(app.pk_group,'~') = '~' or app.pk_group = ?) and pf.pk_group = ? and app.own_module='2011') and pub_publishapp.sence=10 and pub_publishapp.dr=0 and bd_billtype.parentbilltype in('261X','262X','263X','264X','265X','266X') and bd_billtype.pk_billtypecode != '264X-Cxx-SKBG' and sm_apppage.isdefault='Y' and bd_billtype.pk_group= ? "; - SQLParameter sqlParam = new SQLParameter(); - sqlParam.addParam(userId); - sqlParam.addParam(currentDate); - sqlParam.addParam(currentDate); - sqlParam.addParam(pkGroup); - sqlParam.addParam(pkGroup); - sqlParam.addParam(pkGroup); - IUAPQueryBS iuapQryService = (IUAPQueryBS)NCLocator.getInstance().lookup(IUAPQueryBS.class); - permBillTypeList = (List)iuapQryService.executeQuery(sql, sqlParam, new ResultSetProcessor() { - private static final long serialVersionUID = 1L; - - public Object handleResultSet(ResultSet rs) throws SQLException { - List resultList; - BillManageTradeTypeVO billManageTradeTypeVO; - for(resultList = new ArrayList(); rs.next(); resultList.add(billManageTradeTypeVO)) { - billManageTradeTypeVO = new BillManageTradeTypeVO(); - String pk_billtypecode = rs.getString("pk_billtypecode"); - String appcode = rs.getString("apppcode"); - String pagecode = rs.getString("pagecode"); - String url = rs.getString("url"); - String parentbilltype = rs.getString("parentbilltype"); - billManageTradeTypeVO.setPk_billtypecode(pk_billtypecode); - billManageTradeTypeVO.setAppcode(appcode); - billManageTradeTypeVO.setPagecode(pagecode); - billManageTradeTypeVO.setUrl(url); - billManageTradeTypeVO.setParentbilltype(parentbilltype); - billManageTradeTypeVO.setPk_billtypeid(rs.getString("pk_billtypeid")); - billManageTradeTypeVO.setBilltypename(rs.getString("billtypename")); - if ("263X".equals(parentbilltype)) { - billManageTradeTypeVO.setJkbx("jk"); - } else if ("264X".equals(parentbilltype)) { - billManageTradeTypeVO.setJkbx("bx"); - } - } - - return resultList; - } - }); - } catch (BusinessException e) { - Logger.error(e.getMessage(), e); - } - - return permBillTypeList; - } - - private String[] queryPkPsndocByNameLike(String keyWord) throws Exception { - String sql = "select pk_psndoc from bd_psndoc where ( dr = 0 or dr is null ) and name like ? "; - SQLParameter sqlParam = new SQLParameter(); - sqlParam.addParam("%" + keyWord + "%"); - IUAPQueryBS iuapQryService = (IUAPQueryBS)NCLocator.getInstance().lookup(IUAPQueryBS.class); - String[] resultPsndoc = (String[])iuapQryService.executeQuery(sql, sqlParam, new ResultSetProcessor() { - private static final long serialVersionUID = 1L; - - public Object handleResultSet(ResultSet rs) throws SQLException { - List resultList = new ArrayList(); - - while(rs.next()) { - String pkPsndoc = rs.getString("pk_psndoc"); - resultList.add(pkPsndoc); - } - - return resultList.size() == 0 ? new String[0] : resultList.toArray(new String[resultList.size()]); - } - }); - return resultPsndoc; - } - - private String[] queryPkDeptByNameLike(String keyWord) throws Exception { - String sql = "select pk_dept, name from org_dept where ( dr = 0 or dr is null ) and name like ? "; - SQLParameter sqlParam = new SQLParameter(); - sqlParam.addParam("%" + keyWord + "%"); - IUAPQueryBS iuapQryService = (IUAPQueryBS)NCLocator.getInstance().lookup(IUAPQueryBS.class); - String[] resultPkDept = (String[])iuapQryService.executeQuery(sql, sqlParam, new ResultSetProcessor() { - private static final long serialVersionUID = 1L; - - public Object handleResultSet(ResultSet rs) throws SQLException { - List resultList = new ArrayList(); - - while(rs.next()) { - String pkDept = rs.getString("pk_dept"); - resultList.add(pkDept); - } - - return resultList.size() == 0 ? new String[0] : resultList.toArray(new String[resultList.size()]); - } - }); - return resultPkDept; - } - - private Map geConditionSqlByConditions(QueryTreeFormatVO queryTreeFormatVO) throws BusinessException { - Map whereSqlMap = new HashMap(); - QueryCondition queryCondition = queryTreeFormatVO.getQuerycondition(); - if (queryCondition != null) { - List conditions = queryCondition.getConditions(); - if (conditions != null && conditions.size() > 0) { - StringBuilder conditionBuilderJK = new StringBuilder(""); - StringBuilder conditionBuilderBX = new StringBuilder(" and djlxbm!='264a' and djlxbm!='2647' and djlxbm != '264X-Cxx-SKBG'"); - StringBuilder conditionBuilderHK = new StringBuilder(" and djlxbm='2647' "); - StringBuilder conditionBuilderTZ = new StringBuilder(" and djlxbm='264a' "); - StringBuilder conditionBuilderSQ = new StringBuilder(""); - StringBuilder conditionBuilderYT = new StringBuilder(""); - StringBuilder conditionBuilderJZ = new StringBuilder(""); - StringBuilder conditionBuilderTX = new StringBuilder(""); - String appCode = queryTreeFormatVO.getAppcode(); - if ("201104DJGL".equals(appCode)) { - String userId = InvocationInfoProxy.getInstance().getUserId(); - String pk_group = InvocationInfoProxy.getInstance().getGroupId(); - String jkbxr = ""; - String[] psnInfos = ((IBXBillPrivate)NCLocator.getInstance().lookup(IBXBillPrivate.class)).queryPsnidAndDeptid(userId, pk_group); - if (psnInfos != null && psnInfos.length > 0) { - jkbxr = psnInfos[0]; - } - - conditionBuilderJK.append(" and (creator='").append(userId).append("' or jkbxr='").append(jkbxr).append("' ) "); - conditionBuilderBX.append(" and (creator='").append(userId).append("' or jkbxr='").append(jkbxr).append("' ) "); - conditionBuilderHK.append(" and creator='").append(userId).append("' "); - conditionBuilderTZ.append(" and creator='").append(userId).append("' "); - conditionBuilderSQ.append(" and creator='").append(userId).append("' "); - conditionBuilderYT.append(" and creator='").append(userId).append("' "); - conditionBuilderJZ.append(" and (creator='").append(userId).append("' or jkbxr='").append(jkbxr).append("' ) "); - conditionBuilderTX.append(" and (e.creator='").append(userId).append("' or e.bx_jkbxr='").append(jkbxr).append("' ) "); - } - - boolean ifHasTradeType = false; - boolean filterByPkOrg = false; - String reconSQ = "1=2"; - String reconYT = "1=2"; - String reconJK = "1=2"; - String reconBX = "1=2"; - String reconHK = "1=2"; - String reconTZ = "1=2"; - String reconJZ = "1=2"; - String reconTX = "1=2"; - boolean hasRecon = false; - - for(Condition condition : conditions) { - if ("261X".equals(condition.getField())) { - reconSQ = SqlUtils.getInStr("pk_mtapp_bill", condition.getValue().getFirstvalue().split(","), true); - hasRecon = true; - } else if ("262X".equals(condition.getField())) { - reconYT = SqlUtils.getInStr("pk_accrued_bill", condition.getValue().getFirstvalue().split(","), true); - hasRecon = true; - } else if ("263X".equals(condition.getField())) { - reconJK = SqlUtils.getInStr("pk_jkbx", condition.getValue().getFirstvalue().split(","), true); - hasRecon = true; - } else if ("264X".equals(condition.getField())) { - reconBX = reconHK = reconTZ = SqlUtils.getInStr("pk_jkbx", condition.getValue().getFirstvalue().split(","), true); - hasRecon = true; - } else if ("265X".equals(condition.getField())) { - hasRecon = true; - reconJZ = SqlUtils.getInStr("pk_costshare", condition.getValue().getFirstvalue().split(","), true); - } else if ("266X".equals(condition.getField())) { - hasRecon = true; - reconTX = SqlUtils.getInStr("e.pk_expamtinfo", condition.getValue().getFirstvalue().split(","), true); - } else if ("isReconEmpty".equals(condition.getField())) { - hasRecon = true; - } else { - if ("pk_org".equals(condition.getField())) { - filterByPkOrg = true; - if (StringUtils.isNotEmpty(condition.getValue().getFirstvalue())) { - String[] orgs = condition.getValue().getFirstvalue().split(","); - String inSql = SqlUtils.getInStr("pk_org", orgs, true); - conditionBuilderJK.append(" and ").append(inSql); - conditionBuilderBX.append(" and ").append(inSql); - conditionBuilderHK.append(" and ").append(inSql); - conditionBuilderTZ.append(" and ").append(inSql); - conditionBuilderSQ.append(" and ").append(inSql); - conditionBuilderYT.append(" and ").append(inSql); - conditionBuilderJZ.append(" and ").append(inSql); - conditionBuilderTX.append(" and ").append(SqlUtils.getInStr("e.pk_org", orgs, true)); - } - } - if ("defitem11".equals(condition.getField())) { - filterByPkOrg = true; - if (StringUtils.isNotEmpty(condition.getValue().getFirstvalue())) { - String[] orgs = condition.getValue().getFirstvalue().split(","); -// String inSql = SqlUtils.getInStr("pk_org", orgs, true); er_mtapp_bill assume_dept - conditionBuilderJK.append(" and ").append(SqlUtils.getInStr("fydeptid", orgs, true)); - conditionBuilderBX.append(" and ").append(SqlUtils.getInStr("fydeptid", orgs, true)); - conditionBuilderHK.append(" and ").append(SqlUtils.getInStr("fydeptid", orgs, true)); - conditionBuilderTZ.append(" and ").append(SqlUtils.getInStr("fydeptid", orgs, true)); - conditionBuilderSQ.append(" and ").append(SqlUtils.getInStr("assume_dept", orgs, true)); - conditionBuilderYT.append(" and ").append(SqlUtils.getInStr("operator_dept", orgs, true)); - conditionBuilderJZ.append(" and ").append(SqlUtils.getInStr("fydeptid", orgs, true)); - conditionBuilderTX.append(" and ").append(SqlUtils.getInStr("e.bx_deptid", orgs, true)); - } - } - - if ("djrq".equals(condition.getField())) { - if (StringUtils.isNotEmpty(condition.getValue().getFirstvalue())) { - conditionBuilderJK.append(" and djrq >= '").append(condition.getValue().getFirstvalue()).append("' "); - conditionBuilderBX.append(" and djrq >= '").append(condition.getValue().getFirstvalue()).append("' "); - conditionBuilderHK.append(" and djrq >= '").append(condition.getValue().getFirstvalue()).append("' "); - conditionBuilderTZ.append(" and djrq >= '").append(condition.getValue().getFirstvalue()).append("' "); - conditionBuilderSQ.append(" and billdate >= '").append(condition.getValue().getFirstvalue()).append("' "); - conditionBuilderYT.append(" and billdate >= '").append(condition.getValue().getFirstvalue()).append("' "); - conditionBuilderJZ.append(" and billdate >= '").append(condition.getValue().getFirstvalue()).append("' "); - conditionBuilderTX.append(" and e.bx_djrq >= '").append(condition.getValue().getFirstvalue()).append("' "); - } - - if (StringUtils.isNotEmpty(condition.getValue().getSecondvalue())) { - conditionBuilderJK.append(" and djrq <= '").append(condition.getValue().getSecondvalue()).append("' "); - conditionBuilderBX.append(" and djrq <= '").append(condition.getValue().getSecondvalue()).append("' "); - conditionBuilderHK.append(" and djrq <= '").append(condition.getValue().getSecondvalue()).append("' "); - conditionBuilderTZ.append(" and djrq <= '").append(condition.getValue().getSecondvalue()).append("' "); - conditionBuilderSQ.append(" and billdate <= '").append(condition.getValue().getSecondvalue()).append("' "); - conditionBuilderYT.append(" and billdate <= '").append(condition.getValue().getSecondvalue()).append("' "); - conditionBuilderJZ.append(" and billdate <= '").append(condition.getValue().getSecondvalue()).append("' "); - conditionBuilderTX.append(" and e.bx_djrq <= '").append(condition.getValue().getSecondvalue()).append("' "); - } - } - - - if ("paydate".equals(condition.getField())) { - if (StringUtils.isNotEmpty(condition.getValue().getFirstvalue())) { - conditionBuilderJK.append(" and paydate >= '").append(condition.getValue().getFirstvalue()).append("' "); - conditionBuilderBX.append(" and paydate >= '").append(condition.getValue().getFirstvalue()).append("' "); - conditionBuilderHK.append(" and paydate >= '").append(condition.getValue().getFirstvalue()).append("' "); - conditionBuilderTZ.append(" and paydate >= '").append(condition.getValue().getFirstvalue()).append("' "); - } - - if (StringUtils.isNotEmpty(condition.getValue().getSecondvalue())) { - conditionBuilderJK.append(" and paydate <= '").append(condition.getValue().getSecondvalue()).append("' "); - conditionBuilderBX.append(" and paydate <= '").append(condition.getValue().getSecondvalue()).append("' "); - conditionBuilderHK.append(" and paydate <= '").append(condition.getValue().getSecondvalue()).append("' "); - conditionBuilderTZ.append(" and paydate <= '").append(condition.getValue().getSecondvalue()).append("' "); - } - } - - if ("djbh".equals(condition.getField()) && StringUtils.isNotEmpty(condition.getValue().getFirstvalue())) { - conditionBuilderJK.append(" and djbh like '%").append(condition.getValue().getFirstvalue()).append("%' "); - conditionBuilderHK.append(" and djbh like '%").append(condition.getValue().getFirstvalue()).append("%' "); - conditionBuilderBX.append(" and djbh like '%").append(condition.getValue().getFirstvalue()).append("%' "); - conditionBuilderTZ.append(" and djbh like '%").append(condition.getValue().getFirstvalue()).append("%' "); - conditionBuilderSQ.append(" and billno like '%").append(condition.getValue().getFirstvalue()).append("%' "); - conditionBuilderYT.append(" and billno like '%").append(condition.getValue().getFirstvalue()).append("%' "); - conditionBuilderJZ.append(" and billno like '%").append(condition.getValue().getFirstvalue()).append("%' "); - conditionBuilderTX.append(" and e.bx_billno like '%").append(condition.getValue().getFirstvalue()).append("%' "); - } - - if ("pk_tradetypeid".equals(condition.getField()) && StringUtils.isNotEmpty(condition.getValue().getFirstvalue())) { - ifHasTradeType = true; - String[] tradetypes = condition.getValue().getFirstvalue().split(","); - String inSql = SqlUtils.getInStr("pk_tradetypeid", tradetypes, true); - conditionBuilderJK.append(" and ").append(inSql); - conditionBuilderBX.append(" and ").append(inSql); - conditionBuilderHK.append(" and ").append(inSql); - conditionBuilderTZ.append(" and ").append(inSql); - conditionBuilderSQ.append(" and ").append(inSql); - conditionBuilderYT.append(" and ").append(inSql); - conditionBuilderJZ.append(" and ").append(inSql); - conditionBuilderTX.append(" and ").append(SqlUtils.getInStr("t.pk_billtypeid", tradetypes, true)); - } - - if ("ybje".equals(condition.getField())) { - if (StringUtils.isNotEmpty(condition.getValue().getFirstvalue())) { - conditionBuilderJK.append(" and ybje >= '").append(condition.getValue().getFirstvalue()).append("' "); - conditionBuilderBX.append(" and ybje >= '").append(condition.getValue().getFirstvalue()).append("' "); - conditionBuilderHK.append(" and hkybje >= '").append(condition.getValue().getFirstvalue()).append("' "); - conditionBuilderTZ.append(" and ybje >= '").append(condition.getValue().getFirstvalue()).append("' "); - conditionBuilderSQ.append(" and orig_amount\t >= '").append(condition.getValue().getFirstvalue()).append("' "); - conditionBuilderYT.append(" and org_amount >= '").append(condition.getValue().getFirstvalue()).append("' "); - conditionBuilderJZ.append(" and ybje >= '").append(condition.getValue().getFirstvalue()).append("' "); - conditionBuilderTX.append(" and e.total_amount >= '").append(condition.getValue().getFirstvalue()).append("' "); - } - - if (StringUtils.isNotEmpty(condition.getValue().getSecondvalue())) { - conditionBuilderJK.append(" and ybje <= '").append(condition.getValue().getSecondvalue()).append("' "); - conditionBuilderBX.append(" and ybje <= '").append(condition.getValue().getSecondvalue()).append("' "); - conditionBuilderHK.append(" and hkybje <= '").append(condition.getValue().getSecondvalue()).append("' "); - conditionBuilderTZ.append(" and ybje <= '").append(condition.getValue().getSecondvalue()).append("' "); - conditionBuilderSQ.append(" and orig_amount <= '").append(condition.getValue().getSecondvalue()).append("' "); - conditionBuilderYT.append(" and org_amount <= '").append(condition.getValue().getSecondvalue()).append("' "); - conditionBuilderJZ.append(" and ybje <= '").append(condition.getValue().getSecondvalue()).append("' "); - conditionBuilderTX.append(" and e.total_amount <= '").append(condition.getValue().getSecondvalue()).append("' "); - } - } - - if ("bzbm".equals(condition.getField()) && StringUtils.isNotEmpty(condition.getValue().getFirstvalue())) { - String[] bzbms = condition.getValue().getFirstvalue().split(","); - conditionBuilderJK.append(" and ").append(SqlUtils.getInStr("bzbm", bzbms, true)); - conditionBuilderBX.append(" and ").append(SqlUtils.getInStr("bzbm", bzbms, true)); - conditionBuilderHK.append(" and ").append(SqlUtils.getInStr("bzbm", bzbms, true)); - conditionBuilderTZ.append(" and ").append(SqlUtils.getInStr("bzbm", bzbms, true)); - conditionBuilderSQ.append(" and ").append(SqlUtils.getInStr("pk_currtype", bzbms, true)); - conditionBuilderYT.append(" and ").append(SqlUtils.getInStr("pk_currtype", bzbms, true)); - conditionBuilderJZ.append(" and ").append(SqlUtils.getInStr("bzbm", bzbms, true)); - conditionBuilderTX.append(" and ").append(SqlUtils.getInStr("e.bzbm", bzbms, true)); - } - - if ("djzt".equals(condition.getField()) && StringUtils.isNotEmpty(condition.getValue().getFirstvalue())) { - List list = Arrays.asList(condition.getValue().getFirstvalue().split(",")); - conditionBuilderJK.append(" and ").append(SqlUtils.getInStr("djzt", list, true)); - conditionBuilderBX.append(" and ").append(SqlUtils.getInStr("djzt", list, true)); - conditionBuilderHK.append(" and ").append(SqlUtils.getInStr("djzt", list, true)); - conditionBuilderJZ.append(" and ").append(SqlUtils.getInStr("billstatus", list, true)); - list = new ArrayList(list); - if (list.contains("3")) { - list.remove("3"); - } - - if (list.contains("2")) { - Collections.replaceAll(list, "2", "3"); - } - - conditionBuilderTZ.append(" and ").append(SqlUtils.getInStr("djzt", list, true)); - conditionBuilderSQ.append(" and ").append(SqlUtils.getInStr("billstatus", list, true)); - conditionBuilderYT.append(" and ").append(SqlUtils.getInStr("billstatus", list, true)); - conditionBuilderTX.append(" and ").append(SqlUtils.getInStr("3", list, true)); - } - - if ("spzt".equals(condition.getField()) && StringUtils.isNotEmpty(condition.getValue().getFirstvalue())) { - List list = Arrays.asList(condition.getValue().getFirstvalue().split(",")); - conditionBuilderJK.append(" and ").append(SqlUtils.getInStr("spzt", list, true)); - conditionBuilderBX.append(" and ").append(SqlUtils.getInStr("spzt", list, true)); - conditionBuilderHK.append(" and ").append(SqlUtils.getInStr("spzt", list, true)); - conditionBuilderTZ.append(" and ").append(SqlUtils.getInStr("spzt", list, true)); - conditionBuilderSQ.append(" and ").append(SqlUtils.getInStr("apprstatus", list, true)); - conditionBuilderYT.append(" and ").append(SqlUtils.getInStr("apprstatus", list, true)); - conditionBuilderTX.append(" and ").append(SqlUtils.getInStr("1", list, true)); - } - } - } - - if (hasRecon) { - conditionBuilderJK.append(" and ").append(reconJK); - conditionBuilderBX.append(" and ").append(reconBX); - conditionBuilderHK.append(" and ").append(reconHK); - conditionBuilderTZ.append(" and ").append(reconTZ); - conditionBuilderSQ.append(" and ").append(reconSQ); - conditionBuilderYT.append(" and ").append(reconYT); - conditionBuilderJZ.append(" and ").append(reconJZ); - conditionBuilderTX.append(" and ").append(reconTX); - } else { - if (!ifHasTradeType) { - String groupPk = InvocationInfoProxy.getInstance().getGroupId(); - String userId = InvocationInfoProxy.getInstance().getUserId(); - String currentDate = (new UFDateTime()).toLocalString(); - List permBillTypeList = ((IBillManageService)NCLocator.getInstance().lookup(IBillManageService.class)).queryPermBillType(userId, currentDate, groupPk); - if (permBillTypeList != null && permBillTypeList.size() > 0) { - String[] hasPermissionTradeTypecode = new String[permBillTypeList.size()]; - - for(int i = 0; i < permBillTypeList.size(); ++i) { - hasPermissionTradeTypecode[i] = ((BillManageTradeTypeVO)permBillTypeList.get(i)).getPk_billtypeid(); - } - - String inSql = SqlUtils.getInStr("pk_tradetypeid", hasPermissionTradeTypecode, true); - conditionBuilderJK.append(" and ").append(inSql); - conditionBuilderBX.append(" and ").append(inSql); - conditionBuilderHK.append(" and ").append(inSql); - conditionBuilderTZ.append(" and ").append(inSql); - conditionBuilderSQ.append(" and ").append(inSql); - conditionBuilderYT.append(" and ").append(inSql); - conditionBuilderJZ.append(" and ").append(inSql); - conditionBuilderTX.append(" and ").append(SqlUtils.getInStr("t.pk_billtypeid", hasPermissionTradeTypecode, true)); - } else { - conditionBuilderJK.append(" and ").append("1=2"); - conditionBuilderBX.append(" and ").append("1=2"); - conditionBuilderHK.append(" and ").append("1=2"); - conditionBuilderTZ.append(" and ").append("1=2"); - conditionBuilderSQ.append(" and ").append("1=2"); - conditionBuilderYT.append(" and ").append("1=2"); - conditionBuilderJZ.append(" and ").append("1=2"); - conditionBuilderTX.append(" and ").append("1=2"); - } - } - - if (!filterByPkOrg) { - IFunctionPermissionPubService service = (IFunctionPermissionPubService)NCLocator.getInstance().lookup(IFunctionPermissionPubService.class); - String[] orgByIDs = service.getUserPermissionPkOrgs(InvocationInfoProxy.getInstance().getUserId(), (String)null, InvocationInfoProxy.getInstance().getGroupId()); - String inSql = SqlUtils.getInStr("pk_org", orgByIDs, true); - conditionBuilderJK.append(" and ").append(inSql); - conditionBuilderBX.append(" and ").append(inSql); - conditionBuilderHK.append(" and ").append(inSql); - conditionBuilderTZ.append(" and ").append(inSql); - conditionBuilderSQ.append(" and ").append(inSql); - conditionBuilderYT.append(" and ").append(inSql); - conditionBuilderJZ.append(" and ").append(inSql); - conditionBuilderTX.append(" and ").append(SqlUtils.getInStr("e.pk_org", orgByIDs, true)); - } - } - - whereSqlMap.put("JK", conditionBuilderJK.toString()); - whereSqlMap.put("BX", conditionBuilderBX.toString()); - whereSqlMap.put("HK", conditionBuilderHK.toString()); - whereSqlMap.put("TZ", conditionBuilderTZ.toString()); - whereSqlMap.put("SQ", conditionBuilderSQ.toString()); - whereSqlMap.put("YT", conditionBuilderYT.toString()); - whereSqlMap.put("JZ", conditionBuilderJZ.toString()); - whereSqlMap.put("TX", conditionBuilderTX.toString()); - } - } - - return whereSqlMap; - } - - public List queryBillInfoByPage(QueryTreeFormatVO queryTreeFormatVO) throws Exception { - INCCloudQueryService ncCloudQueryService = (INCCloudQueryService)NCLocator.getInstance().lookup(INCCloudQueryService.class); - PageInfo pageInfo = null; - if (queryTreeFormatVO != null) { - pageInfo = queryTreeFormatVO.getPageInfo(); - } - - IQueryScheme queryscheme = ncCloudQueryService.convertCondition(queryTreeFormatVO); - if (queryscheme == null) { - return null; - } else { - SQLParameter sqlParam = new SQLParameter(); - StringBuilder conditionBuilder = new StringBuilder(); - String conditionSql = null; - QueryCondition queryCondition = queryTreeFormatVO.getQuerycondition(); - List conditions = queryCondition.getConditions(); - if (conditions != null && conditions.size() > 0) { - for(Condition condition : conditions) { - if (condition != null && condition.getValue() != null && "search".equals(condition.getField()) && !StringUtils.isEmpty(condition.getValue().getFirstvalue())) { - String keyWord = condition.getValue().getFirstvalue(); - conditionBuilder.append("and ( djbh like ? "); - sqlParam.addParam("%" + keyWord + "%"); - String[] pkDepts = this.queryPkDeptByNameLike(keyWord); - String[] pkPsndocs = this.queryPkPsndocByNameLike(keyWord); - if (pkDepts != null && pkDepts.length > 0) { - conditionBuilder.append(" or " + SqlUtils.getInStr("deptid_v", pkDepts, true)); - } - - if (pkPsndocs != null && pkPsndocs.length > 0) { - conditionBuilder.append(" or " + SqlUtils.getInStr("jkbxr", pkPsndocs, true)); - } - - conditionBuilder.append(")"); - } - } - } - - conditionSql = conditionBuilder.toString(); - Map sqlMap = this.geConditionSqlByConditions(queryTreeFormatVO); - StringBuilder sqlBuilder = new StringBuilder(); - sqlBuilder.append("select *").append(" from (select pk_jkbx as pk_jkbx,").append(" pk_tradetypeid as pk_tradetypeid,").append(" djlxbm as djlxbm,").append(" pk_billtype as pk_billtype,").append(" djbh as djbh,").append(" djrq as djrq,").append(" bzbm as bzbm,").append(" ybje as ybje,").append(" djzt as djzt,").append(" spzt as spzt,").append(" deptid as deptid_v,").append(" jkbxr as jkbxr,").append(" approver as approver,").append(" pk_org as pk_org, ").append(" creator as creator, ").append(" red_status as red_status, ").append(" saga_frozen as saga_frozen, ").append(" saga_btxid as saga_btxid, ").append(" saga_gtxid as saga_gtxid, ").append(" saga_status as saga_status, ").append(" shrq as shrq").append(" from er_jkzb").append(" where dr = 0 ").append(null == sqlMap.get("JK") ? "" : (String)sqlMap.get("JK")).append(" union all").append(" select pk_jkbx as pk_jkbx,").append(" pk_tradetypeid as pk_tradetypeid,").append(" djlxbm as djlxbm,").append(" pk_billtype as pk_billtype,").append(" djbh as djbh,").append(" djrq as djrq,").append(" bzbm as bzbm,").append(" \t\t\t ybje as ybje,").append(" djzt as djzt,").append(" spzt as spzt,").append(" deptid as deptid_v,").append(" jkbxr as jkbxr,").append(" approver as approver,").append(" pk_org as pk_org, ").append(" creator as creator, ").append(" red_status as red_status, ").append(" saga_frozen as saga_frozen, ").append(" saga_btxid as saga_btxid, ").append(" saga_gtxid as saga_gtxid, ").append(" saga_status as saga_status, ").append(" shrq as shrq").append(" from er_bxzb").append(" where dr = 0 ").append(null == sqlMap.get("BX") ? "" : (String)sqlMap.get("BX")).append(" union all").append(" select pk_jkbx as pk_jkbx,").append(" pk_tradetypeid as pk_tradetypeid,").append(" djlxbm as djlxbm,").append(" pk_billtype as pk_billtype,").append(" djbh as djbh,").append(" djrq as djrq,").append(" bzbm as bzbm,").append(" hkybje as ybje,").append(" djzt as djzt,").append(" spzt as spzt,").append(" deptid as deptid_v,").append(" jkbxr as jkbxr,").append(" approver as approver,").append(" pk_org as pk_org, ").append(" creator as creator, ").append(" red_status as red_status, ").append(" saga_frozen as saga_frozen, ").append(" saga_btxid as saga_btxid, ").append(" saga_gtxid as saga_gtxid, ").append(" saga_status as saga_status, ").append(" shrq as shrq").append(" from er_bxzb").append(" where dr = 0 ").append(null == sqlMap.get("HK") ? "" : (String)sqlMap.get("HK")).append(" union all").append(" select pk_jkbx as pk_jkbx,").append(" pk_tradetypeid as pk_tradetypeid,").append(" djlxbm as djlxbm,").append(" pk_billtype as pk_billtype,").append(" djbh as djbh,").append(" djrq as djrq,").append(" bzbm as bzbm,").append(" ybje as ybje,").append(" djzt as djzt,").append(" spzt as spzt,").append(" deptid as deptid_v,").append(" jkbxr as jkbxr,").append(" approver as approver,").append(" pk_org as pk_org, ").append(" creator as creator, ").append(" red_status as red_status, ").append(" saga_frozen as saga_frozen, ").append(" saga_btxid as saga_btxid, ").append(" saga_gtxid as saga_gtxid, ").append(" saga_status as saga_status, ").append(" shrq as shrq").append(" from er_bxzb").append(" where dr = 0 ").append(null == sqlMap.get("TZ") ? "" : (String)sqlMap.get("TZ")).append(" union all").append(" select pk_accrued_bill as pk_jkbx,").append(" pk_tradetypeid as pk_tradetypeid,").append(" pk_tradetype as djlxbm,").append(" pk_billtype as pk_billtype,").append(" billno as djbh,").append(" billdate as djrq,").append(" pk_currtype as bzbm,").append(" org_amount as ybje,").append(" billstatus as djzt,").append(" apprstatus as spzt,").append(" operator_dept as deptid_v,").append(" operator as jkbxr,").append(" approver as approver,").append(" pk_org as pk_org, ").append(" creator as creator, ").append(" redflag as red_status, ").append(" saga_frozen as saga_frozen, ").append(" saga_btxid as saga_btxid, ").append(" saga_gtxid as saga_gtxid, ").append(" saga_status as saga_status, ").append(" approvetime as shrq").append(" from er_accrued").append(" where dr = 0 ").append(null == sqlMap.get("YT") ? "" : (String)sqlMap.get("YT")).append(" union all").append(" select pk_mtapp_bill as pk_jkbx,").append(" pk_tradetypeid as pk_tradetypeid,").append(" pk_tradetype as djlxbm,").append(" pk_billtype as pk_billtype,").append(" billno as djbh,").append(" billdate as djrq,").append(" pk_currtype as bzbm,").append(" orig_amount as ybje,").append(" billstatus as djzt,").append(" apprstatus as spzt,").append(" apply_dept as deptid_v,").append(" billmaker as jkbxr,").append(" approver as approver,").append(" pk_org as pk_org, ").append(" creator as creator, ").append(" null as red_status, ").append(" saga_frozen as saga_frozen, ").append(" saga_btxid as saga_btxid, ").append(" saga_gtxid as saga_gtxid, ").append(" saga_status as saga_status, ").append(" approvetime as shrq").append(" from er_mtapp_bill").append(" where dr = 0 ").append(null == sqlMap.get("SQ") ? "" : (String)sqlMap.get("SQ")).append(" union all").append(" select pk_costshare as pk_jkbx,").append(" pk_tradetypeid as pk_tradetypeid,").append(" pk_tradetype as djlxbm,").append(" pk_billtype as pk_billtype,").append(" billno as djbh,").append(" billdate as djrq,").append(" bzbm as bzbm,").append(" ybje as ybje,").append(" billstatus as djzt,").append(" case when billstatus=2 or billstatus=3 then 1 else -1 end as spzt,").append(" deptid as deptid_v,").append(" jkbxr as jkbxr,").append(" approver as approver,").append(" pk_org as pk_org, ").append(" creator as creator, ").append(" null as red_status, ").append(" saga_frozen as saga_frozen, ").append(" saga_btxid as saga_btxid, ").append(" saga_gtxid as saga_gtxid, ").append(" saga_status as saga_status, ").append(" approvedate as shrq").append(" from er_costshare").append(" where dr = 0 ").append(null == sqlMap.get("JZ") ? "" : (String)sqlMap.get("JZ")).append(" union all").append(" select e.pk_jkbx as pk_jkbx,").append(" t.pk_billtypeid as pk_tradetypeid,").append(" e.bx_pk_billtype as djlxbm,").append(" t.parentbilltype as pk_billtype,").append(" e.bx_billno as djbh,").append(" e.bx_djrq as djrq,").append(" e.bzbm as bzbm,").append(" e.total_amount as ybje,").append(" 3 as djzt,").append(" \t\t\t\t 1\t\t as spzt,").append(" e.bx_deptid as deptid_v,").append(" e.bx_jkbxr as jkbxr,").append(" null as approver,").append(" e.pk_org as pk_org, ").append(" e.creator as creator, ").append(" null as red_status, ").append(" e.saga_frozen as saga_frozen, ").append(" e.saga_btxid as saga_btxid, ").append(" e.saga_gtxid as saga_gtxid, ").append(" e.saga_status as saga_status, ").append(" null as shrq").append(" from er_expamtinfo e").append(" left join bd_billtype t on t.PK_BILLTYPECODE=e.bx_pk_billtype and t.PK_GROUP=e.PK_GROUP").append(" where e.dr = 0 ").append(null == sqlMap.get("TX") ? "" : (String)sqlMap.get("TX")).append(" ) temp where 1=1 "); - if (!conditionSql.isEmpty()) { - sqlBuilder.append(conditionSql); - } - - String sql = sqlBuilder.toString(); - if (pageInfo != null) { - if (pageInfo.getTotal() == 0) { - Integer total = this.countBillInfoByCondition(queryTreeFormatVO, conditionSql, sqlParam, sqlMap); - pageInfo.setTotal(total); - } - - Integer pageSize = Integer.valueOf(pageInfo.getPageSize()); - Integer totalPage = pageInfo.getTotal() % pageSize == 0 ? pageInfo.getTotal() / pageSize : pageInfo.getTotal() / pageSize + 1; - pageInfo.setTotalPage(totalPage); - int databaseType = DataSourceCenter.getInstance().getDatabaseType(); - LimitSQLBuilder sqlBuilderPage = SQLBuilderFactory.getInstance().createLimitSQLBuilder(databaseType); - int pageIndex = 0; - if (!StringUtils.isEmpty(pageInfo.getPageIndex())) { - pageIndex = Integer.valueOf(pageInfo.getPageIndex()); - } - - sql = sqlBuilderPage.build(sql + " order by temp.djrq desc", pageIndex + 1, Integer.valueOf(pageInfo.getPageSize())); - } else { - sql = sql + " order by temp.djrq desc"; - } - - IUAPQueryBS iuapQryService = (IUAPQueryBS)NCLocator.getInstance().lookup(IUAPQueryBS.class); - List resultList = (List)iuapQryService.executeQuery(sql, sqlParam, new JKBXHeaderResultSetProcessor()); - return resultList; - } - } - - public int countBillInfoByCondition(QueryTreeFormatVO queryTreeFormatVO, String conditionSql, SQLParameter sqlParam, Map sqlMap) throws Exception { - StringBuilder sqlBuilder = new StringBuilder(); - sqlBuilder.append("select count(1) as count from("); - sqlBuilder.append("select *").append(" from (select pk_jkbx as pk_jkbx,").append(" pk_tradetypeid as pk_tradetypeid,").append(" djlxbm as djlxbm,").append(" pk_billtype as pk_billtype,").append(" djbh as djbh,").append(" djrq as djrq,").append(" bzbm as bzbm,").append(" ybje as ybje,").append(" djzt as djzt,").append(" spzt as spzt,").append(" deptid as deptid_v,").append(" jkbxr as jkbxr,").append(" approver as approver,").append(" pk_org as pk_org, ").append(" creator as creator, ").append(" saga_frozen as saga_frozen, ").append(" saga_btxid as saga_btxid, ").append(" saga_gtxid as saga_gtxid, ").append(" saga_status as saga_status, ").append(" shrq as shrq").append(" from er_jkzb").append(" where dr = 0 ").append(null == sqlMap.get("JK") ? "" : (String)sqlMap.get("JK")).append(" union all").append(" select pk_jkbx as pk_jkbx,").append(" pk_tradetypeid as pk_tradetypeid,").append(" djlxbm as djlxbm,").append(" pk_billtype as pk_billtype,").append(" djbh as djbh,").append(" djrq as djrq,").append(" bzbm as bzbm,").append(" ybje as ybje,").append(" djzt as djzt,").append(" spzt as spzt,").append(" deptid as deptid_v,").append(" jkbxr as jkbxr,").append(" approver as approver,").append(" pk_org as pk_org, ").append(" creator as creator, ").append(" saga_frozen as saga_frozen, ").append(" saga_btxid as saga_btxid, ").append(" saga_gtxid as saga_gtxid, ").append(" saga_status as saga_status, ").append(" shrq as shrq").append(" from er_bxzb").append(" where dr = 0 ").append(null == sqlMap.get("BX") ? "" : (String)sqlMap.get("BX")).append(" union all").append(" select pk_jkbx as pk_jkbx,").append(" pk_tradetypeid as pk_tradetypeid,").append(" djlxbm as djlxbm,").append(" pk_billtype as pk_billtype,").append(" djbh as djbh,").append(" djrq as djrq,").append(" bzbm as bzbm,").append(" hkybje as ybje,").append(" djzt as djzt,").append(" spzt as spzt,").append(" deptid as deptid_v,").append(" jkbxr as jkbxr,").append(" approver as approver,").append(" pk_org as pk_org, ").append(" creator as creator, ").append(" saga_frozen as saga_frozen, ").append(" saga_btxid as saga_btxid, ").append(" saga_gtxid as saga_gtxid, ").append(" saga_status as saga_status, ").append(" shrq as shrq").append(" from er_bxzb").append(" where dr = 0 ").append(null == sqlMap.get("HK") ? "" : (String)sqlMap.get("HK")).append(" union all").append(" select pk_jkbx as pk_jkbx,").append(" pk_tradetypeid as pk_tradetypeid,").append(" djlxbm as djlxbm,").append(" pk_billtype as pk_billtype,").append(" djbh as djbh,").append(" djrq as djrq,").append(" bzbm as bzbm,").append(" ybje as ybje,").append(" djzt as djzt,").append(" spzt as spzt,").append(" deptid as deptid_v,").append(" jkbxr as jkbxr,").append(" approver as approver,").append(" pk_org as pk_org, ").append(" creator as creator, ").append(" saga_frozen as saga_frozen, ").append(" saga_btxid as saga_btxid, ").append(" saga_gtxid as saga_gtxid, ").append(" saga_status as saga_status, ").append(" shrq as shrq").append(" from er_bxzb").append(" where dr = 0 ").append(null == sqlMap.get("TZ") ? "" : (String)sqlMap.get("TZ")).append(" union all").append(" select pk_accrued_bill as pk_jkbx,").append(" pk_tradetypeid as pk_tradetypeid,").append(" pk_tradetype as djlxbm,").append(" pk_billtype as pk_billtype,").append(" billno as djbh,").append(" billdate as djrq,").append(" pk_currtype as bzbm,").append(" org_amount as ybje,").append(" billstatus as djzt,").append(" apprstatus as spzt,").append(" operator_dept as deptid_v,").append(" operator as jkbxr,").append(" approver as approver,").append(" pk_org as pk_org, ").append(" creator as creator, ").append(" saga_frozen as saga_frozen, ").append(" saga_btxid as saga_btxid, ").append(" saga_gtxid as saga_gtxid, ").append(" saga_status as saga_status, ").append(" approvetime as shrq").append(" from er_accrued").append(" where dr = 0 ").append(null == sqlMap.get("YT") ? "" : (String)sqlMap.get("YT")).append(" union all").append(" select pk_mtapp_bill as pk_jkbx,").append(" pk_tradetypeid as pk_tradetypeid,").append(" pk_tradetype as djlxbm,").append(" pk_billtype as pk_billtype,").append(" billno as djbh,").append(" billdate as djrq,").append(" pk_currtype as bzbm,").append(" orig_amount as ybje,").append(" billstatus as djzt,").append(" apprstatus as spzt,").append(" apply_dept as deptid_v,").append(" billmaker as jkbxr,").append(" approver as approver,").append(" pk_org as pk_org, ").append(" creator as creator, ").append(" saga_frozen as saga_frozen, ").append(" saga_btxid as saga_btxid, ").append(" saga_gtxid as saga_gtxid, ").append(" saga_status as saga_status, ").append(" approvetime as shrq").append(" from er_mtapp_bill").append(" where dr = 0 ").append(null == sqlMap.get("SQ") ? "" : (String)sqlMap.get("SQ")).append(" union all").append(" select pk_costshare as pk_jkbx,").append(" pk_tradetypeid as pk_tradetypeid,").append(" pk_tradetype as djlxbm,").append(" pk_billtype as pk_billtype,").append(" billno as djbh,").append(" billdate as djrq,").append(" bzbm as bzbm,").append(" ybje as ybje,").append(" billstatus as djzt,").append(" case when billstatus=2 or billstatus=3 then 1 else -1 end as spzt,").append(" deptid as deptid_v,").append(" jkbxr as jkbxr,").append(" approver as approver,").append(" pk_org as pk_org, ").append(" creator as creator, ").append(" saga_frozen as saga_frozen, ").append(" saga_btxid as saga_btxid, ").append(" saga_gtxid as saga_gtxid, ").append(" saga_status as saga_status, ").append(" approvedate as shrq").append(" from er_costshare").append(" where dr = 0 ").append(null == sqlMap.get("JZ") ? "" : (String)sqlMap.get("JZ")).append(" union all").append(" select e.pk_jkbx as pk_jkbx,").append(" t.pk_billtypeid as pk_tradetypeid,").append(" e.bx_pk_billtype as djlxbm,").append(" t.parentbilltype as pk_billtype,").append(" e.bx_billno as djbh,").append(" e.bx_djrq as djrq,").append(" e.bzbm as bzbm,").append(" e.total_amount as ybje,").append(" 3 as djzt,").append(" \t\t\t\t 1\t\t as spzt,").append(" e.bx_deptid as deptid_v,").append(" e.bx_jkbxr as jkbxr,").append(" null as approver,").append(" e.pk_org as pk_org, ").append(" e.creator as creator, ").append(" e.saga_frozen as saga_frozen, ").append(" e.saga_btxid as saga_btxid, ").append(" e.saga_gtxid as saga_gtxid, ").append(" e.saga_status as saga_status, ").append(" null as shrq").append(" from er_expamtinfo e").append(" left join bd_billtype t on t.PK_BILLTYPECODE=e.bx_pk_billtype and t.PK_GROUP=e.PK_GROUP").append(" where e.dr = 0 ").append(null == sqlMap.get("TX") ? "" : (String)sqlMap.get("TX")).append(" )temp where 1=1 "); - if (!conditionSql.isEmpty()) { - sqlBuilder.append(conditionSql); - } - - sqlBuilder.append(") a "); - String sql = sqlBuilder.toString(); - IUAPQueryBS iuapQryService = (IUAPQueryBS)NCLocator.getInstance().lookup(IUAPQueryBS.class); - int count = (Integer)iuapQryService.executeQuery(sql, sqlParam, new ResultSetProcessor() { - private static final long serialVersionUID = 1L; - - public Object handleResultSet(ResultSet rs) throws SQLException { - int count; - for(count = 0; rs.next(); count = rs.getInt("count")) { - } - - return count; - } - }); - return count; - } - - public Map qryCurApproveman(List billIds) throws BusinessException { - StringBuilder sqlExe = new StringBuilder(); - sqlExe.append("select n.billid as billid, n.checkman as checkman, n.ischeck as ischeck"); - sqlExe.append(" from pub_wf_task t inner join pub_workflownote n on t.pk_wf_task=n.pk_wf_task"); - sqlExe.append(" where ").append(SqlUtils.getInStr("n.billid", billIds, true)); - sqlExe.append(" and t.taskstatus=0 "); - sqlExe.append(" and n.approvestatus =0 "); - IUAPQueryBS iuapQryService = (IUAPQueryBS)NCLocator.getInstance().lookup(IUAPQueryBS.class); - SQLParameter sqlParam = new SQLParameter(); - List approveInfos = (List)iuapQryService.executeQuery(sqlExe.toString(), sqlParam, new ArrayListProcessor()); - List busiidUserList = new ArrayList(); - List userid = new ArrayList(); - - for(Object[] approveInfo : approveInfos) { - String[] busiidUser = new String[]{(String)approveInfo[0], (String)approveInfo[1]}; - busiidUserList.add(busiidUser); - userid.add((String)approveInfo[1]); - } - - IUserManageQuery userQry = (IUserManageQuery)NCLocator.getInstance().lookup(IUserManageQuery.class); - UserVO[] userVOs = userQry.queryUserByClause(SqlUtils.getInStr("cuserid", userid, true)); - Map userid_username = new HashMap(); - - for(UserVO vo : userVOs) { - userid_username.put(vo.getCuserid(), vo.getUser_name()); - } - - for(String[] busiidUser : busiidUserList) { - busiidUser[1] = (String)userid_username.get(busiidUser[1]); - } - - Map busiid_username = new HashMap(); - - for(String[] busiidUser : busiidUserList) { - if (!busiid_username.containsKey(busiidUser[0])) { - busiid_username.put(busiidUser[0], busiidUser[1]); - } else { - String var10000 = (String)busiid_username.get(busiidUser[0]); - String multiName = var10000 + ", " + busiidUser[1]; - busiid_username.put(busiidUser[0], multiName); - } - } - - return busiid_username; - } - - private class JKBXHeaderResultSetProcessor implements ResultSetProcessor { - private static final long serialVersionUID = 1L; - - private JKBXHeaderResultSetProcessor() { - } - - public Object handleResultSet(ResultSet rs) throws SQLException { - List resultList = new ArrayList(); - - while(rs.next()) { - JKBXHeaderVO tempHeader = new BXHeaderVO(); - tempHeader.setPk_jkbx(rs.getString("pk_jkbx")); - tempHeader.setPk_tradetypeid(rs.getString("pk_tradetypeid")); - tempHeader.setDjlxbm(rs.getString("djlxbm")); - tempHeader.setPk_billtype(rs.getString("pk_billtype")); - tempHeader.setDjbh(rs.getString("djbh")); - tempHeader.setDjrq(StringUtils.isEmpty(rs.getString("djrq")) ? null : new UFDate(rs.getString("djrq"))); - tempHeader.setBzbm(rs.getString("bzbm")); - tempHeader.setYbje(new UFDouble(rs.getDouble("ybje"))); - tempHeader.setDjzt(rs.getInt("djzt")); - tempHeader.setSpzt(rs.getInt("spzt")); - tempHeader.setDeptid_v(rs.getString("deptid_v")); - tempHeader.setJkbxr(rs.getString("jkbxr")); - tempHeader.setApprover(rs.getString("approver")); - tempHeader.setPk_org(rs.getString("pk_org")); - tempHeader.setCreator(rs.getString("creator")); - tempHeader.setRed_status(rs.getInt("red_status")); - tempHeader.setShrq(StringUtils.isEmpty(rs.getString("shrq")) ? null : new UFDateTime(rs.getString("shrq"))); - tempHeader.setSaga_frozen(rs.getInt("saga_frozen")); - tempHeader.setSaga_btxid(rs.getString("saga_btxid")); - tempHeader.setSaga_gtxid(rs.getString("saga_gtxid")); - tempHeader.setSaga_status(rs.getInt("saga_status")); - resultList.add(tempHeader); - } - - return resultList; - } - } + private final String APPCODE_DJGL = "201104DJGL"; + private final String SQLKEY_JK = "JK"; + private final String SQLKEY_BX = "BX"; + private final String SQLKEY_HK = "HK"; + private final String SQLKEY_TZ = "TZ"; + private final String SQLKEY_SQ = "SQ"; + private final String SQLKEY_YT = "YT"; + private final String SQLKEY_JZ = "JZ"; + private final String SQLKEY_TX = "TX"; + + public BillManageServiceImpl() { + } + + public List queryBillInfoByPks(String[] pks) throws Exception { + if (pks != null && pks.length != 0) { + String whereSql = SqlUtils.getInStr("pk_jkbx", pks, true); + StringBuilder sqlBuilder = new StringBuilder(); + sqlBuilder.append("select *").append(" from (select pk_jkbx as pk_jkbx,").append(" pk_tradetypeid as pk_tradetypeid,").append(" djlxbm as djlxbm,").append(" pk_billtype as pk_billtype,").append(" djbh as djbh,").append(" djrq as djrq,").append(" bzbm as bzbm,").append(" ybje as ybje,").append(" djzt as djzt,").append(" spzt as spzt,").append(" deptid as deptid_v,").append(" jkbxr as jkbxr,").append(" approver as approver,").append(" pk_org as pk_org, ").append(" creator as creator, ").append(" red_status as red_status, ").append(" saga_frozen as saga_frozen, ").append(" saga_btxid as saga_btxid, ").append(" saga_gtxid as saga_gtxid, ").append(" saga_status as saga_status, ").append(" shrq as shrq").append(" from er_jkzb where dr = 0 ").append(" union all").append(" select pk_jkbx as pk_jkbx,").append(" pk_tradetypeid as pk_tradetypeid,").append(" djlxbm as djlxbm,").append(" pk_billtype as pk_billtype,").append(" djbh as djbh,").append(" djrq as djrq,").append(" bzbm as bzbm,").append(" ybje as ybje,").append(" djzt as djzt,").append(" spzt as spzt,").append(" deptid as deptid_v,").append(" jkbxr as jkbxr,").append(" approver as approver,").append(" pk_org as pk_org, ").append(" creator as creator, ").append(" red_status as red_status, ").append(" saga_frozen as saga_frozen, ").append(" saga_btxid as saga_btxid, ").append(" saga_gtxid as saga_gtxid, ").append(" saga_status as saga_status, ").append(" shrq as shrq").append(" from er_bxzb where dr = 0 ").append(" union all").append(" select pk_accrued_bill as pk_jkbx,").append(" pk_tradetypeid as pk_tradetypeid,").append(" pk_tradetype as djlxbm,").append(" pk_billtype as pk_billtype,").append(" billno as djbh,").append(" billdate as djrq,").append(" pk_currtype as bzbm,").append(" org_amount as ybje,").append(" billstatus as djzt,").append(" apprstatus as spzt,").append(" operator_dept as deptid_v,").append(" operator as jkbxr,").append(" approver as approver,").append(" pk_org as pk_org, ").append(" creator as creator, ").append(" redflag as red_status, ").append(" saga_frozen as saga_frozen, ").append(" saga_btxid as saga_btxid, ").append(" saga_gtxid as saga_gtxid, ").append(" saga_status as saga_status, ").append(" approvetime as shrq").append(" from er_accrued where dr=0 ").append(" union all").append(" select pk_mtapp_bill as pk_jkbx,").append(" pk_tradetypeid as pk_tradetypeid,").append(" pk_tradetype as djlxbm,").append(" pk_billtype as pk_billtype,").append(" billno as djbh,").append(" billdate as djrq,").append(" pk_currtype as bzbm,").append(" orig_amount as ybje,").append(" billstatus as djzt,").append(" apprstatus as spzt,").append(" apply_dept as deptid_v,").append(" billmaker as jkbxr,").append(" approver as approver,").append(" pk_org as pk_org, ").append(" creator as creator, ").append(" null as red_status, ").append(" saga_frozen as saga_frozen, ").append(" saga_btxid as saga_btxid, ").append(" saga_gtxid as saga_gtxid, ").append(" saga_status as saga_status, ").append(" approvetime as shrq").append(" from er_mtapp_bill where dr = 0 ").append(" union all").append(" select pk_costshare as pk_jkbx,").append(" pk_tradetypeid as pk_tradetypeid,").append(" pk_tradetype as djlxbm,").append(" pk_billtype as pk_billtype,").append(" billno as djbh,").append(" billdate as djrq,").append(" bzbm as bzbm,").append(" ybje as ybje,").append(" billstatus as djzt,").append(" case when billstatus=2 or billstatus=3 then 1 else -1 end as spzt,").append(" deptid as deptid_v,").append(" jkbxr as jkbxr,").append(" approver as approver,").append(" pk_org as pk_org, ").append(" creator as creator, ").append(" null as red_status, ").append(" saga_frozen as saga_frozen, ").append(" saga_btxid as saga_btxid, ").append(" saga_gtxid as saga_gtxid, ").append(" saga_status as saga_status, ").append(" approvedate as shrq").append(" from er_costshare").append(" where dr = 0 ").append(" union all").append(" select e.pk_jkbx as pk_jkbx,").append(" t.pk_billtypeid as pk_tradetypeid,").append(" e.bx_pk_billtype as djlxbm,").append(" t.parentbilltype as pk_billtype,").append(" e.bx_billno as djbh,").append(" e.bx_djrq as djrq,").append(" e.bzbm as bzbm,").append(" e.total_amount as ybje,").append(" 3 as djzt,").append(" \t\t\t\t 1\t\t as spzt,").append(" e.bx_deptid as deptid_v,").append(" e.bx_jkbxr as jkbxr,").append(" null as approver,").append(" e.pk_org as pk_org, ").append(" e.creator as creator, ").append(" null as red_status, ").append(" e.saga_frozen as saga_frozen, ").append(" e.saga_btxid as saga_btxid, ").append(" e.saga_gtxid as saga_gtxid, ").append(" e.saga_status as saga_status, ").append(" null as shrq").append(" from er_expamtinfo e").append(" left join bd_billtype t on t.PK_BILLTYPECODE=e.bx_pk_billtype and t.PK_GROUP=e.PK_GROUP").append(" where e.dr = 0 ").append(" ) temp where ").append(whereSql); + sqlBuilder.append(" order by temp.djrq desc"); + String sql = sqlBuilder.toString(); + SQLParameter sqlParam = new SQLParameter(); + IUAPQueryBS iuapQryService = (IUAPQueryBS)NCLocator.getInstance().lookup(IUAPQueryBS.class); + List resultList = (List)iuapQryService.executeQuery(sql, sqlParam, new JKBXHeaderResultSetProcessor()); + return resultList; + } else { + return null; + } + } + + public List queryPermBillType(String userId, String currentDate, String pkGroup) { + List permBillTypeList = new ArrayList(); + + try { + String sql = " select distinct pub_publishapp.pk_billtypecode as pk_billtypecode,sm_appregister.code as apppcode,sm_apppage.pagecode as pagecode,sm_apppage.pageurl as url, bd_billtype.parentbilltype as parentbilltype, bd_billtype.pk_billtypeid as pk_billtypeid, bd_billtype.billtypename" + MultiLangUtil.getCurrentLangSeqSuffix() + " as billtypename from sm_appregister inner join pub_publishapp on sm_appregister.pk_appregister=pub_publishapp.publishappid inner join sm_apppage on sm_apppage.parent_id=sm_appregister.pk_appregister inner join bd_billtype on pub_publishapp.pk_billtypecode=bd_billtype.pk_billtypecode where sm_appregister.pk_appregister in ( select distinct ra.pk_app from sm_resp_app ra, sm_perm_func pf, sm_appregister app where ra.pk_responsibility = pf.ruleid and app.pk_appregister = ra.pk_app and exists ( select 1 from sm_user_role ur where pf.subjectid = ur.pk_role and cuserid = ? and enabledate <= ? and ( isnull(cast(disabledate as char),'~')='~' or disabledate > ?)) and app.isenable = 'Y' and ( isnull(app.pk_group,'~') = '~' or app.pk_group = ?) and pf.pk_group = ? and app.own_module='2011') and pub_publishapp.sence=10 and pub_publishapp.dr=0 and bd_billtype.parentbilltype in('261X','262X','263X','264X','265X','266X') and bd_billtype.pk_billtypecode != '264X-Cxx-SKBG' and sm_apppage.isdefault='Y' and bd_billtype.pk_group= ? "; + SQLParameter sqlParam = new SQLParameter(); + sqlParam.addParam(userId); + sqlParam.addParam(currentDate); + sqlParam.addParam(currentDate); + sqlParam.addParam(pkGroup); + sqlParam.addParam(pkGroup); + sqlParam.addParam(pkGroup); + IUAPQueryBS iuapQryService = (IUAPQueryBS)NCLocator.getInstance().lookup(IUAPQueryBS.class); + permBillTypeList = (List)iuapQryService.executeQuery(sql, sqlParam, new ResultSetProcessor() { + private static final long serialVersionUID = 1L; + + public Object handleResultSet(ResultSet rs) throws SQLException { + List resultList; + BillManageTradeTypeVO billManageTradeTypeVO; + for(resultList = new ArrayList(); rs.next(); resultList.add(billManageTradeTypeVO)) { + billManageTradeTypeVO = new BillManageTradeTypeVO(); + String pk_billtypecode = rs.getString("pk_billtypecode"); + String appcode = rs.getString("apppcode"); + String pagecode = rs.getString("pagecode"); + String url = rs.getString("url"); + String parentbilltype = rs.getString("parentbilltype"); + billManageTradeTypeVO.setPk_billtypecode(pk_billtypecode); + billManageTradeTypeVO.setAppcode(appcode); + billManageTradeTypeVO.setPagecode(pagecode); + billManageTradeTypeVO.setUrl(url); + billManageTradeTypeVO.setParentbilltype(parentbilltype); + billManageTradeTypeVO.setPk_billtypeid(rs.getString("pk_billtypeid")); + billManageTradeTypeVO.setBilltypename(rs.getString("billtypename")); + if ("263X".equals(parentbilltype)) { + billManageTradeTypeVO.setJkbx("jk"); + } else if ("264X".equals(parentbilltype)) { + billManageTradeTypeVO.setJkbx("bx"); + } + } + + return resultList; + } + }); + } catch (BusinessException e) { + Logger.error(e.getMessage(), e); + } + + return permBillTypeList; + } + + private String[] queryPkPsndocByNameLike(String keyWord) throws Exception { + String sql = "select pk_psndoc from bd_psndoc where ( dr = 0 or dr is null ) and name like ? "; + SQLParameter sqlParam = new SQLParameter(); + sqlParam.addParam("%" + keyWord + "%"); + IUAPQueryBS iuapQryService = (IUAPQueryBS)NCLocator.getInstance().lookup(IUAPQueryBS.class); + String[] resultPsndoc = (String[])iuapQryService.executeQuery(sql, sqlParam, new ResultSetProcessor() { + private static final long serialVersionUID = 1L; + + public Object handleResultSet(ResultSet rs) throws SQLException { + List resultList = new ArrayList(); + + while(rs.next()) { + String pkPsndoc = rs.getString("pk_psndoc"); + resultList.add(pkPsndoc); + } + + return resultList.size() == 0 ? new String[0] : resultList.toArray(new String[resultList.size()]); + } + }); + return resultPsndoc; + } + + private String[] queryPkDeptByNameLike(String keyWord) throws Exception { + String sql = "select pk_dept, name from org_dept where ( dr = 0 or dr is null ) and name like ? "; + SQLParameter sqlParam = new SQLParameter(); + sqlParam.addParam("%" + keyWord + "%"); + IUAPQueryBS iuapQryService = (IUAPQueryBS)NCLocator.getInstance().lookup(IUAPQueryBS.class); + String[] resultPkDept = (String[])iuapQryService.executeQuery(sql, sqlParam, new ResultSetProcessor() { + private static final long serialVersionUID = 1L; + + public Object handleResultSet(ResultSet rs) throws SQLException { + List resultList = new ArrayList(); + + while(rs.next()) { + String pkDept = rs.getString("pk_dept"); + resultList.add(pkDept); + } + + return resultList.size() == 0 ? new String[0] : resultList.toArray(new String[resultList.size()]); + } + }); + return resultPkDept; + } + + private Map geConditionSqlByConditions(QueryTreeFormatVO queryTreeFormatVO) throws BusinessException { + Map whereSqlMap = new HashMap(); + QueryCondition queryCondition = queryTreeFormatVO.getQuerycondition(); + if (queryCondition != null) { + List conditions = queryCondition.getConditions(); + if (conditions != null && conditions.size() > 0) { + StringBuilder conditionBuilderJK = new StringBuilder(""); + StringBuilder conditionBuilderBX = new StringBuilder(" and djlxbm!='264a' and djlxbm!='2647' and djlxbm != '264X-Cxx-SKBG'"); + StringBuilder conditionBuilderHK = new StringBuilder(" and djlxbm='2647' "); + StringBuilder conditionBuilderTZ = new StringBuilder(" and djlxbm='264a' "); + StringBuilder conditionBuilderSQ = new StringBuilder(""); + StringBuilder conditionBuilderYT = new StringBuilder(""); + StringBuilder conditionBuilderJZ = new StringBuilder(""); + StringBuilder conditionBuilderTX = new StringBuilder(""); + String appCode = queryTreeFormatVO.getAppcode(); + if ("201104DJGL".equals(appCode)) { + String userId = InvocationInfoProxy.getInstance().getUserId(); + String pk_group = InvocationInfoProxy.getInstance().getGroupId(); + String jkbxr = ""; + String[] psnInfos = ((IBXBillPrivate)NCLocator.getInstance().lookup(IBXBillPrivate.class)).queryPsnidAndDeptid(userId, pk_group); + if (psnInfos != null && psnInfos.length > 0) { + jkbxr = psnInfos[0]; + } + + conditionBuilderJK.append(" and (creator='").append(userId).append("' or jkbxr='").append(jkbxr).append("' ) "); + conditionBuilderBX.append(" and (creator='").append(userId).append("' or jkbxr='").append(jkbxr).append("' ) "); + conditionBuilderHK.append(" and creator='").append(userId).append("' "); + conditionBuilderTZ.append(" and creator='").append(userId).append("' "); + conditionBuilderSQ.append(" and creator='").append(userId).append("' "); + conditionBuilderYT.append(" and creator='").append(userId).append("' "); + conditionBuilderJZ.append(" and (creator='").append(userId).append("' or jkbxr='").append(jkbxr).append("' ) "); + conditionBuilderTX.append(" and (e.creator='").append(userId).append("' or e.bx_jkbxr='").append(jkbxr).append("' ) "); + } + + boolean ifHasTradeType = false; + boolean filterByPkOrg = false; + String reconSQ = "1=2"; + String reconYT = "1=2"; + String reconJK = "1=2"; + String reconBX = "1=2"; + String reconHK = "1=2"; + String reconTZ = "1=2"; + String reconJZ = "1=2"; + String reconTX = "1=2"; + boolean hasRecon = false; + + for(Condition condition : conditions) { + if ("261X".equals(condition.getField())) { + reconSQ = SqlUtils.getInStr("pk_mtapp_bill", condition.getValue().getFirstvalue().split(","), true); + hasRecon = true; + } else if ("262X".equals(condition.getField())) { + reconYT = SqlUtils.getInStr("pk_accrued_bill", condition.getValue().getFirstvalue().split(","), true); + hasRecon = true; + } else if ("263X".equals(condition.getField())) { + reconJK = SqlUtils.getInStr("pk_jkbx", condition.getValue().getFirstvalue().split(","), true); + hasRecon = true; + } else if ("264X".equals(condition.getField())) { + reconBX = reconHK = reconTZ = SqlUtils.getInStr("pk_jkbx", condition.getValue().getFirstvalue().split(","), true); + hasRecon = true; + } else if ("265X".equals(condition.getField())) { + hasRecon = true; + reconJZ = SqlUtils.getInStr("pk_costshare", condition.getValue().getFirstvalue().split(","), true); + } else if ("266X".equals(condition.getField())) { + hasRecon = true; + reconTX = SqlUtils.getInStr("e.pk_expamtinfo", condition.getValue().getFirstvalue().split(","), true); + } else if ("isReconEmpty".equals(condition.getField())) { + hasRecon = true; + } else { + if ("pk_org".equals(condition.getField())) { + filterByPkOrg = true; + if (StringUtils.isNotEmpty(condition.getValue().getFirstvalue())) { + String[] orgs = condition.getValue().getFirstvalue().split(","); + String inSql = SqlUtils.getInStr("pk_org", orgs, true); + conditionBuilderJK.append(" and ").append(inSql); + conditionBuilderBX.append(" and ").append(inSql); + conditionBuilderHK.append(" and ").append(inSql); + conditionBuilderTZ.append(" and ").append(inSql); + conditionBuilderSQ.append(" and ").append(inSql); + conditionBuilderYT.append(" and ").append(inSql); + conditionBuilderJZ.append(" and ").append(inSql); + conditionBuilderTX.append(" and ").append(SqlUtils.getInStr("e.pk_org", orgs, true)); + } + } + if ("defitem11".equals(condition.getField())) { + filterByPkOrg = true; + if (StringUtils.isNotEmpty(condition.getValue().getFirstvalue())) { + String[] orgs = condition.getValue().getFirstvalue().split(","); + // String inSql = SqlUtils.getInStr("pk_org", orgs, true); er_mtapp_bill assume_dept + conditionBuilderJK.append(" and ").append(SqlUtils.getInStr("fydeptid", orgs, true)); + conditionBuilderBX.append(" and ").append(SqlUtils.getInStr("fydeptid", orgs, true)); + conditionBuilderHK.append(" and ").append(SqlUtils.getInStr("fydeptid", orgs, true)); + conditionBuilderTZ.append(" and ").append(SqlUtils.getInStr("fydeptid", orgs, true)); + conditionBuilderSQ.append(" and ").append(SqlUtils.getInStr("assume_dept", orgs, true)); + conditionBuilderYT.append(" and ").append(SqlUtils.getInStr("operator_dept", orgs, true)); + conditionBuilderJZ.append(" and ").append(SqlUtils.getInStr("fydeptid", orgs, true)); + conditionBuilderTX.append(" and ").append(SqlUtils.getInStr("e.bx_deptid", orgs, true)); + } + } + + if ("djrq".equals(condition.getField())) { + if (StringUtils.isNotEmpty(condition.getValue().getFirstvalue())) { + conditionBuilderJK.append(" and djrq >= '").append(condition.getValue().getFirstvalue()).append("' "); + conditionBuilderBX.append(" and djrq >= '").append(condition.getValue().getFirstvalue()).append("' "); + conditionBuilderHK.append(" and djrq >= '").append(condition.getValue().getFirstvalue()).append("' "); + conditionBuilderTZ.append(" and djrq >= '").append(condition.getValue().getFirstvalue()).append("' "); + conditionBuilderSQ.append(" and billdate >= '").append(condition.getValue().getFirstvalue()).append("' "); + conditionBuilderYT.append(" and billdate >= '").append(condition.getValue().getFirstvalue()).append("' "); + conditionBuilderJZ.append(" and billdate >= '").append(condition.getValue().getFirstvalue()).append("' "); + conditionBuilderTX.append(" and e.bx_djrq >= '").append(condition.getValue().getFirstvalue()).append("' "); + } + + if (StringUtils.isNotEmpty(condition.getValue().getSecondvalue())) { + conditionBuilderJK.append(" and djrq <= '").append(condition.getValue().getSecondvalue()).append("' "); + conditionBuilderBX.append(" and djrq <= '").append(condition.getValue().getSecondvalue()).append("' "); + conditionBuilderHK.append(" and djrq <= '").append(condition.getValue().getSecondvalue()).append("' "); + conditionBuilderTZ.append(" and djrq <= '").append(condition.getValue().getSecondvalue()).append("' "); + conditionBuilderSQ.append(" and billdate <= '").append(condition.getValue().getSecondvalue()).append("' "); + conditionBuilderYT.append(" and billdate <= '").append(condition.getValue().getSecondvalue()).append("' "); + conditionBuilderJZ.append(" and billdate <= '").append(condition.getValue().getSecondvalue()).append("' "); + conditionBuilderTX.append(" and e.bx_djrq <= '").append(condition.getValue().getSecondvalue()).append("' "); + } + } + + + if ("paydate".equals(condition.getField())) { + if (StringUtils.isNotEmpty(condition.getValue().getFirstvalue())) { + conditionBuilderJK.append(" and paydate >= '").append(condition.getValue().getFirstvalue()).append("' "); + conditionBuilderBX.append(" and paydate >= '").append(condition.getValue().getFirstvalue()).append("' "); + conditionBuilderHK.append(" and paydate >= '").append(condition.getValue().getFirstvalue()).append("' "); + conditionBuilderTZ.append(" and paydate >= '").append(condition.getValue().getFirstvalue()).append("' "); + } + + if (StringUtils.isNotEmpty(condition.getValue().getSecondvalue())) { + conditionBuilderJK.append(" and paydate <= '").append(condition.getValue().getSecondvalue()).append("' "); + conditionBuilderBX.append(" and paydate <= '").append(condition.getValue().getSecondvalue()).append("' "); + conditionBuilderHK.append(" and paydate <= '").append(condition.getValue().getSecondvalue()).append("' "); + conditionBuilderTZ.append(" and paydate <= '").append(condition.getValue().getSecondvalue()).append("' "); + } + } + + if ("djbh".equals(condition.getField()) && StringUtils.isNotEmpty(condition.getValue().getFirstvalue())) { + conditionBuilderJK.append(" and djbh like '%").append(condition.getValue().getFirstvalue()).append("%' "); + conditionBuilderHK.append(" and djbh like '%").append(condition.getValue().getFirstvalue()).append("%' "); + conditionBuilderBX.append(" and djbh like '%").append(condition.getValue().getFirstvalue()).append("%' "); + conditionBuilderTZ.append(" and djbh like '%").append(condition.getValue().getFirstvalue()).append("%' "); + conditionBuilderSQ.append(" and billno like '%").append(condition.getValue().getFirstvalue()).append("%' "); + conditionBuilderYT.append(" and billno like '%").append(condition.getValue().getFirstvalue()).append("%' "); + conditionBuilderJZ.append(" and billno like '%").append(condition.getValue().getFirstvalue()).append("%' "); + conditionBuilderTX.append(" and e.bx_billno like '%").append(condition.getValue().getFirstvalue()).append("%' "); + } + + if ("pk_tradetypeid".equals(condition.getField()) && StringUtils.isNotEmpty(condition.getValue().getFirstvalue())) { + ifHasTradeType = true; + String[] tradetypes = condition.getValue().getFirstvalue().split(","); + String inSql = SqlUtils.getInStr("pk_tradetypeid", tradetypes, true); + conditionBuilderJK.append(" and ").append(inSql); + conditionBuilderBX.append(" and ").append(inSql); + conditionBuilderHK.append(" and ").append(inSql); + conditionBuilderTZ.append(" and ").append(inSql); + conditionBuilderSQ.append(" and ").append(inSql); + conditionBuilderYT.append(" and ").append(inSql); + conditionBuilderJZ.append(" and ").append(inSql); + conditionBuilderTX.append(" and ").append(SqlUtils.getInStr("t.pk_billtypeid", tradetypes, true)); + } + + if ("ybje".equals(condition.getField())) { + if (StringUtils.isNotEmpty(condition.getValue().getFirstvalue())) { + conditionBuilderJK.append(" and ybje >= '").append(condition.getValue().getFirstvalue()).append("' "); + conditionBuilderBX.append(" and ybje >= '").append(condition.getValue().getFirstvalue()).append("' "); + conditionBuilderHK.append(" and hkybje >= '").append(condition.getValue().getFirstvalue()).append("' "); + conditionBuilderTZ.append(" and ybje >= '").append(condition.getValue().getFirstvalue()).append("' "); + conditionBuilderSQ.append(" and orig_amount\t >= '").append(condition.getValue().getFirstvalue()).append("' "); + conditionBuilderYT.append(" and org_amount >= '").append(condition.getValue().getFirstvalue()).append("' "); + conditionBuilderJZ.append(" and ybje >= '").append(condition.getValue().getFirstvalue()).append("' "); + conditionBuilderTX.append(" and e.total_amount >= '").append(condition.getValue().getFirstvalue()).append("' "); + } + + if (StringUtils.isNotEmpty(condition.getValue().getSecondvalue())) { + conditionBuilderJK.append(" and ybje <= '").append(condition.getValue().getSecondvalue()).append("' "); + conditionBuilderBX.append(" and ybje <= '").append(condition.getValue().getSecondvalue()).append("' "); + conditionBuilderHK.append(" and hkybje <= '").append(condition.getValue().getSecondvalue()).append("' "); + conditionBuilderTZ.append(" and ybje <= '").append(condition.getValue().getSecondvalue()).append("' "); + conditionBuilderSQ.append(" and orig_amount <= '").append(condition.getValue().getSecondvalue()).append("' "); + conditionBuilderYT.append(" and org_amount <= '").append(condition.getValue().getSecondvalue()).append("' "); + conditionBuilderJZ.append(" and ybje <= '").append(condition.getValue().getSecondvalue()).append("' "); + conditionBuilderTX.append(" and e.total_amount <= '").append(condition.getValue().getSecondvalue()).append("' "); + } + } + + if ("bzbm".equals(condition.getField()) && StringUtils.isNotEmpty(condition.getValue().getFirstvalue())) { + String[] bzbms = condition.getValue().getFirstvalue().split(","); + conditionBuilderJK.append(" and ").append(SqlUtils.getInStr("bzbm", bzbms, true)); + conditionBuilderBX.append(" and ").append(SqlUtils.getInStr("bzbm", bzbms, true)); + conditionBuilderHK.append(" and ").append(SqlUtils.getInStr("bzbm", bzbms, true)); + conditionBuilderTZ.append(" and ").append(SqlUtils.getInStr("bzbm", bzbms, true)); + conditionBuilderSQ.append(" and ").append(SqlUtils.getInStr("pk_currtype", bzbms, true)); + conditionBuilderYT.append(" and ").append(SqlUtils.getInStr("pk_currtype", bzbms, true)); + conditionBuilderJZ.append(" and ").append(SqlUtils.getInStr("bzbm", bzbms, true)); + conditionBuilderTX.append(" and ").append(SqlUtils.getInStr("e.bzbm", bzbms, true)); + } + + if ("djzt".equals(condition.getField()) && StringUtils.isNotEmpty(condition.getValue().getFirstvalue())) { + List list = Arrays.asList(condition.getValue().getFirstvalue().split(",")); + conditionBuilderJK.append(" and ").append(SqlUtils.getInStr("djzt", list, true)); + conditionBuilderBX.append(" and ").append(SqlUtils.getInStr("djzt", list, true)); + conditionBuilderHK.append(" and ").append(SqlUtils.getInStr("djzt", list, true)); + conditionBuilderJZ.append(" and ").append(SqlUtils.getInStr("billstatus", list, true)); + list = new ArrayList(list); + if (list.contains("3")) { + list.remove("3"); + } + + if (list.contains("2")) { + Collections.replaceAll(list, "2", "3"); + } + + conditionBuilderTZ.append(" and ").append(SqlUtils.getInStr("djzt", list, true)); + conditionBuilderSQ.append(" and ").append(SqlUtils.getInStr("billstatus", list, true)); + conditionBuilderYT.append(" and ").append(SqlUtils.getInStr("billstatus", list, true)); + conditionBuilderTX.append(" and ").append(SqlUtils.getInStr("3", list, true)); + } + + if ("spzt".equals(condition.getField()) && StringUtils.isNotEmpty(condition.getValue().getFirstvalue())) { + List list = Arrays.asList(condition.getValue().getFirstvalue().split(",")); + conditionBuilderJK.append(" and ").append(SqlUtils.getInStr("spzt", list, true)); + conditionBuilderBX.append(" and ").append(SqlUtils.getInStr("spzt", list, true)); + conditionBuilderHK.append(" and ").append(SqlUtils.getInStr("spzt", list, true)); + conditionBuilderTZ.append(" and ").append(SqlUtils.getInStr("spzt", list, true)); + conditionBuilderSQ.append(" and ").append(SqlUtils.getInStr("apprstatus", list, true)); + conditionBuilderYT.append(" and ").append(SqlUtils.getInStr("apprstatus", list, true)); + conditionBuilderTX.append(" and ").append(SqlUtils.getInStr("1", list, true)); + } + + if("receiver".equals(condition.getField()) && StringUtils.isNotEmpty(condition.getValue().getFirstvalue())) { + conditionBuilderJK.append(" and receiver = '").append(condition.getValue().getFirstvalue()).append("' "); + conditionBuilderBX.append(" and receiver = '").append(condition.getValue().getFirstvalue()).append("' "); + } + } + } + + if (hasRecon) { + conditionBuilderJK.append(" and ").append(reconJK); + conditionBuilderBX.append(" and ").append(reconBX); + conditionBuilderHK.append(" and ").append(reconHK); + conditionBuilderTZ.append(" and ").append(reconTZ); + conditionBuilderSQ.append(" and ").append(reconSQ); + conditionBuilderYT.append(" and ").append(reconYT); + conditionBuilderJZ.append(" and ").append(reconJZ); + conditionBuilderTX.append(" and ").append(reconTX); + } else { + if (!ifHasTradeType) { + String groupPk = InvocationInfoProxy.getInstance().getGroupId(); + String userId = InvocationInfoProxy.getInstance().getUserId(); + String currentDate = (new UFDateTime()).toLocalString(); + List permBillTypeList = ((IBillManageService)NCLocator.getInstance().lookup(IBillManageService.class)).queryPermBillType(userId, currentDate, groupPk); + if (permBillTypeList != null && permBillTypeList.size() > 0) { + String[] hasPermissionTradeTypecode = new String[permBillTypeList.size()]; + + for(int i = 0; i < permBillTypeList.size(); ++i) { + hasPermissionTradeTypecode[i] = ((BillManageTradeTypeVO)permBillTypeList.get(i)).getPk_billtypeid(); + } + + String inSql = SqlUtils.getInStr("pk_tradetypeid", hasPermissionTradeTypecode, true); + conditionBuilderJK.append(" and ").append(inSql); + conditionBuilderBX.append(" and ").append(inSql); + conditionBuilderHK.append(" and ").append(inSql); + conditionBuilderTZ.append(" and ").append(inSql); + conditionBuilderSQ.append(" and ").append(inSql); + conditionBuilderYT.append(" and ").append(inSql); + conditionBuilderJZ.append(" and ").append(inSql); + conditionBuilderTX.append(" and ").append(SqlUtils.getInStr("t.pk_billtypeid", hasPermissionTradeTypecode, true)); + } else { + conditionBuilderJK.append(" and ").append("1=2"); + conditionBuilderBX.append(" and ").append("1=2"); + conditionBuilderHK.append(" and ").append("1=2"); + conditionBuilderTZ.append(" and ").append("1=2"); + conditionBuilderSQ.append(" and ").append("1=2"); + conditionBuilderYT.append(" and ").append("1=2"); + conditionBuilderJZ.append(" and ").append("1=2"); + conditionBuilderTX.append(" and ").append("1=2"); + } + } + + if (!filterByPkOrg) { + IFunctionPermissionPubService service = (IFunctionPermissionPubService)NCLocator.getInstance().lookup(IFunctionPermissionPubService.class); + String[] orgByIDs = service.getUserPermissionPkOrgs(InvocationInfoProxy.getInstance().getUserId(), (String)null, InvocationInfoProxy.getInstance().getGroupId()); + String inSql = SqlUtils.getInStr("pk_org", orgByIDs, true); + conditionBuilderJK.append(" and ").append(inSql); + conditionBuilderBX.append(" and ").append(inSql); + conditionBuilderHK.append(" and ").append(inSql); + conditionBuilderTZ.append(" and ").append(inSql); + conditionBuilderSQ.append(" and ").append(inSql); + conditionBuilderYT.append(" and ").append(inSql); + conditionBuilderJZ.append(" and ").append(inSql); + conditionBuilderTX.append(" and ").append(SqlUtils.getInStr("e.pk_org", orgByIDs, true)); + } + } + + whereSqlMap.put("JK", conditionBuilderJK.toString()); + whereSqlMap.put("BX", conditionBuilderBX.toString()); + whereSqlMap.put("HK", conditionBuilderHK.toString()); + whereSqlMap.put("TZ", conditionBuilderTZ.toString()); + whereSqlMap.put("SQ", conditionBuilderSQ.toString()); + whereSqlMap.put("YT", conditionBuilderYT.toString()); + whereSqlMap.put("JZ", conditionBuilderJZ.toString()); + whereSqlMap.put("TX", conditionBuilderTX.toString()); + } + } + + return whereSqlMap; + } + + public List queryBillInfoByPage(QueryTreeFormatVO queryTreeFormatVO) throws Exception { + INCCloudQueryService ncCloudQueryService = (INCCloudQueryService)NCLocator.getInstance().lookup(INCCloudQueryService.class); + PageInfo pageInfo = null; + if (queryTreeFormatVO != null) { + pageInfo = queryTreeFormatVO.getPageInfo(); + } + + IQueryScheme queryscheme = ncCloudQueryService.convertCondition(queryTreeFormatVO); + if (queryscheme == null) { + return null; + } else { + SQLParameter sqlParam = new SQLParameter(); + StringBuilder conditionBuilder = new StringBuilder(); + String conditionSql = null; + QueryCondition queryCondition = queryTreeFormatVO.getQuerycondition(); + List conditions = queryCondition.getConditions(); + if (conditions != null && conditions.size() > 0) { + for(Condition condition : conditions) { + if (condition != null && condition.getValue() != null && "search".equals(condition.getField()) && !StringUtils.isEmpty(condition.getValue().getFirstvalue())) { + String keyWord = condition.getValue().getFirstvalue(); + conditionBuilder.append("and ( djbh like ? "); + sqlParam.addParam("%" + keyWord + "%"); + String[] pkDepts = this.queryPkDeptByNameLike(keyWord); + String[] pkPsndocs = this.queryPkPsndocByNameLike(keyWord); + if (pkDepts != null && pkDepts.length > 0) { + conditionBuilder.append(" or " + SqlUtils.getInStr("deptid_v", pkDepts, true)); + } + + if (pkPsndocs != null && pkPsndocs.length > 0) { + conditionBuilder.append(" or " + SqlUtils.getInStr("jkbxr", pkPsndocs, true)); + } + + conditionBuilder.append(")"); + } + } + } + + conditionSql = conditionBuilder.toString(); + Map sqlMap = this.geConditionSqlByConditions(queryTreeFormatVO); + StringBuilder sqlBuilder = new StringBuilder(); + sqlBuilder.append("select *") + .append(" from (select pk_jkbx as pk_jkbx,") + .append(" pk_tradetypeid as pk_tradetypeid,") + .append(" djlxbm as djlxbm,") + .append(" pk_billtype as pk_billtype,") + .append(" djbh as djbh,") + .append(" djrq as djrq,") + .append(" bzbm as bzbm,") + .append(" ybje as ybje,") + .append(" djzt as djzt,") + .append(" spzt as spzt,") + .append(" deptid as deptid_v,") + .append(" jkbxr as jkbxr,") + .append(" approver as approver,") + .append(" pk_org as pk_org, ") + .append(" creator as creator, ") + .append(" red_status as red_status, ") + .append(" saga_frozen as saga_frozen, ") + .append(" saga_btxid as saga_btxid, ") + .append(" saga_gtxid as saga_gtxid, ") + .append(" saga_status as saga_status, ") + .append(" shrq as shrq,") + .append(" receiver as receiver ") + .append(" from er_jkzb") + .append(" where dr = 0 ") + .append(null == sqlMap.get("JK") ? "" : (String)sqlMap.get("JK")) + .append(" union all") + .append(" select pk_jkbx as pk_jkbx,") + .append(" pk_tradetypeid as pk_tradetypeid,") + .append(" djlxbm as djlxbm,") + .append(" pk_billtype as pk_billtype,") + .append(" djbh as djbh,") + .append(" djrq as djrq,") + .append(" bzbm as bzbm,") + .append(" \t\t\t ybje as ybje,") + .append(" djzt as djzt,") + .append(" spzt as spzt,") + .append(" deptid as deptid_v,") + .append(" jkbxr as jkbxr,") + .append(" approver as approver,") + .append(" pk_org as pk_org, ") + .append(" creator as creator, ") + .append(" red_status as red_status, ") + .append(" saga_frozen as saga_frozen, ") + .append(" saga_btxid as saga_btxid, ") + .append(" saga_gtxid as saga_gtxid, ") + .append(" saga_status as saga_status, ") + .append(" shrq as shrq,") + .append(" receiver as receiver ") + .append(" from er_bxzb") + .append(" where dr = 0 ") + .append(null == sqlMap.get("BX") ? "" : (String)sqlMap.get("BX")) + .append(" union all") + .append(" select pk_jkbx as pk_jkbx,") + .append(" pk_tradetypeid as pk_tradetypeid,") + .append(" djlxbm as djlxbm,") + .append(" pk_billtype as pk_billtype,") + .append(" djbh as djbh,") + .append(" djrq as djrq,") + .append(" bzbm as bzbm,") + .append(" hkybje as ybje,") + .append(" djzt as djzt,") + .append(" spzt as spzt,") + .append(" deptid as deptid_v,") + .append(" jkbxr as jkbxr,") + .append(" approver as approver,") + .append(" pk_org as pk_org, ") + .append(" creator as creator, ") + .append(" red_status as red_status, ") + .append(" saga_frozen as saga_frozen, ") + .append(" saga_btxid as saga_btxid, ") + .append(" saga_gtxid as saga_gtxid, ") + .append(" saga_status as saga_status, ") + .append(" shrq as shrq,") + .append(" receiver as receiver ") + .append(" from er_bxzb") + .append(" where dr = 0 ") + .append(null == sqlMap.get("HK") ? "" : (String)sqlMap.get("HK")) + .append(" union all") + .append(" select pk_jkbx as pk_jkbx,") + .append(" pk_tradetypeid as pk_tradetypeid,") + .append(" djlxbm as djlxbm,") + .append(" pk_billtype as pk_billtype,") + .append(" djbh as djbh,") + .append(" djrq as djrq,") + .append(" bzbm as bzbm,") + .append(" ybje as ybje,") + .append(" djzt as djzt,") + .append(" spzt as spzt,") + .append(" deptid as deptid_v,") + .append(" jkbxr as jkbxr,") + .append(" approver as approver,") + .append(" pk_org as pk_org, ") + .append(" creator as creator, ") + .append(" red_status as red_status, ") + .append(" saga_frozen as saga_frozen, ") + .append(" saga_btxid as saga_btxid, ") + .append(" saga_gtxid as saga_gtxid, ") + .append(" saga_status as saga_status, ") + .append(" shrq as shrq,") + .append(" receiver as receiver ") + .append(" from er_bxzb") + .append(" where dr = 0 ") + .append(null == sqlMap.get("TZ") ? "" : (String)sqlMap.get("TZ")) + .append(" union all") + .append(" select pk_accrued_bill as pk_jkbx,") + .append(" pk_tradetypeid as pk_tradetypeid,") + .append(" pk_tradetype as djlxbm,") + .append(" pk_billtype as pk_billtype,") + .append(" billno as djbh,") + .append(" billdate as djrq,") + .append(" pk_currtype as bzbm,") + .append(" org_amount as ybje,") + .append(" billstatus as djzt,") + .append(" apprstatus as spzt,") + .append(" operator_dept as deptid_v,") + .append(" operator as jkbxr,") + .append(" approver as approver,") + .append(" pk_org as pk_org, ") + .append(" creator as creator, ") + .append(" redflag as red_status, ") + .append(" saga_frozen as saga_frozen, ") + .append(" saga_btxid as saga_btxid, ") + .append(" saga_gtxid as saga_gtxid, ") + .append(" saga_status as saga_status, ") + .append(" approvetime as shrq,") + .append(" null as receiver ") + .append(" from er_accrued") + .append(" where dr = 0 ") + .append(null == sqlMap.get("YT") ? "" : (String)sqlMap.get("YT")) + .append(" union all") + .append(" select pk_mtapp_bill as pk_jkbx,") + .append(" pk_tradetypeid as pk_tradetypeid,") + .append(" pk_tradetype as djlxbm,") + .append(" pk_billtype as pk_billtype,") + .append(" billno as djbh,") + .append(" billdate as djrq,") + .append(" pk_currtype as bzbm,") + .append(" orig_amount as ybje,") + .append(" billstatus as djzt,") + .append(" apprstatus as spzt,") + .append(" apply_dept as deptid_v,") + .append(" billmaker as jkbxr,") + .append(" approver as approver,") + .append(" pk_org as pk_org, ") + .append(" creator as creator, ") + .append(" null as red_status, ") + .append(" saga_frozen as saga_frozen, ") + .append(" saga_btxid as saga_btxid, ") + .append(" saga_gtxid as saga_gtxid, ") + .append(" saga_status as saga_status, ") + .append(" approvetime as shrq,") + .append(" null as receiver ") + .append(" from er_mtapp_bill") + .append(" where dr = 0 ") + .append(null == sqlMap.get("SQ") ? "" : (String)sqlMap.get("SQ")) + .append(" union all") + .append(" select pk_costshare as pk_jkbx,") + .append(" pk_tradetypeid as pk_tradetypeid,") + .append(" pk_tradetype as djlxbm,") + .append(" pk_billtype as pk_billtype,") + .append(" billno as djbh,") + .append(" billdate as djrq,") + .append(" bzbm as bzbm,") + .append(" ybje as ybje,") + .append(" billstatus as djzt,") + .append(" case when billstatus=2 or billstatus=3 then 1 else -1 end as spzt,") + .append(" deptid as deptid_v,") + .append(" jkbxr as jkbxr,") + .append(" approver as approver,") + .append(" pk_org as pk_org, ") + .append(" creator as creator, ") + .append(" null as red_status, ") + .append(" saga_frozen as saga_frozen, ") + .append(" saga_btxid as saga_btxid, ") + .append(" saga_gtxid as saga_gtxid, ") + .append(" saga_status as saga_status, ") + .append(" approvedate as shrq,") + .append(" null as receiver ") + .append(" from er_costshare") + .append(" where dr = 0 ") + .append(null == sqlMap.get("JZ") ? "" : (String)sqlMap.get("JZ")) + .append(" union all") + .append(" select e.pk_jkbx as pk_jkbx,") + .append(" t.pk_billtypeid as pk_tradetypeid,") + .append(" e.bx_pk_billtype as djlxbm,") + .append(" t.parentbilltype as pk_billtype,") + .append(" e.bx_billno as djbh,") + .append(" e.bx_djrq as djrq,") + .append(" e.bzbm as bzbm,") + .append(" e.total_amount as ybje,") + .append(" 3 as djzt,") + .append(" \t\t\t\t 1\t\t as spzt,") + .append(" e.bx_deptid as deptid_v,") + .append(" e.bx_jkbxr as jkbxr,") + .append(" null as approver,") + .append(" e.pk_org as pk_org, ") + .append(" e.creator as creator, ") + .append(" null as red_status, ") + .append(" e.saga_frozen as saga_frozen, ") + .append(" e.saga_btxid as saga_btxid, ") + .append(" e.saga_gtxid as saga_gtxid, ") + .append(" e.saga_status as saga_status, ") + .append(" null as shrq,") + .append(" null as receiver ") + .append(" from er_expamtinfo e") + .append(" left join bd_billtype t on t.PK_BILLTYPECODE=e.bx_pk_billtype and t.PK_GROUP=e.PK_GROUP") + .append(" where e.dr = 0 ") + .append(null == sqlMap.get("TX") ? "" : (String)sqlMap.get("TX")) + .append(" ) temp where 1=1 "); + + if (!conditionSql.isEmpty()) { + sqlBuilder.append(conditionSql); + } + + String sql = sqlBuilder.toString(); + if (pageInfo != null) { + if (pageInfo.getTotal() == 0) { + Integer total = this.countBillInfoByCondition(queryTreeFormatVO, conditionSql, sqlParam, sqlMap); + pageInfo.setTotal(total); + } + + Integer pageSize = Integer.valueOf(pageInfo.getPageSize()); + Integer totalPage = pageInfo.getTotal() % pageSize == 0 ? pageInfo.getTotal() / pageSize : pageInfo.getTotal() / pageSize + 1; + pageInfo.setTotalPage(totalPage); + int databaseType = DataSourceCenter.getInstance().getDatabaseType(); + LimitSQLBuilder sqlBuilderPage = SQLBuilderFactory.getInstance().createLimitSQLBuilder(databaseType); + int pageIndex = 0; + if (!StringUtils.isEmpty(pageInfo.getPageIndex())) { + pageIndex = Integer.valueOf(pageInfo.getPageIndex()); + } + + sql = sqlBuilderPage.build(sql + " order by temp.djrq desc", pageIndex + 1, Integer.valueOf(pageInfo.getPageSize())); + } else { + sql = sql + " order by temp.djrq desc"; + } + + IUAPQueryBS iuapQryService = (IUAPQueryBS)NCLocator.getInstance().lookup(IUAPQueryBS.class); + List resultList = (List)iuapQryService.executeQuery(sql, sqlParam, new JKBXHeaderResultSetProcessor()); + return resultList; + } + } + + public int countBillInfoByCondition(QueryTreeFormatVO queryTreeFormatVO, String conditionSql, SQLParameter sqlParam, Map sqlMap) throws Exception { + StringBuilder sqlBuilder = new StringBuilder(); + sqlBuilder.append("select count(1) as count from("); + sqlBuilder.append("select *").append(" from (select pk_jkbx as pk_jkbx,").append(" pk_tradetypeid as pk_tradetypeid,").append(" djlxbm as djlxbm,").append(" pk_billtype as pk_billtype,").append(" djbh as djbh,").append(" djrq as djrq,").append(" bzbm as bzbm,").append(" ybje as ybje,").append(" djzt as djzt,").append(" spzt as spzt,").append(" deptid as deptid_v,").append(" jkbxr as jkbxr,").append(" approver as approver,").append(" pk_org as pk_org, ").append(" creator as creator, ").append(" saga_frozen as saga_frozen, ").append(" saga_btxid as saga_btxid, ").append(" saga_gtxid as saga_gtxid, ").append(" saga_status as saga_status, ").append(" shrq as shrq").append(" from er_jkzb").append(" where dr = 0 ").append(null == sqlMap.get("JK") ? "" : (String)sqlMap.get("JK")).append(" union all").append(" select pk_jkbx as pk_jkbx,").append(" pk_tradetypeid as pk_tradetypeid,").append(" djlxbm as djlxbm,").append(" pk_billtype as pk_billtype,").append(" djbh as djbh,").append(" djrq as djrq,").append(" bzbm as bzbm,").append(" ybje as ybje,").append(" djzt as djzt,").append(" spzt as spzt,").append(" deptid as deptid_v,").append(" jkbxr as jkbxr,").append(" approver as approver,").append(" pk_org as pk_org, ").append(" creator as creator, ").append(" saga_frozen as saga_frozen, ").append(" saga_btxid as saga_btxid, ").append(" saga_gtxid as saga_gtxid, ").append(" saga_status as saga_status, ").append(" shrq as shrq").append(" from er_bxzb").append(" where dr = 0 ").append(null == sqlMap.get("BX") ? "" : (String)sqlMap.get("BX")).append(" union all").append(" select pk_jkbx as pk_jkbx,").append(" pk_tradetypeid as pk_tradetypeid,").append(" djlxbm as djlxbm,").append(" pk_billtype as pk_billtype,").append(" djbh as djbh,").append(" djrq as djrq,").append(" bzbm as bzbm,").append(" hkybje as ybje,").append(" djzt as djzt,").append(" spzt as spzt,").append(" deptid as deptid_v,").append(" jkbxr as jkbxr,").append(" approver as approver,").append(" pk_org as pk_org, ").append(" creator as creator, ").append(" saga_frozen as saga_frozen, ").append(" saga_btxid as saga_btxid, ").append(" saga_gtxid as saga_gtxid, ").append(" saga_status as saga_status, ").append(" shrq as shrq").append(" from er_bxzb").append(" where dr = 0 ").append(null == sqlMap.get("HK") ? "" : (String)sqlMap.get("HK")).append(" union all").append(" select pk_jkbx as pk_jkbx,").append(" pk_tradetypeid as pk_tradetypeid,").append(" djlxbm as djlxbm,").append(" pk_billtype as pk_billtype,").append(" djbh as djbh,").append(" djrq as djrq,").append(" bzbm as bzbm,").append(" ybje as ybje,").append(" djzt as djzt,").append(" spzt as spzt,").append(" deptid as deptid_v,").append(" jkbxr as jkbxr,").append(" approver as approver,").append(" pk_org as pk_org, ").append(" creator as creator, ").append(" saga_frozen as saga_frozen, ").append(" saga_btxid as saga_btxid, ").append(" saga_gtxid as saga_gtxid, ").append(" saga_status as saga_status, ").append(" shrq as shrq").append(" from er_bxzb").append(" where dr = 0 ").append(null == sqlMap.get("TZ") ? "" : (String)sqlMap.get("TZ")).append(" union all").append(" select pk_accrued_bill as pk_jkbx,").append(" pk_tradetypeid as pk_tradetypeid,").append(" pk_tradetype as djlxbm,").append(" pk_billtype as pk_billtype,").append(" billno as djbh,").append(" billdate as djrq,").append(" pk_currtype as bzbm,").append(" org_amount as ybje,").append(" billstatus as djzt,").append(" apprstatus as spzt,").append(" operator_dept as deptid_v,").append(" operator as jkbxr,").append(" approver as approver,").append(" pk_org as pk_org, ").append(" creator as creator, ").append(" saga_frozen as saga_frozen, ").append(" saga_btxid as saga_btxid, ").append(" saga_gtxid as saga_gtxid, ").append(" saga_status as saga_status, ").append(" approvetime as shrq").append(" from er_accrued").append(" where dr = 0 ").append(null == sqlMap.get("YT") ? "" : (String)sqlMap.get("YT")).append(" union all").append(" select pk_mtapp_bill as pk_jkbx,").append(" pk_tradetypeid as pk_tradetypeid,").append(" pk_tradetype as djlxbm,").append(" pk_billtype as pk_billtype,").append(" billno as djbh,").append(" billdate as djrq,").append(" pk_currtype as bzbm,").append(" orig_amount as ybje,").append(" billstatus as djzt,").append(" apprstatus as spzt,").append(" apply_dept as deptid_v,").append(" billmaker as jkbxr,").append(" approver as approver,").append(" pk_org as pk_org, ").append(" creator as creator, ").append(" saga_frozen as saga_frozen, ").append(" saga_btxid as saga_btxid, ").append(" saga_gtxid as saga_gtxid, ").append(" saga_status as saga_status, ").append(" approvetime as shrq").append(" from er_mtapp_bill").append(" where dr = 0 ").append(null == sqlMap.get("SQ") ? "" : (String)sqlMap.get("SQ")).append(" union all").append(" select pk_costshare as pk_jkbx,").append(" pk_tradetypeid as pk_tradetypeid,").append(" pk_tradetype as djlxbm,").append(" pk_billtype as pk_billtype,").append(" billno as djbh,").append(" billdate as djrq,").append(" bzbm as bzbm,").append(" ybje as ybje,").append(" billstatus as djzt,").append(" case when billstatus=2 or billstatus=3 then 1 else -1 end as spzt,").append(" deptid as deptid_v,").append(" jkbxr as jkbxr,").append(" approver as approver,").append(" pk_org as pk_org, ").append(" creator as creator, ").append(" saga_frozen as saga_frozen, ").append(" saga_btxid as saga_btxid, ").append(" saga_gtxid as saga_gtxid, ").append(" saga_status as saga_status, ").append(" approvedate as shrq").append(" from er_costshare").append(" where dr = 0 ").append(null == sqlMap.get("JZ") ? "" : (String)sqlMap.get("JZ")).append(" union all").append(" select e.pk_jkbx as pk_jkbx,").append(" t.pk_billtypeid as pk_tradetypeid,").append(" e.bx_pk_billtype as djlxbm,").append(" t.parentbilltype as pk_billtype,").append(" e.bx_billno as djbh,").append(" e.bx_djrq as djrq,").append(" e.bzbm as bzbm,").append(" e.total_amount as ybje,").append(" 3 as djzt,").append(" \t\t\t\t 1\t\t as spzt,").append(" e.bx_deptid as deptid_v,").append(" e.bx_jkbxr as jkbxr,").append(" null as approver,").append(" e.pk_org as pk_org, ").append(" e.creator as creator, ").append(" e.saga_frozen as saga_frozen, ").append(" e.saga_btxid as saga_btxid, ").append(" e.saga_gtxid as saga_gtxid, ").append(" e.saga_status as saga_status, ").append(" null as shrq").append(" from er_expamtinfo e").append(" left join bd_billtype t on t.PK_BILLTYPECODE=e.bx_pk_billtype and t.PK_GROUP=e.PK_GROUP").append(" where e.dr = 0 ").append(null == sqlMap.get("TX") ? "" : (String)sqlMap.get("TX")).append(" )temp where 1=1 "); + if (!conditionSql.isEmpty()) { + sqlBuilder.append(conditionSql); + } + + sqlBuilder.append(") a "); + String sql = sqlBuilder.toString(); + IUAPQueryBS iuapQryService = (IUAPQueryBS)NCLocator.getInstance().lookup(IUAPQueryBS.class); + int count = (Integer)iuapQryService.executeQuery(sql, sqlParam, new ResultSetProcessor() { + private static final long serialVersionUID = 1L; + + public Object handleResultSet(ResultSet rs) throws SQLException { + int count; + for(count = 0; rs.next(); count = rs.getInt("count")) { + } + + return count; + } + }); + return count; + } + + public Map qryCurApproveman(List billIds) throws BusinessException { + StringBuilder sqlExe = new StringBuilder(); + sqlExe.append("select n.billid as billid, n.checkman as checkman, n.ischeck as ischeck"); + sqlExe.append(" from pub_wf_task t inner join pub_workflownote n on t.pk_wf_task=n.pk_wf_task"); + sqlExe.append(" where ").append(SqlUtils.getInStr("n.billid", billIds, true)); + sqlExe.append(" and t.taskstatus=0 "); + sqlExe.append(" and n.approvestatus =0 "); + IUAPQueryBS iuapQryService = (IUAPQueryBS)NCLocator.getInstance().lookup(IUAPQueryBS.class); + SQLParameter sqlParam = new SQLParameter(); + List approveInfos = (List)iuapQryService.executeQuery(sqlExe.toString(), sqlParam, new ArrayListProcessor()); + List busiidUserList = new ArrayList(); + List userid = new ArrayList(); + + for(Object[] approveInfo : approveInfos) { + String[] busiidUser = new String[]{(String)approveInfo[0], (String)approveInfo[1]}; + busiidUserList.add(busiidUser); + userid.add((String)approveInfo[1]); + } + + IUserManageQuery userQry = (IUserManageQuery)NCLocator.getInstance().lookup(IUserManageQuery.class); + UserVO[] userVOs = userQry.queryUserByClause(SqlUtils.getInStr("cuserid", userid, true)); + Map userid_username = new HashMap(); + + for(UserVO vo : userVOs) { + userid_username.put(vo.getCuserid(), vo.getUser_name()); + } + + for(String[] busiidUser : busiidUserList) { + busiidUser[1] = (String)userid_username.get(busiidUser[1]); + } + + Map busiid_username = new HashMap(); + + for(String[] busiidUser : busiidUserList) { + if (!busiid_username.containsKey(busiidUser[0])) { + busiid_username.put(busiidUser[0], busiidUser[1]); + } else { + String var10000 = (String)busiid_username.get(busiidUser[0]); + String multiName = var10000 + ", " + busiidUser[1]; + busiid_username.put(busiidUser[0], multiName); + } + } + + return busiid_username; + } + + private class JKBXHeaderResultSetProcessor implements ResultSetProcessor { + private static final long serialVersionUID = 1L; + + private JKBXHeaderResultSetProcessor() { + } + + public Object handleResultSet(ResultSet rs) throws SQLException { + List resultList = new ArrayList(); + + while(rs.next()) { + JKBXHeaderVO tempHeader = new BXHeaderVO(); + tempHeader.setPk_jkbx(rs.getString("pk_jkbx")); + tempHeader.setPk_tradetypeid(rs.getString("pk_tradetypeid")); + tempHeader.setDjlxbm(rs.getString("djlxbm")); + tempHeader.setPk_billtype(rs.getString("pk_billtype")); + tempHeader.setDjbh(rs.getString("djbh")); + tempHeader.setDjrq(StringUtils.isEmpty(rs.getString("djrq")) ? null : new UFDate(rs.getString("djrq"))); + tempHeader.setBzbm(rs.getString("bzbm")); + tempHeader.setYbje(new UFDouble(rs.getDouble("ybje"))); + tempHeader.setDjzt(rs.getInt("djzt")); + tempHeader.setSpzt(rs.getInt("spzt")); + tempHeader.setDeptid_v(rs.getString("deptid_v")); + tempHeader.setJkbxr(rs.getString("jkbxr")); + tempHeader.setApprover(rs.getString("approver")); + tempHeader.setPk_org(rs.getString("pk_org")); + tempHeader.setCreator(rs.getString("creator")); + tempHeader.setRed_status(rs.getInt("red_status")); + tempHeader.setShrq(StringUtils.isEmpty(rs.getString("shrq")) ? null : new UFDateTime(rs.getString("shrq"))); + tempHeader.setSaga_frozen(rs.getInt("saga_frozen")); + tempHeader.setSaga_btxid(rs.getString("saga_btxid")); + tempHeader.setSaga_gtxid(rs.getString("saga_gtxid")); + tempHeader.setSaga_status(rs.getInt("saga_status")); + resultList.add(tempHeader); + } + + return resultList; + } + } }