NC-总结(3)

2019-08-03 12:29

* @date:2009-3-13

* @see nc.bs.hp.hp020101.CostCardDAO#ISOne(nc.vo.pub.AggregatedValueObject) * @author:ZJH

* @TODO:成本卡在保存时判断是否存在相同产品的主键 * @param vo * @throws Exception */

public boolean ISOne(AggregatedValueObject vo) throws BusinessException { }

HpCostcardVO vo1 = (HpCostcardVO) vo.getParentVO().clone(); boolean stype = true;

if (vo1.getPk_costcard() != null) {// 修改时

if (ISCostCardstatus(vo1.getPk_invmandoc(), vo1.getPk_costcard() }

.toString(), vo1.getPk_corp())) {

stype = false;

} else {// 添加时 }

return stype;

if (ISCostCardstatusAdd(vo1.getPk_invmandoc(), vo1.getPk_corp())) { }

vo1.setCoperatorid(\);

vo1.setCoperatedate(new UFDate()); vo1.setClastmodifytime(new UFDateTime()); stype = false;

/**

* @date:2009-3-5

* @see nc.bs.trade.business.IBDBusiCheck#dealAfter(int, * nc.vo.pub.AggregatedValueObject, java.lang.Object) * @author:LG * @TODO:释放已加锁主键 * @param intBdAction * @param billVo * @param userObj * @throws Exception */

public void dealAfter(AggregatedValueObject billVo) throws Exception {

// TODO Auto-generated method stub

HpCostcardVO item = (HpCostcardVO) billVo.getParentVO(); lockPKs = new String[1];

lockPKs[0] = item.getPk_invmandoc(); PKLock.getInstance().releaseBatchLock(lockPKs,

InvocationInfoProxy.getInstance().getUserCode(), InvocationInfoProxy.getInstance().getUserDataSource());

}

7.2子表字段加锁

package nc.bs.hp.hp020301; import nc.bs.dao.BaseDAO;

import nc.bs.framework.common.InvocationInfoProxy;

import nc.bs.trade.business.IBDBusiCheck; import nc.bs.uap.lock.PKLock;

import nc.jdbc.framework.processor.ColumnProcessor; import nc.vo.hp.hp020301.CostGatherVO; import nc.vo.hp.pub.Toolkit;

import nc.vo.pub.AggregatedValueObject; import nc.vo.pub.BusinessException; import nc.vo.trade.pub.IBDACTION;

public class CostGatherBackCheck implements IBDBusiCheck {

private String[] lockPKs = null; /**

* @date:2009-3-5

* @see nc.bs.trade.business.IBDBusiCheck#check(int, * nc.vo.pub.AggregatedValueObject, java.lang.Object) * @author:LG

* @TODO:费用归集在保存时先对来源单据的明细主键加锁,再检查数据库中是否存在相同来源单据

的明细,避免并行时不会发生相同费用归集两次

* @param intBdAction * @param vo * @param userObj * @throws Exception */

public void check(int intBdAction, AggregatedValueObject vo, Object userObj)

throws Exception {

// TODO Auto-generated method stub

if (intBdAction == IBDACTION.SAVE

&& !Toolkit.isEmpty(vo.getChildrenVO())) {

CostGatherVO[] items = (CostGatherVO[]) vo.getChildrenVO(); lockPKs = new String[items.length]; for (int i = 0; i < items.length; i++)

数。\

重新取数。\ }

}

/** lockPKs[i] = items[i].getPk_billsourcedetail();

InvocationInfoProxy.getInstance().getUserCode(),

InvocationInfoProxy.getInstance().getUserDataSource()))

throw new BusinessException(\本次费用归集的部分数据已被他人归集,请重新取

if (this.checkCostGather()) { PKLock.getInstance().releaseBatchLock( lockPKs,

InvocationInfoProxy.getInstance().getUserCode(), InvocationInfoProxy.getInstance()

.getUserDataSource());

throw new BusinessException(\本次费用归集的部分数据已被他人归集,请

}

if (!PKLock.getInstance().acquireBatchLock(lockPKs,

else {

}

* @date:2009-3-5 * @author:LG * @TODO: * @return * @throws Exception */

private boolean checkCostGather() throws Exception { }

String sSql = \

+ Toolkit.getWherePartByKeys(lockPKs) + \

BaseDAO dao = new BaseDAO(); int num = Integer.parseInt(dao

.executeQuery(sSql, new ColumnProcessor()).toString());

return num > 0;

/**

* @date:2009-3-5

* @see nc.bs.trade.business.IBDBusiCheck#dealAfter(int, * nc.vo.pub.AggregatedValueObject, java.lang.Object) * @author:LG * @TODO:释放已加锁主键 * @param intBdAction * @param billVo * @param userObj * @throws Exception */


NC-总结(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:常州市城北污水处理厂提标改造方案 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: