Index: ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationLoadingForm.js =================================================================== diff -u -r22039 -r22084 --- ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationLoadingForm.js (.../sterilizationLoadingForm.js) (revision 22039) +++ ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationLoadingForm.js (.../sterilizationLoadingForm.js) (revision 22084) @@ -58,6 +58,20 @@ } /** + * 判断数组中是否存在某个值 + */ +Array.prototype.contains = function (obj) { + var i = this.length; + while (i--) { + if (this[i] === obj) { + return true; + } + } + return false; +} + + +/** * 移除篮筐物品统计的数据 */ function removeStasticsGridItem() { @@ -84,7 +98,9 @@ var tousseGridItemDepart = tousseGridItem.data.depart; var tousseGridItemTousseName = tousseGridItem.data.tousseDefinitionName; if(fixedBarcode!="0" && typeof(fixedBarcode) != "undefined"){//如果删除的是固定条码 - waitRemovingBarcodeArray.push(fixedBarcode); + if(!waitRemovingBarcodeArray.contains(fixedBarcode)){//如果已经存在则跳过 + waitRemovingBarcodeArray.push(fixedBarcode); + } continue; }else{ if(((!stasticsDepart && !tousseGridItemDepart) || (stasticsDepart == tousseGridItemDepart)) @@ -94,13 +110,16 @@ } } } - //针对删除固定条码 var delTousseByFixedBarcode = function(){ + if(typeof(departCoding)=="undefined" || departCoding =="0" || departCoding ){ + departCoding = ""; + } Ext.Ajax.request({ url : WWWROOT + '/disinfectSystem/tousseInstanceAction!removeFromBasket.do', params : {fixedBarcode : fixedBarcode,reviewedBasketId:reviewedBasketId,departCoding:departCoding,barcode:waitRemovingBarcodeArray.join(";")}, success : function(response, options) { + hiddenMask();//进度条结束 var result = Ext.decode(response.responseText); if(!result || result.success == false){ showResult(result.message); @@ -129,6 +148,7 @@ url : WWWROOT + '/disinfectSystem/tousseInstanceAction!removeFromBasket.do', params : {barcode : waitRemovingBarcodeArray.join(";"),reviewedBasketId:reviewedBasketId,departArray:departArray.join(";")}, success : function(response, options) { + hiddenMask();//进度条结束 var result = Ext.decode(response.responseText); if(!result || result.success == false){ showResult(result.message); @@ -177,6 +197,7 @@ url : WWWROOT + '/disinfectSystem/tousseInstanceAction!removeFromBasket.do', params : {barcode : rows[i].data.barcode,reviewedBasketId :reviewedBasketId }, success : function(response, options) { + hiddenMask();//进度条结束 var result = Ext.decode(response.responseText); if(!result || result.success == false){ showResult(result.message); @@ -208,7 +229,6 @@ } } } - hiddenMask();//进度条结束 //待灭菌装载列表数据源重新刷新 waitSterileLoadingTousseStore.reload(); //如果篮筐内器械包数量为空,删除此篮筐记录(释放篮筐) @@ -227,7 +247,7 @@ } }); } - hiddenMask();//进度条结束 + } } @@ -286,126 +306,62 @@ return jsonObject; } //ObjBarcode可能为入筐器械包的篮筐条码,也可能为入筐器械包的械包条码 -function transformGridItem(ObjBarcode){ +function transformGridItem(ObjBarcode,isFixedBarcode,nowBasketId){ Ext.getCmp('barcode').setValue(ObjBarcode); clearScanText(); Ext.getCmp('barcode').setValue("");//点各表格中的载入按钮时,需要手工清除首条码,并将首条码得到焦点 - scanBarcodeAndAddToBasket(ObjBarcode); + if(typeof(isFixedBarcode) != "undefined" && isFixedBarcode=="true"){ + if(nowBasketId==reviewedBasketId){ + showResult("此物品已经在篮筐内"); + return; + } + renderformFixedBarcodeToBasket(ObjBarcode,nowBasketId) + }else{ + scanBarcodeAndAddToBasket(ObjBarcode); + } Ext.getCmp('barcode').focus();//因为扫描条码也会调用上一行这个方法,所以载入后需要重新让条码(首)得到焦点 - /*SterileLoadingTableManager.getResultJsonStrByBarcode(ObjBarcode,getTousseStoreBarcodes(),Ext.getCmp('basketBarcode').getValue(),function(jsonStr){ - var obj = Ext.util.JSON.decode(jsonStr); - var returnType = obj.returnType; - - if(returnType=="basketNotFound"){//条码不存在 - showResult("找不到该包或篮筐。"); - clearScanText(); - }else if(returnType == "tousseInstanceSuccess"){//扫描的是包 - if(Ext.getCmp('basketBarcode').getValue() == '') { - showResult('请先录入篮筐'); - clearScanText(); - return; - } - for(var i=0;i 0 && j < tousseInstances.length;j++){ var barcodeToBasket = tousseInstances[j].barcode; - var barcodeAddedToBasket = false; - for(var i=0;i 0){ - return ""; - }else{ - return ""; - } + var isFixedBarcode = record.isFixedBarcode; + var nowBasketId = record.nowBasketId; + //这段代码if和else处理一样,不知为何这么写 +// if(total != null || total > 0){ +// return ""; +// }else{ +// return ""; +// } + + + return ""; + } //待灭菌装载器械包信息的载入按钮 function renderformBtn(v,p,record){ var total = record.statisticsTotal; var barcode = record.data.objBarcode; + var isFixedBarcode = record.data.isFixedBarcode; if(total != null || total > 0){ return null; }else{ return ""; + + "transformGridItem('" + barcode + "','"+isFixedBarcode+"')" + "\">"; } } @@ -1340,7 +1306,8 @@ {name: 'depart'}, {name: 'tousseName'}, {name: 'objBarcode'}, - {name: 'reviewTime'} + {name: 'reviewTime'}, + {name: 'amount'} ] }), listeners : { @@ -1360,11 +1327,12 @@ waitSterileLoadingTousseGridColumnArray.push({header: "id", hidden: true, dataIndex: 'id'}); //是否在待灭菌装载器械包列表中,显示“科室”列和搜索框 if(showDepartOfTousseInstanceSterile){ - waitSterileLoadingTousseGridColumnArray.push({header: "科室", width: 120, sortable: true, dataIndex: 'depart',hidden:!showDepartOfTousseInstanceSterile}); + waitSterileLoadingTousseGridColumnArray.push({header: "科室", width: 105, sortable: true, dataIndex: 'depart',hidden:!showDepartOfTousseInstanceSterile}); } waitSterileLoadingTousseGridColumnArray.push({header: "名称", width: 120, sortable: true, dataIndex: 'tousseName'}); - waitSterileLoadingTousseGridColumnArray.push({header: "条形码", width: 80, sortable: true, dataIndex: 'objBarcode'}); + waitSterileLoadingTousseGridColumnArray.push({header: "条形码", width: 70, sortable: true, dataIndex: 'objBarcode'}); waitSterileLoadingTousseGridColumnArray.push({header: "审核时间", width: 110, sortable: true, dataIndex: 'reviewTime'}); + waitSterileLoadingTousseGridColumnArray.push({header: "数量", width: 35, sortable: true, dataIndex: 'amount'}); waitSterileLoadingTousseGridColumnArray.push({header: "装载", width: 40, sortable: true, dataIndex: 'objBarcode',renderer:renderformBtn}); var pageBar = new Ext.PagingToolbar({ @@ -1566,14 +1534,28 @@ dataIndex : 'objDepartName', hidden:!showDepartOfTousseInstanceSterile },{ - header : '筐内器械包数量', + header : '篮筐内总数', width : 100, dataIndex : 'statisticsTotal' },{ header : '条形码', width : 100, dataIndex : 'objBarcode' },{ + header : '包数量', + width : 50, + dataIndex : 'amount' + },{ + header : '是否为固定条码', + width : 50, + dataIndex : 'isFixedBarcode', + hidden:true + },{ + header : '当前篮筐ID', + width : 50, + dataIndex : 'nowBasketId', + hidden:true + },{ header : '转换灭菌筐', width : document.body.clientWidth/2 - 208, renderer:transformBtn Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java =================================================================== diff -u -r22039 -r22084 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 22039) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 22084) @@ -103,6 +103,7 @@ import com.forgon.tools.MathTools; import com.forgon.tools.SpringBeanManger; import com.forgon.tools.SqlBuilder; +import com.forgon.tools.StrutsParamUtils; import com.forgon.tools.StrutsResponseUtils; import com.forgon.tools.date.DateTools; import com.forgon.tools.db.DatabaseUtil; @@ -126,8 +127,9 @@ super(TousseInstance.class); } private final Logger logger = Logger.getLogger(TousseInstanceManagerImpl.class); + + private AcegiHelper acegiHelper; - private DateQueryAdapter dateQueryAdapter; private ReviewedBasketManager reviewedBasketManager; @@ -162,7 +164,15 @@ - public TimeoutManager getTimeoutManager() { + public AcegiHelper getAcegiHelper() { + return acegiHelper; + } + + public void setAcegiHelper(AcegiHelper acegiHelper) { + this.acegiHelper = acegiHelper; + } + + public TimeoutManager getTimeoutManager() { return timeoutManager; } @@ -1110,16 +1120,29 @@ @Override public List addTousseInstanceToBasket(String basketBarcode, Collection tousseInstanceBarcodes, Collection excludeBarcodes) { + + + //判断是否有勾选固定条码,如果有,则去获取下面的包实例条码 + Collection bList = new ArrayList(); + for (String barcode : tousseInstanceBarcodes) { + if(isCountBarcode(barcode)){ + List list = getTousseInsDataByFixedBarcode(barcode, "", " and status='"+TousseInstance.STATUS_REVIEWED+"' ", "barcode", 1); + for (String bStr : list) { + bList.add(bStr); + } + } + } + ReviewedBasket basket = reviewedBasketManager .getReviewedBasketButNew(basketBarcode); if (basket.getId() == null) { reviewedBasketManager.saveOrUpdate(basket); } - + //增加空对象或空集合的判断,防止空指针异常报错 if(CollectionUtils.isNotEmpty(excludeBarcodes)){ tousseInstanceBarcodes = CollectionUtils.subtract( - tousseInstanceBarcodes, excludeBarcodes); + tousseInstanceBarcodes, excludeBarcodes); } if(CollectionUtils.isNotEmpty(tousseInstanceBarcodes)){ @@ -1135,7 +1158,8 @@ } appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_REVIEW + "或者" - + Log.MODEL_STERILELOADING, Log.TYPE_UPDATE, json); + + Log.MODEL_STERILELOADING, Log.TYPE_UPDATE, json); + tousseInstanceBarcodes.addAll(bList); Query query = objectDao.getHibernateSession().createQuery("from TousseInstance where barcode in :barcode order by barcode"); query.setParameterList("barcode", tousseInstanceBarcodes); @@ -4011,6 +4035,9 @@ String tousseName = tousseInstance.getShowTousseName(); String depart = StringUtils.isBlank(tousseInstance.getDepart()) ? "" : tousseInstance.getDepart(); String departCoding = tousseInstance.getDepartCoding(); + if(!StringUtils.isNotBlank(departCoding)){//可能存在科室为空的情况 + departCoding = "0"; + } Integer count = 0; if (staticsMap.containsKey(depart + ";" + tousseName+";"+fixedBarcode+";"+departCoding)) { count = staticsMap.get(depart + ";" + tousseName+";"+fixedBarcode+";"+departCoding); @@ -4031,4 +4058,204 @@ } return jsonArray; } + + @Override + public JSONArray getWaitSterileLoadingTousseInstance(List tousseList) { + Map bMap=Maps.newHashMap();//用来汇总数据 + Collections.sort(tousseList); + JSONArray jsonArray = new JSONArray(); + for (TousseInstance tousseInstance : tousseList) { + String objName = tousseInstance.getTousseName(); + boolean isCountBarcode = isCountBarcode(tousseInstance.getBarcode()); + if(bMap.containsKey(objName) && isCountBarcode){//只有支持扫固定条码的包,才去统计 + //已存在 则取出该对象,对象中 objAmount 累加。 + JSONObject obj = bMap.get(objName); + int amt=(int) obj.get("amount"); + amt++; + obj.put("amount", amt); + obj.put("objBarcode", getTousseFixedBarcodeByBarcode(tousseInstance.getBarcode(),TousseDefinition.STR_NO)); + //覆盖 + bMap.put(objName, obj); + }else{ + JSONObject jsonObject = new JSONObject(); + jsonObject.put("id", tousseInstance.getId()); + jsonObject.put("depart", tousseInstance.getDepart()); + jsonObject.put("tousseName", tousseInstance.getShowTousseName()); + jsonObject.put("objBarcode", tousseInstance.getBarcode()); + jsonObject.put("amount", 1); + jsonObject.put("reviewTime", ForgonDateUtils.safelyFormatDate(tousseInstance.getReviewTime(), Constants.SIMPLEDATEFORMAT_YYYYMMDDHHMM, "")); + //jsonArray.add(jsonObject); + if(!isCountBarcode){ + bMap.put(tousseInstance.getBarcode(), jsonObject); + }else{ + String fixedBarcode = getTousseFixedBarcodeByBarcode(tousseInstance.getBarcode(),TousseDefinition.STR_NO); + jsonObject.put("barcode",fixedBarcode);//固定条码 + bMap.put(objName, jsonObject); + } + } + } + + for (String str : bMap.keySet()) { + JSONObject tousseInBasket=bMap.get(str); + jsonArray.add(tousseInBasket); + } + return jsonArray; + } + + @Override + public JSONArray loadAllTousseInstance(String thisDepartName, String taskGroup) { + try { + String departCode = AcegiHelper.getLoginUser().getCurrentOrgUnitCode(); + + List baskets = reviewedBasketManager.getDepartAllReviewedBasket(departCode); + + logger.debug("加载[" + taskGroup + "]任务组的所有篮筐:"); + logger.debug("共有" + baskets.size() + "个篮筐"); + + JSONArray result = new JSONArray(); + for (ReviewedBasket reviewedBasket : baskets) { + + Map statistics = new HashMap<>(); + statistics.put("器械包", 0); + statistics.put("代理灭菌器械包", 0); + statistics.put("敷料包", 0); + statistics.put("总数", 0); + + List vos = getTousseInstanceVOsInReviewedBasket(reviewedBasket, taskGroup, thisDepartName); + + JSONArray tiJsonArray = new JSONArray(); + //用来汇总数据 + Map bMap=Maps.newHashMap(); + for (TousseSimpleVO vo : vos) { + String tousseName = vo.getTousseName(); + boolean isCountBarcode = isCountBarcode(vo.getBarcode()); + if(bMap.containsKey(tousseName) && isCountBarcode){//只有支持扫固定条码的包,才去统计 + //已存在 则取出该对象,对象中 objAmount 累加。 + JSONObject obj = bMap.get(tousseName); + int amt=(int) obj.get("amount"); + amt++; + obj.put("amount", amt); + obj.put("isFixedBarcode", true); + obj.put("objBarcode",getTousseFixedBarcodeByBarcode(vo.getBarcode(),TousseDefinition.STR_NO)); + //覆盖 + bMap.put(tousseName, obj); + }else{ + JSONObject tiJson = new JSONObject(); + tiJson.put("objName", vo.getItemDefinition().getName()); + tiJson.put("objDepartName", vo.getDepart()); + tiJson.put("objBarcode", vo.getBarcode()); + tiJson.put("amount", 1); + tiJson.put("type", "TOUSSE_IN"); + tiJson.put("nowBasketId", reviewedBasket.getId());//当前的篮筐ID,用于前台点击载入时候能取到 + tiJson.put("isFixedBarcode", false);//是否为固定条码,用于前台点载入时进行判断 + tiJson.put("uiProvider", "col"); + tiJson.put("leaf", true); + tiJson.put("iconCls", "task"); + if(!isCountBarcode){ + bMap.put(vo.getBarcode(), tiJson); + }else{ + String fixedBarcode = getTousseFixedBarcodeByBarcode(vo.getBarcode(),TousseDefinition.STR_NO); + tiJson.put("barcode",fixedBarcode);//固定条码 + tiJson.put("isFixedBarcode", true); + bMap.put(tousseName, tiJson); + } + } + countTousse(statistics, vo);//统计 + } + + for (String str : bMap.keySet()) { + JSONObject tousseInBasket=bMap.get(str); + tiJsonArray.add(tousseInBasket); + } + + if(tiJsonArray.size() <= 0){ + continue; + } + + Container container = reviewedBasket.getContainer(); + + JSONObject basketJson = new JSONObject(); + basketJson.put("objName", container.getContainerName()); + basketJson.put("objBarcode", container.getBarcode()); + basketJson.put("type", "BASKET"); + basketJson.put("uiProvider", "col"); + basketJson.put("cls", "master-task"); + basketJson.put("iconCls", "task-folder"); + + basketJson.put("statisticsNormal", statistics.get("器械包")); + basketJson.put("statisticsProxy", statistics.get("代理灭菌器械包")); + basketJson.put("statisticsDressing", statistics.get("敷料包")); + basketJson.put("statisticsTotal", statistics.get("总数")); + basketJson.put("children", tiJsonArray); + + result.add(basketJson); + + logger.debug("篮筐:" + container.getContainerName() + ",Id:" + + reviewedBasket.getId() + ",共有" + + vos.size() + "个器械包,灭菌记录数目:" + + reviewedBasket.getSterilizationRecords().size()); + + logger.debug("basketJson:"+basketJson); + } + return result; + }catch(Exception e){ + e.printStackTrace(); + } + return null; + } + + + + + /** + * 用Map统计篮筐内各类型器械包的数量 + */ + private void countTousse(Map statistics, + TousseSimpleVO vo) { + + boolean isProxyDisinfectionTousse = false; + boolean isForeignProxyItem = false; + + if (DatabaseUtil.isPoIdValid(vo.getProxyDisinfectionId())){ + isProxyDisinfectionTousse = true; + } + + if (DatabaseUtil.isPoIdValid(vo.getForeignProxyItemId())){ + isForeignProxyItem = true; + } + + if (isForeignProxyItem + || isProxyDisinfectionTousse) { + statistics.put("代理灭菌器械包", statistics.get("代理灭菌器械包") + 1); + } else if (TousseDefinition.PACKAGE_TYPE_DRESSING + .equals(vo.getItemDefinition().getTousseType())) { + statistics.put("敷料包", statistics.get("敷料包") + 1); + } else { + statistics.put("器械包", statistics.get("器械包") + 1); + } + statistics.put("总数", statistics.get("总数") + 1); + } + + @Override + public boolean renderformFixedBarcodeToBasket(String fixedBarcode, + String reviewedBasketId, String nowBasketId) { + if(!StringUtils.isNotBlank(nowBasketId) || !StringUtils.isNotBlank(reviewedBasketId)){ + return false; + } + List barcodeList = getTousseInsBarcodeForReviewBasket(fixedBarcode, Long.parseLong(nowBasketId), null); + String updateSql = "update "+TousseInstance.class.getSimpleName()+" set reviewBasket_id =%d where id in(select ti.id from TousseInstance ti " + + "join barcodeDevice bd on bd.id = ti.id where bd.barcode in(%s))"; + StringBuffer sb = new StringBuffer(); + if(barcodeList.size()>0){ + sb = new StringBuffer(StringUtils.strip(barcodeList.toString(),"[]")); + } + System.out.println(sb.toString()); + updateSql = String.format(updateSql, Long.parseLong(reviewedBasketId),sb.toString()); + try { + return objectDao.executeUpdate(updateSql); + } catch (Exception e) { + e.printStackTrace(); + } + return false; + } } Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java =================================================================== diff -u -r22039 -r22084 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java (.../TousseInstanceManager.java) (revision 22039) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java (.../TousseInstanceManager.java) (revision 22084) @@ -219,6 +219,15 @@ * @return */ public JSONArray getFromBasket(String basketBarcode); + + /** + * 加载所有已审核且未加入至任何灭菌筐的器械包(按用户所在科室对应供应室处理器械包配置的器械包) + * @param searchKeyWord 搜索关键字 + * @param start 开始条数 (分页) + * @param limit 结束条数 (分页) + * @return + */ + public JSONArray getWaitSterileLoadingTousseInstance(ListtousseList); /** * 根据外来申请单申请的申请包. @@ -755,6 +764,22 @@ public boolean isCountBarcode(String barcode); /** + * 加载已审核的器械包,作为篮筐视图的数据源 + * @param thisDepartName 科室名 + * @param taskGroup + * @return + */ + public JSONArray loadAllTousseInstance(String thisDepartName, String taskGroup); + + /** + * 器械包转换灭菌篮筐,针对固定条码 + * @param fixedBarcode 固定条码 + * @param reviewedBasketId 目标篮筐ID + * @param nowBasketId 当前篮筐ID + */ + public boolean renderformFixedBarcodeToBasket(String fixedBarcode,String reviewedBasketId,String nowBasketId); + + /** * 根据条码判断是否需要统计汇总包信息 * @return */ @@ -795,6 +820,6 @@ * @return */ public String getTousseFixedBarcodeByBarcode(String barcode,String isTraceable); - + } Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterileloading/dwr/table/SterileLoadingTableManager.java =================================================================== diff -u -r22039 -r22084 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterileloading/dwr/table/SterileLoadingTableManager.java (.../SterileLoadingTableManager.java) (revision 22039) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterileloading/dwr/table/SterileLoadingTableManager.java (.../SterileLoadingTableManager.java) (revision 22084) @@ -262,7 +262,7 @@ * @return json字符串 {returnType:'',status:''...} */ public String scanBarcodeAndAddTousseToBasket(String barcodes,JSONObject extraParam , String basketBarcode){ - + JSONObject json = new JSONObject(); JSONUtil.addProperty(json, "returnType", "basketNotFound"); if(StringUtils.isBlank(barcodes)){ @@ -312,7 +312,7 @@ if(barcodeDevice == null){ return json.toString(); } - String reviewedBasketId ="" ; + Long reviewedBasketId = null; //当前登录用户所属科室 String currentOrgUnitCode = AcegiHelper.getLoginUser() .getCurrentOrgUnitCode(); @@ -332,7 +332,7 @@ ResultSet rs = objectDao.executeSql(sql); try { while(rs.next()){ - reviewedBasketId =(rs.getString("id")); + reviewedBasketId =(rs.getLong("id")); } } catch (SQLException e) { e.printStackTrace(); Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java =================================================================== diff -u -r22039 -r22084 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java (.../TousseInstanceAction.java) (revision 22039) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java (.../TousseInstanceAction.java) (revision 22084) @@ -31,6 +31,7 @@ import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Namespace; import org.apache.struts2.convention.annotation.ParentPackage; +import org.apache.struts2.util.StrutsUtil; import org.testng.collections.Lists; import com.forgon.Constants; @@ -82,6 +83,7 @@ import com.forgon.tools.json.JSONUtil; import com.forgon.tools.string.StringTools; import com.forgon.tools.util.ForgonDateUtils; +import com.forgon.tools.util.StrutsUtils; import com.google.common.collect.Maps; import com.google.gson.JsonArray; import com.google.gson.JsonObject; @@ -436,84 +438,18 @@ * * @return */ - public String loadAllTousseInstance() { - try { - String thisDepartName = StrutsParamUtils.getPraramValue("thisDepartName", ""); - String taskGroup = StrutsParamUtils.getPraramValue("taskGroup", ""); - String departCode = AcegiHelper.getLoginUser() - .getCurrentOrgUnitCode(); - - List baskets = reviewedBasketManager.getDepartAllReviewedBasket(departCode); - - logger.debug("加载[" + taskGroup + "]任务组的所有篮筐:"); - logger.debug("共有" + baskets.size() + "个篮筐"); - - JsonArray result = new JsonArray(); - for (ReviewedBasket reviewedBasket : baskets) { - - Map statistics = new HashMap<>(); - statistics.put("器械包", 0); - statistics.put("代理灭菌器械包", 0); - statistics.put("敷料包", 0); - statistics.put("总数", 0); - - List vos = tousseInstanceManager - .getTousseInstanceVOsInReviewedBasket(reviewedBasket, taskGroup, thisDepartName); - - JsonArray tiJsonArray = new JsonArray(); - for (TousseSimpleVO vo : vos) { - JsonObject tiJson = new JsonObject(); - tiJson.addProperty("objName", vo.getItemDefinition().getName()); - tiJson.addProperty("objDepartName", vo.getDepart()); - tiJson.addProperty("objBarcode", vo.getBarcode()); - tiJson.addProperty("type", "TOUSSE_IN"); - tiJson.addProperty("uiProvider", "col"); - tiJson.addProperty("leaf", true); - tiJson.addProperty("iconCls", "task"); - - tiJsonArray.add(tiJson); - countTousse(statistics, vo); - } - - if(tiJsonArray.size() <= 0) - continue; - - Container container = reviewedBasket.getContainer(); - - JsonObject basketJson = new JsonObject(); - basketJson.addProperty("objName", container.getContainerName()); - basketJson.addProperty("objBarcode", container.getBarcode()); - basketJson.addProperty("type", "BASKET"); - basketJson.addProperty("uiProvider", "col"); - basketJson.addProperty("cls", "master-task"); - basketJson.addProperty("iconCls", "task-folder"); - - basketJson.addProperty("statisticsNormal", statistics.get("器械包")); - basketJson.addProperty("statisticsProxy", statistics.get("代理灭菌器械包")); - basketJson.addProperty("statisticsDressing", statistics.get("敷料包")); - basketJson.addProperty("statisticsTotal", statistics.get("总数")); - basketJson.add("children", tiJsonArray); - - result.add(basketJson); - - logger.debug("篮筐:" + container.getContainerName() + ",Id:" - + reviewedBasket.getId() + ",共有" - + vos.size() + "个器械包,灭菌记录数目:" - + reviewedBasket.getSterilizationRecords().size()); - - logger.debug("basketJson:"+basketJson); - } - - HttpServletResponse response = StrutsParamUtils.getResponse(); - response.setCharacterEncoding("UTF-8"); - try(PrintWriter out = response.getWriter()){ - out.print(result.toString()); - } - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } + public String loadAllTousseInstance() { + try { + String thisDepartName = StrutsParamUtils.getPraramValue("thisDepartName", ""); + String taskGroup = StrutsParamUtils.getPraramValue("taskGroup", ""); + String departCode = AcegiHelper.getLoginUser() + .getCurrentOrgUnitCode(); + StrutsResponseUtils.output(tousseInstanceManager.loadAllTousseInstance(thisDepartName,taskGroup)); + }catch(Exception e){ + e.printStackTrace(); + } + return null; + } /** * 是否为固定条码 @@ -713,49 +649,32 @@ * 加载所有已审核且未加入至任何灭菌筐的器械包(按用户所在科室对应供应室处理器械包配置的器械包) */ public void getWaitSterileLoadingTousseInstance(){ - try { - String searchKeyWord = StrutsParamUtils.getPraramValue("searchKeyWordReal", ""); - String start = StrutsParamUtils.getPraramValue("start", ""); - String limit = StrutsParamUtils.getPraramValue("limit", ""); - JSONArray jsonArray = new JSONArray(); - Map sqlCondition = new HashMap(); - List tousses = - tousseInstanceManager.getAllReviewedTousseInstanceWithOutBasket(acegiHelper.getCurrentOrgUnitCode(), null, null , start , limit , searchKeyWord, sqlCondition); - - int count = objectDao.countObjectBySql(TousseInstance.class.getSimpleName(), sqlCondition.get("condition")); - - //将set转换成list,按id降序排序 - List tousseList = new ArrayList(); - tousseList.addAll(tousses); - Collections.sort(tousseList); - - for (TousseInstance tousseInstance : tousseList) { - - JSONObject jsonObject = new JSONObject(); - jsonObject.put("id", tousseInstance.getId()); - jsonObject.put("depart", tousseInstance.getDepart()); - jsonObject.put("tousseName", tousseInstance.getShowTousseName()); - jsonObject.put("objBarcode", tousseInstance.getBarcode()); - jsonObject.put("reviewTime", ForgonDateUtils.safelyFormatDate(tousseInstance.getReviewTime(), Constants.SIMPLEDATEFORMAT_YYYYMMDDHHMM, "")); - jsonArray.add(jsonObject); - } - HttpServletResponse response = StrutsParamUtils.getResponse(); - response.setContentType("text/html;charset=UTF-8"); - PrintWriter out; - try { - JSONObject jsonObject = new JSONObject(); - jsonObject.put("root", jsonArray); - jsonObject.put("totalProperty", count); - out = response.getWriter(); - out.print(jsonObject); - out.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } catch (Exception e) { - e.printStackTrace(); + String searchKeyWord = StrutsParamUtils.getPraramValue("searchKeyWordReal", ""); + String start = StrutsParamUtils.getPraramValue("start", ""); + String limit = StrutsParamUtils.getPraramValue("limit", ""); + JSONArray jsonArray = new JSONArray(); + Map sqlCondition = new HashMap(); + List tousses = + tousseInstanceManager.getAllReviewedTousseInstanceWithOutBasket(acegiHelper.getCurrentOrgUnitCode(), null, null , start , limit , searchKeyWord, sqlCondition); + + int count = objectDao.countObjectBySql(TousseInstance.class.getSimpleName(), sqlCondition.get("condition")); + + //将set转换成list,按id降序排序 + List tousseList = new ArrayList(); + tousseList.addAll(tousses); + Collections.sort(tousseList); + + JSONObject jsonObject = new JSONObject(); + try{ + JSONArray waitSterileLoadingTousseInstance = tousseInstanceManager.getWaitSterileLoadingTousseInstance(tousseList); + jsonObject.put("root",waitSterileLoadingTousseInstance ); + jsonObject.put("totalProperty", count); + }catch(Exception e){ + e.printStackTrace(); } + StrutsResponseUtils.output(jsonObject); } + /** * 加载篮筐内的所有已审核器械包 @@ -816,6 +735,7 @@ ""); String[] tousseBarcodeArray = StringUtils.split(tousseBarcodes, ';'); + String saveBarcode = StrutsParamUtils.getPraramValue("saveBarcode", ""); String[] excludeBarcodes = StringUtils.split(saveBarcode, ';'); @@ -1485,5 +1405,17 @@ StrutsResponseUtils.output(jSONObj); } + /** + * 器械包转换灭菌篮筐,针对固定条码 + */ + public void renderformFixedBarcodeToBasket(){ + String fixedBarcode = StrutsParamUtils.getPraramValue("fixedBarcode", "");//固定条码 + String reviewedBasketId = StrutsParamUtils.getPraramValue("reviewedBasketId", "");//已扫描的篮筐id + String nowBasketId = StrutsParamUtils.getPraramValue("nowBasketId", "");//点击载入的篮筐id + boolean isSuccess = tousseInstanceManager.renderformFixedBarcodeToBasket(fixedBarcode,reviewedBasketId,nowBasketId); + JSONObject jSONObj = JSONUtil.buildJsonObject(isSuccess); + StrutsResponseUtils.output(jSONObj); + } + } \ No newline at end of file