Index: ssts-web/src/main/webapp/disinfectsystem/foreigntousseapplication/foreignTousseApplicationView.js =================================================================== diff -u -r19789 -r19885 --- ssts-web/src/main/webapp/disinfectsystem/foreigntousseapplication/foreignTousseApplicationView.js (.../foreignTousseApplicationView.js) (revision 19789) +++ ssts-web/src/main/webapp/disinfectsystem/foreigntousseapplication/foreignTousseApplicationView.js (.../foreignTousseApplicationView.js) (revision 19885) @@ -85,6 +85,47 @@ return "

" + v + "

"; } +/** + * 批量确认归还或者提前归还. + * @param returnType 归还的类型(值有两种情况:“确认归还”、“提前归还”) + * @returns {Boolean} + */ +function comfirmReturnOrEarlyReturn(returnType) { + var records = grid.getSelectionModel().getSelections(); + + if (records.length == 0) { + showResult("请选择要" + returnType + "的记录!"); + return false; + } + var ids = null; + for (var i = 0, len = records.length; i < len; i ++) { + if (ids == null) { + ids = records[i].data['id']; + } else { + ids = ids + ';' + records[i].data['id']; + } + } + top.Ext.MessageBox.confirm("请确认","是否确定要" + returnType + "选中的记录?", + function(button, text) { + if ("yes" == button){ + Ext.Ajax.request({ + url : WWWROOT + '/disinfectSystem/foreigntousseapplication/foreignTousseApplicationAction!comfirmReturnOrEarlyReturn.do', + params : {ids : ids,returnType : returnType}, + success : function(response, options) { + var result = Ext.decode(response.responseText); + if (result.success) { + grid.dwrReload(); + } + showResult(result.message); + }, + failure : function(response, options) { + showResult("服务器出错,请联系系统管理员!"); + } + }); + } + }); +} + Ext.onReady(function(){ Ext.QuickTips.init(); var columns = [ @@ -194,6 +235,20 @@ handler : function() { terminateInvoicePlan(grid, foreignTousseApplicationForm); } + }, '-', { + text : '批量确认归还', + iconCls : 'btn_ext_application_go', + hidden : SSTS_ForeignTousseApplication_Return, + handler : function() { + comfirmReturnOrEarlyReturn(actionType_confirmReturn); + } + }, '-', { + text : '批量提前归还', + iconCls : 'btn_ext_application_go', + hidden : SSTS_ForeignTousseApplication_Return, + handler : function() { + comfirmReturnOrEarlyReturn(ACTION_TYPE_EARLY_RETURN); + } }]; grid = new Ext.ux.ForgonPageGrid({ Index: ssts-web/src/main/webapp/disinfectsystem/foreigntousseapplication/foreignTousseApplicationView.jsp =================================================================== diff -u -r19804 -r19885 --- ssts-web/src/main/webapp/disinfectsystem/foreigntousseapplication/foreignTousseApplicationView.jsp (.../foreignTousseApplicationView.jsp) (revision 19804) +++ ssts-web/src/main/webapp/disinfectsystem/foreigntousseapplication/foreignTousseApplicationView.jsp (.../foreignTousseApplicationView.jsp) (revision 19885) @@ -65,6 +65,12 @@ } + //外来器械申请单归还权限 + var SSTS_ForeignTousseApplication_Return = true; + + SSTS_ForeignTousseApplication_Return = false; + + var SSTS_ForeignTousseApplication_Terminate = true; SSTS_ForeignTousseApplication_Terminate = false; @@ -75,6 +81,7 @@ var supplyRoomCoding = '<%=request.getAttribute("supplyRoomCoding")%>'; var actionType_confirmReturn = '<%=ForeignTousseApplication.ACTION_TYPE_CONFIRM_RETURN%>'; //确认归还 + var ACTION_TYPE_EARLY_RETURN = '<%=ForeignTousseApplication.ACTION_TYPE_EARLY_RETURN%>'; //提前归还 var ACTION_TYPE_ADD = '<%=ForeignTousseApplication.ACTION_TYPE_ADD%>'; //新增 var ACTION_TYPE_INTERFERE = '<%=ForeignTousseApplication.ACTION_TYPE_INTERFERE%>'; //干预 var foreignTousseApplicationForm = '<%=InvoicePlan.TYPE_FOREIGNTOUSSEAPPLIACTION%>';//外来器械包申请单 Index: ssts-web/src/main/resources/systemset/operationDefine.xml =================================================================== diff -u -r19036 -r19885 --- ssts-web/src/main/resources/systemset/operationDefine.xml (.../operationDefine.xml) (revision 19036) +++ ssts-web/src/main/resources/systemset/operationDefine.xml (.../operationDefine.xml) (revision 19885) @@ -23,6 +23,7 @@ + Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManagerImpl.java =================================================================== diff -u -r19804 -r19885 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManagerImpl.java (.../ForeignTousseApplicationManagerImpl.java) (revision 19804) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManagerImpl.java (.../ForeignTousseApplicationManagerImpl.java) (revision 19885) @@ -27,6 +27,7 @@ import com.forgon.disinfectsystem.basedatamanager.supplyroomconfig.service.SupplyRoomConfigManager; import com.forgon.disinfectsystem.basedatamanager.warehouse.service.WareHouseManager; import com.forgon.disinfectsystem.common.CssdUtils; +import com.forgon.disinfectsystem.entity.basedatamanager.foreigntoussedefinition.ForeignTousseDefinition; import com.forgon.disinfectsystem.entity.basedatamanager.materialdefinition.MaterialDefinition; import com.forgon.disinfectsystem.entity.basedatamanager.materialinstance.MaterialInstance; import com.forgon.disinfectsystem.entity.basedatamanager.supplyroomconfig.SupplyRoomConfig; @@ -55,6 +56,7 @@ import com.forgon.tools.hibernate.ObjectDao; import com.forgon.tools.json.JSONUtil; import com.forgon.tools.string.StringTools; +import com.forgon.tools.util.SqlUtils; /** * @author panhaowen @@ -833,5 +835,35 @@ } return JSONUtil.buildJsonObject(success, message); } + + public void comfirmReturnOrEarlyReturn(List ids, String returnType) { + if (CollectionUtils.isNotEmpty(ids) && + (ForeignTousseApplication.ACTION_TYPE_CONFIRM_RETURN.equals(returnType) + || ForeignTousseApplication.ACTION_TYPE_EARLY_RETURN.equals(returnType))) { + String temp = " 1=1 "; + if (ForeignTousseApplication.ACTION_TYPE_CONFIRM_RETURN.equals(returnType)) { + temp = String.format(" ip.recyclingStatus<>'%s' ", InvoicePlan.RECYCLINGSTATUS_RECYCLED); + } else { + temp = String.format(" ip.recyclingStatus='%s' ", InvoicePlan.RECYCLINGSTATUS_AWAITRECEIVE); + } + + String sql = String.format("select count(*) from invoicePlan ip join ForeignTousseApplication fta on fta.id=ip.id " + + "where %s and(%s or fta.packageStatus='%s')", + SqlUtils.getNonStringFieldInCollectionsPredicate("ip.id", ids), temp, ForeignTousseApplication.APPLICATION_STATUS_RETRUN); + + if (objectDao.countBySql(sql) > 0) { + throw new RuntimeException(String.format("部分申请单不能%s!", returnType)); + } else { + List list = objectDao.findByIds(ForeignTousseApplication.class.getSimpleName(), ids); + if (CollectionUtils.isNotEmpty(list)) { + for (ForeignTousseApplication foreignTousseApplication : list) { + this.foreignTousseReturn(foreignTousseApplication); + } + } + } + } else { + throw new RuntimeException("参数有误!"); + } + } } Index: ssts-web/src/main/webapp/disinfectsystem/foreigntousseapplication/foreignTousseInfoForm.js =================================================================== diff -u -r19804 -r19885 --- ssts-web/src/main/webapp/disinfectsystem/foreigntousseapplication/foreignTousseInfoForm.js (.../foreignTousseInfoForm.js) (revision 19804) +++ ssts-web/src/main/webapp/disinfectsystem/foreigntousseapplication/foreignTousseInfoForm.js (.../foreignTousseInfoForm.js) (revision 19885) @@ -919,7 +919,7 @@ var disableReturn = true; //是否禁用“提前归还”按钮 var disableEarlyReturn = true; - if(id){ + if(id && !SSTS_ForeignTousseApplication_Return){ DWREngine.setAsync(false); ForeignTousseApplicationTableManager.isForeignTousseCanReturn(id,function(result){ var json = JSON.parse(result); Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/action/ForeignTousseApplicationAction.java =================================================================== diff -u -r19804 -r19885 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/action/ForeignTousseApplicationAction.java (.../ForeignTousseApplicationAction.java) (revision 19804) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/action/ForeignTousseApplicationAction.java (.../ForeignTousseApplicationAction.java) (revision 19885) @@ -2,6 +2,7 @@ import java.io.IOException; import java.io.PrintWriter; +import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; @@ -40,6 +41,7 @@ import com.forgon.tools.StrutsParamUtils; import com.forgon.tools.StrutsResponseUtils; import com.forgon.tools.json.JSONUtil; +import com.forgon.tools.string.StringTools; import com.opensymphony.xwork2.ModelDriven; import com.opensymphony.xwork2.Preparable; @@ -492,5 +494,23 @@ e.printStackTrace(); } } + + /** + * 批量确认归还或者提前归还. + */ + public void comfirmReturnOrEarlyReturn() { + String ids = StrutsParamUtils.getPraramValue("ids", ""); + String returnType = StrutsParamUtils.getPraramValue("returnType", ""); + if (StringTools.isNotBlank(ids)) { + JSONObject result = JSONUtil.buildJsonObject(true, String.format("%s成功!", returnType)); + try { + foreignTousseApplicationManager.comfirmReturnOrEarlyReturn(Arrays.asList(ids.split(";")), returnType); + } catch (Exception e) { + e.printStackTrace(); + result = JSONUtil.buildJsonObject(false, e.getMessage()); + } + StrutsResponseUtils.output(result); + } + } } Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/foreigntousseapplication/ForeignTousseApplication.java =================================================================== diff -u -r19804 -r19885 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/foreigntousseapplication/ForeignTousseApplication.java (.../ForeignTousseApplication.java) (revision 19804) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/foreigntousseapplication/ForeignTousseApplication.java (.../ForeignTousseApplication.java) (revision 19885) @@ -28,6 +28,7 @@ public static final String ACTION_TYPE_CONFIRM_RECEIVE = "确认接收"; public static final String ACTION_TYPE_CONFIRM_RECYCLE = "确认回收"; public static final String ACTION_TYPE_CONFIRM_RETURN = "确认归还"; + public static final String ACTION_TYPE_EARLY_RETURN = "提前归还"; public static final String ACTION_TYPE_ADD = "新增"; //新增外来器械包申请单操作 public static final String ACTION_TYPE_RECYCLEUPDATE = "回收时修改"; //回收时对外来器械包申请单的调整操作 public static final String ACTION_TYPE_INTERFERE = "干预"; //干预外来器械包申请单操作 Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManager.java =================================================================== diff -u -r19859 -r19885 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManager.java (.../ForeignTousseApplicationManager.java) (revision 19859) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManager.java (.../ForeignTousseApplicationManager.java) (revision 19885) @@ -68,4 +68,11 @@ JSONArray jsonArray, SupplyRoomConfig config, String actionType); public JSONObject isHaveNotReturnApplication(String id,String departCoding,String tousseName,String supplierName); + + /** + * 批量确认归还或者提前归还. + * @param ids 需要归还的外来申请单id的集合 + * @param returnType 归还的类型(值有两种情况:“确认归还”、“提前归还”) + */ + public void comfirmReturnOrEarlyReturn(List ids, String returnType); }