Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java =================================================================== diff -u -r29286 -r29365 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 29286) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 29365) @@ -3736,7 +3736,7 @@ } //根据固定条码获取审核状态的包实例id和包条码 TousseDefinition td = tousseDefinitionManager.getTousseDefinitionByFixedBarcode(barcodeStr); - JSONArray arr = tousseInstanceManager.getTousseInsArrByTd(td, "", " and status = '"+TousseInstance.STATUS_REVIEWED+"'", 1); + JSONArray arr = tousseInstanceManager.getTousseInsArrByTd(td, "", " and status = '"+TousseInstance.STATUS_REVIEWED+"'", 0); Integer stockAmount = 0; int toussesAmount = arr.size(); if (toussesAmount > 0) { @@ -3748,17 +3748,24 @@ } JSONArray tousseInstanceArr = new JSONArray(); JSONObject obj = (JSONObject)arr.get(0); - TousseInstance tousseInstance1 = tousseInstanceManager.get(obj.optLong("id")); + TousseInstance tousseInstance1 = toussesOfToday.get(0); String typeForSterilizationStatistics = getTypeForSterilizationStatistics(tousseInstance1.getProxyDisinfection_id() , tousseInstance1.getTousseDefinition().getTousseType() , tousseInstance1.getTousseDefinition().getIsForeignTousse()); String reviewTime = ForgonDateUtils.safelyFormatDate(tousseInstance1.getReviewTime(), Constants.SIMPLEDATEFORMAT_YYYYMMDDHHMM, ""); String department = StringUtils.defaultString(tousseInstance1.getDepart(), ""); String tousseName = tousseInstance1.getTousseName(); String sterilingType = tousseInstance1.getSterilingType(); String sterilingMode = tousseInstance1.getSterilingMode(); //固定条码每次加载数量循环 - for (int i = 0; i < toussesAmount; i++) { + for (int i = 0; i < arr.size(); i++) { + if(tousseInstanceArr.size() > toussesAmount){ + break; + } + if(!todayToussesMap.keySet().contains(((JSONObject)arr.get(i)).optString("barcode"))){ + // 不是今天审核的包,不处理 + continue; + } JSONObject temp = new JSONObject(); - if(i==0){//页面上只显示第一条数据 + if(tousseInstanceArr.size()==0){//页面上只显示第一条数据 temp.put("tousseBarcode", tousseInstance.getBarcode()); temp.put("tousseName", tousseName); temp.put("typeForSterilizationStatistics", typeForSterilizationStatistics); Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/action/SterilizationRecordAction.java =================================================================== diff -u -r29286 -r29365 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/action/SterilizationRecordAction.java (.../SterilizationRecordAction.java) (revision 29286) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/action/SterilizationRecordAction.java (.../SterilizationRecordAction.java) (revision 29365) @@ -42,6 +42,7 @@ import org.apache.struts2.convention.annotation.ParentPackage; import com.forgon.Constants; +import com.forgon.databaseadapter.service.DateQueryAdapter; import com.forgon.directory.acegi.tools.AcegiHelper; import com.forgon.directory.model.BarcodeDevice; import com.forgon.directory.vo.LoginUserData; @@ -83,6 +84,7 @@ import com.forgon.tools.string.StringTools; import com.forgon.tools.util.FileUtils; import com.forgon.tools.util.ForgonDateUtils; +import com.forgon.tools.util.SqlUtils; import com.google.common.collect.Maps; import com.opensymphony.xwork2.ModelDriven; import com.opensymphony.xwork2.Preparable; @@ -136,6 +138,12 @@ private TousseDefinitionManager tousseDefinitionManager; + private DateQueryAdapter dateQueryAdapter; + + public void setDateQueryAdapter(DateQueryAdapter dateQueryAdapter) { + this.dateQueryAdapter = dateQueryAdapter; + } + public void setTousseDefinitionManager( TousseDefinitionManager tousseDefinitionManager) { this.tousseDefinitionManager = tousseDefinitionManager; @@ -836,19 +844,34 @@ //如果是固定条码,则去获取下面的包实例条码,按每次扫描数量去获取 if(StringUtils.isNotBlank(tousseDefinitionId)){ fixedBarodeJsonArray.add(barcode); + //待灭菌物品列表中显示按照科室供应室设置里面的每天开始时间作为时间节点(ZYYFS-118) + Date out_beginTime = new Date(); + Date out_endTime = new Date(); + supplyRoomConfigManager.getTodayTimeQuantum(out_beginTime, out_endTime); + String dateSql = ""; + dateSql = " and reviewTime >= " + + dateQueryAdapter.dateAdapter(out_beginTime) + + " and reviewTime < " + + dateQueryAdapter.dateAdapter(out_endTime); + + String barcodeNotInSql = ""; + if(StringUtils.isNotBlank(savedBarcodes)){ + barcodeNotInSql += SqlUtils.get_NotInSql("barcode", savedBarcodes.split(";")); + } + barcodeList = tousseInstanceManager.getTousseInsDataByFixedBarcode - (barcode, myBarcodes," and status = '"+TousseInstance.STATUS_REVIEWED+"'","barcode",1,null,null); + (barcode, myBarcodes, barcodeNotInSql + " and status = '"+TousseInstance.STATUS_REVIEWED+"'" + dateSql,"barcode",0,null,null); //循环该固定条码下的包实例去校验 for (String barcodeStr : barcodeList) { validateResultJsonObject = validateBarcodeForBarcodeDevice(sterilizationRecordId , barcodeStr , savedBarcodes); if(validateResultJsonObject.optBoolean("success")){ resultJsonArray.add(validateResultJsonObject.optJSONObject("dataList")); - }else{ + }/*else{ jsonObject.put("success", false); jsonObject.put("message", validateResultJsonObject.optString("message")); StrutsResponseUtils.output(jsonObject); return; - } + }*/ } }else{//唯一条码或灭菌筐 validateResultJsonObject = validateBarcodeForBarcodeDevice(sterilizationRecordId , barcode , savedBarcodes); @@ -919,8 +942,10 @@ }else{ if(obj.containsKey("fixedBarcode") && StringUtils.isNotBlank(obj.get("fixedBarcode")+"")){ obj.put("amount", 1); + barodeJsonArray.add(obj.get("barcode")); + // 只有一个包实例时,也要取固定条码 + obj.put("barcode", obj.get("fixedBarcode")+""); resultMap.put(tousseInsName, obj); - barodeJsonArray.add(obj.get("barcode")); }else{ resultMap.put(obj.getString("barcode"), obj); } Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java =================================================================== diff -u -r29265 -r29365 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 29265) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 29365) @@ -2589,11 +2589,14 @@ String sql = " where po.tousseName = '" + name + "'" + " and po.status = '" + TousseInstance.STATUS_REVIEWED + "' and reviewBasket_ID is null"; - String todayStr = DateTools.getCurrentDayByFormat("yyyy-MM-dd"); + //待灭菌物品列表中显示按照科室供应室设置里面的每天开始时间作为时间节点(ZYYFS-118) + Date out_beginTime = new Date(); + Date out_endTime = new Date(); + supplyRoomConfigManager.getTodayTimeQuantum(out_beginTime, out_endTime); sql += " and po.reviewTime >= " - + dateQueryAdapter.dateAdapter(todayStr + " 00:00:00") - + " and po.reviewTime <= " - + dateQueryAdapter.dateAdapter(todayStr + " 23:59:59") + + dateQueryAdapter.dateAdapter(out_beginTime) + + " and po.reviewTime < " + + dateQueryAdapter.dateAdapter(out_endTime) + " and po.orgUnitCoding = '" + orgUnitCode + "'" + " order by operationTime"; List list = objectDao.findBySql( @@ -5993,22 +5996,30 @@ String resultStr=""; String barcodesStr = null; if(StringUtils.isNotBlank(barcodes)){ + Date out_beginTime = new Date(); + Date out_endTime = new Date(); + supplyRoomConfigManager.getTodayTimeQuantum(out_beginTime, out_endTime); + String dateSql = ""; + dateSql = " and reviewTime >= " + + dateQueryAdapter.dateAdapter(out_beginTime) + + " and reviewTime < " + + dateQueryAdapter.dateAdapter(out_endTime); if(sterilizationBarcodesList.size()>0){ //优先加载页面上已删除但未保存的条码 for(int i=0;isterilizationBarcodesList.size()){ - barcodeList = getTousseInsDataByFixedBarcode(fixedBarcode,barcodes," and status = '"+TousseInstance.STATUS_REVIEWED+"'","barcode",1,null,null); //库存 + barcodeList = getTousseInsDataByFixedBarcode(fixedBarcode,barcodes, dateSql + " and status = '"+TousseInstance.STATUS_REVIEWED+"'","barcode",1,null,null); //库存 for(int j=0;j