Index: ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java =================================================================== diff -u -r38139 -r38227 --- ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java (.../WashAndDisinfectRecordManagerImpl.java) (revision 38139) +++ ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java (.../WashAndDisinfectRecordManagerImpl.java) (revision 38227) @@ -84,6 +84,7 @@ import com.forgon.disinfectsystem.entity.basedatamanager.rinser.Rinser; import com.forgon.disinfectsystem.entity.basedatamanager.rinser.RinserDepartment; import com.forgon.disinfectsystem.entity.basedatamanager.supplyroomconfig.SupplyRoomConfig; +import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.ClassifyBasket_TousseInstance; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; import com.forgon.disinfectsystem.entity.becleanitem.ClassifiedItem; @@ -1676,7 +1677,7 @@ classifyBasketInfoMap, materials,paramMap); // 更新装配和包实例清洗时间 if(recordId != null && recordId > 0 && - (!StringUtils.equals(orgWashStartTime, startDateStr) || !StringUtils.equals(orgWashStartTime, startDateStr)) ){ + (!StringUtils.equals(orgWashStartTime, startDateStr) || !StringUtils.equals(orgWashEndTime, endDateStr)) ){ updatePackingTaskAndTousseInstanceWashTime(recordId, orgWashStartTime, orgWashEndTime,startDateStr,endDateStr); } } @@ -1686,7 +1687,7 @@ materials,paramMap); // 更新装配和包实例清洗时间 if(recordId != null && recordId > 0 && - (!StringUtils.equals(orgWashStartTime, startDateStr) || !StringUtils.equals(orgWashStartTime, startDateStr))){ + (!StringUtils.equals(orgWashStartTime, startDateStr) || !StringUtils.equals(orgWashEndTime, endDateStr))){ updatePackingTaskAndTousseInstanceWashTime(recordId, orgWashStartTime, orgWashEndTime,startDateStr,endDateStr); } } @@ -2492,33 +2493,26 @@ */ @Override public void updatePackingTaskAndTousseInstanceWashTime(Long washAndDisinfectRecordId,String orgStartTime,String orgEndTime,String newStartTime,String newEndTime){ - if(washAndDisinfectRecordId == null || StringUtils.isBlank(orgStartTime) || StringUtils.isBlank(orgEndTime) || StringUtils.isBlank(newStartTime) || StringUtils.isBlank(newEndTime) ){ + if(washAndDisinfectRecordId == null || !DatabaseUtil.isPoIdValid(washAndDisinfectRecordId) || StringUtils.isBlank(orgStartTime) || StringUtils.isBlank(orgEndTime) || StringUtils.isBlank(newStartTime) || StringUtils.isBlank(newEndTime) ){ return ; } - String timeEqualSql = " and substring(ti.washStartTime,1,19) = '" + orgStartTime + "'" - + " and substring(ti.washEndTime,1,19) = '" + orgEndTime + "'"; -// String sql1 = " update ti set ti.washStartTime = '" + washStartTime + "',ti.washEndTime ='"+washEndTime+ "'" -// + " from washanddisinfectRecord wr,tousseInstance ti " -// + " where ti.disinfectIdentification = wr.disinfectIdentification " -// + " and ti.disinfectProgram = wr.disinfectProgram " -// + timeEqualSql -// + " and wr.id = " + washAndDisinfectRecordId.toString(); - if(dbConnection.isOracle()){ - timeEqualSql = " and substr(ti.washStartTime,1,19) = '" + orgStartTime + "'" - + " and substr(ti.washEndTime,1,19) = '" + orgEndTime + "'"; + //先查询是有已经装配了 如果没有 没必要更新包实例 + int count = objectDao.countBySql(" select count(*) from " + + ClassifyBasket_TousseInstance.class.getSimpleName() + +" ct join ClassifyBasket_WashRecord cw on cw.ClassifyBasket_ID=ct.classifyBasketId " + + "where cw.WashAndDisinfectRecord_ID="+ washAndDisinfectRecordId); + if(count > 0){//已经装配 + String sql1 = "update " + + TousseInstance.class.getSimpleName() + +" set washStartTime = '" + newStartTime + "',washEndTime ='"+ newEndTime + +"' where exists (select 1 from " + + ClassifyBasket_TousseInstance.class.getSimpleName() +" ct join ClassifyBasket_WashRecord cw on cw.ClassifyBasket_ID=ct.classifyBasketId " + + "where cw.WashAndDisinfectRecord_ID="+ washAndDisinfectRecordId +" and ct.tousseInstanceId=TousseInstance.id)"; + objectDao.excuteSQL(sql1); } - // 更新包实例清洗时间的sql - String sql1 = " update tousseInstance set washStartTime = '" + newStartTime + "',washEndTime ='"+newEndTime+ "'" - + " where id in ( select ti.id from washanddisinfectRecord wr,tousseInstance ti where " - + " ti.disinfectIdentification = wr.disinfectIdentification " - + " and ti.disinfectProgram = wr.disinfectProgram " - + timeEqualSql - + " and wr.id = " + washAndDisinfectRecordId.toString() - + " )"; // 更新装配任务清洗时间的sql String sql2 = " update packingTask set washTime = '"+newStartTime + "'" - + " where washRecord_id = "+ washAndDisinfectRecordId.toString(); - objectDao.excuteSQL(sql1); + + " where washRecord_id = "+ washAndDisinfectRecordId; objectDao.excuteSQL(sql2); }