Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java =================================================================== diff -u -r14922 -r14929 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 14922) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 14929) @@ -2418,7 +2418,7 @@ private PackingRecord createPackingRecord(String inspector, String operator, String wrapper, String orgUnitCoding,String orgUnitName, String taskGroup, String sterilizer, String frequency, TousseDefinition tousseDefinition, - Date packingDate, Integer packingAmount, PackingTask currentPackingTask) { + Date packingDate, Integer packingAmount, PackingTask currentPackingTask , List packingTaskList) { PackingRecord packingRecord = new PackingRecord(); packingRecord.setIsDirectPacking(false); packingRecord.setSterilizer(sterilizer); @@ -2437,6 +2437,16 @@ /*if (TousseDefinition.PACKAGE_TYPE_DISINFECTION.equals(tousseDefinition.getTousseType())){ packingAmount = currentPackingTask.getAmount(); }*/ + //如果本次装配数量大于所有装配任务装配数量之和,则本次装配数量等于所有装配任务装配数量之和 + if(CollectionUtils.isNotEmpty(packingTaskList)){ + int totalUnPackingAmount = 0; + for(PackingTask packingTask : packingTaskList){ + totalUnPackingAmount += packingTask.getUnPackAmount(); + } + if(packingAmount > totalUnPackingAmount){ + packingAmount = totalUnPackingAmount; + } + } packingRecord.setAmount(packingAmount); packingRecord.setTaskGroup(taskGroup); @@ -2859,6 +2869,7 @@ boolean batchLoadToVirtaulBasket = true;//器械包批量装入虚拟篮筐是否成功 String batchLoadMsg = "";//器械包批量装入虚拟篮筐的信息提示 if (StringUtils.isNotBlank(packingTaskIds)) { + logger.debug("装配任务packingTaskIds=" + packingTaskIds); Query query = objectDao.getHibernateSession().createQuery( "SELECT po FROM PackingTask po" + " WHERE po.id in (:ids)"); @@ -2890,6 +2901,7 @@ List packingTasks = query.list(); Set recyclingRecordIds = new HashSet(); for (PackingTask packingTask : packingTasks) { + logger.debug("装配任务packingTask[id=" + packingTask.getId() + "],tousseName=" + packingTask.getTousseDefinition().getName()+ "], [待装配数量=" + packingTask.getUnPackAmount() + "]"); if(PackingTask.TASK_RECYCLINGRECORD.equals(packingTask.getTaskType())){ if(packingTask.getSourceId() != null){ recyclingRecordIds.add(packingTask.getSourceId()); @@ -3063,7 +3075,7 @@ } PackingRecord packingRecord = createPackingRecord( inspector, operator, wrapper, orgUnitCoding, orgUnitName,taskGroup, sterilizerName, - sterileFrequency, td, packingDate, currentPackAmount, currentPackingTask); + sterileFrequency, td, packingDate, currentPackAmount, currentPackingTask , null); // 汇总装配记录对应的一次性物品扣减信息 summaryOutDisposableGoodsStockInfo(packingRecordToDisposableGoodsOutAmount, packingRecord, disposableGoodsIdToAmount); @@ -3118,13 +3130,13 @@ }else{ currentPackingTaskAsList = packingTasks; } - + logger.debug("添加历史装配记录,器械包名称=" + td.getName() + ",装配数量=" + packingAmountForThisTask); //logger.debug("Thread " + Thread.currentThread().getName() + ",完成批量装配器械包:" + tousseName); // 先创建PackingRecord PackingRecord packingRecord = createPackingRecord(inspector, operator, wrapper, orgUnitCoding,orgUnitName, taskGroup, sterilizerName, sterileFrequency, td, packingDate, - packingAmountForThisTask, currentPackingTask); + packingAmountForThisTask, currentPackingTask , currentPackingTaskAsList); // 汇总装配记录对应的一次性物品扣减信息 summaryOutDisposableGoodsStockInfo(packingRecordToDisposableGoodsOutAmount, packingRecord, disposableGoodsIdToAmount);