批量获取锁,在做后台更新/删除时使用

 IMutexServiceControl mutexServiceControl = FrameWorkClientUtils.createMutexServiceControl();
    try
    {
      Map map = mutexServiceControl.batchRequestObjIDForUpdate(ids);
      Iterator lt = ids.iterator();
      while (lt.hasNext())
      {
        String id = (String)lt.next();
        Object value = map.get(id);
        if ((value != null) && (!Boolean.valueOf(value.toString()).booleanValue()))
        {
          Throwable mutexException = new EASBizException(new NumericExceptionSubItem("100", EASResource.getString("com.kingdee.eas.framework.FrameWorkResource.Error_ObjectUpdateLock_Request")));
          exceptionMap.put(id, mutexException);
          exceptionIds.add(id);
          lt.remove();
        }
      }
      if (ids.size() > 0)
      {
        BatchExecuteParamsEntry[] paramEntries = new BatchExecuteParamsEntry[ids.size()];
        for (int i = 0; i < ids.size(); i++)
        {
          if (ids.get(i) == null)
            continue;
          IObjectPK pk = new ObjectStringPK(ids.get(i).toString());
          BatchExecuteParamsEntry entry = new BatchExecuteParamsEntry(new Class[] { IObjectPK.class }, new Object[] { pk });


          paramEntries[i] = entry;
        }


        BatchExecuteResult result = getBizInterface().batchExecute("delete", new Class[] { IObjectPK.class }, paramEntries);
        ex = result.getExceptions();
        for (int i = 0; i < ex.length; i++)
        {
          if (ex[i] == null)
            continue;
          exceptionMap.put(ids.get(i), ex[i]);
          exceptionIds.add(ids.get(i));
        }
      }


    }
    finally
    {
      mutexServiceControl.batchReleaseObjIDForUpdate(ids);
    }


Interface IMutexServiceControl

All Known Implementing Classes:
MutexServiceControl

public interface  IMutexServiceControl

Version:
eas523
Author:
wxyxl, wen_zhang

Method Summary
 java.util.MapbatchObjectUpdateLockService(java.util.List requestIDList, java.util.List releaseIDList) 
          批量互斥服务,包括批量释放锁和批量申请锁
 voidbatchReleaseObjIDForUpdate(java.util.List idList) 
          批量释放数据互斥锁
 java.util.MapbatchRequestObjIDForUpdate(java.util.List idList) 
          批量申请数据互斥锁
 voidclearAllMutex() 
          清空所有功能互斥锁
 voidclearAllObjId() 
          清空所有数据互斥锁
 voiddelMutex(java.lang.String id) 
          删除功能互斥锁
 voiddelObjIDForUpdate(java.lang.String id) 
           
 longgetCurrentTime() 
          获取服务器当前时间
 IObjectValuegetDynObject(java.lang.String objID) 
          根据fid获取实体值对象
 java.util.MapgetMutexList() 
          获取所有功能互斥锁
 java.lang.StringgetObjectNumber(java.lang.String objId) 
          根据fid获取实体的number
 java.util.HashMapgetObjIDForUpdateList() 
           
 voidreleaseAllFuncMutexAndObjLocks(java.lang.String sessionID) 
          释放当前session占用的所有功能互斥和数据互斥锁
 voidreleaseMutex(Uuid requestId) 
          释放功能互斥锁
 voidreleaseObjIDForUpdate(java.lang.String id) 
          释放数据互斥锁
 voidreleaseObjIDForUpdate(java.lang.String id, Uuid uuid) 
          释放数据互斥锁
 booleanrequestBizObjIDForUpdate(java.lang.String id) 
          申请数据互斥锁
 booleanrequestMutex(MutexParameter mutexParameter) 
          申请功能互斥锁
 booleanrequestObjIDForUpdate(java.lang.String id) 
          申请数据互斥
 booleanrequestObjIDForUpdate(java.lang.String id, java.lang.String userName) 
          申请数据互斥锁
 booleanrequestObjIDForUpdate(java.lang.String id, java.lang.String userName, java.lang.String dcName) 
          申请数据互斥锁
 booleanrequestObjIDForUpdate(java.lang.String id, java.lang.String userName, java.lang.String dcName, java.lang.String objectDescription) 
          申请数据互斥锁
 voidsetContext(Context ctx) 
          Deprecated.  


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!针对您的问题,如果您使用的是Vue框架进行开发,可以按照以下步骤进行批量删除商品: 1. 创建一个复选框组件,让用户可以选择要删除的商品。 2. 在Vue组件中,使用v-model指令将复选框的值绑定到组件的数据对象中。 3. 创建一个删除按钮,并在点击触发一个方法。 4. 在该方法中,使用axios或其他HTTP库向后端发送请求,将选中的商品ID发送到后端进行删除。 下面是一个示例代码: ```html <template> <div> <table> <thead> <th> <input type="checkbox" v-model="allChecked" @change="checkAll"/> </th> <th>ID</th> <th>商品名称</th> <th>价格</th> </thead> <tbody> <tr v-for="item in items" :key="item.id"> <td> <input type="checkbox" v-model="checkedIds" :value="item.id"/> </td> <td>{{ item.id }}</td> <td>{{ item.name }}</td> <td>{{ item.price }}</td> </tr> </tbody> </table> <button @click="deleteSelected">删除选中商品</button> </div> </template> <script> import axios from 'axios'; export default { data() { return { items: [], checkedIds: [], allChecked: false } }, created() { // 获取商品列表 this.fetchItems(); }, methods: { fetchItems() { // 发送HTTP请求获取商品列表 axios.get('/api/items').then(response => { this.items = response.data; }); }, checkAll() { // 全选/取消全选 this.checkedIds = this.allChecked ? this.items.map(item => item.id) : []; }, deleteSelected() { // 删除选中商品 axios.post('/api/delete-items', { ids: this.checkedIds }).then(() => { // 删除成功后重新获取商品列表 this.fetchItems(); }); } } } </script> ``` 在这个示例中,我们通过v-model指令将复选框的值绑定到了checkedIds数组中,当用户点击删除按钮,会发送一个POST请求到后端,将选中的商品ID传递给后端进行删除。在删除成功后,我们重新获取商品列表,让用户看到最新的数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值