();
+ }
+ if (isEqual(vos[i], sKeys)) {
+ oCurrValues.add(vos[i]);
+ getHash().put(sCurrKey, oCurrValues);
+ }
+ }
+ }
+
+ /**
+ * @param @param verifyvo
+ * @param @param skeys
+ * @param @return
+ * @return String
+ * @throws
+ * @Title: gethashKey
+ * @Description: TODO(õhashֵ)
+ */
+ private String gethashKey(IVerifyVO verifyvo, String[] skeys) {
+ StringBuffer shashKey = new StringBuffer();
+ if (skeys == null || skeys.length <= 0) {
+ return "null";
+ }
+ Object ob = null;
+ for (int i = 0; i < skeys.length; i++) {
+ if (skeys[i].equals("Mny")) {
+ // modified by shipl 2015-11-12 15:26:58 ԭȼɺ
+ if (verifyvo.getDirect().equals(IVerifyVO.I_DEBIT)) { /*跽*/
+ ob = verifyvo.getDebit_Money_Y();
+ shashKey.append("_").append(ob == null ? "null" : ob.toString());
+// ob = verifyvo.getDebit_Money_B();
+// shashKey.append("_").append(ob == null ? "null" : ob.toString());
+ } else { /**/
+ ob = verifyvo.getCredit_Money_Y();
+ shashKey.append("_").append(ob == null ? "null" : ob.toString());
+// ob = verifyvo.getCredit_Money_B();
+// shashKey.append("_").append(ob == null ? "null" : ob.toString());
+ }
+ } else {
+ ob = verifyvo.getAttributeValue(skeys[i]);
+ shashKey.append("_").append(ob == null ? "null" : ob.toString());
+ }
+ }
+ return shashKey.toString();
+ }
+
+ /**
+ * @param @param vo ǰ
+ * @param @param sKeys ֱšȡĩĿ˱ʶ롢еȫ֣
+ * @param @return
+ * @return boolean
+ * @throws
+ * @Title: isEqual
+ * @Description: TODO(жݵĸԶиǷһ)
+ */
+ private boolean isEqual(IVerifyVO vo, String[] sKeys) {
+ boolean result = true;
+ VerifyDetailVO vo1 = (VerifyDetailVO) vo;
+ if (null != sKeys && sKeys.length > 0) {
+ for (int i = 0; i < sKeys.length; i++) {
+ if (null != sKeys[i] && sKeys[i].startsWith("fzhs_")) {
+ String asstype = sKeys[i].substring(5, 25);
+ String assvalue = sKeys[i].substring(25);
+ for (int j = 0; vo1.getAss() != null && j < vo1.getAss().length; j++) {
+ if (vo1.getAss()[j] != null) {
+ if (vo1.getAss()[j].getPk_Checktype().equals(asstype)) {
+ if (!"null".equals(assvalue) && !isExists(vo1.getAss()[j].getPk_Checkvalue(), assvalue)) {
+ result = false;
+ break;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @param @param pk_checkvalue pk_checkvalue="100288100000000000K2"
+ * @param @param assvalue assvalue="100288100000000000K1,100288100000000000K2"
+ * @param @return
+ * @return boolean
+ * @throws
+ * @Title: isExists
+ * @Description: TODO(жpk_checkvalueǷassvalue)
+ */
+ private boolean isExists(String pk_checkvalue, String assvalue) {
+ String[] tmpArr = assvalue.split(",");
+ if (null != tmpArr && tmpArr.length > 0) {
+ for (int i = 0; i < tmpArr.length; i++) {
+ if (null != tmpArr[i] && tmpArr[i].equals(pk_checkvalue)) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ /**
+ * @param @param vo1
+ * @param @param vo2
+ * @param @return
+ * @return boolean
+ * @throws
+ * @Title: existInDateRange
+ * @Description: TODO(жvoǷں)
+ */
+ private boolean existInDateRange(IVerifyVO vo1, IVerifyVO vo2) {
+ if (getRule().getMaxDateError() != null) {
+ getComparer().setDaterange(getRule().getMaxDateError().intValue());
+ getComparer().setCompareKey(new String[]{getRule().getDateName()});
+ return getComparer().compare(vo1, vo2) == 0 ? true : false;
+ }
+ return true;
+ }
+
+ /**
+ * ܣжvoǷͬ
+ * ߣ̾
+ * ʱ䣺(2014-6-19 13:05:15)
+ * <|>
+ * ֵ
+ * 㷨
+ *
+ * @param vo1 nc.vo.glrp.com.verify.IVerifyVO
+ * @param vo2 nc.vo.glrp.com.verify.IVerifyVO
+ * @return boolean
+ */
+ private boolean isVerifyEnable(IVerifyVO vo1, IVerifyVO vo2, boolean bDebitLoop) {
+
+ if (bDebitLoop) {
+ UFDouble[] debit = new UFDouble[]{vo1.getDebit_Money_Y(), vo1.getDebit_Money_B()};
+ UFDouble[] credit = new UFDouble[]{vo2.getCredit_Money_Y(), vo2.getCredit_Money_B()};
+ for (int i = 0; i < debit.length; i++) {
+ if ((debit[i].doubleValue() > 0 && credit[i].doubleValue() > 0)
+ || (debit[i].doubleValue() < 0 && credit[i].doubleValue() < 0)
+ || (debit[i].equals(ZERO) && credit[i].equals(ZERO))) {// ҡԭҲһµĿԭѵ0Ҳ0
+ continue;
+ } else {
+ return false;
+ }
+ }
+ } else {
+ UFDouble[] credit = new UFDouble[]{vo1.getCredit_Money_Y(), vo1.getCredit_Money_B()};
+ UFDouble[] debit = new UFDouble[]{vo2.getDebit_Money_Y(), vo2.getDebit_Money_B()};
+ for (int i = 0; i < debit.length; i++) {
+ if ((debit[i].doubleValue() > 0 && credit[i].doubleValue() > 0)
+ || (debit[i].doubleValue() < 0 && credit[i].doubleValue() < 0)
+ || (debit[i].equals(ZERO) && credit[i].equals(ZERO))) {
+ continue;
+ } else {
+ return false;
+ }
+ }
+ }
+ return true;
+ }
+
+ /**
+ * @param @param ufdMny δ
+ * @param @return
+ * @return boolean
+ * @throws
+ * @Title: isSettled
+ * @Description: TODO(жһݵԭҺ֯ҽǷȫ)
+ */
+ private boolean isSettled(UFDouble[] ufdMny) {
+ if (ufdMny == null || ufdMny.length < 1) {
+ return true;
+ }
+ for (int i = 0; i < ufdMny.length; i++) {
+ if (!ufdMny[i].equals(ZERO)) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ /* ( Javadoc)
+ * Title: getPk_accountingbook
+ * Description:
+ * @return
+ * @see nc.vo.glrp.com.verify.IMatchTool#getPk_accountingbook()
+ */
+ @Override
+ public String getPk_accountingbook() {
+ return this.pk_accountingbook;
+ }
+
+ /* ( Javadoc)
+ * Title: setPk_accountingbook
+ * Description:
+ * @param pkAccountingbook
+ * @see nc.vo.glrp.com.verify.IMatchTool#setPk_accountingbook(java.lang.String)
+ */
+ @Override
+ public void setPk_accountingbook(String pkAccountingbook) {
+ this.pk_accountingbook = pkAccountingbook;
+ }
+
+ /**
+ * @param @param verifyMoney κ
+ * @param @param voDebit 跽
+ * @param @param voCredit
+ * @param @return
+ * @return List ؽ־VO
+ * @throws
+ * @Title: generateLogs
+ * @Description: TODO(һ跽һݺĺ־)
+ */
+ private List generateLogs(UFDouble[] verifyMoney, IVerifyVO voDebit, IVerifyVO voCredit) {
+ List logVOList = new ArrayList();
+ // 跽ݺ־
+ ILogVO debitLog = LogVOFactory.getNewLogVO(getRule().getLogClassName());
+ debitLog.setBatchID(getRule().getBatchId());
+ debitLog.setVerifyObjPK(getRule().getDebitVerifyObj());
+ debitLog.setOppVerifyObjPK(getRule().getCreditVerifyObj());
+ debitLog.setData(voDebit);
+ debitLog.setDataPk(voDebit.getPk());
+ debitLog.setDebitBalaMny_y(verifyMoney[0]);
+ debitLog.setDebitBalaMny_b(verifyMoney[1]);
+ debitLog.setCreDitBalaMny_b(ZERO);
+ debitLog.setCreDitBalaMny_y(ZERO);
+ debitLog.setFlag(MainFlag);// todo 1
+ debitLog.setOppData(voCredit);
+ debitLog.setOppDataPk(voCredit.getPk());
+ debitLog.setOprDate(getOprDate());
+ debitLog.setOprPk(getPk_user());
+ // debitLog.setOprType(ILogVO.VERIFY);
+ debitLog.setOprType(2); // ֺ todo 1
+ debitLog.setPairNum(getRule().getNextPairNum());
+ debitLog.setPk_group(getPk_group());
+ logVOList.add(debitLog);
+ // ݺ־
+ ILogVO creditLog = LogVOFactory.getNewLogVO(getRule().getLogClassName());
+ creditLog.setBatchID(getRule().getBatchId());
+ creditLog.setVerifyObjPK(getRule().getCreditVerifyObj());
+ creditLog.setOppVerifyObjPK(getRule().getDebitVerifyObj());
+ creditLog.setData(voCredit);
+ creditLog.setDataPk(voCredit.getPk());
+ creditLog.setDebitBalaMny_b(ZERO);
+ creditLog.setDebitBalaMny_y(ZERO);
+ creditLog.setCreDitBalaMny_y(verifyMoney[0]);
+ creditLog.setCreDitBalaMny_b(verifyMoney[1]);
+ creditLog.setFlag(AssFlag);// todo 1
+ creditLog.setOppData(voDebit);
+ creditLog.setOppDataPk(voDebit.getPk());
+ creditLog.setOprDate(getOprDate());
+ creditLog.setOprPk(getPk_user());
+ // creditLog.setOprType(ILogVO.VERIFY);
+ creditLog.setOprType(2); // ֺ todo 1
+ creditLog.setPairNum(getRule().getPairNum());
+ creditLog.setPk_group(getPk_group());
+ logVOList.add(creditLog);
+ return logVOList;
+ }
+
+}
+
+/*kOCZ2rdZQh+oO4IyZSOXGg0LHHc/urYgAeiJss7fL0A=*/
\ No newline at end of file
diff --git a/gl/src/public/nccloud/pubitf/gl/lightgl/verify/IVerifyWebService.java b/gl/src/public/nccloud/pubitf/gl/lightgl/verify/IVerifyWebService.java
new file mode 100644
index 0000000..b5141c9
--- /dev/null
+++ b/gl/src/public/nccloud/pubitf/gl/lightgl/verify/IVerifyWebService.java
@@ -0,0 +1,47 @@
+//
+// Source code recreated from a .class file by IntelliJ IDEA
+// (powered by FernFlower decompiler)
+//
+
+package nccloud.pubitf.gl.lightgl.verify;
+
+import nc.vo.gl.pubvoucher.DetailVO;
+import nc.vo.pub.BusinessException;
+import nccloud.dto.gl.verify.VerifyInfoWebVO;
+
+import java.util.List;
+import java.util.Map;
+
+public interface IVerifyWebService {
+ Map queryRtVerifyData(String var1, String var2, String var3) throws BusinessException;
+
+ Map queryVerifyDatas(Map var1) throws BusinessException;
+
+ Map onVerify(VerifyInfoWebVO var1) throws BusinessException;
+
+ Map onVerifyMul(VerifyInfoWebVO var1) throws BusinessException;
+
+ Map onAutoVerify(VerifyInfoWebVO var1) throws BusinessException;
+
+ Map queryHistoryDatas(Map var1) throws BusinessException;
+
+ Map unVerify(VerifyInfoWebVO var1) throws BusinessException;
+
+ Map onRedBlue(VerifyInfoWebVO var1) throws BusinessException;
+
+ Map onAutoRedBlue(VerifyInfoWebVO var1) throws BusinessException;
+
+ Map verBalanceQuery(Map var1) throws BusinessException;
+
+ Map verDetailQuery(Map var1) throws BusinessException;
+
+ Map verDetailLinkQuery(VerifyInfoWebVO var1) throws BusinessException;
+
+ Map onQuery(Map var1) throws BusinessException;
+
+ Map onDetailed(Map var1) throws BusinessException;
+
+ Map refVerify(DetailVO var1, String var2) throws BusinessException;
+
+ List