@Override protected void handle(Context context, CheckinAskAmountChangeTask task) throws Throwable { UpdateSqlBuilder ub = new UpdateSqlBuilder(context); ub.setTable(ERPTableNames.Inventory.CheckinSheet.getTableName()); ub.addExpression( "value", ub.DOUBLE, task.getAskAmount(), "askedAmount = t.askedAmount+@value"); ub.addCondition("id", ub.guid, task.getId(), "t.RECID=@id"); ub.addCondition("xxx", ub.STRING, "a", "t.amount-t.askedAmount>=@value"); int count = ub.execute(); if (0 == count) { throw new Exception("申请金额超出入库金额,请核对!"); } }
@Override protected void handle(Context context, ChangeCheckinRealAmount task) throws Throwable { UpdateSqlBuilder ub = new UpdateSqlBuilder(context); double amount = task.getAmount(); if (amount < 0) { amount = DoubleUtil.sub(0, amount); } ub.setTable(ERPTableNames.Inventory.CheckinSheet.getTableName()); ub.addExpression("value", ub.DOUBLE, amount, "paidAmount = t.paidAmount+@value"); ub.addCondition("id", ub.guid, task.getId(), "t.RECID=@id"); ub.addCondition("xxx", ub.STRING, "a", "t.amount-t.paidAmount>=@value"); int count = ub.execute(); if (0 == count) { throw new Exception("付款金额超出入库金额,请核对!"); } CheckInBaseInfo info = context.find(CheckInBaseInfo.class, task.getId()); if (info.getAmount() == info.getPaidAmount()) { context.dispatch( new CheckInSheetAmountBalanceCompleteEvent(info.getRelaBillsId(), info.getSheetType())); } }