From 4249a4996e28ace6ec4b307e0d53da839625284e Mon Sep 17 00:00:00 2001 From: gityjf <2211675158@qq.com> Date: Wed, 23 Jun 2021 13:35:07 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=A1=E6=89=A3=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cache/CollectAuditInfoCache.java | 52 +++++++------ .../cache/CollectAuditInfoCacheTj.java | 77 ++++++++----------- 2 files changed, 62 insertions(+), 67 deletions(-) diff --git a/src_tenwa/com/tenwa/collectaudit/cache/CollectAuditInfoCache.java b/src_tenwa/com/tenwa/collectaudit/cache/CollectAuditInfoCache.java index 1eb54fa63..f02ad38be 100644 --- a/src_tenwa/com/tenwa/collectaudit/cache/CollectAuditInfoCache.java +++ b/src_tenwa/com/tenwa/collectaudit/cache/CollectAuditInfoCache.java @@ -1372,17 +1372,15 @@ public class CollectAuditInfoCache { } Map map = getRetAndCodeByBatch(strResp); if (map.containsKey("RET_CODE")) {//清空批量代收状态 - //清空批量处理状态 - JBOTransaction trans = JBOFactory.createJBOTransaction(); - BizObjectManager bm = JBOFactory.getFactory().getManager(LC_RENT_PLAN.CLASS_NAME,trans); + StringBuilder updateIds = new StringBuilder(); for (BizObject biz : list) { - bm.createQuery("update O set O.BATCH_STATUS=:BATCH_STATUS,O.BATCH_NO=:BATCH_NO,O.BATCH_SN=:BATCH_SN where O.id=:id") - .setParameter("BATCH_STATUS", "")//处理中 - .setParameter("BATCH_NO", req_sn) - .setParameter("BATCH_SN", "") - .setParameter("id", biz.getAttribute("id").toString()).executeUpdate(); + updateIds.append(biz.getAttribute("id").toString()).append("','"); } - trans.commit(); + String updateIdsStr = updateIds.delete(updateIds.length() - 3, updateIds.length()).toString(); + //清空批量处理状态 + BizObjectManager bm = JBOFactory.getFactory().getManager(LC_RENT_PLAN.CLASS_NAME); + bm.createQuery("update O set O.BATCH_STATUS=null,O.BATCH_NO=:BATCH_NO,O.BATCH_SN=null where O.id in ('" + updateIdsStr + "')") + .setParameter("BATCH_NO", req_sn).executeUpdate(); }else{ int m = 0;//统计发送的代收的批数 for (int n = 1; n <= map.size(); n++) { @@ -1390,25 +1388,31 @@ public class CollectAuditInfoCache { m++; } } - for (int k = 1; k <= m; k++) { - BizObjectManager bm = JBOFactory.getFactory().getBizObjectManager(LC_RENT_PLAN.CLASS_NAME); - if (map.containsKey("REQ_SN") && map.containsKey("RET_CODE"+k) && "0000".equals(map.get("RET_CODE"+k))) { - bm.createQuery("update O set O.BATCH_STATUS=:BATCH_STATUS where O.BATCH_NO=:BATCH_NO and O.BATCH_SN like '%"+map.get("SN"+k)+"%' ") - .setParameter("BATCH_STATUS", "process")//处理状态标记为--处理中 - .setParameter("BATCH_NO", map.get("REQ_SN")).executeUpdate(); - }else{ - BizObject bo0 = bm.createQuery("O.BATCH_NO=:BATCH_NO and O.BATCH_SN like '%"+map.get("SN"+k)+"%'").setParameter("BATCH_NO", map.get("REQ_SN")).getSingleResult(false); - if (bo0 != null && "process".equals(bo0.getAttribute("BATCH_STATUS"))) { - //不做任何操作 - }else{ - bm.createQuery("update O set O.BATCH_STATUS=:BATCH_STATUS,O.BATCH_NO='',O.BATCH_SN='' where O.BATCH_NO=:BATCH_NO and O.BATCH_SN like '%"+map.get("SN"+k)+"%' ") - .setParameter("BATCH_STATUS", "")//清空批量处理状态 - .setParameter("BATCH_NO", map.get("REQ_SN")).executeUpdate(); + JBOTransaction trans = null; + try { + trans = JBOFactory.createJBOTransaction(); + BizObjectManager bm = JBOFactory.getFactory().getManager(LC_RENT_PLAN.CLASS_NAME, trans); + BizObject bo0 = bm.createQuery("O.BATCH_NO=:BATCH_NO and O.BATCH_SN like '%" + map.get("SN" + k) + "%'").setParameter("BATCH_NO", map.get("REQ_SN")).getSingleResult(true); + if (bo0 != null && "process".equals(bo0.getAttribute("BATCH_STATUS").getString())) { + continue; } + //响应成功 + if (map.containsKey("REQ_SN") && map.containsKey("RET_CODE" + k) && "0000".equals(map.get("RET_CODE" + k))) { + bo0.setAttributeValue("BATCH_STATUS", "process"); + } else {//响应异常 + bo0.setAttributeValue("BATCH_STATUS", null); + bo0.setAttributeValue("BATCH_NO", null); + bo0.setAttributeValue("BATCH_SN", null); + } + bm.saveObject(bo0); + } catch (Exception e) { + e.printStackTrace(); + if (trans != null) trans.rollback(); + } finally { + if (trans != null) trans.commit(); } } - } return map; } diff --git a/src_tenwa/com/tenwa/collectaudit/cache/CollectAuditInfoCacheTj.java b/src_tenwa/com/tenwa/collectaudit/cache/CollectAuditInfoCacheTj.java index 56953342a..6f6d317c3 100644 --- a/src_tenwa/com/tenwa/collectaudit/cache/CollectAuditInfoCacheTj.java +++ b/src_tenwa/com/tenwa/collectaudit/cache/CollectAuditInfoCacheTj.java @@ -1372,17 +1372,15 @@ public class CollectAuditInfoCacheTj { Map map = getRetAndCodeByBatch(strResp); //包含RET_CODE说明响应没有成功 if (map.containsKey("RET_CODE")) {//清空批量代收状态 + StringBuilder updateIds = new StringBuilder(); for (BizObject biz : list) { - //清空批量处理状态 - JBOTransaction trans = JBOFactory.createJBOTransaction(); - BizObjectManager bm = JBOFactory.getFactory().getManager(LC_RENT_PLAN.CLASS_NAME,trans); - bm.createQuery("update O set O.BATCH_STATUS=:BATCH_STATUS,O.BATCH_NO=:BATCH_NO,O.BATCH_SN=:BATCH_SN where O.id=:id") - .setParameter("BATCH_STATUS", "")//处理中 - .setParameter("BATCH_NO", req_sn) - .setParameter("BATCH_SN", "") - .setParameter("id", biz.getAttribute("id").toString()).executeUpdate(); - trans.commit(); + updateIds.append(biz.getAttribute("id").toString()).append("','"); } + String updateIdsStr = updateIds.delete(updateIds.length() - 3, updateIds.length()).toString(); + //清空批量处理状态 + BizObjectManager bm = JBOFactory.getFactory().getManager(LC_RENT_PLAN.CLASS_NAME); + bm.createQuery("update O set O.BATCH_STATUS=null,O.BATCH_NO=:BATCH_NO,O.BATCH_SN=null where O.id in ('" + updateIdsStr + "')") + .setParameter("BATCH_NO", req_sn).executeUpdate(); }else{ //响应成功 int m = 0;//统计发送的代收的批数 @@ -1391,38 +1389,31 @@ public class CollectAuditInfoCacheTj { m++; } } - for (int k = 1; k <= m; k++) { - //每条响应成功 - if (map.containsKey("REQ_SN") && map.containsKey("RET_CODE"+k) && "0000".equals(map.get("RET_CODE"+k))) { - JBOTransaction trans = JBOFactory.createJBOTransaction(); - BizObjectManager bm = JBOFactory.getFactory().getManager(LC_RENT_PLAN.CLASS_NAME,trans); - BizObject bo0 = bm.createQuery("O.BATCH_NO=:BATCH_NO and O.BATCH_SN like '%"+map.get("SN"+k)+"%'").setParameter("BATCH_NO", map.get("REQ_SN")).getSingleResult(false); - //不知道为啥这么写 - if (bo0 != null && "process".equals(bo0.getAttribute("BATCH_STATUS"))) { - bm.createQuery("update O set O.BATCH_STATUS=:BATCH_STATUS where O.BATCH_NO=:BATCH_NO and O.BATCH_SN like '%"+map.get("SN"+k)+"%' ") - .setParameter("BATCH_STATUS", "process")//处理状态标记为--处理中 - .setParameter("BATCH_NO", map.get("REQ_SN")).executeUpdate(); - trans.commit(); - }else{ - bm.createQuery("update O set O.BATCH_STATUS=:BATCH_STATUS where O.BATCH_NO=:BATCH_NO and O.BATCH_SN like '%"+map.get("SN"+k)+"%' ") - .setParameter("BATCH_STATUS", "process")//处理状态标记为--处理中 - .setParameter("BATCH_NO", map.get("REQ_SN")).executeUpdate(); - trans.commit(); - } - }else{ - JBOTransaction trans = JBOFactory.createJBOTransaction(); - BizObjectManager bm = JBOFactory.getFactory().getManager(LC_RENT_PLAN.CLASS_NAME,trans); - BizObject bo0 = bm.createQuery("O.BATCH_NO=:BATCH_NO and O.BATCH_SN like '%"+map.get("SN"+k)+"%'").setParameter("BATCH_NO", map.get("REQ_SN")).getSingleResult(false); - if (bo0 != null && "process".equals(bo0.getAttribute("BATCH_STATUS"))) { - //不做任何操作 - }else{ - bm.createQuery("update O set O.BATCH_STATUS=:BATCH_STATUS,O.BATCH_NO='',O.BATCH_SN='' where O.BATCH_NO=:BATCH_NO and O.BATCH_SN like '%"+map.get("SN"+k)+"%' ") - .setParameter("BATCH_STATUS", "")//清空批量处理状态 - .setParameter("BATCH_NO", map.get("REQ_SN")).executeUpdate(); - trans.commit(); - } - } - } + for (int k = 1; k <= m; k++) { + JBOTransaction trans = null; + try { + trans = JBOFactory.createJBOTransaction(); + BizObjectManager bm = JBOFactory.getFactory().getManager(LC_RENT_PLAN.CLASS_NAME, trans); + BizObject bo0 = bm.createQuery("O.BATCH_NO=:BATCH_NO and O.BATCH_SN like '%" + map.get("SN" + k) + "%'").setParameter("BATCH_NO", map.get("REQ_SN")).getSingleResult(true); + if (bo0 != null && "process".equals(bo0.getAttribute("BATCH_STATUS").getString())) { + continue; + } + //响应成功 + if (map.containsKey("REQ_SN") && map.containsKey("RET_CODE" + k) && "0000".equals(map.get("RET_CODE" + k))) { + bo0.setAttributeValue("BATCH_STATUS", "process"); + } else {//响应异常 + bo0.setAttributeValue("BATCH_STATUS", null); + bo0.setAttributeValue("BATCH_NO", null); + bo0.setAttributeValue("BATCH_SN", null); + } + bm.saveObject(bo0); + } catch (Exception e) { + e.printStackTrace(); + if (trans != null) trans.rollback(); + } finally { + if (trans != null) trans.commit(); + } + } } return map; } @@ -1819,7 +1810,7 @@ public class CollectAuditInfoCacheTj { String reqSn = strXML.substring(kStart+8, end); map.put("REQ_SN", reqSn); } - + Pattern pm = Pattern.compile("(?<=)([\\S\\s]*?)(?=)"); Matcher mm = pm.matcher(strXML); int i = 0; @@ -1831,7 +1822,7 @@ public class CollectAuditInfoCacheTj { Matcher mc = pc.matcher(strXML); int j = 1; while (mc.find()) - { + { map.put("SN"+j++, mc.group()); } if (map.containsKey("RET_CODE0") && "0000".equals(map.get("RET_CODE0"))) {