Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java =================================================================== diff -u -r41137 -r41435 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 41137) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 41435) @@ -4927,7 +4927,7 @@ String customErrorDamageRemark = ""; if(errorDamageRemark != null){ String errorDamageRemarkStr = ""; - if(StringUtils.isNotBlank(errorDamageRemark.getErrorDamageRemark()) && (errorDamageRemark.getErrorDamageRemark().contains("丢失:") || errorDamageRemark.getErrorDamageRemark().contains("报损:"))){ + if(StringUtils.isNotBlank(errorDamageRemark.getErrorDamageRemark()) && (errorDamageRemark.getErrorDamageRemark().contains("丢失:") || errorDamageRemark.getErrorDamageRemark().contains("增加:") || errorDamageRemark.getErrorDamageRemark().contains("报损:"))){ int index = errorDamageRemark.getErrorDamageRemark().indexOf("。"); if(index != -1){ errorDamageRemarkStr = errorDamageRemark.getErrorDamageRemark().substring(0, index + 1); @@ -4945,7 +4945,7 @@ } if(StringUtils.isBlank(customErrorDamageRemark)){ //防止有errorDamageRemark对象 但是对象中备注没值的问题 否则会造成标识牌装配时丢失备注丢失 - if(StringUtils.isNotBlank(ti.getRemark()) && (ti.getRemark().contains("丢失:") || ti.getRemark().contains("报损:"))){ + if(StringUtils.isNotBlank(ti.getRemark()) && (ti.getRemark().contains("丢失:") || ti.getRemark().contains("增加:") || ti.getRemark().contains("报损:"))){ int index = ti.getRemark().indexOf("。"); if(index != -1 && ti.getRemark().trim().length() != index + 1){ String tiCusRemark = ti.getRemark().substring(index + 1); @@ -5181,15 +5181,16 @@ ResultSet rs = null; String msg = ""; try { - String sql = String.format("select sum(med.amount - additionalAmount) amount,med.type,md.name,md.unit,md.specification from PackingTask pt " + String sql = String.format("select sum(med.amount - additionalAmount) amount,med.errorType,med.type,md.name,md.unit,md.specification from PackingTask pt " + "join MaterialErrorDamageDetail med on med.packingTaskId=pt.id " + "join MaterialDefinition md on md.id=med.materialDefinitionId " + "where %s and (med.status is null or med.status<>1) " - + "group by med.type,md.name,md.unit,md.specification ", + + "group by med.type,md.name,md.unit,md.specification,med.errorType ", SqlUtils.getNonStringFieldInLargeCollectionsPredicate("pt.id", packingTaskIds)); rs = objectDao.executeSql(sql); String errorMsg = null; String damageMsg = null; + String addMsg = null; while(rs.next()){ Number amount = (Number)rs.getObject("amount"); if(amount == null || amount.intValue() == 0){ @@ -5206,10 +5207,19 @@ materialName += "[" + specification + "]";; } if(MaterialErrorDamageDetail.TYPE_ERROR.equals(type)){ - if(errorMsg == null){ - errorMsg = "丢失:" + materialName + "x" + amount.intValue() + unit; + String errorType = rs.getString("errorType"); + if(MaterialErrorDamageDetail.ERRORTYPE_ADD.equals(errorType)){ + if(addMsg == null){ + addMsg = "增加:" + materialName + "x" + amount.intValue() + unit; + }else{ + addMsg += "," + materialName + "x" + amount.intValue() + unit; + } }else{ - errorMsg += "," + materialName + "x" + amount.intValue() + unit; + if(errorMsg == null){ + errorMsg = "丢失:" + materialName + "x" + amount.intValue() + unit; + }else{ + errorMsg += "," + materialName + "x" + amount.intValue() + unit; + } } }else if(MaterialErrorDamageDetail.TYPE_DAMAGE.equals(type)){ if(damageMsg == null){ @@ -5219,6 +5229,9 @@ } } } + if(StringUtils.isNotBlank(addMsg)){ + msg += addMsg + ";"; + } if(StringUtils.isNotBlank(errorMsg)){ msg += errorMsg + ";"; } @@ -5242,13 +5255,14 @@ ResultSet rs = null; String msg = ""; try { - String sql = String.format("select sum(med.amount - additionalAmount) amount,med.type,md.name,md.unit,md.specification from " + String sql = String.format("select sum(med.amount - additionalAmount) amount,med.errorType,med.type,md.name,md.unit,md.specification from " +MaterialErrorDamageDetail.class.getSimpleName() + " med " + "join MaterialDefinition md on md.id=med.materialDefinitionId " + "where tousseInstanceId=%s and (med.status is null or med.status<>1) " - + "group by med.type,md.name,md.unit,md.specification ", + + "group by med.type,md.name,md.unit,md.specification,med.errorType ", tiId); rs = objectDao.executeSql(sql); + String addMsg = null; String errorMsg = null; String damageMsg = null; while(rs.next()){ @@ -5267,11 +5281,21 @@ materialName += "[" + specification + "]";; } if(MaterialErrorDamageDetail.TYPE_ERROR.equals(type)){ - if(errorMsg == null){ - errorMsg = "丢失:" + materialName + "x" + amount.intValue() + unit; + String errorType = rs.getString("errorType"); + if(MaterialErrorDamageDetail.ERRORTYPE_ADD.equals(errorType)){ + if(addMsg == null){ + addMsg = "增加:" + materialName + "x" + amount.intValue() + unit; + }else{ + addMsg += "," + materialName + "x" + amount.intValue() + unit; + } }else{ - errorMsg += "," + materialName + "x" + amount.intValue() + unit; + if(errorMsg == null){ + errorMsg = "丢失:" + materialName + "x" + amount.intValue() + unit; + }else{ + errorMsg += "," + materialName + "x" + amount.intValue() + unit; + } } + }else if(MaterialErrorDamageDetail.TYPE_DAMAGE.equals(type)){ if(damageMsg == null){ damageMsg = "报损:" + materialName + "x" + amount.intValue() + unit; @@ -5280,6 +5304,10 @@ } } } + + if(StringUtils.isNotBlank(addMsg)){ + msg += addMsg + ";"; + } if(StringUtils.isNotBlank(errorMsg)){ msg += errorMsg + ";"; } @@ -6334,7 +6362,7 @@ errorDamageRemarkId = tiOfIDc.getErrorDamageRemark().getId().toString(); } } - if(StringUtils.isNotBlank(errorDamageRemarkInfo) && (errorDamageRemarkInfo.contains("丢失:") || errorDamageRemarkInfo.contains("报损:"))){ + if(StringUtils.isNotBlank(errorDamageRemarkInfo) && (errorDamageRemarkInfo.contains("丢失:") || errorDamageRemarkInfo.contains("增加:") || errorDamageRemarkInfo.contains("报损:"))){ if(errorDamageRemarkInfo.indexOf("。") != -1){ errorDamageRemarkInfo = errorDamageRemarkInfo.substring(0, errorDamageRemarkInfo.indexOf("。") + 1); } @@ -11303,7 +11331,7 @@ } // 只能补一个包 if (unSupplementAmont <= materialAmount) { - String mapKey = detail.getType() + mdKey; + String mapKey = detail.getType() + mdKey + "_" + detail.getErrorType(); if(errAmountMap.containsKey(mapKey)){ errAmountMap.put(mapKey, MathTools.add(unSupplementAmont, errAmountMap.get(mapKey)).intValue()); }else{ @@ -11375,6 +11403,7 @@ String customErrorDamageRemark = "";//自定义备注 ErrorDamageRemark errorDamageRemark = ti.getErrorDamageRemark(); if(MapUtils.isNotEmpty(errAmountMap)){ + String addMsg = null; String errorMsg = null; String damageMsg = null; String msg = ""; @@ -11396,11 +11425,21 @@ materialName += "[" + specification + "]";; } if(MaterialErrorDamageDetail.TYPE_ERROR.equals(type)){ - if(errorMsg == null){ - errorMsg = "丢失:" + materialName + "x" + amount.intValue() + unit; + String errorType = keyArr[4]; + if(MaterialErrorDamageDetail.ERRORTYPE_ADD.equals(errorType)){ + if(addMsg == null){ + addMsg = "增加:" + materialName + "x" + amount.intValue() + unit; + }else{ + addMsg += "," + materialName + "x" + amount.intValue() + unit; + } }else{ - errorMsg += "," + materialName + "x" + amount.intValue() + unit; + if(errorMsg == null){ + errorMsg = "丢失:" + materialName + "x" + amount.intValue() + unit; + }else{ + errorMsg += "," + materialName + "x" + amount.intValue() + unit; + } } + }else if(MaterialErrorDamageDetail.TYPE_DAMAGE.equals(type)){ if(damageMsg == null){ damageMsg = "报损:" + materialName + "x" + amount.intValue() + unit; @@ -11409,6 +11448,9 @@ } } } + if(StringUtils.isNotBlank(addMsg)){ + msg += addMsg + ";"; + } if(StringUtils.isNotBlank(errorMsg)){ msg += errorMsg + ";"; } @@ -11420,7 +11462,7 @@ msg += "。"; } if(StringUtils.isNotBlank(msg) && !msg.equals(ti.getRemark())){ - if(StringUtils.isNotBlank(ti.getRemark()) && (ti.getRemark().contains("丢失:") || ti.getRemark().contains("报损:"))){ + if(StringUtils.isNotBlank(ti.getRemark()) && (ti.getRemark().contains("丢失:") || ti.getRemark().contains("增加:") || ti.getRemark().contains("报损:"))){ int index = ti.getRemark().indexOf("。"); if(index != -1 && ti.getRemark().trim().length() != index + 1){ String tiCusRemark = ti.getRemark().substring(index + 1); @@ -11439,7 +11481,7 @@ } } } - }else if(packingPara.getUseOldRemark() && StringUtils.isNotBlank(ti.getRemark()) && (ti.getRemark().contains("丢失:") || ti.getRemark().contains("报损:"))){ + }else if(packingPara.getUseOldRemark() && StringUtils.isNotBlank(ti.getRemark()) && (ti.getRemark().contains("丢失:") || ti.getRemark().contains("增加:") || ti.getRemark().contains("报损:"))){ int index = ti.getRemark().indexOf("。"); if(index != -1 && ti.getRemark().trim().length() != index + 1){ String tiCusRemark = ti.getRemark().substring(index + 1); @@ -12347,11 +12389,11 @@ Map packingTaskIdToErrorDamageRemarkMap = new HashMap(); Map> resultMap = new HashMap>(); try { - String sql = String.format("select sum(med.amount - additionalAmount) amount,pt.id,med.type,md.name,md.unit,md.specification from PackingTask pt " + String sql = String.format("select sum(med.amount - additionalAmount) amount,med.errorType ,pt.id,med.type,md.name,md.unit,md.specification from PackingTask pt " + "join MaterialErrorDamageDetail med on med.packingTaskId=pt.id " + "join MaterialDefinition md on md.id=med.materialDefinitionId " + "where %s and (med.status is null or med.status<>1) " - + "group by pt.id,med.type,md.name,md.unit,md.specification ", + + "group by pt.id,med.type,md.name,md.unit,md.specification,med.errorType ", SqlUtils.getNonStringFieldInLargeCollectionsPredicate("pt.id", packingTaskIds)); rs = objectDao.executeSql(sql); @@ -12383,13 +12425,14 @@ resultMap.put(id, msgMap); } if(MaterialErrorDamageDetail.TYPE_ERROR.equals(type)){ - String errorMsg = msgMap.get(type); + String errorType = rs.getString("errorType"); + String errorMsg = msgMap.get(errorType); if(StringUtils.isBlank(errorMsg)){ - errorMsg = "丢失:" + materialName + "x" + amount.intValue() + unit; + errorMsg = (MaterialErrorDamageDetail.ERRORTYPE_ADD.equals(errorType)?MaterialErrorDamageDetail.ERRORTYPE_ADD:"丢失") + ":" + materialName + "x" + amount.intValue() + unit; }else{ errorMsg += "," + materialName + "x" + amount.intValue() + unit; } - msgMap.put(type, errorMsg); + msgMap.put(errorType, errorMsg); }else if(MaterialErrorDamageDetail.TYPE_DAMAGE.equals(type)){ String damageMsg = msgMap.get(type); if(StringUtils.isBlank(damageMsg)){ @@ -12409,12 +12452,16 @@ for (Entry> entry : resultMap.entrySet()) { Long packingTaskId = entry.getKey(); Map msgMap = entry.getValue(); - String errorMsg = msgMap.get(MaterialErrorDamageDetail.TYPE_ERROR); + String addMsg = msgMap.get(MaterialErrorDamageDetail.ERRORTYPE_ADD); + String reduceMsg = msgMap.get(MaterialErrorDamageDetail.ERRORTYPE_REDUCE); String damageMsg = msgMap.get(MaterialErrorDamageDetail.TYPE_DAMAGE); String msg = ""; - if(StringUtils.isNotBlank(errorMsg)){ - msg += errorMsg + ";"; + if(StringUtils.isNotBlank(addMsg)){ + msg += addMsg + ";"; } + if(StringUtils.isNotBlank(reduceMsg)){ + msg += reduceMsg + ";"; + } if(StringUtils.isNotBlank(damageMsg)){ msg += damageMsg + ";"; } Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/materialerrordamage/service/MaterialErrorDamageDetailManagerImpl.java =================================================================== diff -u -r40302 -r41435 --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/materialerrordamage/service/MaterialErrorDamageDetailManagerImpl.java (.../MaterialErrorDamageDetailManagerImpl.java) (revision 40302) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/materialerrordamage/service/MaterialErrorDamageDetailManagerImpl.java (.../MaterialErrorDamageDetailManagerImpl.java) (revision 41435) @@ -1135,7 +1135,7 @@ } String customErrorDamageRemark = null; if(StringUtils.isNotBlank(tousseInstance.getRemark())){ - if((tousseInstance.getRemark().contains("丢失:") || tousseInstance.getRemark().contains("报损:"))){ + if((tousseInstance.getRemark().contains("丢失:") || tousseInstance.getRemark().contains("增加:") || tousseInstance.getRemark().contains("报损:"))){ int index = tousseInstance.getRemark().indexOf("。"); if(index != -1 && tousseInstance.getRemark().trim().length() != index + 1){ String tiCusRemark = tousseInstance.getRemark().substring(index + 1);