Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/sterilizationmanager/proxydisinfection/ProxyDisinfection.java =================================================================== diff -u -r23533 -r33206 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/sterilizationmanager/proxydisinfection/ProxyDisinfection.java (.../ProxyDisinfection.java) (revision 23533) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/sterilizationmanager/proxydisinfection/ProxyDisinfection.java (.../ProxyDisinfection.java) (revision 33206) @@ -8,7 +8,9 @@ import javax.persistence.JoinColumn; import javax.persistence.JoinTable; import javax.persistence.ManyToMany; +import javax.persistence.Transient; +import org.apache.commons.lang.StringUtils; import org.hibernate.annotations.Cache; import org.hibernate.annotations.CacheConcurrencyStrategy; import org.hibernate.annotations.DynamicInsert; @@ -32,8 +34,26 @@ @Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) public class ProxyDisinfection extends InvoicePlan{ + /** + * 代理灭菌单专用状态,待接收 + */ + public static final String RECEIVESTATUS_AWAITRECEIVE = "待接收"; + /** + * 代理灭菌单专用状态,部分接收 + */ + public static final String RECEIVESTATUS_PARTRECEIVE = "部分接收"; + /** + * 代理灭菌单专用状态,已接收 + */ + public static final String RECEIVESTATUS_RECEIVED = "已接收"; + private Integer totalAmountOfTousses; + /** + * 代理灭菌单的接收状态 + */ + private String receiveStatus; + // /** // * 是否二次发货 // */ @@ -68,6 +88,27 @@ this.reviewedBaskets = reviewedBaskets; } + public String getReceiveStatus() { + return receiveStatus; + } + + public void setReceiveStatus(String receiveStatus) { + this.receiveStatus = receiveStatus; + } + + /** + * 判断代理灭菌单是否为已接收状态,状态为空默认为已接收状态 + * @return + */ + @Transient + public boolean hasReceived(){ + if(StringUtils.equals(receiveStatus, ProxyDisinfection.RECEIVESTATUS_RECEIVED) + || StringUtils.isBlank(receiveStatus)){ + return true; + } + return false; + } + // public String getCanResendout() { // return StringTools.defaultIfEmpty(canResendout, Constants.STR_NO); // } Index: forgon-core/src/main/java/com/forgon/log/model/Log.java =================================================================== diff -u -r32550 -r33206 --- forgon-core/src/main/java/com/forgon/log/model/Log.java (.../Log.java) (revision 32550) +++ forgon-core/src/main/java/com/forgon/log/model/Log.java (.../Log.java) (revision 33206) @@ -45,6 +45,7 @@ public static final String MODEL_REVIEW = "审核模块"; public static final String MODEL_STERILELOADING = "灭菌装载模块"; public static final String MODEL_STERILIZATION = "灭菌模块"; + public static final String MODEL_PROXYDISINFECTION = "代理灭菌模块"; public static final String MODEL_STERILIZATION_UNLOAD = "灭菌卸载"; public static final String MODEL_STERILIZATION_TRANSITION = "灭菌交接"; public static final String MODEL_INVOICE = "发货模块"; Index: ssts-web/src/main/webapp/dataUpdater/sqls/4.9.87_4.9.88.sql =================================================================== diff -u --- ssts-web/src/main/webapp/dataUpdater/sqls/4.9.87_4.9.88.sql (revision 0) +++ ssts-web/src/main/webapp/dataUpdater/sqls/4.9.87_4.9.88.sql (revision 33206) @@ -0,0 +1,4 @@ +update ProxyDisinfection set receiveStatus = '已接收' where id in (select id from InvoicePlan where isConvertPackingRecord = '是' and deliverStatus in ('已发货','部分发货','待发货')); +update ProxyDisinfection set receiveStatus = '待接收' where id in (select id from InvoicePlan where isConvertPackingRecord = '是' and deliverStatus = '待接收'); +update ProxyDisinfection set receiveStatus = '部分接收' where id in (select id from InvoicePlan where isConvertPackingRecord = '是' and deliverStatus = '部分接收'); +update InvoicePlan set deliverStatus = '待发货' where deliverStatus in ('待接收','部分接收','已接收'); \ No newline at end of file Index: forgon-tools/src/main/java/com/forgon/Constants.java =================================================================== diff -u -r32716 -r33206 --- forgon-tools/src/main/java/com/forgon/Constants.java (.../Constants.java) (revision 32716) +++ forgon-tools/src/main/java/com/forgon/Constants.java (.../Constants.java) (revision 33206) @@ -27,7 +27,7 @@ "4.9.25","4.9.26","4.9.27","4.9.28","4.9.29","4.9.30","4.9.31","4.9.32","4.9.33","4.9.34","4.9.35","4.9.36","4.9.37","4.9.38","4.9.39","4.9.40","4.9.41","4.9.42","4.9.43","4.9.44", "4.9.45","4.9.46","4.9.47","4.9.48","4.9.49","4.9.50","4.9.51","4.9.52","4.9.53","4.9.54","4.9.55","4.9.56","4.9.57","4.9.58","4.9.59","4.9.60","4.9.61","4.9.62", "4.9.63","4.9.64","4.9.65","4.9.66","4.9.67","4.9.68","4.9.69","4.9.70","4.9.71","4.9.72","4.9.73","4.9.74","4.9.75","4.9.76","4.9.77","4.9.78","4.9.79","4.9.80","4.9.81","4.9.82","4.9.83","4.9.84","4.9.85", - "4.9.86","4.9.87"}; + "4.9.86","4.9.87","4.9.88"}; // 版本列表(4.0版本升级4.1版需要分两步:先从4.0升到4.1.0、然后从4.1.0升级4.1最新版本) /*public final static String[] SOFTWARE_VERSION_ARRAY = new String[] { Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/proxydisinfection/service/ProxyDisinfectionManagerImpl.java =================================================================== diff -u -r33171 -r33206 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/proxydisinfection/service/ProxyDisinfectionManagerImpl.java (.../ProxyDisinfectionManagerImpl.java) (revision 33171) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/proxydisinfection/service/ProxyDisinfectionManagerImpl.java (.../ProxyDisinfectionManagerImpl.java) (revision 33206) @@ -146,7 +146,7 @@ } if(StringUtils.equals(proxyDisinfection.getDepartCoding(), loginUserOrgUnitCode) && proxyDisinfection != null && !DatabaseUtil.isPoIdValid(proxyDisinfection.getId())){ //二级供应室在装配记录页面录代理灭菌单,物品都是二级供应室自己装配的,申请科室是二级供应室,处理科室默认是一级供应室,单状态为“待接收” - proxyDisinfection.setDeliverStatus(InvoicePlan.RECYCLINGSTATUS_AWAITRECEIVE); + proxyDisinfection.setReceiveStatus(ProxyDisinfection.RECEIVESTATUS_AWAITRECEIVE); proxyDisinfection.setIsConvertPackingRecord(Constants.STR_YES); } saveOrUpdate(proxyDisinfection);//先保存,获取id @@ -156,7 +156,7 @@ if(tousseInstanceList != null){ for (TousseInstance ti : tousseInstanceList) { ti.setProxyDisinfection_id(proxyDisinfection.getId()); - if(!StringUtils.equals(proxyDisinfection.getDeliverStatus(), ProxyDisinfection.DELIVERSTATUS_AWAITDELIVER) + if(!proxyDisinfection.hasReceived() && !StringUtils.equals(ti.getHasReceived(), Constants.STR_YES)){ // 装配记录产生的代理灭菌物品的接收状态为“否” ti.setHasReceived(Constants.STR_NO); @@ -170,7 +170,7 @@ tousseInstanceManager.save(ti); } //重新获取代理灭菌单的发货状态 - setProxyDisinfectionDeliverStatus(proxyDisinfection, tousseInstanceList); + setProxyDisinfectionReceiveStatus(proxyDisinfection, tousseInstanceList); proxyDisinfection.setTotalAmountOfTousses(tousseInstanceList.size()); } if(CollectionUtils.isNotEmpty(pakingRecordIDList)){ @@ -189,10 +189,7 @@ * @param proxyDisinfection * @param tousseInstanceList */ - private void setProxyDisinfectionDeliverStatus(ProxyDisinfection proxyDisinfection, Set tousseInstanceList) { - if(StringUtils.equals(proxyDisinfection.getDeliverStatus(), ProxyDisinfection.DELIVERSTATUS_AWAITDELIVER)){ - return; - } + private void setProxyDisinfectionReceiveStatus(ProxyDisinfection proxyDisinfection, Set tousseInstanceList) { int awaitReceiveTousseAmount = 0; if(tousseInstanceList != null){ for (TousseInstance ti : tousseInstanceList) { @@ -201,11 +198,11 @@ } } if(0 == awaitReceiveTousseAmount){ - proxyDisinfection.setDeliverStatus(InvoicePlan.DELIVERSTATUS_AWAITDELIVER); + proxyDisinfection.setReceiveStatus(ProxyDisinfection.RECEIVESTATUS_RECEIVED); }else if(tousseInstanceList.size() > awaitReceiveTousseAmount){ - proxyDisinfection.setDeliverStatus(InvoicePlan.RECYCLINGSTATUS_PARTAWAITRECEIVE); + proxyDisinfection.setReceiveStatus(ProxyDisinfection.RECEIVESTATUS_PARTRECEIVE); }else{ - proxyDisinfection.setDeliverStatus(InvoicePlan.RECYCLINGSTATUS_AWAITRECEIVE); + proxyDisinfection.setReceiveStatus(ProxyDisinfection.RECEIVESTATUS_AWAITRECEIVE); } } } @@ -457,14 +454,13 @@ } } proxyDisinfection.setApplicationItems(tousseItemList); - if((StringUtils.equals(proxyDisinfection.getDeliverStatus(), ProxyDisinfection.RECYCLINGSTATUS_AWAITRECEIVE) - || StringUtils.equals(proxyDisinfection.getDeliverStatus(), ProxyDisinfection.RECYCLINGSTATUS_PARTAWAITRECEIVE)) + if(!proxyDisinfection.hasReceived() && StringUtils.equals(loginUserOrgUnitCode, proxyDisinfection.getHandleDepartCoding())){ - //一级供应室(处理科室)在PC端或PDA端对通过今日本组装配记录/历史装配记录生成的代理灭菌单里的包进行增删后,要记录在PC端的备注字段里 - if(StringUtils.isNotBlank(proxyDisinfection.getRemark())){ - remark = proxyDisinfection.getRemark() + "," + remark; + //一级供应室(处理科室)在PC端或PDA端对通过今日本组装配记录/历史装配记录生成的代理灭菌单(待接收和部分接收的代理灭菌单)里的包进行增删后,要记录在PC端的备注字段里 + if(StringUtils.isNotBlank(remark)){ + remark = "流水号:" + proxyDisinfection.getSerialNumber() + ",申请部门:" + proxyDisinfection.getDepart() + "," + remark; + appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_PROXYDISINFECTION, Log.TYPE_UPDATE, remark); } - proxyDisinfection.setRemark(remark); } return newProxyTousseInstanceList; } @@ -822,8 +818,7 @@ // 代理灭菌单是否待接收 boolean isAwaitReceive = false; if(proxyDisinfection != null){ - isAwaitReceive = (StringUtils.equals(proxyDisinfection.getDeliverStatus(), InvoicePlan.RECYCLINGSTATUS_AWAITRECEIVE) - || StringUtils.equals(proxyDisinfection.getDeliverStatus(), InvoicePlan.RECYCLINGSTATUS_PARTAWAITRECEIVE)); + isAwaitReceive = !proxyDisinfection.hasReceived(); } if (StringUtils.isNotBlank(barcode)) { @@ -889,9 +884,9 @@ message = "只能录入已装配或者已审核的器械包"; throw new SystemException(message); }else if(proxyDisinfection != null && StringUtils.equals(proxyDisinfection.getIsConvertPackingRecord(), Constants.STR_YES) - && StringUtils.equals(proxyDisinfection.getDeliverStatus(), InvoicePlan.DELIVERSTATUS_AWAITDELIVER)){ - // “装配记录生成”的代理灭菌单,状态为待发货时,二级供应室不可以对单据进行修改GDSZYY-102 - message = "代理灭菌单的状态为待发货,不可以对单据进行修改"; + && proxyDisinfection.hasReceived()){ + // “装配记录生成”的代理灭菌单,接收状态为已接收时,二级供应室不可以再对单据进行修改GDSZYY-102 + message = "代理灭菌单的接收状态为已接收,不可以对单据进行修改"; throw new SystemException(message); }else{ if(isProxyed){ @@ -1015,10 +1010,10 @@ String message = "只能录入已装配或者已审核的器械包"; throw new SystemException(message); }else if(proxyDisinfection != null && StringUtils.equals(proxyDisinfection.getIsConvertPackingRecord(), Constants.STR_YES) - && StringUtils.equals(proxyDisinfection.getDeliverStatus(), InvoicePlan.DELIVERSTATUS_AWAITDELIVER) + && proxyDisinfection.hasReceived() && StringUtils.equals(proxyDisinfection.getDepartCoding(), tousseInstance.getOrgUnitCoding())){ - // “装配记录生成”的代理灭菌单,状态为待发货时,二级供应室不可以对单据进行修改GDSZYY-102 - String message = "代理灭菌单的状态为待发货,不可以对单据进行修改"; + // “装配记录生成”的代理灭菌单,状态为已接收时,二级供应室不可以对单据进行修改GDSZYY-102 + String message = "代理灭菌单的接收状态为已接收,不可以对单据进行修改"; throw new SystemException(message); }else if(proxyDisinfection != null && tousseInstance.getProxyDisinfection_id() != null && !tousseInstance.getProxyDisinfection_id().equals(proxyDisinfection.getId())){