Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java =================================================================== diff -u -r35532 -r35570 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 35532) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 35570) @@ -3399,7 +3399,7 @@ } tousseInstance.setStatus(TousseInstance.STATUS_SIGNED); save(tousseInstance); - if(updateSignStatus){ + if(updateSignStatus && !tousseInstance.isComboTousse()){ Invoice invoice = tousseInstance.getInvoice(objectDao); List tousseInstanceList = invoice.getTousseInstances(objectDao); int signedAmount = 0; @@ -5204,7 +5204,7 @@ } // 查询器械包待签收数量 - tIInfoJSONArray = setWaitSignAmountForTousseInstance(tIInfoJSONArray, tousseInstanceList, currentUserOrgUnitCoding, beginDate, endDate); + tIInfoJSONArray = setWaitSignAmountForTousseInstance(tIInfoJSONArray, tousseInstanceList, currentUserOrgUnitCoding, beginDate, endDate, dateFormat, dateFormat2); //添加科室库存 if(MapUtils.isNotEmpty(tousseNameAndIdMap)){ departmentStockManager.instrumentSetToBeAdded(AcegiHelper.getLoginUser().getCurrentOrgUnitName(), currentUserOrgUnitCoding, tousseNameAndIdMap); @@ -5309,7 +5309,7 @@ } objectDao.flush(); // 查询器械包待签收数量 - tIInfoJSONArray = setWaitSignAmountForTousseInstance(tIInfoJSONArray, tousseInstanceList, currentOrgUnitCode, beginDate, endDate); + tIInfoJSONArray = setWaitSignAmountForTousseInstance(tIInfoJSONArray, tousseInstanceList, currentOrgUnitCode, beginDate, endDate, dateFormat, dateFormat2); } if(isSuccess){ @@ -5567,28 +5567,42 @@ * @return */ private JSONArray setWaitSignAmountForTousseInstance(JSONArray tIInfoJSONArray, List tousseInstanceList, - String orgUnitCoding, String beginDate, String endDate) { + String orgUnitCoding, String beginDate, String endDate, SimpleDateFormat dateFormat, SimpleDateFormat dateFormat2) { if (tIInfoJSONArray == null || CollectionUtils.isEmpty(tousseInstanceList)) { return tIInfoJSONArray; } Map tousseAmountMap = new HashMap(); - List tousseNameList = new ArrayList(); + List tousseDefinitionIdList = new ArrayList(); + List allTousseInstanceList = new ArrayList(); + allTousseInstanceList.addAll(tousseInstanceList); for (TousseInstance ti : tousseInstanceList) { + if(ti.isComboTousse()){ + //查询聚合包小包 + List tousseInstancesBelongToThisComboTousse = ti.getTousseInstancesBelongToThisComboTousse(objectDao); + if(CollectionUtils.isNotEmpty(tousseInstancesBelongToThisComboTousse)){ + for (TousseInstance tousseInstance : tousseInstancesBelongToThisComboTousse) { + tIInfoJSONArray.add(TousseInstanceUtils.tousseInstance2JsonString(dateFormat, dateFormat2, tousseInstance)); + } + allTousseInstanceList.addAll(tousseInstancesBelongToThisComboTousse); + } + } + } + for (TousseInstance ti : allTousseInstanceList) { if (null != ti) { - tousseNameList.add(ti.getTousseName()); + TousseDefinition td = ti.getTousseDefinition(); + if(td != null){ + tousseDefinitionIdList.add(td.getId()); + } } } - String names = ""; - String nameSql = ""; - for (String tousseName : tousseNameList) { - names = StringTools.uniteTwoStringBySemicolon(names, "'" + tousseName + "'", ","); + if(CollectionUtils.isEmpty(tousseDefinitionIdList)){ + return tIInfoJSONArray; } - if (StringUtils.isNotBlank(names)) { - nameSql = " and ti.tousseName in ( " + names + ")"; - } - String sql = "select ti.tousseName, count(0) waitSignAmount from " + TousseInstance.class.getSimpleName() + " ti where (1=1) " - + nameSql - + " and ti.status = '" + TousseInstance.STATUS_SHIPPED + "' and ti.location = '" + orgUnitCoding + "'" + objectDao.batchSaveOrUpdate(allTousseInstanceList); + String sql = "select ti.tousseName, count(0) waitSignAmount from " + TousseInstance.class.getSimpleName() + " ti where (1=1) and " + + SqlUtils.getNonStringFieldInLargeCollectionsPredicate("ti.tousseDefinition_id", tousseDefinitionIdList) + + " and ti.status = '" + TousseInstance.STATUS_SHIPPED + "' " + + " and ((ti.location='" + orgUnitCoding + "' and ti.location_2 is null) or (ti.location_2 = '" + orgUnitCoding + "')) " + " and " + dateQueryAdapter.dateAreaSql("ti.invoiceSendTime", beginDate, endDate) + " group by ti.tousseName"; ResultSet result = null; Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/signRecord/service/SignRecordManagerImpl.java =================================================================== diff -u -r35539 -r35570 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/signRecord/service/SignRecordManagerImpl.java (.../SignRecordManagerImpl.java) (revision 35539) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/signRecord/service/SignRecordManagerImpl.java (.../SignRecordManagerImpl.java) (revision 35570) @@ -435,7 +435,7 @@ // (0表示待签收的物品的发货日期全部都是今天的(白色),1表示待签收的物品的发货日期有不是今天的日期的(黄色)) map.put("signTime", today.compareTo(invoiceSendTime)); // (1表示待签收的物品不需要过期提醒,0表示待签收的物品已经超时需要过期提醒(红色)) - if(hour != 0 || minute != 0){ + if(invoiceSendTimeStr != null && (hour != 0 || minute != 0)){ Date warningTime = new Date(); long time = DateTools.coverStrToDate(invoiceSendTimeStr, DateTools.COMMON_DATE_HMS).getTime(); time += hour*60*60*1000l + minute*60*1000l;