Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java =================================================================== diff -u -r26876 -r26881 --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 26876) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 26881) @@ -3,6 +3,7 @@ import java.math.BigDecimal; import java.sql.ResultSet; import java.sql.SQLException; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Calendar; @@ -2747,6 +2748,9 @@ //是否允许回收数量减小的部分超过待装配数量。如果允许,那装配任务就被删除 boolean allowModifyRecyclingAmountBelowUnPackingAmount = CssdUtils.getSystemSetConfigByNameBool("allowDecreaseRecyclingAmountGreatUnPackingAmount"); Map recyclingItemAndAmountMap = new HashMap(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + //获取清洗篮筐最好一次清洗记录的信息 classifyBasketIdAndWdrMap:<清洗篮筐id,清洗篮筐id对应的最好一次清洗记录信息> + Map classifyBasketIdAndWdrMap = washAndDisinfectRecordManager.getLastWashAndDisinfectRecordsMapByIds(getClassifyBasketIds(itemJsonList),sdf); for (RecyclingBasketItemVo json : itemJsonList) { String tousseName = json.getTousseName(); @@ -2848,8 +2852,19 @@ cleanErrorAndDamagePackingTaskId(taskId); continue; } - task.setStartTime(new Date()); - + Long basketId = json.getBasketId(); + if(classifyBasketIdAndWdrMap.containsKey(basketId)){ + JSONObject WashAndDisinfectRecordJson = classifyBasketIdAndWdrMap.get(basketId); + task.setWashTime(WashAndDisinfectRecordJson.optString("startDate")); + task.setClassifyBasket_id(basketId); + Long WashRecordId = WashAndDisinfectRecordJson.optLong("id"); + task.setWashRecord_id(WashRecordId); + } + if(recyclingRecord.getRecyclingTime() != null){ + task.setStartTime(recyclingRecord.getRecyclingTime()); + }else{ + task.setStartTime(new Date()); + } task.setAmount(taskAmount); if(task.getId() == null && task.getAmount() <= 0){ @@ -2975,6 +2990,26 @@ } /** + * 解析itemJsonList,把清洗篮筐id变成set + * @param itemJsonList + * @return set<清洗篮筐id> + */ + private Set getClassifyBasketIds(List itemJsonList){ + if(itemJsonList == null){ + return null; + } + int size = itemJsonList.size(); + if(size == 0){ + return null; + } + Set ids = new HashSet(); + for(RecyclingBasketItemVo json : itemJsonList){ + Long id = json.getBasketId(); + ids.add(id); + } + return ids; + } + /** * 是否修改了科室 * @param record * @return Index: ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java =================================================================== diff -u -r26662 -r26881 --- ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java (.../WashAndDisinfectRecordManagerImpl.java) (revision 26662) +++ ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java (.../WashAndDisinfectRecordManagerImpl.java) (revision 26881) @@ -3237,4 +3237,39 @@ } return null; } + @Override + public Map getLastWashAndDisinfectRecordsMapByIds( + Set classifyBasketIds, SimpleDateFormat sdf) { + Map map = new HashMap(); + if(classifyBasketIds == null || classifyBasketIds.size() == 0){ + return map; + } + ResultSet rs = objectDao.executeSql(buildSqlOfGetLastWashAndDisinfectRecordsMapByIds(classifyBasketIds)); + try { + while (rs.next()) { + JSONObject obj = new JSONObject(); + Long classifyBasketId = rs.getLong("classifyBasketId"); + obj.put("classifyBasketId", classifyBasketId); + obj.put("id", rs.getLong("id")); + obj.put("startDate", sdf.format(rs.getTimestamp("startDate"))); + map.put(classifyBasketId, obj); + } + } catch (SQLException e) { + e.printStackTrace(); + }finally { + DatabaseUtil.closeResultSetAndStatement(rs); + } + return map; + } + private String buildSqlOfGetLastWashAndDisinfectRecordsMapByIds(Set classifyBasketIds){ + return new StringBuffer(400).append("select t.classifyBasketId,wr.id,wr.startDate from ") + .append(WashAndDisinfectRecord.class.getSimpleName()) + .append(" wr join (select max(wr.id) maxId,cb.id classifyBasketId from ClassifyBasket_WashRecord cw inner join ") + .append(ClassifyBasket.class.getSimpleName()) + .append(" cb on cb.id=cw.ClassifyBasket_ID inner join ") + .append(WashAndDisinfectRecord.class.getSimpleName()) + .append(" wr on wr.id=cw.WashAndDisinfectRecord_ID where ") + .append(SqlUtils.getNonStringFieldInLargeCollectionsPredicate("cb.id", classifyBasketIds)) + .append(" group by cb.id) t on wr.id=t.maxId").toString(); + } } Index: ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManager.java =================================================================== diff -u -r26443 -r26881 --- ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManager.java (.../WashAndDisinfectRecordManager.java) (revision 26443) +++ ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManager.java (.../WashAndDisinfectRecordManager.java) (revision 26881) @@ -1,5 +1,6 @@ package com.forgon.disinfectsystem.washanddisinfectmanager.washanddisinfectrecord.service; +import java.text.SimpleDateFormat; import java.util.Collection; import java.util.Date; import java.util.List; @@ -312,4 +313,10 @@ * @return */ public WashDataOfMarge loadWashDataOfMargeByWashAndDisinfectRecordId (String washAndDisinfectRecordId); + /** + * 通过清洗篮筐ids获取对应的最后的清洗记录json + * @param classifyBasketIds 清洗篮筐ids + * @return <清洗篮筐id,清洗记录json> + */ + public Map getLastWashAndDisinfectRecordsMapByIds(Set classifyBasketIds, SimpleDateFormat sdf); }