卡扣优化

This commit is contained in:
gityjf 2021-06-23 13:35:07 +08:00
parent 87d6627b6a
commit 4249a4996e
2 changed files with 62 additions and 67 deletions

View File

@ -1372,17 +1372,15 @@ public class CollectAuditInfoCache {
}
Map<String, String> 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;
}

View File

@ -1372,17 +1372,15 @@ public class CollectAuditInfoCacheTj {
Map<String, String> 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("(?<=<RET_CODE>)([\\S\\s]*?)(?=</RET_CODE>)");
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"))) {