Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/controller/PackingController.java =================================================================== diff -u -r24684 -r24688 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/controller/PackingController.java (.../PackingController.java) (revision 24684) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/controller/PackingController.java (.../PackingController.java) (revision 24688) @@ -21,6 +21,11 @@ import com.forgon.disinfectsystem.barcode.service.BarcodeManager; import com.forgon.disinfectsystem.basedatamanager.sterilisation.service.SterilisationManager; import com.forgon.disinfectsystem.basedatamanager.supplyroomconfig.service.SupplyRoomConfigManager; +import com.forgon.disinfectsystem.entity.assestmanagement.DiposableGoodsInstance; +import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoods; +import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsStock; +import com.forgon.disinfectsystem.entity.basedatamanager.materialdefinition.MaterialDefinition; +import com.forgon.disinfectsystem.entity.basedatamanager.materialinstance.MaterialInstance; import com.forgon.disinfectsystem.entity.basedatamanager.sterilisation.Sterilisation; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; @@ -36,6 +41,7 @@ import com.forgon.log.model.Log; import com.forgon.log.service.LogManager; import com.forgon.security.service.OperationManager; +import com.forgon.tools.db.DatabaseUtil; import com.forgon.tools.hibernate.ObjectDao; import com.forgon.tools.json.JSONUtil; import com.forgon.tools.util.SpringUtils; @@ -263,4 +269,97 @@ appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_PRINT, Log.TYPE_PRINT_TOUSSE, logObj); return obj.toString(); } + @RequestMapping(value="/getMaterialByBarcode") + public String getMaterialByBarcode() { + String barcode = SpringUtils.getPraramValue("barcode", null); + String barcodePaperType = ""; + JSONArray jsonArray = new JSONArray(); + long totalAmount = 0;// 总的数量 + long materialAmount = 0;// 材料数量 + long diposableGoodsAmount = 0;// 一次性物品数量 + if (StringUtils.isNotBlank(barcode)) { + BarcodeDevice bd = barcodeManager.getBarcodeByBarcode(barcode); + if (bd instanceof TousseInstance) { + TousseInstance tousseInstance = (TousseInstance) bd; + TousseDefinition tousseDefinition = tousseInstance + .getTousseDefinition(); + TousseDefinition ancestorTD = null; + if (tousseDefinition != null) { + String type = tousseDefinition.getBarcodePaperType(); + if(tousseDefinition.isDisinfection()){ + Long ancestorId = tousseDefinition.getAncestorID(); + if(DatabaseUtil.isPoIdValid(ancestorId)){ + ancestorTD = tousseDefinitionManager.get(ancestorId); + if(ancestorTD != null){ + type = ancestorTD.getBarcodePaperType(); + } + } + } + barcodePaperType = type; + if (!TousseDefinition.BARCODEPAPER_TYPE_50x30.equals(type)) { + List materials = tousseDefinition + .getMaterialInstances(); + List diposableGoodsItems = tousseDefinition + .getDiposableGoodsItems(); + for (int i = 0; i < materials.size(); i++) { + JSONObject obj = new JSONObject(); + + MaterialInstance materialInstance = materials + .get(i); + + MaterialDefinition md = materialInstance + .getMaterialDefinition(); + + obj.put("typeName", MaterialDefinition.TYPE_NAME); + obj.put("name", md.getName()); + + String specification = md.getSpecification(); + + if (StringUtils.isBlank(specification)) { + specification = ""; + } + obj.put("specification", specification); + obj.put("count", materialInstance.getCount()); + materialAmount += materialInstance.getCount(); + jsonArray.add(obj); + + } + // 计算一次性物品,目前暂不需要 + for (DiposableGoodsInstance diposableGoodsInstance : diposableGoodsItems) { + JSONObject obj = new JSONObject(); + DisposableGoods disposableGoods = diposableGoodsInstance + .getDiposableGoods(); + obj.put("typeName", DisposableGoodsStock.TYPE_NAME); + if (disposableGoods != null) { + if(!disposableGoods.printInLabel()){ + continue; + } + obj.put("name", disposableGoods.getName()); + obj.put("specification", + disposableGoods.getSpecification()); + } else { + obj.put("name", ""); + obj.put("specification", ""); + } + obj.put("count", diposableGoodsInstance.getAmount()); + diposableGoodsAmount += diposableGoodsInstance + .getAmount(); + jsonArray.add(obj); + } + } + } + } + } + totalAmount = materialAmount + diposableGoodsAmount; + String result = jsonArray.toString(); + + JSONObject obj = new JSONObject(); + obj.put("barcodePaperType", barcodePaperType); + obj.put("materialAmount", materialAmount); + obj.put("diposableGoodsAmount", diposableGoodsAmount); + obj.put("totalAmount", totalAmount); + obj.put("result", result); + + return obj.toString(); + } } Index: ssts-web/src/main/webapp/disinfectsystem/common/cssdUtils.js =================================================================== diff -u -r24685 -r24688 --- ssts-web/src/main/webapp/disinfectsystem/common/cssdUtils.js (.../cssdUtils.js) (revision 24685) +++ ssts-web/src/main/webapp/disinfectsystem/common/cssdUtils.js (.../cssdUtils.js) (revision 24688) @@ -103,12 +103,26 @@ // 设置材料 function setMaterialsForPrint(tousseObj,barcode){ var jsonObj = {}; - - DWREngine.setAsync(false); - PackingTableManager.getMaterialByBarcode(barcode,function(result){ - jsonObj = JSON.parse(result); - }); - DWREngine.setAsync(true); + if(haveJquery()){ + $.ajax({ + url:WWWROOT+"/disinfectSystem/packingController/getMaterialByBarcode.mhtml", + type: "post", + cache:false, + async:false, + data:{ + "barcode":barcode + }, + success:function(result){ + jsonObj = result; + } + }); + }else{ + DWREngine.setAsync(false); + PackingTableManager.getMaterialByBarcode(barcode,function(result){ + jsonObj = JSON.parse(result); + }); + DWREngine.setAsync(true); + } setMaterialsByMaterialObjForPrint(tousseObj,jsonObj); return jsonObj; }