Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/proxydisinfection/vo/TousseItenInfo.java =================================================================== diff -u -r32495 -r33207 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/proxydisinfection/vo/TousseItenInfo.java (.../TousseItenInfo.java) (revision 32495) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/proxydisinfection/vo/TousseItenInfo.java (.../TousseItenInfo.java) (revision 33207) @@ -8,6 +8,10 @@ private Long invoicePlanId; private Long ancestorId; private Long tousseDefinitionId; + /** + * 已接收数量 + */ + private Integer hasReceivedAmount; public String getTousseName() { return tousseName; } @@ -44,5 +48,11 @@ public void setTousseDefinitionId(Long tousseDefinitionId) { this.tousseDefinitionId = tousseDefinitionId; } + public Integer getHasReceivedAmount() { + return hasReceivedAmount; + } + public void setHasReceivedAmount(Integer hasReceivedAmount) { + this.hasReceivedAmount = hasReceivedAmount; + } } Index: ssts-web/src/main/webapp/dataUpdater/sqls/4.9.87_4.9.88.sql =================================================================== diff -u -r33206 -r33207 --- ssts-web/src/main/webapp/dataUpdater/sqls/4.9.87_4.9.88.sql (.../4.9.87_4.9.88.sql) (revision 33206) +++ ssts-web/src/main/webapp/dataUpdater/sqls/4.9.87_4.9.88.sql (.../4.9.87_4.9.88.sql) (revision 33207) @@ -1,4 +1,5 @@ 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 +update InvoicePlan set deliverStatus = '待发货' where deliverStatus in ('待接收','部分接收','已接收'); +update Tousseitem set hasReceivedAmount = (select count(*) from Tousseinstance where hasReceived = '是' and tousseDefinition_id = Tousseitem.Toussedefinitionid and ProxyDisinfection_id = Tousseitem.recyclingApplication_ID) where recyclingApplication_ID in (select id from InvoicePlan where isConvertPackingRecord = '是'); \ No newline at end of file Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/tousseitem/TousseItem.java =================================================================== diff -u -r33079 -r33207 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/tousseitem/TousseItem.java (.../TousseItem.java) (revision 33079) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/tousseitem/TousseItem.java (.../TousseItem.java) (revision 33207) @@ -347,6 +347,13 @@ */ private Boolean modifyPackingTask = false; + /** + * 代理灭菌单物品已经接收数量(GDSZYY-131): + * 需要走接收器械包流程的代理灭菌单的物品才有已经接收数量; + * 不需要接收器械包的代理灭菌单的物品,接收数量为null + */ + private Integer hasReceivedAmount; + public String getSpelling() { return spelling; } @@ -1126,8 +1133,18 @@ public void setModifyPackingTask(Boolean modifyPackingTask) { this.modifyPackingTask = modifyPackingTask; } + + + public Integer getHasReceivedAmount() { + return hasReceivedAmount; + } + public void setHasReceivedAmount(Integer hasReceivedAmount) { + this.hasReceivedAmount = hasReceivedAmount; + } + + @Override public String toString() { return "{id:" + id + ", tousseName:'" + tousseName Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/proxydisinfection/service/ProxyDisinfectionManagerImpl.java =================================================================== diff -u -r33206 -r33207 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/proxydisinfection/service/ProxyDisinfectionManagerImpl.java (.../ProxyDisinfectionManagerImpl.java) (revision 33206) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/proxydisinfection/service/ProxyDisinfectionManagerImpl.java (.../ProxyDisinfectionManagerImpl.java) (revision 33207) @@ -171,6 +171,8 @@ } //重新获取代理灭菌单的发货状态 setProxyDisinfectionReceiveStatus(proxyDisinfection, tousseInstanceList); + //计算代理灭菌单物品tousseItem已接收数量GDSZYY-131 + setProxyDisinfectionReceiveAmount(proxyDisinfection, tousseInstanceList); proxyDisinfection.setTotalAmountOfTousses(tousseInstanceList.size()); } if(CollectionUtils.isNotEmpty(pakingRecordIDList)){ @@ -185,6 +187,35 @@ } /** + * 计算代理灭菌单上物品tousseItem的接收数量 + * @param proxyDisinfection + * @param tousseInstanceList + */ + private void setProxyDisinfectionReceiveAmount(ProxyDisinfection proxyDisinfection, + Set tousseInstanceList) { + if(CollectionUtils.isEmpty(tousseInstanceList)){ + return; + } + // 设置发货物品明细 + List tousseInfos = generateTousseItemInfo(proxyDisinfection, tousseInstanceList); + List tousseItemList = proxyDisinfection.getApplicationItems(); + if(CollectionUtils.isEmpty(tousseInfos) || CollectionUtils.isEmpty(tousseItemList)){ + return; + } + Map tousseInfosMap = new HashMap(); + for(TousseItenInfo tii : tousseInfos){ + tousseInfosMap.put(tii.getTousseDefinitionId(), tii); + } + for (TousseItem tousseItem : tousseItemList) { + Long tousseDefinitionId = tousseItem.getTousseDefinitionId(); + TousseItenInfo tii = tousseInfosMap.get(tousseDefinitionId); + if(tii != null){ + tousseItem.setHasReceivedAmount(tii.getHasReceivedAmount()); + } + } + } + + /** * 重新获取代理灭菌单的发货状态 * @param proxyDisinfection * @param tousseInstanceList @@ -445,6 +476,7 @@ tousseItem.setInvoicePlanID(tii.getInvoicePlanId()); tousseItem.setAncestorID(tii.getAncestorId()); tousseItem.setTousseDefinitionId(tii.getTousseDefinitionId()); + tousseItem.setHasReceivedAmount(tii.getHasReceivedAmount()); tousseItemList.add(tousseItem); } List applicationItems = proxyDisinfection.getApplicationItems(); @@ -518,6 +550,15 @@ tousseInfos.add(addedInfo); } addedInfo.setAmount(MathTools.add(addedInfo.getAmount(), 1).intValue()); + if(StringUtils.equals(tousseInstance.getHasReceived(), Constants.STR_YES)){ + //已接收数量累加 + addedInfo.setHasReceivedAmount(MathTools.add(addedInfo.getHasReceivedAmount(), 1).intValue()); + }else if(StringUtils.equals(tousseInstance.getHasReceived(), Constants.STR_NO)){ + //待接收时,tousseItem的已接收数量为0;其它不需要接收器械包的代理灭菌单,接收数量为null + if(addedInfo.getHasReceivedAmount() == null){ + addedInfo.setHasReceivedAmount(0); + } + } if(tousseDefinition.isDisinfection()){ Map MD5Map = ancestorIdMD5TousseItenInfoMap.get(tousseDefinition.getAncestorID()); if(MD5Map == null){