Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/dwr/table/TousseInstanceTableManager.java =================================================================== diff -u -r25135 -r25288 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/dwr/table/TousseInstanceTableManager.java (.../TousseInstanceTableManager.java) (revision 25135) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/dwr/table/TousseInstanceTableManager.java (.../TousseInstanceTableManager.java) (revision 25288) @@ -63,6 +63,7 @@ import com.forgon.tools.db.DatabaseUtil; import com.forgon.tools.hibernate.ObjectDao; import com.forgon.tools.string.StringTools; +import com.forgon.tools.util.ForgonDateUtils; import com.forgon.tools.util.SqlUtils; /** @@ -889,21 +890,30 @@ //告警类型 String type = sqlWhereParamMap.get("type"); - Date now = new Date(); + Calendar cal = Calendar.getInstance(); + //已过失效期的时间(即当前时间(含时分秒)) + Date nowDateForValidUtil = cal.getTime(); + //已过预警期但未过失效期的时间(即当前时间(含时分秒)) + Date nowDateForWarningUtil = nowDateForValidUtil; + //如果预警时间只需要到天,不用到时分秒时,则时分秒设置为0 + if(CssdUtils.getSystemSetConfigByNameBool("warningUtilOnlyConsiderDate")){ + ForgonDateUtils.setTime(cal, 0, 0, 0); + nowDateForWarningUtil = cal.getTime(); + } String startTime = sqlWhereParamMap.get("startTime"); String endTime = sqlWhereParamMap.get("endTime"); switch (type) { case SystemWarningItemVO.WARNING_TYPE_DISABLED_TOUSSE: - sqlBuilder.append(" AND po.validUntil < " + dateQueryAdapter.dateAdapter(now)); + sqlBuilder.append(" AND po.validUntil < " + dateQueryAdapter.dateAdapter(nowDateForValidUtil)); setQueryTime(sqlBuilder, "po.validUntil", startTime, endTime); break; case SystemWarningItemVO.WARNING_TYPE_TOUSSE: - sqlBuilder.append(" AND po.warningUntil < " + dateQueryAdapter.dateAdapter(now)); - sqlBuilder.append(" AND po.validUntil > " + dateQueryAdapter.dateAdapter(now)); + sqlBuilder.append(" AND po.warningUntil < " + dateQueryAdapter.dateAdapter(nowDateForWarningUtil)); + sqlBuilder.append(" AND po.validUntil > " + dateQueryAdapter.dateAdapter(nowDateForValidUtil)); setQueryTime(sqlBuilder, "po.warningUntil", startTime, endTime); break; default: //默认显示已过期和即将过期的所有器械包 - sqlBuilder.append(" AND po.warningUntil < " + dateQueryAdapter.dateAdapter(now)); + sqlBuilder.append(" AND po.warningUntil < " + dateQueryAdapter.dateAdapter(nowDateForWarningUtil)); setQueryTime(sqlBuilder, "po.warningUntil", startTime, endTime); break; } Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java =================================================================== diff -u -r25265 -r25288 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 25265) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 25288) @@ -972,9 +972,9 @@ } index++; }*/ - + Date nowDate = new Date(); jdbcTemplate.batchUpdate("update TousseInstance set status=?,sterileFrequency=?,sterilizationUser=?,sterilizerName=?," - + "sterileStartTime=?,sterileEndTime=?,SterilingType=?,sterilizationRecord_id=?,warehouseId=?,warehouseName=?,validUntil=? where id=? or comboTousseInstanceId=? ", new BatchPreparedStatementSetter() { + + "sterileStartTime=?,sterileEndTime=?,SterilingType=?,sterilizationRecord_id=?,warehouseId=?,warehouseName=?,validUntil=?,warningUntil=? where id=? or comboTousseInstanceId=? ", new BatchPreparedStatementSetter() { @Override public void setValues(PreparedStatement ps, int i) throws SQLException { @@ -1008,11 +1008,23 @@ if(null != expirationDateInfo && null != expirationDateInfo.getValidDate() && 0 != expirationDateInfo.getValidDate().intValue()){ //如果单位是月,则每月默认当做30天计算。 if(StringTools.equals(ExpirationDateInfo.DATEUNIT_MONTH, expirationDateInfo.getValidDateUnit())){ - validUntil = DateTools.addDate(new Date(), expirationDateInfo.getValidDate() * 30); + validUntil = DateTools.addDate(nowDate, expirationDateInfo.getValidDate() * 30); }else{//否则当做天处理 - validUntil = DateTools.addDate(new Date(),expirationDateInfo.getValidDate()); + validUntil = DateTools.addDate(nowDate,expirationDateInfo.getValidDate()); } } + + //预警日期 + Date warningUntil = null; + //只有当失效日期不为空和0的情况下,才去更新包的失效日期 + if(null != expirationDateInfo && null != expirationDateInfo.getWarningDate() && 0 != expirationDateInfo.getWarningDate().intValue()){ + //如果单位是月,则每月默认当做30天计算。 + if(StringTools.equals(ExpirationDateInfo.DATEUNIT_MONTH, expirationDateInfo.getValidDateUnit())){ + warningUntil = DateTools.addDate(nowDate, expirationDateInfo.getWarningDate() * 30); + }else{//否则当做天处理 + warningUntil = DateTools.addDate(nowDate,expirationDateInfo.getWarningDate()); + } + } ps.setString(1, status); ps.setString(2, sterileFrequency); @@ -1029,8 +1041,13 @@ }else{ ps.setDate(11, null); } - ps.setLong(12, tousseInstance.getId()); + if(warningUntil != null){ + ps.setDate(12, new java.sql.Date(warningUntil.getTime())); + }else{ + ps.setDate(12, null); + } ps.setLong(13, tousseInstance.getId()); + ps.setLong(14, tousseInstance.getId()); } @Override Index: ssts-web/src/main/java/com/forgon/disinfectsystem/systemwarning/service/SystemWarningManagerImpl.java =================================================================== diff -u -r23708 -r25288 --- ssts-web/src/main/java/com/forgon/disinfectsystem/systemwarning/service/SystemWarningManagerImpl.java (.../SystemWarningManagerImpl.java) (revision 23708) +++ ssts-web/src/main/java/com/forgon/disinfectsystem/systemwarning/service/SystemWarningManagerImpl.java (.../SystemWarningManagerImpl.java) (revision 25288) @@ -43,6 +43,7 @@ import com.forgon.tools.date.DateTools; import com.forgon.tools.db.DatabaseUtil; import com.forgon.tools.hibernate.ObjectDao; +import com.forgon.tools.util.ForgonDateUtils; import com.forgon.tools.util.SqlUtils; import freemarker.template.utility.DateUtil; @@ -163,24 +164,31 @@ * @return */ private String getWarningTousseGoodsSQL(int supplyRoomType, String orgUnitCoding) { + //已过失效期的时间(即当前时间(含时分秒)) + String nowDateForValidUtil = ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS.format(new Date()); + //已过预警期但未过失效期的时间(即当前时间(含时分秒)) + String nowDateForWarningUtil = nowDateForValidUtil; + //如果配置项预警时间只需要到天,不用到时分秒时 + if(CssdUtils.getSystemSetConfigByNameBool("warningUtilOnlyConsiderDate")){ + nowDateForWarningUtil = ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDD.format(new Date()); + } - String date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); - String sql = ""; + String sql = null; //供应室 if(supplyRoomType == SupplyRoomConfig.SUPPLYROOM_TYPE_FIRST_SUPPLYROOM){ sql = "select count(*) A from TousseInstance po where po.validUntil > " - + dateQueryAdapter.dateAdapter(date) + + dateQueryAdapter.dateAdapter(nowDateForValidUtil) + " and po.warningUntil < " - + dateQueryAdapter.dateAdapter(date) + + dateQueryAdapter.dateAdapter(nowDateForWarningUtil) + " and po.orgUnitCoding = '" + orgUnitCoding + "'"; sql += " and " + SqlBuilder.build_IN_Statement("po.status", SqlBuilder.IN, TousseInstance.STATUS_STERILED, TousseInstance.STATUS_RETURNED); }else {//二级供应室或临床科室 sql = "select count(*) A from TousseInstance po where po.validUntil > " - + dateQueryAdapter.dateAdapter(date) + + dateQueryAdapter.dateAdapter(nowDateForValidUtil) + " and po.warningUntil < " - + dateQueryAdapter.dateAdapter(date) + + dateQueryAdapter.dateAdapter(nowDateForWarningUtil) + " and po.location = '" + orgUnitCoding + "' "; sql += " and " + SqlBuilder.build_IN_Statement("po.status", SqlBuilder.IN, TousseInstance.STATUS_SHIPPED, TousseInstance.STATUS_SIGNED);