java 中對於傳入ids進行批量的刪除
前臺頁面的js 程式碼:
<script type="text/javascript"> function clearAndquery(){ $("input").val(''); $("select").val(''); $("#pagerForm").attr("action","${base}/reconfile/queryByConditions.htm"); $("#pagerForm").submit(); } function batchremove(){ if($("input[name='ids']:checked").length<=0){ return ; } var ids=""; var selectedCount=0; $("input[name='ids']:checked").each(function(){ ids+=$(this).val()+","; selectedCount++; }) var idsCount = $("[name='ids']").length; $(this).alertmsg('confirm', "確定要刪除該行資訊嗎?", {okCall: function() { if(selectedCount == idsCount){ doAjaxDelete(ids); }else{ doAjaxDeleteSelected(ids); } }}) } function doAjaxDeleteSelected(ids){ $.ajax({ type: "POST", url: '${base}/reconfile/batchDeleteSelected.htm', data: {'idList':ids}, success: function(msg){ $(this).alertmsg("correct", msg); }, error:function(error){ $(this).alertmsg("error", '刪除失敗'); } }); $("#pagerForm").submit(); } function doAjaxDelete(ids){ $.ajax({ type: "POST", url: '${base}/reconfile/batchDelete.htm', data: {'idList':ids}, success: function(data){ var msg = JSON.parse(data); if(msg.statusCode == 200){ $(this).alertmsg("correct", msg.message); }else{ $(this).alertmsg("error", msg.message); } $("#pagerForm").submit(); }, error:function(error){ $(this).alertmsg("error", '刪除失敗'); } }) } </script> <div class="bjui-pageHeader"> <form id="pagerForm" data-toggle="ajaxsearch" class="pageForm" action="${base}/reconfile/queryByConditions.htm" data-toggle="validate" method="post"> <#include "/common/hidden.html" > <fieldset> <legend>查詢條件</legend> <table width="100%"> <tr> <td width="30%"> <table> <tr> <td align="right"><label class="control-label x80">對賬日期:</label></td> <td align="left"> <input type="text" name="beginReconDate" value="${(form.beginReconDate?string('yyyy-MM-dd'))!}" data-toggle="datepicker" size="12"> - <input type="text" name="endReconDate" value="${(form.endReconDate?string('yyyy-MM-dd'))!}" data-toggle="datepicker" size="12"> </td> </tr> </table> </td> <td width="30%"> <table> <tr> <td align="right"><label class="control-label x80">回單型別:</label></td> <td align="left"><select data-toggle="selectpicker" name="fileType" data-width="200"> <option value="">全部</option> <#list reconFileTypeList as rl> <option value="${(rl.key)!''}" <#if form.fileType?? && form.fileType==rl.key>selected</#if>>${(rl.value)!''}</option> </#list> </select> </td> </tr> </table> </td> <td width="40%"> <table> <tr> <td align="right"><label class="control-label x80">銀行渠道:</label></td> <td align="left"><#include "/common/cpsBankAndChannel.html"></td> </tr> </table> </td> </tr> <tr> <td width="30%"> <table> <tr> <td align="right"><label class="control-label x80">檔名稱:</label></td> <td align="left"><input type="text" name="fileName" value="${(form.fileName)!''}" size="15"></td> </tr> </table> </td> <td width="30%"></td> <td width="40%"></td> </tr> <tr height="40"> <td width="30%"></td> <td align="left" width="30%"> <button type="submit" class="btn-default" data-icon="search">查詢</button> <button type="button" onclick="clearAndquery()" class="btn-orange" data-icon="undo">清空查詢</button> <button type="button" class="btn-blue" onclick="batchremove()" data-icon="remove" >刪除選中行</button> </td> <td width="40%"></td> </tr> </table> </fieldset> </form> </div> <div class="bjui-pageContent"> <table class="table table-bordered table-hover table-striped table-top" data-selected-multi="true"> <thead> <tr> <th width="26" align="center"><input type="checkbox" class="checkboxCtrl" data-group="ids" data-toggle="icheck"></th> <th align="center">渠道</th> <th width="100" align="center">回單型別</th> <th align="center">檔名稱</th> <th align="center">記錄數</th> <th align="center">狀態</th> <th align="center">失敗原因</th> <th data-order-field="RECON_DATE" align="center">對賬日期</th> <th align="center">上傳型別</th> <th data-order-field="CRT_TIME" align="center">上傳日期</th> <th width="120" align="center">操作</th> </tr> </thead> <tbody> <#if form??&&form.dtoList??> <#list form.dtoList as item> <tr data-id=""> <td align="center"><input type="checkbox" name="ids" data-toggle="icheck" value="${item.uploadId}"></td> <td align="center">${item.channelName!''}</td> <td align="center">${form.fileTypeEnum[item.fileType+'']!''}</td> <td align="center">${item.fileName!''}</td> <td align="center">${item.totalNum!''}</td> <td align="center">${form.uploadStatusEnum[item.status+'']!''}</td> <td align="center">${item.failReason!''}</td> <td align="center">${item.reconDate?string("yyyy-MM-dd")!''}</td> <#if item.uploadType??&&item.uploadType == 0> <td width="100" align="center">手工上傳</td> <#elseif item.uploadType??&&item.uploadType == 1> <td width="100" align="center">自動上傳</td> <#else> <td width="100" align="center"</td> </#if> <td align="center">${item.crtTime?string("yyyy-MM-dd HH:mm:ss")!''}</td> <td align="center"> <a href="${base}/reconfile/downLoad.htm?uploadId=${item.uploadId}" class="btn btn-green" >下載</a> <a href="${base}/reconfile/delete.htm?uploadId=${item.uploadId}" class="btn btn-red" data-toggle="doajax" data-confirm-msg="確定要刪除該行資訊嗎?">刪除</a> </td> </tr> </#list> </#if> </tbody> </table> </div> <#include "/common/page.html" >
後臺處理批量的程式碼: 當然加了點別的程式碼
//批量
@RequestMapping("/batchDelete") @ResponseBody public ModelAndView batchDelete(HttpServletRequest request) { String ids = request.getParameter("idList"); String[] idArray = ids.split(","); String userCode = SSOUtil.getSSOInfo(request).getUserCode(); try { UserDto userDto = userService.queryUserInfoByCode(userCode); if (userDto == null || userDto.getUserType() == null) { logger.error("刪除失敗,使用者登入失效"); return ajaxDeleteERROR("刪除失敗,使用者登入失效"); } if (idArray != null && idArray.length > 0) { List<Long> uploadIds = new LinkedList<Long>(); for (String id : idArray) { uploadIds.add(Long.valueOf(id)); } Iterator<Long> iterator = uploadIds.iterator(); while (iterator.hasNext()) { Long upload = (Long) iterator.next(); List<Long> uploadIdList = new LinkedList<Long>(); uploadIdList.add(upload); ReconFileUploadForQuery query = new ReconFileUploadForQuery(); query.setUploadId(upload); List<ReconFileUploadDto> uploadObjs = reconFileUploadService.query(query); if (CollectionUtils.isNotEmpty(uploadObjs)) { ReconFileUploadDto reconFileUploadDto = uploadObjs.get(0); // 品牌服務費 if (reconFileUploadDto.getFileType().intValue() == ReconFileTypeEnum.BRAND_FEE.getCode()) { // 刪除list中的品牌服務檔案uploadId iterator.remove(); if (!checkReconStatusByChannel(reconFileUploadDto.getChannelNo())) { logger.error("刪除失敗,有對賬正在進行中..."); return ajaxDeleteERROR("刪除失敗,有對賬正在進行中"); } if (!checkBrandFeeReconStatus(upload)) { logger.error("刪除失敗,檔案已認領..."); return ajaxDeleteERROR("刪除失敗,檔案已認領"); } ReconFileUploadForQuery reconFileUploadForQuery = new ReconFileUploadForQuery(); reconFileUploadForQuery.setUploadIds(uploadIdList); reconFileUploadForQuery.setStatus(FileUploadStatusEnum.DOING_DELETE.getCode()); reconFileUploadService.updateStatus(reconFileUploadForQuery); // 更新回單物件狀態為刪除中 reconFundsBrandFeeService.deleteUploadId(upload);// 刪除品牌服務費明細 reconFileUploadService.deleteById(upload);// 刪除檔案記錄 } } } // 如果list為空值, 則都是品牌服務檔案。 不用進行下一步操作。 if (uploadIds.size() == 0) { return ajaxDeleteSuccess("檔案開始刪除並重置對賬結果,請稍後查詢刪除結果"); } // 刪除之前對檔案的資金對賬進行判斷 if (!checkFundsReconStatus(uploadIds)) { logger.error("刪除失敗,檔案已認領..."); return ajaxDeleteERROR("刪除失敗,檔案已認領"); } if (!checkReconStatus(uploadIds)) { logger.error("刪除失敗,有對賬正在進行中..."); return ajaxDeleteERROR("刪除失敗,有對賬正在進行中"); } ReconFileUploadForQuery reconFileUploadForQuery = new ReconFileUploadForQuery(); reconFileUploadForQuery.setUploadIds(uploadIds); reconFileUploadForQuery.setStatus(FileUploadStatusEnum.DOING_DELETE.getCode()); reconFileUploadService.updateStatus(reconFileUploadForQuery); // 更新回單物件狀態為刪除中 reconfileRemoveService.deleteReconFile(userDto.getUserType(), uploadIds); return ajaxDeleteSuccess("檔案開始刪除並重置對賬結果,請稍後查詢刪除結果"); } } catch (Exception e) { logger.error("批量刪除失敗", e); return ajaxDeleteERROR("批量刪除失敗"); } return ajaxDeleteSuccess("批量刪除成功"); }
//刪除選中:
@RequestMapping(value = "/batchDeleteSelected", produces = "text/html;charset=UTF-8") @ResponseBody public String batchDeleteSelected(HttpServletRequest request) { String ids = request.getParameter("idList"); String[] idArray = ids.split(","); String userCode = SSOUtil.getSSOInfo(request).getUserCode(); try { UserDto userDto = userService.queryUserInfoByCode(userCode); if (userDto == null || userDto.getUserType() == null) { logger.error("刪除失敗,使用者登入失效"); return "刪除失敗,使用者登入失效"; } if (idArray != null && idArray.length > 0) { List<Long> uploadIds = new LinkedList<Long>(); for (String id : idArray) { uploadIds.add(Long.valueOf(id)); } Iterator<Long> iterator = uploadIds.iterator(); while (iterator.hasNext()) { Long upload = (Long) iterator.next(); List<Long> uploadIdList = new LinkedList<Long>(); uploadIdList.add(upload); ReconFileUploadForQuery query = new ReconFileUploadForQuery(); query.setUploadId(upload); List<ReconFileUploadDto> uploadObjs = reconFileUploadService.query(query); if (CollectionUtils.isNotEmpty(uploadObjs)) { ReconFileUploadDto reconFileUploadDto = uploadObjs.get(0); // 品牌服務費 if (reconFileUploadDto.getFileType().intValue() == ReconFileTypeEnum.BRAND_FEE.getCode()) { // 刪除list中的品牌服務檔案uploadId iterator.remove(); if (!checkReconStatusByChannel(reconFileUploadDto.getChannelNo())) { logger.error("刪除失敗,有對賬正在進行中..."); return "刪除失敗,有對賬正在進行中"; } if (!checkBrandFeeReconStatus(upload)) { logger.error("刪除失敗,檔案已認領..."); return "刪除失敗,檔案已認領"; } ReconFileUploadForQuery reconFileUploadForQuery = new ReconFileUploadForQuery(); reconFileUploadForQuery.setUploadIds(uploadIdList); reconFileUploadForQuery.setStatus(FileUploadStatusEnum.DOING_DELETE.getCode()); reconFileUploadService.updateStatus(reconFileUploadForQuery); // 更新回單物件狀態為刪除中 reconFundsBrandFeeService.deleteUploadId(upload);// 刪除品牌服務費明細 reconFileUploadService.deleteById(upload);// 刪除檔案記錄 } } } // 如果list為空值, 則都是品牌服務檔案。 不用進行下一步操作。 if (uploadIds.size() == 0) { return "檔案開始刪除並重置對賬結果,請稍後查詢刪除結果"; } // 刪除之前對檔案的資金對賬進行判斷 if (!checkFundsReconStatus(uploadIds)) { logger.error("刪除失敗,檔案已認領..."); return "刪除失敗,檔案已認領"; } if (!checkReconStatus(uploadIds)) { logger.error("刪除失敗,有對賬正在進行中..."); return "刪除失敗,有對賬正在進行中"; } ReconFileUploadForQuery reconFileUploadForQuery = new ReconFileUploadForQuery(); reconFileUploadForQuery.setUploadIds(uploadIds); reconFileUploadForQuery.setStatus(FileUploadStatusEnum.DOING_DELETE.getCode()); reconFileUploadService.updateStatus(reconFileUploadForQuery); // 更新回單物件狀態為刪除中 reconfileRemoveService.deleteReconFile(userDto.getUserType(), uploadIds); return "檔案開始刪除並重置對賬結果,請稍後查詢刪除結果"; } } catch (Exception e) { logger.error("批量刪除失敗", e); return "批量刪除失敗"; } return "批量刪除成功"; }
相關推薦
java 中對於傳入ids進行批量的刪除
前臺頁面的js 程式碼: <script type="text/javascript"> function clearAndquery(){ $("input").val(''); $("select").val(''); $("#pagerForm"
java中對於大量資料採用批量處理來提高效率
設計的話, 是在dao層寫批量新增的方法,以及實現類dao的實現類, 在service呼叫這個dao就可以了! 不過最終走的還是單個只不過是集合的遍歷, 所以不用再mapper.xml裡面配置方法。 IReconBankOrderCpsBatchDao裡面的方法:
jsp中對資料進行批量刪除操作
批量刪除的SQL:delete from user where uid in(主鍵列表); UserBiz: //批量刪除 public boolean batchDelete(String[] uids); UserBizImpl: public
在java中對數據庫進行增刪改查(轉)
ima ive upd line 增加 key get cat imp 1.java連接MySql數據庫 代碼區域: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
JAVA中通過Hibernate-Validation進行參數驗證
tst map art 合法性 iter AI 字符 nta ali 在開發JAVA服務器端代碼時,我們會遇到對外部傳來的參數合法性進行驗證,而hibernate-validator提供了一些常用的參數校驗註解,我們可以拿來使用。1.maven中引入hibernate-
java中對於redis的簡單操作
java info img png .com 圖片 jar包 9.png com 添加redis的jar包 java中對於redis的簡單操作
java中對於多態的理解
運行 之間 () sta java eof 唱歌 bsp 如果 面向對象: 類:具體的對象抽象而來,可以抽象的表示一類具有相同特征和行為的對象 對象:是由類的實例化而來,對象是類的一個實例 java中關於多態的理解 打個比方 父親person有行為這
linux 用find 和 rm進行批量刪除
find ./ -name _NA | xargs rm -rf 用 find 檢索出相應檔案(包括當下資料夾下面的檔案也能一併檢索出來), 然後將檢索結果通過管道命令導向到引數 xargs 然後用rm命令進行刪除, -rf為刪除命令rm的引數, r表示遞迴刪除,f表示不需要確認 也可以
關於java中需要對路徑進行分割操作時出現的異常
在工作中操作分割路徑時出現的問題 示例:String path = "C:\\Users\\Administrator.SC-201606041031\\Desktop\\test.txt"; 需要對該path進行分割操作則需要 String[] matchPaths = path.split
JAVA中對於需要頻繁new的物件的一個優化的方法
在實際開發中,某些情況下,我們可能需要頻繁去建立一些物件(new),下面介紹一種,我從書上看到的,可以提高效率的方法。 首先,對於將會頻繁建立的物件,我們要讓這個類實現Cloneable介面,因為這個優化的核心,就是利用clone。 clone的最大特點就是,不會去呼叫任何構造方法,所以,在
js 通過全選操作來進行批量刪除與批量修改
效果圖 1.先說js進行全選: //展示這麼多,其實只需要看標紅部分就行 <form name="action" class="form-horizontal" role="form" method="post" enctype="multipart
Java中如何使用Json進行格式轉換常用方法
首先要在pom.xml檔案加入以下一依賴,這是阿里巴巴的開源格式轉換技術 <dependency> <groupId>com.alibaba</groupId>
基於本地redis、protostuff序列化對於資料層的優化及java中對於泛型的使用
此次對於redis、protostuff的應用是在一個高併發的秒殺系統中實現的。 在高併發的秒殺系統的優化中主要有以下幾個方面: 1.對於獲取秒殺地址的介面的優化 每次獲取秒殺介面我們都要訪問資料庫,在高併發的系統中我們可以使用redis快取進行優化,不需要每次都訪問資料庫,從
Java中對於httpClient的非同步請求處理
注意:使用這個前提要匯入相對應的jar包,這裡使用的是Apache的httpComponents; 直接在pom.xml檔案里加入: <dependency> <groupId>org.apache.httpcomponents</groupId>
java中對於Date時間的各種用法和方法總結
在java中經常會用到和時間日期有關的各種操作,今天就對於Date的幾中常用的用法做一個總結: -Date類 : 1.表示日期的類 2.提供了很多的操作日期的方法,但是很多方法被java標記為過時 public class TestDateAPIClass { @Test
java中對於字串 XX.toString和String.valueOf()以及強制型別轉換的區別
今天在寫程式碼的時候遇到很多需要型別轉換的東西 ,特別是需要轉換到String型別。好幾次都報錯了,特此記錄一下這三者之間的區別 toString方法 先看一下API對toString方法的描述 返回該物件的字串表示。通常,toString 方法會返回一個“以文
Maven小坑:IDEA開發工具中對於maven專案進行mvn install報錯的解決辦法之一(前提不是程式碼錯誤)
今天公司前輩給了我一個專案,要我熟悉熟悉,以後會在這裡面進行開發;在我使用Iidea自帶的控制檯進行mvn install命令的時候,發先mvn install失敗(這裡的報錯可能會有多種,就是因為在install的時候沒有找到資源,不一一舉例了); 經過一番程式碼以及包的檢查,發現沒有錯誤
MyBatie使用List資料型別進行批量刪除
進行一項批量刪除的功能,使用MyBatis進行,資料型別為List,下面上程式碼: <!-- public int deleteList(List<Integer> addedIds); --> <delete id="deleteList
oracle通過load data 將資料匯入表中通過儲存過程進行批量處理
說明:雖然沒圖,但文字表述很清楚,自己做過的專案留著備用(這只是初版,比較繁瑣,但很明確) 準備工作做完之後,後期可直接使用。如後期excel資料有變更,只需改動對應的部分即可,不涉及改動的可直接使用。 實際操作步驟 依照excel資料模版格式準備好建表語句,將中間過渡
Java中對於模態框的使用以及在多執行緒中的應用
模態框可以通過繼承JDialog並且設定構造引數boolean modal = true即可。 但是 當此模態框setVisible(true)時候,會導致當前執行緒阻塞。 那麼問題來了:現有一需求是點選登陸按鈕,則會向伺服器傳送登陸請求以及獲取資料的請求,待伺服器成功返回響應即可登陸主介面