Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/dwr/table/RecyclingApplicationTableManager.java =================================================================== diff -u -r30137 -r31131 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/dwr/table/RecyclingApplicationTableManager.java (.../RecyclingApplicationTableManager.java) (revision 30137) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/dwr/table/RecyclingApplicationTableManager.java (.../RecyclingApplicationTableManager.java) (revision 31131) @@ -64,6 +64,7 @@ import com.forgon.log.service.LogManager; import com.forgon.results.handler.LendGoodsBriefHandler; import com.forgon.results.handler.ResultBackHandler; +import com.forgon.security.service.OperationManager; import com.forgon.tools.GB2Alpha; import com.forgon.tools.GB2WB; import com.forgon.tools.MathTools; @@ -115,6 +116,12 @@ private LogManager appLogManager; + private OperationManager operationManager; + + public void setOperationManager(OperationManager operationManager) { + this.operationManager = operationManager; + } + public void setAppLogManager(LogManager appLogManager) { this.appLogManager = appLogManager; } @@ -219,9 +226,18 @@ foreignTousseAppFilterSql = " or (po.departCoding = '" + currentOrgUnitCode +"' and po.type='"+ InvoicePlan.TYPE_FOREIGNTOUSSEAPPLIACTION +"' and po.id in (select ftp.id from "+ ForeignTousseApplication.class.getSimpleName() +" ftp, " + TousseItem.class.getSimpleName() + " ti, " + TousseDefinition.class.getSimpleName() + " td where td.id=ti.tousseDefinitionId and "+ SqlUtils.getStringFieldInLargeCollectionsPredicate("td.supplierName", supplierNameList) +"))"; } + + // 具有【查看全部申请单】权限的用户,在科室申领列表可以看到所有科室的物品预约单,类似借物申请单。(DGZYY-170) + String reservationFormSql = ""; + Boolean enableGoodsReservateion = ConfigUtils.getSystemSetConfigByNameBool("enableGoodsReservateion"); + if(enableGoodsReservateion){ + if(operationManager.isCurrentUserHaveAnyOperation("SSTS_Application_ShowAll")){ + reservationFormSql = " or (po.type = '" + InvoicePlan.TYPE_GOODS_RESERVATION_FORM + "') "; + } + } - String loginUserSql = String.format(" and ((po.handleDepartCoding = '%s' and po.committedStatus = 1) or po.applicantCode='%s' or (po.departCoding = '%s' and po.type<>'%s') %s) ", - currentOrgUnitCode, userName, currentOrgUnitCode, InvoicePlan.TYPE_FOREIGNTOUSSEAPPLIACTION, foreignTousseAppFilterSql); + String loginUserSql = String.format(" and ((po.handleDepartCoding = '%s' and po.committedStatus = 1) or po.applicantCode='%s' or (po.departCoding = '%s' and po.type<>'%s') %s %s) ", + currentOrgUnitCode, userName, currentOrgUnitCode, InvoicePlan.TYPE_FOREIGNTOUSSEAPPLIACTION, foreignTousseAppFilterSql, reservationFormSql); sqlBuilder.append(loginUserSql); //2、不包含的申请单类型 Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java =================================================================== diff -u -r31086 -r31131 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java (.../RecyclingApplicationManagerImpl.java) (revision 31086) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java (.../RecyclingApplicationManagerImpl.java) (revision 31131) @@ -4530,10 +4530,12 @@ if(!committedStatus){ application.setCommittedStatus(false); } + + // 临床科室用户提交物品预约单后,如果该申请单没有被打印并且发货状态为待发货,则应该允许用户进行修改;其它类型的申请单申请单已被阅读过,不能修改(DGZYY-170) String code = AcegiHelper.getLoginUser().getOrgUnitCodingFromSupplyRoomConfig(); SupplyRoomConfig cssd = supplyRoomConfigManager.getFirstSupplyRoomConfig(); if (committedStatus && !StringTools.equals(code, cssd.getOrgUnitCoding()) - && application.readed()) { + && application.readed() && !StringUtils.equals(application.getType(), InvoicePlan.TYPE_GOODS_RESERVATION_FORM)) { throw new SystemException("该申请单已被阅读过,不能修改。如果需要修改,请联系管理员!"); }