Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java =================================================================== diff -u -r29414 -r29511 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 29414) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 29511) @@ -3665,7 +3665,28 @@ PackingContext packingContext = new PackingContext(); JSONObject paramsObj = JSONObject.fromObject(params); String packingTaskIds = JSONUtil.optString(paramsObj, "taskIds", null); - + String taskIdToAmountMapInfo = JSONUtil.optString(paramsObj, "taskIdToAmountMapInfo", null); + Map taskIdToAmountMap = new HashMap(); + Map taskIdToerrorDamageAmountMap = new HashMap(); + if(StringUtils.isNotBlank(taskIdToAmountMapInfo)){ + JSONArray taskIdToAmountMapInfoArr = JSONArray.fromObject(taskIdToAmountMapInfo); + for (int i = 0; i < taskIdToAmountMapInfoArr.size(); i++) { + JSONObject obj = (JSONObject)taskIdToAmountMapInfoArr.get(i); + Long taskId = obj.optLong("taskId"); + if(!DatabaseUtil.isPoIdValid(taskId)){ + continue; + } + Integer amount = obj.optInt("amount"); + if(amount == null || amount <= 0){ + continue; + } + taskIdToAmountMap.put(taskId, amount); + int errorDamageAmount = obj.optInt("errorDamageAmount"); + if(errorDamageAmount > 0){ + taskIdToerrorDamageAmountMap.put(taskId, errorDamageAmount); + } + } + } String inspector = JSONUtil.optString(paramsObj, "inspector", null); String inspectorCode = JSONUtil.optString(paramsObj, "inspectorCode", null); String operator = JSONUtil.optString(paramsObj, "operator", null); @@ -3740,8 +3761,6 @@ //是否为二级供应室发货 boolean isSecondSupplyRoomAutoInvoice = SupplyRoomConfig.SECONDSUPPLYROOM_AUTOINVOICE_FROMALLORG.equals(supplyRoomConfigParams.getIsSecondSupplyRoomAutoInvoice()); - //是否打印装配人 - boolean isPrintUserName = supplyRoomConfigParams.isPrintUserFullName(); Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(sterileDate); @@ -4055,8 +4074,7 @@ Integer tousseAmount = null; List currentPackingTaskAsList = new ArrayList(); - int packingAmountForThisTask = needPackingAmount;//本任务装配数量 - + int packingAmountForThisTask = taskIdToAmountMap.containsKey(currentPackingTask.getId())?taskIdToAmountMap.get(currentPackingTask.getId()):needPackingAmount;//本任务装配数量 // 如果器械包定义设置为不打印标签,则将对应的变量设置为false if (TousseDefinition.STR_NO.equals(tdOfPackingTask.getIsPrint())) { isPrint = false; @@ -4185,7 +4203,7 @@ tdOfPackingTask, tousseType,tousseName,foreignTousseApplication,packingDate, packingAmountForThisTask, toussePrice, fluctuationPrice,tousseAmount, orgUnitCoding,orgUnitName,basketBarcode, !isTraceable, confirmContinue,tousseInstances,withoutReviewingAndSterilingTousseInstanceList, - idToWashRecordMap, idToRecyclingRecordMap,urgentAmountJson,taskGroup,tousseWeight,remark,comboTousseInstanceId,comboTousseInstanceStatus,packingContext,errorDamageRemark); + idToWashRecordMap, idToRecyclingRecordMap,urgentAmountJson,taskGroup,tousseWeight,remark,comboTousseInstanceId,comboTousseInstanceStatus,packingContext,errorDamageRemark, taskIdToerrorDamageAmountMap); needPackingAmount -= packingAmountForThisTask; @@ -4210,7 +4228,8 @@ .getOrCreateTousseDefinitionFixedBarcode(tdOfPackingTask.getAncestorID()); } - + //是否打印装配人 + boolean isPrintUserName = supplyRoomConfigParams.isPrintUserFullName(); // 装配的是外来器械拆分包 if (splits != null) { packageTypeAbbreviation = TousseInstanceUtils.getPackageTypeAbbreviation(objectDao, packageType); @@ -4858,7 +4877,7 @@ Integer currentPackAmount, double toussePrice,double fluctuationPrice, Integer tousseAmount,String orgUnitCoding, String orgUnitName, String basketBarcode,boolean unTraceableTousse, String confirmContinue,List tousseInstances, List withoutReviewingAndSterilingTousseInstanceList,Map idToWashRecordMap, - Map idToRecyclingRecordMap,JSONObject urgentAmountJson,String taskGroup,Double tousseWeight,String remark,Long comboTousseInstanceId,String comboTousseInstanceStatus,PackingContext packingContext, ErrorDamageRemark errorDamageRemark) { + Map idToRecyclingRecordMap,JSONObject urgentAmountJson,String taskGroup,Double tousseWeight,String remark,Long comboTousseInstanceId,String comboTousseInstanceStatus,PackingContext packingContext, ErrorDamageRemark errorDamageRemark, Map taskIdToerrorDamageAmountMap) { JSONObject obj = new JSONObject(); long t1 = System.currentTimeMillis(); @@ -4956,10 +4975,12 @@ return false; } }); - if(!isExistTask){ - taskList.add(prePackingTask); + if(taskIdToerrorDamageAmountMap.containsKey(currentTaskId)){ + tousseList.add(tousseInstance); + if(!isExistTask){ + taskList.add(prePackingTask); + } } - tousseList.add(tousseInstance); } //加急数量处理