Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java =================================================================== diff -u -r38607 -r38608 --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 38607) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 38608) @@ -12019,6 +12019,14 @@ } } Map idCardInstanceBarcodesMap = recyclingSumInfoVo.getIdCardInstanceBarcodesMap(); + Set allBarcodes = new HashSet(); + if(MapUtils.isNotEmpty(idCardInstanceBarcodesMap)){ + for (String barcodes : idCardInstanceBarcodesMap.values()) { + Set thisBarcodes = SqlUtils.splitStringToSet(barcodes, Constants.IDS_SEPARATOR); + allBarcodes.addAll(thisBarcodes); + } + } + Map barcodeToIdMap = allBarcodes.size() > 0?getBarcodeToIdMap(allBarcodes):null; Set barcodesOfUsed = new HashSet(); for (int i = 0; i < addRecyclingItemArr.size(); i++) { JSONObject addItem = addRecyclingItemArr.getJSONObject(i); @@ -12097,10 +12105,8 @@ } ps.setString(j++, idCardInstanceBarcode); Long idCardInstanceID = null; - if(StringUtils.isNotBlank(idCardInstanceBarcode)){ - idCardInstanceID = objectDao.getALongNum("select id from " - + BarcodeDevice.class.getSimpleName() - + " where barcode='"+ idCardInstanceBarcode +"'", null); + if(StringUtils.isNotBlank(idCardInstanceBarcode) && barcodeToIdMap != null){ + idCardInstanceID = barcodeToIdMap.get(idCardInstanceBarcode); } if(idCardInstanceID == null){ ps.setNull(j++, Types.BIGINT); @@ -12123,4 +12129,31 @@ }); } + /** + * 获取条码对应的id + * @param barcodes + * @return + */ + private Map getBarcodeToIdMap(Set barcodes){ + if(CollectionUtils.isEmpty(barcodes)){ + return new HashMap(); + } + Map barcodeToIdMap = new HashMap(); + String sql = "select id,barcode from " + +BarcodeDevice.class.getSimpleName() + +" where 1=1 " + + SqlUtils.getInStringListSql("barcode", barcodes); + ResultSet rs = null; + try { + rs = objectDao.executeSql(sql); + while (rs.next()){ + barcodeToIdMap.put(rs.getString("barcode"), rs.getLong("id")); + } + } catch (SQLException e) { + e.printStackTrace(); + }finally { + DatabaseUtil.closeResultSetAndStatement(rs); + } + return barcodeToIdMap; + } }