Index: ssts-web/src/main/webapp/disinfectsystem/customform/formdefinitionView.js =================================================================== diff -u -r16082 -r16971 --- ssts-web/src/main/webapp/disinfectsystem/customform/formdefinitionView.js (.../formdefinitionView.js) (revision 16082) +++ ssts-web/src/main/webapp/disinfectsystem/customform/formdefinitionView.js (.../formdefinitionView.js) (revision 16971) @@ -40,6 +40,49 @@ }); } +/** + * 停用或启用定义 + * @param grid + * @returns {Boolean} + */ +function disableOrEnableDefinition(actionType,isDisabled) { + var records = grid.getSelectionModel().getSelections(); + + if (records.length == 0) { + showResult("请选择要删除的记录!"); + 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("请确认","是否确定要【" + actionType + "】选中的数据吗?", + function(button, text) { + if ("yes" == button) { + Ext.Ajax.request( { + url : WWWROOT + '/disinfectSystem/formDefinitionAction!disableOrEnableDefinition.do', + params : {ids : ids,isDisabled : isDisabled}, + success : function(response, options) { + var result = Ext.decode(response.responseText); + var success = result.success; + showResult(result.message); + if (success) { + grid.dwrReload(); + } + }, + failure : function(response, options) { + var result = Ext.decode(response.responseText); + showResult('操作失败,请联系管理员!'); + } + }); + } + }); +} + var formDefinitionItemRecord = Ext.data.Record.create([ {name : 'id'}, {name : 'name'}, @@ -344,6 +387,10 @@ value : id },{ xtype : 'hidden', + name : 'isDisabled', + id : 'isDisabled' + },{ + xtype : 'hidden', name : 'departCodes', id : 'departCodes' },{ @@ -739,6 +786,7 @@ {header : "五笔码",width : 0,dataIndex : 'wbCode'}, {header : "版本号",width : 80,dataIndex : 'version'}, {header : "是否已部署",width : 120,dataIndex : 'isDeploy',renderer : showIsDeployStatus}, + {header : "是否已停用",width : 120,dataIndex : 'isDisabled'}, {id : 'description',header : "描述",width : 120,dataIndex : 'description'} ]; @@ -751,7 +799,8 @@ {type:'string',dataIndex:'isDeploy'}, {type:'string',dataIndex:'description'}, {type:'string',dataIndex:'spelling'}, - {type:'string',dataIndex:'wbCode'} + {type:'string',dataIndex:'wbCode'}, + {type:'string',dataIndex:'isDisabled'} ] }); @@ -764,7 +813,8 @@ {name : 'isDeploy'}, {name : 'description'}, {name : 'spelling'}, - {name : 'wbCode'} + {name : 'wbCode'}, + {name : 'isDisabled'} ]; var tbar = [{ @@ -779,6 +829,18 @@ handler : function() { deleteFormDefinition(grid); } + }, '-', { + text : '停用', + iconCls : 'btn_ext_application_add', + handler : function() { + disableOrEnableDefinition("停用","是"); + } + }, '-', { + text : '启用', + iconCls : 'btn_ext_application_add', + handler : function() { + disableOrEnableDefinition("启用","否"); + } } ]; var dwrCallParams = null; Index: ssts-web/src/main/webapp/disinfectsystem/basedatamanager/qualitymonitoringConfig/qualityMonitoringDefinitionView.js =================================================================== diff -u -r16133 -r16971 --- ssts-web/src/main/webapp/disinfectsystem/basedatamanager/qualitymonitoringConfig/qualityMonitoringDefinitionView.js (.../qualityMonitoringDefinitionView.js) (revision 16133) +++ ssts-web/src/main/webapp/disinfectsystem/basedatamanager/qualitymonitoringConfig/qualityMonitoringDefinitionView.js (.../qualityMonitoringDefinitionView.js) (revision 16971) @@ -40,6 +40,49 @@ }); } +/** + * 停用或启用定义 + * @param grid + * @returns {Boolean} + */ +function disableOrEnableDefinition(actionType,isDisabled) { + var records = grid.getSelectionModel().getSelections(); + + if (records.length == 0) { + showResult("请选择要删除的记录!"); + 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("请确认","是否确定要【" + actionType + "】选中的数据吗?", + function(button, text) { + if ("yes" == button) { + Ext.Ajax.request( { + url : WWWROOT + '/disinfectSystem/formDefinitionAction!disableOrEnableDefinition.do', + params : {ids : ids,isDisabled : isDisabled}, + success : function(response, options) { + var result = Ext.decode(response.responseText); + var success = result.success; + showResult(result.message); + if (success) { + grid.dwrReload(); + } + }, + failure : function(response, options) { + var result = Ext.decode(response.responseText); + showResult('操作失败,请联系管理员!'); + } + }); + } + }); +} + //选择科室 function openSelectReceiverOrganization(departNames,departCodes){ var param = null; @@ -507,6 +550,10 @@ value : id },{ xtype : 'hidden', + name : 'isDisabled', + id : 'isDisabled' + },{ + xtype : 'hidden', name : 'departCodes', id : 'departCodes' },{ @@ -657,6 +704,7 @@ forceSelection : true, mode : 'local', width : 213, + listWidth:223, triggerAction : 'all', anchor : '95%' }] @@ -1033,6 +1081,7 @@ {header : "创建人",width : 80,dataIndex : 'createUserName'}, {header : "版本号",width : 80,dataIndex : 'version'}, {header : "是否已部署",width : 120,dataIndex : 'isDeploy',renderer : showIsDeployStatus}, + {header : "是否已停用",width : 120,dataIndex : 'isDisabled'}, {id : 'description',header : "描述",width : 120,dataIndex : 'description'} ]; @@ -1044,7 +1093,8 @@ {type:'string',dataIndex:'createUserName'}, {type:'string',dataIndex:'version'}, {type:'string',dataIndex:'isDeploy'}, - {type:'string',dataIndex:'description'} + {type:'string',dataIndex:'description'}, + {type:'string',dataIndex:'isDisabled'} ] }); @@ -1056,7 +1106,8 @@ {name : 'createUserName'}, {name : 'version'}, {name : 'isDeploy'}, - {name : 'description'} + {name : 'description'}, + {name : 'isDisabled'} ]; var tbar = [{ @@ -1073,6 +1124,20 @@ handler : function() { deleteFormDefinition(grid); } + }, '-', { + text : '停用', + hidden : SSTS_QualityMonitoring_Config, + iconCls : 'btn_ext_application_add', + handler : function() { + disableOrEnableDefinition("停用","是"); + } + }, '-', { + text : '启用', + hidden : SSTS_QualityMonitoring_Config, + iconCls : 'btn_ext_application_add', + handler : function() { + disableOrEnableDefinition("启用","否"); + } } ]; var dwrCallParams = null; Index: ssts-customform/src/main/java/com/forgon/disinfectsystem/customform/formdefinition/service/FormDefinitionManager.java =================================================================== diff -u -r16176 -r16971 --- ssts-customform/src/main/java/com/forgon/disinfectsystem/customform/formdefinition/service/FormDefinitionManager.java (.../FormDefinitionManager.java) (revision 16176) +++ ssts-customform/src/main/java/com/forgon/disinfectsystem/customform/formdefinition/service/FormDefinitionManager.java (.../FormDefinitionManager.java) (revision 16971) @@ -63,4 +63,11 @@ * @param params */ public FormDefinition deployFormDefinition(FormDefinition formDefinitionVo, JSONArray params); + + /** + * 停用或启用表单定义 + * @param isDisabled [是],[否] + * @param ids 单据id + */ + public void disableFormDefinition(String isDisabled, String ids); } Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/customform/formdefinition/FormDefinition.java =================================================================== diff -u -r16080 -r16971 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/customform/formdefinition/FormDefinition.java (.../FormDefinition.java) (revision 16080) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/customform/formdefinition/FormDefinition.java (.../FormDefinition.java) (revision 16971) @@ -20,6 +20,8 @@ import org.hibernate.annotations.CacheConcurrencyStrategy; import org.hibernate.annotations.Cascade; +import com.forgon.Constants; + /** * @author WangYi 2016-11-21 10:55 * @@ -115,6 +117,11 @@ */ private List items = new ArrayList(); + /** + * 是否停用 + */ + private String isDisabled = Constants.STR_NO; + @Id @GeneratedValue(strategy = GenerationType.AUTO) public Long getId() { @@ -242,6 +249,7 @@ public void setDepartCodes(String departCodes) { this.departCodes = departCodes; } + @Column(length=4000) public String getDepartNames() { return departNames; @@ -251,4 +259,12 @@ this.departNames = departNames; } + public String getIsDisabled() { + return isDisabled; + } + + public void setIsDisabled(String isDisabled) { + this.isDisabled = isDisabled; + } + } Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/qualitymonitoringmanager/qualitymonitoringconfig/QualityMonitoringDefinition.java =================================================================== diff -u -r16080 -r16971 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/qualitymonitoringmanager/qualitymonitoringconfig/QualityMonitoringDefinition.java (.../QualityMonitoringDefinition.java) (revision 16080) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/qualitymonitoringmanager/qualitymonitoringconfig/QualityMonitoringDefinition.java (.../QualityMonitoringDefinition.java) (revision 16971) @@ -1,12 +1,9 @@ package com.forgon.disinfectsystem.entity.qualitymonitoringmanager.qualitymonitoringconfig; -import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Table; - import org.hibernate.annotations.Cache; import org.hibernate.annotations.CacheConcurrencyStrategy; - import com.forgon.Constants; import com.forgon.disinfectsystem.entity.customform.formdefinition.FormDefinition; Index: ssts-customform/src/main/java/com/forgon/disinfectsystem/customform/formdefinition/service/FormDefinitionManagerImpl.java =================================================================== diff -u -r16497 -r16971 --- ssts-customform/src/main/java/com/forgon/disinfectsystem/customform/formdefinition/service/FormDefinitionManagerImpl.java (.../FormDefinitionManagerImpl.java) (revision 16497) +++ ssts-customform/src/main/java/com/forgon/disinfectsystem/customform/formdefinition/service/FormDefinitionManagerImpl.java (.../FormDefinitionManagerImpl.java) (revision 16971) @@ -145,15 +145,11 @@ if(formDefinitionVo == null){ return null; } - FormDefinition formDefiniton = getFormDefinition(formDefinitionVo); - - formDefiniton.setDescription(formDefinitionVo.getDescription()); - formDefiniton.setFormName(formDefinitionVo.getFormName()); - formDefiniton.setFormType(formDefinitionVo.getFormType()); - copyFormDefinitionProperty(formDefinitionVo, formDefiniton); if(params == null || params.size() == 0){ throw new RuntimeException("表单元素不能为空!"); } + FormDefinition formDefiniton = getFormDefinition(formDefinitionVo); + copyFormDefinitionProperty(formDefinitionVo, formDefiniton); //已部署不能再保存 if(FormDefinition.ACTION_DEPLOY.equals(formDefiniton.getIsDeploy())){ throw new RuntimeException("该表单定义已部署,不能再保存!"); @@ -193,11 +189,6 @@ }else{ if(formDefintion instanceof QualityMonitoringDefinition){ definition = new QualityMonitoringDefinition(); - //复制属性 - List notToCopy = new ArrayList(); - notToCopy.add("items"); - notToCopy.add("id"); - ReflectUtil.copyProperties(formDefinitionVo, definition, true, notToCopy); }else{ definition = new FormDefinition(); } @@ -216,6 +207,14 @@ definition.setDescription(formDefinitionVo.getDescription()); definition.setDepartCodes(formDefinitionVo.getDepartCodes()); definition.setDepartNames(formDefinitionVo.getDepartNames()); + definition.setIsDisabled(formDefinitionVo.getIsDisabled()); + //复制质量监测属性 + if(definition instanceof QualityMonitoringDefinition){ + List notToCopy = new ArrayList(); + notToCopy.add("items"); + notToCopy.add("id"); + ReflectUtil.copyProperties(formDefinitionVo, definition, true, notToCopy); + } } private void setFormDefinitionItemsAndOptions(FormDefinition formDefinition,JSONArray params,String actionType){ @@ -352,8 +351,23 @@ sql += " and (po.spelling like '%" + spelling + "%' or po.wbCode like '%" + spelling + "%')"; } + sql += " and (po.isDisabled is null or po.isDisabled = '" + Constants.STR_NO + "')"; return objectDao.findBySql(FormDefinition.class.getSimpleName(), sql); } + @Override + public void disableFormDefinition(String isDisabled, String ids) { + if (StringUtils.isNotBlank(ids) && StringUtils.isNotBlank(isDisabled)) { + String[] str = ids.split(";"); + for (String id : str) { + FormDefinition formDefinition = getFormDefinitionById(id); + if(formDefinition != null){ + formDefinition.setIsDisabled(isDisabled); + objectDao.saveOrUpdate(formDefinition); + } + } + } + } + } Index: ssts-qualitymon/src/main/java/com/forgon/disinfectsystem/qualitymonitoring/definition/service/QualityMonitoringDefinitionManagerImpl.java =================================================================== diff -u -r16176 -r16971 --- ssts-qualitymon/src/main/java/com/forgon/disinfectsystem/qualitymonitoring/definition/service/QualityMonitoringDefinitionManagerImpl.java (.../QualityMonitoringDefinitionManagerImpl.java) (revision 16176) +++ ssts-qualitymon/src/main/java/com/forgon/disinfectsystem/qualitymonitoring/definition/service/QualityMonitoringDefinitionManagerImpl.java (.../QualityMonitoringDefinitionManagerImpl.java) (revision 16971) @@ -155,6 +155,7 @@ if(StringUtils.isNotBlank(responsiblePerson)){ sql += " and po.responsibilityPart = '" + responsiblePerson + "'"; } + sql += " and (po.isDisabled is null or po.isDisabled = '" + Constants.STR_NO + "')"; return objectDao.findBySql(QualityMonitoringDefinition.class.getSimpleName(),sql); } /** Index: ssts-customform/src/main/java/com/forgon/disinfectsystem/customform/formdefinition/action/FormDefinitionAction.java =================================================================== diff -u -r16080 -r16971 --- ssts-customform/src/main/java/com/forgon/disinfectsystem/customform/formdefinition/action/FormDefinitionAction.java (.../FormDefinitionAction.java) (revision 16080) +++ ssts-customform/src/main/java/com/forgon/disinfectsystem/customform/formdefinition/action/FormDefinitionAction.java (.../FormDefinitionAction.java) (revision 16971) @@ -92,6 +92,21 @@ } StrutsResponseUtils.output(result); } + + /** + * 停用或启用定义 + */ + public void disableOrEnableDefinition() { + String ids = StrutsParamUtils.getPraramValue("ids", ""); + String isDisabled = StrutsParamUtils.getPraramValue("isDisabled", null); + String result = JSONUtil.buildJsonObject(true, "更新成功!").toString(); + try { + formDefinitionManager.disableFormDefinition(isDisabled,ids); + } catch (Exception e) { + result = JSONUtil.buildJsonObject(false, e.getMessage()).toString(); + } + StrutsResponseUtils.output(result); + } public void loadFormDefinition() { StrutsParamUtils.getResponse().setCharacterEncoding("UTF-8");