Index: ssts-customform/src/main/java/com/forgon/disinfectsystem/customform/forminstance/service/FormInstanceManagerImpl.java =================================================================== diff -u -r36518 -r36524 --- ssts-customform/src/main/java/com/forgon/disinfectsystem/customform/forminstance/service/FormInstanceManagerImpl.java (.../FormInstanceManagerImpl.java) (revision 36518) +++ ssts-customform/src/main/java/com/forgon/disinfectsystem/customform/forminstance/service/FormInstanceManagerImpl.java (.../FormInstanceManagerImpl.java) (revision 36524) @@ -27,9 +27,7 @@ import com.forgon.exception.SystemException; import com.forgon.security.service.OperationManager; import com.forgon.tools.db.DatabaseUtil; -import com.forgon.tools.hibernate.BasePoManager; import com.forgon.tools.hibernate.BasePoManagerImpl; -import com.forgon.tools.hibernate.ObjectDao; import com.forgon.tools.util.ConfigUtils; /** @@ -38,8 +36,6 @@ public class FormInstanceManagerImpl extends BasePoManagerImpl implements FormInstanceManager { - private ObjectDao objectDao; - private FormDefinitionManager formDefinitionManager; private OperationManager operationManager; @@ -52,10 +48,6 @@ this.formDefinitionManager = formDefinitionManager; } - public void setObjectDao(ObjectDao objectDao) { - this.objectDao = objectDao; - } - @Override public FormInstance getFormInstanceById(String id) { if (DatabaseUtil.isPoIdValid(id)) { @@ -70,11 +62,32 @@ public void deleteFormInstanceById(String id) { FormInstance formInstance = getFormInstanceById(id); if(formInstance != null){ + //如果自定义表单已被审核,则不允许修改表单。ZSRY-56 + boolean enableReviewOfFormDefinitionFunction = ConfigUtils.getSystemSetConfigByNameBool("enableReviewOfFormDefinitionFunction"); + if(enableReviewOfFormDefinitionFunction && isReviewedCustomFormInstance(formInstance)){ + throw new RuntimeException("自定义表单已审核,不能删除!"); + } objectDao.delete(formInstance); } } - + /** + * 判断是否已审核的自定义表单ZSRY-56 + * @param formInstance + * @param enableReviewOfFormDefinitionFunction + */ + private boolean isReviewedCustomFormInstance(FormInstance formInstance) { + FormDefinition formDefinition = formInstance.getFormDefinition(); + if(formDefinition == null){ + throw new RuntimeException("表单定义已不存在!"); + } + if(StringUtils.equals(formDefinition.getFormType(), FormDefinition.FOMRTYPE_CUSTOM) + && StringUtils.equals(formInstance.getStatus(), FormInstance.STATUS_REVIEWED)){ + return true; + } + return false; + } + @Override public void saveFormInstance(FormInstance formInstance, Map paramsMap) { @@ -90,10 +103,11 @@ throw new RuntimeException("id="+formDefinitionId+"的表单定义已不存在!"); } - //如果当前表单已被审核,不允许修改表单。ZSRY-56 + //如果自定义表单已被审核,则不允许修改表单。ZSRY-56 boolean enableReviewOfFormDefinitionFunction = ConfigUtils.getSystemSetConfigByNameBool("enableReviewOfFormDefinitionFunction"); if(enableReviewOfFormDefinitionFunction && DatabaseUtil.isPoIdValid(formInstance.getId()) + && StringUtils.equals(formDefinition.getFormType(), FormDefinition.FOMRTYPE_CUSTOM) && StringUtils.equals(formInstance.getStatus(), FormInstance.STATUS_REVIEWED)){ throw new RuntimeException("当前表单已被审核,不允许修改。"); } @@ -324,5 +338,26 @@ list.add(formInstance); batchReviewFormInstance(list, reviewer); } + + @Override + public void batchDeleteFormInstanceById(Collection formInstanceIds) { + if(CollectionUtils.isEmpty(formInstanceIds)){ + return; + } + List formInstances = this.getCollection(formInstanceIds); + if(CollectionUtils.isEmpty(formInstances)){ + return; + } + //如果自定义表单已被审核,则不允许修改表单。ZSRY-56 + boolean enableReviewOfFormDefinitionFunction = ConfigUtils.getSystemSetConfigByNameBool("enableReviewOfFormDefinitionFunction"); + if(enableReviewOfFormDefinitionFunction){ + for (FormInstance formInstance : formInstances) { + if(isReviewedCustomFormInstance(formInstance)){ + throw new RuntimeException("选中的记录中包含已审核的记录,不能删除!"); + } + } + } + objectDao.deleteAll(formInstances); + } } Index: ssts-customform/src/main/java/com/forgon/disinfectsystem/customform/forminstance/service/FormInstanceManager.java =================================================================== diff -u -r36518 -r36524 --- ssts-customform/src/main/java/com/forgon/disinfectsystem/customform/forminstance/service/FormInstanceManager.java (.../FormInstanceManager.java) (revision 36518) +++ ssts-customform/src/main/java/com/forgon/disinfectsystem/customform/forminstance/service/FormInstanceManager.java (.../FormInstanceManager.java) (revision 36524) @@ -45,4 +45,10 @@ */ public void saveAndReviewFormInstance(FormInstance formInstance, Map map); + /** + * 批量删除自定义表单 + * @param parseToLongs + */ + public void batchDeleteFormInstanceById(Collection formInstanceIds); + } Index: ssts-customform/src/main/java/com/forgon/disinfectsystem/customform/forminstance/action/FormInstanceAction.java =================================================================== diff -u -r36518 -r36524 --- ssts-customform/src/main/java/com/forgon/disinfectsystem/customform/forminstance/action/FormInstanceAction.java (.../FormInstanceAction.java) (revision 36518) +++ ssts-customform/src/main/java/com/forgon/disinfectsystem/customform/forminstance/action/FormInstanceAction.java (.../FormInstanceAction.java) (revision 36524) @@ -5,7 +5,6 @@ import net.sf.json.JSONObject; -import org.apache.commons.lang.StringUtils; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Namespace; import org.apache.struts2.convention.annotation.ParentPackage; @@ -81,12 +80,7 @@ String idStr = StrutsParamUtils.getPraramValue("ids", ""); String result = JSONUtil.buildJsonObject(true, "删除成功!").toString(); try { - if (StringUtils.isNotBlank(idStr)) { - String[] str = idStr.split(";"); - for (String id : str) { - formInstanceManager.deleteFormInstanceById(id); - } - } + formInstanceManager.batchDeleteFormInstanceById(StringTools.parseToLongs(idStr, ";")); } catch (Exception e) { result = JSONUtil.buildJsonObject(false, e.getMessage()).toString(); } Index: ssts-web/src/main/webapp/disinfectsystem/customform/forminstanceView.js =================================================================== diff -u -r36515 -r36524 --- ssts-web/src/main/webapp/disinfectsystem/customform/forminstanceView.js (.../forminstanceView.js) (revision 36515) +++ ssts-web/src/main/webapp/disinfectsystem/customform/forminstanceView.js (.../forminstanceView.js) (revision 36524) @@ -30,7 +30,7 @@ var result = Ext.decode(response.responseText); var success = result.success; if (true != success) { - showResult(result.cause); + showResult(result.message); return; } else { showResult('删除成功!');