Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/vo/WaitPackingTaskVo.java =================================================================== diff -u -r19603 -r21495 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/vo/WaitPackingTaskVo.java (.../WaitPackingTaskVo.java) (revision 19603) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/vo/WaitPackingTaskVo.java (.../WaitPackingTaskVo.java) (revision 21495) @@ -74,7 +74,10 @@ * 报损原因说明,为item项的合并 */ private String damageRemark; - + /** + * 自定义拆框数量 + */ + private long customSplitBasketAmount = 0; private List children = new ArrayList(); public String getTousseName() { @@ -292,5 +295,14 @@ public void setDamageRemark(String damageRemark) { this.damageRemark = StringTools.uniteTwoStringBySemicolon(this.damageRemark, damageRemark); } + + public long getCustomSplitBasketAmount() { + return customSplitBasketAmount; + } + + public void setCustomSplitBasketAmount(long customSplitBasketAmount) { + this.customSplitBasketAmount = customSplitBasketAmount; + } + } Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java =================================================================== diff -u -r21480 -r21495 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 21480) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 21495) @@ -1314,6 +1314,7 @@ throw new RuntimeException("任务组不能为空"); } boolean allowForeignToussePartiallyPacking = CssdUtils.getSystemSetConfigByNameBool("allowForeignToussePartiallyPacking"); + boolean waitPackingTaskGrid_show_foreignTousse_customSplitBasketAmount = CssdUtils.getSystemSetConfigByNameBool("waitPackingTaskGrid_show_foreignTousse_customSplitBasketAmount"); Container basket = null; if(StringUtils.isNotBlank(basketBarcode)){ //验证篮筐是否清洗 @@ -1361,6 +1362,43 @@ TimeoutSetting timeoutSetting = timeoutManager.getTimeoutSetting(TimeoutManager.PROCEDURE_WASH_TO_PACKING); SerialNum serialNum = serialNumManager.getSerialNumber(SerialNum.TYPE_PACKING_TASK); + Map taskSourceIdAndTDIdToCountMap = new HashMap(); + if(StringUtils.isBlank(basketBarcode) && waitPackingTaskGrid_show_foreignTousse_customSplitBasketAmount){ + Set taskSourceIdSet = new HashSet(); + Set tdIdSet = new HashSet(); + // 查询外来器械拆分篮筐的情况 + for (Object[] result : taskList) { + PackingTask task = (PackingTask)result[0]; + TousseDefinition td = (TousseDefinition)result[1]; + if(td.isForeignTousse() && task.multiClassifyBasket()){ + taskSourceIdSet.add(task.getSourceId()); + tdIdSet.add(td.getId()); + } + } + if(!taskSourceIdSet.isEmpty()){ + String sql = String.format(" select recyclingRecordId as sourceId, tousseDefinitionId as tdId,count(*) c from RecyclingBasketSequence where %s and %s and (packed is null or packed=0) group by recyclingRecordId,tousseDefinitionId ", SqlUtils.getNonStringFieldInCollectionsPredicate("recyclingRecordId", taskSourceIdSet),SqlUtils.getNonStringFieldInCollectionsPredicate("tousseDefinitionId", tdIdSet)); + ResultSet rs = null; + try{ + rs = objectDao.executeSql(sql); + while(rs.next()){ + + BigDecimal sourceIdBigDecimal = (BigDecimal)rs.getObject("sourceId"); + BigDecimal tdIdBigDecimal = (BigDecimal)rs.getObject("tdId"); + Long sourceId = sourceIdBigDecimal == null ? null : sourceIdBigDecimal.longValue(); + Long tdId = tdIdBigDecimal == null ? null : tdIdBigDecimal.longValue(); + Long c = rs.getLong("c"); + if(sourceId == null || tdId == null || c == 0){ + continue; + } + taskSourceIdAndTDIdToCountMap.put(sourceId+"_"+tdId, c); + } + }catch(Exception e){ + e.printStackTrace(); + }finally{ + DatabaseUtil.closeResultSetAndStatement(rs); + } + } + } for (Object[] result : taskList) { PackingTask task = (PackingTask)result[0]; @@ -1376,7 +1414,15 @@ WaitPackingTaskItemVo itemVo = new WaitPackingTaskItemVo(); itemVo.setTaskId(task.getId()); itemVo.setSerialNumber(serialNumManager.variablePart(serialNum, task.getSerialNumber())); - + long customSplitBasketAmount = 0; + if(StringUtils.isBlank(basketBarcode) && waitPackingTaskGrid_show_foreignTousse_customSplitBasketAmount){ + + String key = task.getSourceId()+"_"+td.getId(); + if(taskSourceIdAndTDIdToCountMap.containsKey(key)){ + customSplitBasketAmount = taskSourceIdAndTDIdToCountMap.get(key); + } + itemVo.setCustomSplitBasketAmount(customSplitBasketAmount); + } if(StringUtils.isNotBlank(basketBarcode) && td.isForeignTousse() && task.multiClassifyBasket() && allowForeignToussePartiallyPacking ){ // 看所有拆分的包是否已经装完。 ClassifyBasket classifyBasket = classifyBasketManager.getClassifyBasket(task.getSourceId(), basketBarcode); @@ -1466,6 +1512,7 @@ vo.setUuid_vedioNames(td.getUuid_vedioNames()); vo.setHaveIDCard(haveIDCard); vo.setIdCardBarcode(task.getIdCardBarcode()); + if(PackingTask.TASK_RECYCLINGRECORD.equals(task.getTaskType())){ scanBasketTaskMap.put(nodeText, vo); }else{ @@ -1492,6 +1539,7 @@ } List childrens = vo.getChildren(); childrens.add(itemVo); + vo.setCustomSplitBasketAmount(vo.getCustomSplitBasketAmount()+customSplitBasketAmount); itemVo.setAmount(task.getUnPackAmount()); itemVo.setSupplierName(td.getSupplierName()); Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/vo/WaitPackingTaskItemVo.java =================================================================== diff -u -r19603 -r21495 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/vo/WaitPackingTaskItemVo.java (.../WaitPackingTaskItemVo.java) (revision 19603) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/vo/WaitPackingTaskItemVo.java (.../WaitPackingTaskItemVo.java) (revision 21495) @@ -104,6 +104,11 @@ private String status; + /** + * 自定义拆框数量 + */ + private long customSplitBasketAmount = 0; + public Long getTaskId() { return taskId; } @@ -426,5 +431,14 @@ } return details; } + + public long getCustomSplitBasketAmount() { + return customSplitBasketAmount; + } + + public void setCustomSplitBasketAmount(long customSplitBasketAmount) { + this.customSplitBasketAmount = customSplitBasketAmount; + } + }