Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplier/service/SupplierManagerImpl.java =================================================================== diff -u -r21650 -r22283 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplier/service/SupplierManagerImpl.java (.../SupplierManagerImpl.java) (revision 21650) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplier/service/SupplierManagerImpl.java (.../SupplierManagerImpl.java) (revision 22283) @@ -1,6 +1,7 @@ package com.forgon.disinfectsystem.basedatamanager.supplier.service; import java.util.ArrayList; +import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -239,9 +240,20 @@ List expensiveGoodsSuppliers = objectDao.findBySql(ExpensiveGoodsSupplier.class.getSimpleName(), sql); List> mapList = new ArrayList>(); for (ExpensiveGoodsSupplier expensiveGoodsSupplier : expensiveGoodsSuppliers) { - Map temp = new HashMap(); + Map temp = new HashMap(); temp.put("id", expensiveGoodsSupplier.getId()); - temp.put("name", expensiveGoodsSupplier.getCompanyName()); + temp.put("name", expensiveGoodsSupplier.getCompanyName()); + Date date = null; + temp.put("businessLicense",expensiveGoodsSupplier.getBusinessLicense()); + date = expensiveGoodsSupplier.getLicenseValidityTime(); + if(date != null){ + temp.put("licenseValidityTime",date.toString().substring(0,10)); + } + temp.put("productionCertificate",expensiveGoodsSupplier.getProductionCertificate()); + date = expensiveGoodsSupplier.getProductionValidityTime(); + if(date != null){ + temp.put("productionValidityTime",date.toString().substring(0,10)); + } mapList.add(temp); } return mapList; Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplier/service/RegistrationCertificationManagerImpl.java =================================================================== diff -u -r22257 -r22283 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplier/service/RegistrationCertificationManagerImpl.java (.../RegistrationCertificationManagerImpl.java) (revision 22257) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplier/service/RegistrationCertificationManagerImpl.java (.../RegistrationCertificationManagerImpl.java) (revision 22283) @@ -160,6 +160,7 @@ JSONObject dataJsonObject = new JSONObject(); dataJsonObject.put("id", registrationCertification.getId()); dataJsonObject.put("certification", registrationCertification.getCertification()); + dataJsonObject.put("validityTime", registrationCertification.getValidityTime().toString().substring(0,10)); jsonArray.add(dataJsonObject); } } Index: ssts-web/src/main/webapp/disinfectsystem/assestManagement/expensiveGoods/expensiveGoodsStockView.jsp =================================================================== diff -u -r21840 -r22283 --- ssts-web/src/main/webapp/disinfectsystem/assestManagement/expensiveGoods/expensiveGoodsStockView.jsp (.../expensiveGoodsStockView.jsp) (revision 21840) +++ ssts-web/src/main/webapp/disinfectsystem/assestManagement/expensiveGoods/expensiveGoodsStockView.jsp (.../expensiveGoodsStockView.jsp) (revision 22283) @@ -5,7 +5,7 @@ -一次性物品信息 +高值耗材库存 <%@ include file="/common/includeExtJsAndCss.jsp"%> @@ -44,6 +44,12 @@ + +<%-- 引入ExtJs4.2.5框架 --%> +<%@include file="/common/include_ForgonGrid4.2.5_css.jsp"%> +<%@include file="/common/include_ForgonGrid4.2.5_Js.jsp"%> +<%@include file="/common/include_UseForgonGrid4_Js.jsp"%> + Index: ssts-expensivegoods/src/main/java/com/forgon/disinfectsystem/expensiveGoods/action/ExpensiveGoodsAction.java =================================================================== diff -u -r22257 -r22283 --- ssts-expensivegoods/src/main/java/com/forgon/disinfectsystem/expensiveGoods/action/ExpensiveGoodsAction.java (.../ExpensiveGoodsAction.java) (revision 22257) +++ ssts-expensivegoods/src/main/java/com/forgon/disinfectsystem/expensiveGoods/action/ExpensiveGoodsAction.java (.../ExpensiveGoodsAction.java) (revision 22283) @@ -3,6 +3,7 @@ import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; +import java.util.Date; import java.util.HashSet; import java.util.List; import java.util.Map; @@ -221,7 +222,7 @@ // 保存高值耗材定义 public String saveExpensiveGoods() { - + String supplierName = StrutsParamUtils.getPraramValue("supplierName",""); JSONObject obj = new JSONObject(); obj.put("success", true); try { @@ -231,8 +232,10 @@ if(idLong != null){ id = idLong.toString(); } - boolean vr = expensiveGoodsManager.verifyExpensiveGoods(id, expensiveGoods.getName(), - expensiveGoods.getSpecification()); + if("".equals(supplierName)){ + throw new RuntimeException("生产厂家不能为空!"); + } + boolean vr = expensiveGoodsManager.verifyExpensiveGoods(id, expensiveGoods.getName(),supplierName); if (!vr) { throw new RuntimeException("高值耗材名称不唯一!"); } @@ -309,8 +312,23 @@ if(registrationCertification != null){ expensiveGoodsSupplier = registrationCertification.getExpensiveGoodsSupplier(); if(expensiveGoodsSupplier != null){ + Date date = null; expensiveGoodsObj.put("expensiveGoodsSupplier",expensiveGoodsSupplier.getCompanyName()); + expensiveGoodsObj.put("manufacturerBusinessLicense",expensiveGoodsSupplier.getBusinessLicense()); + date = expensiveGoodsSupplier.getLicenseValidityTime(); + if(date != null){ + expensiveGoodsObj.put("licenseValidityTime",date.toString().substring(0,10)); + } + expensiveGoodsObj.put("manufacturerProductionCertificate",expensiveGoodsSupplier.getProductionCertificate()); + date = expensiveGoodsSupplier.getProductionValidityTime(); + if(date != null){ + expensiveGoodsObj.put("productionValidityTime",date.toString().substring(0,10)); + } expensiveGoodsObj.put("expensiveGoodsSupplierId",expensiveGoodsSupplier.getId()); + date = registrationCertification.getValidityTime(); + if(date != null){ + expensiveGoodsObj.put("registrationCertificationValidityTime", date.toString().substring(0,10)); + } } } @@ -1164,6 +1182,26 @@ StrutsResponseUtils.output(jsonObject); return null; } + /** + * 根据高值耗材id获取其型号库存信息 + */ + public String getExpensiveGoodsModelStock(){ + String id = StrutsParamUtils.getPraramValue("id", ""); //id为高值耗材id + JSONObject jsonObject = new JSONObject(); + try{ + if(!DatabaseUtil.isPoIdValid(id)){ + throw new RuntimeException("id不是有效id值"); + }else{ + jsonObject.put("success", true); + jsonObject.put("data", expensiveGoodsManager.getExpensiveGoodsModelStock(id)); + } + }catch(Exception e){ + jsonObject.put("success",false); + jsonObject.put("data",e.toString()); + } + StrutsResponseUtils.output(jsonObject); + return null; + } } Index: ssts-web/src/main/webapp/disinfectsystem/assestManagement/expensiveGoods/expensiveGoodsView.jsp =================================================================== diff -u -r20772 -r22283 --- ssts-web/src/main/webapp/disinfectsystem/assestManagement/expensiveGoods/expensiveGoodsView.jsp (.../expensiveGoodsView.jsp) (revision 20772) +++ ssts-web/src/main/webapp/disinfectsystem/assestManagement/expensiveGoods/expensiveGoodsView.jsp (.../expensiveGoodsView.jsp) (revision 22283) @@ -1,6 +1,6 @@ <%@ page contentType="text/html; charset=UTF-8"%> <%@ include file="/common/taglibs.jsp"%> -<%@page import="com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoods,com.forgon.Constants"%> +<%@page import="com.forgon.Constants"%> @@ -10,6 +10,13 @@ <%@ include file="/common/includeExtJsAndCss.jsp"%> + + +<%-- 引入ExtJs4.2.5框架 --%> +<%@include file="/common/include_ForgonGrid4.2.5_css.jsp"%> +<%@include file="/common/include_ForgonGrid4.2.5_Js.jsp"%> +<%@include file="/common/include_UseForgonGrid4_Js.jsp"%> + + Index: ssts-expensivegoods/src/main/java/com/forgon/disinfectsystem/expensiveGoods/service/ExpensiveGoodsManagerImpl.java =================================================================== diff -u -r22264 -r22283 --- ssts-expensivegoods/src/main/java/com/forgon/disinfectsystem/expensiveGoods/service/ExpensiveGoodsManagerImpl.java (.../ExpensiveGoodsManagerImpl.java) (revision 22264) +++ ssts-expensivegoods/src/main/java/com/forgon/disinfectsystem/expensiveGoods/service/ExpensiveGoodsManagerImpl.java (.../ExpensiveGoodsManagerImpl.java) (revision 22283) @@ -168,11 +168,6 @@ this.dateQueryAdapter = dateQueryAdapter; } -// public void setExpensiveGoodsAuthorizationManagerTarget( -// ExpensiveGoodsAuthorizationManager expensiveGoodsAuthorizationManagerTarget) { -// this.expensiveGoodsAuthorizationManagerTarget = expensiveGoodsAuthorizationManagerTarget; -// } - public void setExpensiveGoodsSupplierManager( ExpensiveGoodsSupplierManager expensiveGoodsSupplierManager) { this.expensiveGoodsSupplierManager = expensiveGoodsSupplierManager; @@ -670,14 +665,16 @@ @Override public boolean verifyExpensiveGoods(String id, String name, - String specification) { + String supplierName) { String sql = "where po.name = '" + name + "'"; if (StringUtils.isNotEmpty(id)) { sql += " and po.id != " + id; } - sql += String.format(" and %s", SqlUtils.getStringFieldPredicateWithBlankHandling("po.specification", specification)); + sql += " and po.certificationId in ( select id from RegistrationCertification where expensiveGoodsSupplier_id in (select id from ExpensiveGoodsSupplier where companyName = '" + + supplierName + "'))"; +// sql += String.format(" and %s", SqlUtils.getStringFieldPredicateWithBlankHandling("po.specification", specification)); - if (objectDao.getBySql(ExpensiveGoods.class.getSimpleName(), sql) != null) { + if (objectDao.countObjectBySql(ExpensiveGoods.class.getSimpleName(), sql) != 0) { return false; } else { return true; @@ -1675,6 +1672,9 @@ // 修改一次性物品名字/规则 public void updateNameAndSpecification(String oldName, String oldSpecification, String newName, String newSpecification) { + if(true){ //此方法代码待修改 + return ; + } String oldNameAndSpecification = ExpensiveGoodsUtils.getExpensiveGoodsFullName(oldName, oldSpecification); String newNameAndSpecification = ExpensiveGoodsUtils.getExpensiveGoodsFullName(newName, newSpecification); // ExpensiveGoodsStock @@ -2427,79 +2427,103 @@ @Override public JSONArray getSupplyChainInfo(String id,String supplierId) { -// if(!DatabaseUtil.isPoIdValid(id) || !DatabaseUtil.isPoIdValid(supplierId)){ -// return null; -// } -// JSONArray jsonArray = new JSONArray(); -// List list = expensiveGoodsAuthorizationManagerTarget.getExpensiveGoodsAuthorizationsByExpensiveGoodsId(id); -// if(list != null){ -// JSONObject jsonObject = null; -// Iterator it = null; -// Map map = new HashMap(); -// it = list.iterator(); -// -// //找到生产厂家,并把它的授权对象(只有一个)的id值与level值放入map中,供后面使用 -// //同时生成要返回给前端的jsonOjbect -// //把该授权记录从list中移除 -// while(it.hasNext()){ -// ExpensiveGoodsAuthorization expensiveGoodsAuthorization = it.next(); -// if(supplierId.equals(expensiveGoodsAuthorization.getAuthorizerCompanyId().toString())){ -// jsonObject = new JSONObject(); -// jsonObject.put("supplierName",expensiveGoodsAuthorization.getAuthorizedCompanyName()); -// jsonObject.put("authorizerCompany",expensiveGoodsAuthorization.getAuthorizerCompanyName()); -// jsonObject.put("validityTime",expensiveGoodsAuthorization.getValidityTime().toString()); -// jsonObject.put("level", 1); -// map.put(expensiveGoodsAuthorization.getAuthorizedCompanyId(), 1); -// ExpensiveGoodsSupplier expensiveGoodsSupplier = expensiveGoodsSupplierManager.getSupplierById(expensiveGoodsAuthorization.getAuthorizedCompanyId().toString()); -// if(expensiveGoodsSupplier != null){ -// jsonObject.put("businessCertificate",expensiveGoodsSupplier.getBusinessCertificate()); -// jsonObject.put("businessValidityTime",expensiveGoodsSupplier.getBusinessValidityTime().toString()); -// jsonObject.put("businessLicense",expensiveGoodsSupplier.getBusinessLicense()); -// jsonObject.put("licenseValidityTime",expensiveGoodsSupplier.getBusinessValidityTime().toString()); -// } -// it.remove(); -// jsonArray.add(jsonObject); -// break; -// } -// } -// if(map.isEmpty()){ //没有找到生产厂家 -// return null; -// } -// -// -// while(!list.isEmpty()){ -// int startLength = list.size(); -// it = list.iterator(); -// while(it.hasNext()){ -// ExpensiveGoodsAuthorization expensiveGoodsAuthorization = it.next(); -// Long key = expensiveGoodsAuthorization.getAuthorizerCompanyId(); -// if(map.containsKey(key)){ //找到了自己的授权方 -// jsonObject = new JSONObject(); -// jsonObject.put("supplierName",expensiveGoodsAuthorization.getAuthorizedCompanyName()); -// jsonObject.put("authorizerCompany",expensiveGoodsAuthorization.getAuthorizerCompanyName()); -// jsonObject.put("validityTime",expensiveGoodsAuthorization.getValidityTime().toString()); -// Integer value = map.get(key); -// jsonObject.put("level", value+1); -// map.put(expensiveGoodsAuthorization.getAuthorizedCompanyId(), value+1); -// ExpensiveGoodsSupplier expensiveGoodsSupplier = expensiveGoodsSupplierManager.getSupplierById(expensiveGoodsAuthorization.getAuthorizedCompanyId().toString()); -// if(expensiveGoodsSupplier != null){ -// jsonObject.put("businessCertificate",expensiveGoodsSupplier.getBusinessCertificate()); -// jsonObject.put("businessValidityTime",expensiveGoodsSupplier.getBusinessValidityTime().toString()); -// jsonObject.put("businessLicense",expensiveGoodsSupplier.getBusinessLicense()); -// jsonObject.put("licenseValidityTime",expensiveGoodsSupplier.getBusinessValidityTime().toString()); -// } -// it.remove(); -// jsonArray.add(jsonObject); -// } -// } -// int endLength = list.size(); -// if(startLength == endLength){ -// break; -// } -// } -// } -// return jsonArray; - return null; + if(!DatabaseUtil.isPoIdValid(id) || !DatabaseUtil.isPoIdValid(supplierId)){ + return null; + } + JSONArray jsonArray = new JSONArray(); + List list = objectDao.findByProperty(ExpensiveGoodsAuthorization.class.getSimpleName(), "expensiveGoodsId", id); + if(list != null){ + JSONObject jsonObject = null; + Iterator it = null; + Map map = new HashMap(); + it = list.iterator(); + + //找到生产厂家,并把它的授权对象的id值与level值放入map中,供后面使用 + //同时生成要返回给前端的jsonOjbect + //把该授权记录从list中移除 + while(it.hasNext()){ + ExpensiveGoodsAuthorization expensiveGoodsAuthorization = it.next(); + if(supplierId.equals(expensiveGoodsAuthorization.getAuthorizerCompanyId().toString())){ + jsonObject = new JSONObject(); + jsonObject.put("supplierName",expensiveGoodsAuthorization.getAuthorizedCompanyName()); + jsonObject.put("authorizerCompany",expensiveGoodsAuthorization.getAuthorizerCompanyName()); + jsonObject.put("validityTime",expensiveGoodsAuthorization.getValidityTime().toString()); + jsonObject.put("level", 1); + map.put(expensiveGoodsAuthorization.getAuthorizedCompanyId(), 1); + ExpensiveGoodsSupplier expensiveGoodsSupplier = expensiveGoodsSupplierManager.getSupplierById(expensiveGoodsAuthorization.getAuthorizedCompanyId().toString()); + if(expensiveGoodsSupplier != null){ + jsonObject.put("businessCertificate",expensiveGoodsSupplier.getBusinessCertificate()); + jsonObject.put("businessValidityTime",expensiveGoodsSupplier.getBusinessValidityTime().toString()); + jsonObject.put("businessLicense",expensiveGoodsSupplier.getBusinessLicense()); + jsonObject.put("licenseValidityTime",expensiveGoodsSupplier.getBusinessValidityTime().toString()); + } + it.remove(); + jsonArray.add(jsonObject); + } + } + if(map.isEmpty()){ //没有找到生产厂家 + return null; + } + + + while(!list.isEmpty()){ + boolean hasRemoved = false; + it = list.iterator(); + while(it.hasNext()){ + ExpensiveGoodsAuthorization expensiveGoodsAuthorization = it.next(); + Long key = expensiveGoodsAuthorization.getAuthorizerCompanyId(); + if(map.containsKey(key)){ //找到了自己的授权方 + jsonObject = new JSONObject(); + jsonObject.put("supplierName",expensiveGoodsAuthorization.getAuthorizedCompanyName()); + jsonObject.put("authorizerCompany",expensiveGoodsAuthorization.getAuthorizerCompanyName()); + jsonObject.put("validityTime",expensiveGoodsAuthorization.getValidityTime().toString()); + Integer value = map.get(key); + jsonObject.put("level", value+1); + map.put(expensiveGoodsAuthorization.getAuthorizedCompanyId(), value+1); + ExpensiveGoodsSupplier expensiveGoodsSupplier = expensiveGoodsSupplierManager.getSupplierById(expensiveGoodsAuthorization.getAuthorizedCompanyId().toString()); + if(expensiveGoodsSupplier != null){ + jsonObject.put("businessCertificate",expensiveGoodsSupplier.getBusinessCertificate()); + jsonObject.put("businessValidityTime",expensiveGoodsSupplier.getBusinessValidityTime().toString()); + jsonObject.put("businessLicense",expensiveGoodsSupplier.getBusinessLicense()); + jsonObject.put("licenseValidityTime",expensiveGoodsSupplier.getBusinessValidityTime().toString()); + } + it.remove(); + hasRemoved = true; + jsonArray.add(jsonObject); + } + } + if(hasRemoved){ //供应链中断 + break; + } + } + } + return jsonArray; } + @Override + public JSONArray getExpensiveGoodsModelStock(String id) { + // TODO Auto-generated method stub + if(!DatabaseUtil.isPoIdValid(id)){ + return null; + } + JSONArray jsonArray = new JSONArray(); + String sql = String.format("where po.expensiveGoods.id = %s ", id); + List list = objectDao.findBySql(ExpensiveGoodsModelStock.class.getSimpleName(), sql); + if(list.isEmpty()){ + return null; + } + Iterator it = list.iterator(); + JSONObject jsonObject = null; + while(it.hasNext()){ + jsonObject = new JSONObject(); + ExpensiveGoodsModelStock expensiveGoodsModelStock = it.next(); + jsonObject.put("model", expensiveGoodsModelStock.getExpensiveGoodsModel().getModel()); + jsonObject.put("surfaceStatus", expensiveGoodsModelStock.getExpensiveGoodsModel().getSurfaceStatus()); + jsonObject.put("description", expensiveGoodsModelStock.getExpensiveGoodsModel().getDescription()); + jsonObject.put("storage", expensiveGoodsModelStock .getStorage()); + jsonArray.add(jsonObject); + } + return jsonArray; + } + } Index: ssts-web/src/main/webapp/disinfectsystem/assestManagement/expensiveGoods/expensiveGoodsView.js =================================================================== diff -u -r22141 -r22283 --- ssts-web/src/main/webapp/disinfectsystem/assestManagement/expensiveGoods/expensiveGoodsView.js (.../expensiveGoodsView.js) (revision 22141) +++ ssts-web/src/main/webapp/disinfectsystem/assestManagement/expensiveGoods/expensiveGoodsView.js (.../expensiveGoodsView.js) (revision 22283) @@ -3,829 +3,7 @@ var root; var formObj; var formWindow; -var autoFillExternalCodeOfDisposableGoods = false; -var SUPPLIER_TYPE_SUPPLIER = '生产厂家'; -var supplierStore = null; -var selectedRow = null; -var registrationCertificationBatchNumStore = null; -var batchRecord = null; -var expensiveGoodsModelStoreRecord = null; -var selCertification = null; -var expensiveGoodsModelColumnModel = null; - -//高值耗材型号store -var expensiveGoodsModelStore = new top.Ext.data.Store({ - reader : new Ext.data.JsonReader({ - fields : [ - {name : 'id'}, - {name : 'expensiveGoodsModel'}, - {name : 'expensiveGoodsModelDescription'}, - {name : 'expensiveGoodsModelSurfaceStatus'} - ] - }) -}); - - - -//根据厂家id来查询对应的注册证号,并填入 -function fillCertificationsByExpensiveGoodsSupplierId(expensiveGoodsSupplierId){ - if(isUndefinedOrNullOrEmpty(expensiveGoodsSupplierId)) - return false; - registrationCertificationBatchNumStore.removeAll(); - ExpensiveGoodsTableManager.getCertificationsByExpensiveGoodsSupplierId(expensiveGoodsSupplierId, - function(batchesStr){ - var batches = top.Ext4.JSON.decode(batchesStr); - if(batches.length > 0){ - setBatchNumbers(batches,true); - } - }); -} - -//填写高值耗材型号 -function fillExpensiveGoodsModelGrid(expensiveGoodsModelList){ - if(isUndefinedOrNullOrEmpty(expensiveGoodsModelList)) - return false; - expensiveGoodsModelStore.removeAll(); - for(var i = 0;i 800 ? 420 : 420, - modal : true, - // autoHeight : true, - border : false, - plain : true, - items : [ formObj ] - }); - formWindow.show(); - diposableGooodsStore.load(); - // 如果类型不为空,并且配置为自动增加外部编码,那么获取下一个编码,并且填上 - if(!isUndefinedOrNullOrEmpty(dType) && - autoFillExternalCodeOfDisposableGoods){ - ExpensiveGoodsTableManager.getNextExternalCodeOfDisposableGoods(dType,function(externalCode){ - if(!isUndefinedOrNullOrEmpty(externalCode)){ - top.Ext.getCmp("externalCode").setValue(externalCode); - } - }); - } -} - -function onSelCertification(){ - if(selCertification == null){ - return; - } - top.Ext.getCmp('certificationId').setValue(selCertification.id); - top.Ext.getCmp('certification').setValue(selCertification.certification); -} -function setBatchNumbers(batches,fireSelect) { - for(var i = 0;imax){ - showResult('最小库存不能大于最大库存'); - top.Ext.getCmp('minStorage').focus(); - return false; - } - if(minApply > maxApply){ - showResult('最小申请数不能大于最大申请数'); - top.Ext.getCmp('minApplyAmount').focus(); - return false; - } - } - - this.disable(); - validateAndSubmit(); -} - function printBatchNum(barcodeStr){ if(barcodeStr!=null && barcodeStr.length > 0){ Ext.Msg.show({ @@ -1024,6 +79,7 @@ }); } } + function onStorageRecordDetail(grid){ var records = grid.getSelectionModel().getSelections(); if(records.length == 0){ @@ -1116,24 +172,9 @@ showResult("一次只能修改一个高值耗材!"); return false; } - id = records[0].data['id']; - addExpensiveGoods(id); - top.Ext.getCmp('expensiveGoodsForm').form.load({ - url : WWWROOT + '/disinfectSystem/expensiveGoodsAction!loadExpensiveGoods.do', - method : 'GET', - waitMsg : '正在加载数据,请稍候', - params : {id : id}, - success : function(form, action) { - var expensiveGoods = action.result.data; - top.Ext.getCmp("orginalName").setValue(expensiveGoods.name); - top.Ext.getCmp("orginalSpecification").setValue(expensiveGoods.specification); - var expensiveGoodsSupplierId = top.Ext.getCmp("expensiveGoodsSupplierId").getValue(); - fillCertificationsByExpensiveGoodsSupplierId(expensiveGoodsSupplierId); - fillExpensiveGoodsModelGrid(expensiveGoods.expensiveGoodsModelLists); - }, - failure : function(form, action) { - } - }); + var expensiveGoodsId = records[0].data['id']; + var supplierId = records[0].data['expensiveGoodsSupplierId']; + onLoadExpensiveGoodsDefinitionWindow(expensiveGoodsId,supplierId); }; function reloadGrid(type){ @@ -1157,34 +198,34 @@ } //hrp高值耗材信息 -function getHrpDiposableGood(){ - var inventorySerialNumber = top.Ext.getCmp('inventorySerialNumber').getValue(); - if(!inventorySerialNumber){ - showResult("请填写物资编码"); - return false; - } - Ext.Ajax.request({ - url : WWWROOT + '/disinfectSystem/expensiveGoodsAction!getHrpDefinition.do', - params : {inventorySerialNumber : inventorySerialNumber}, - success : function(response, options){ - var obj = Ext.util.JSON.decode(response.responseText); - if(obj.success){ - var data = obj.data; - if (data) { - top.Ext.getCmp("hrpName").setValue(data.name); - top.Ext.getCmp("hrpSpecification").setValue(data.specification); - top.Ext.getCmp("hrpUnit").setValue(data.unit); - top.Ext.getCmp("hrpCost").setValue(data.cost); - top.Ext.getCmp("hrpContrastDefinition").show(); - } else { - showResult("没有该物资编码对应的hrp高值耗材信息"); - } - }else{ - showResult("后台异常,请联系系统管理!"); - } - } - }) -} +//function getHrpDiposableGood(){ +// var inventorySerialNumber = top.Ext.getCmp('inventorySerialNumber').getValue(); +// if(!inventorySerialNumber){ +// showResult("请填写物资编码"); +// return false; +// } +// Ext.Ajax.request({ +// url : WWWROOT + '/disinfectSystem/expensiveGoodsAction!getHrpDefinition.do', +// params : {inventorySerialNumber : inventorySerialNumber}, +// success : function(response, options){ +// var obj = Ext.util.JSON.decode(response.responseText); +// if(obj.success){ +// var data = obj.data; +// if (data) { +// top.Ext.getCmp("hrpName").setValue(data.name); +// top.Ext.getCmp("hrpSpecification").setValue(data.specification); +// top.Ext.getCmp("hrpUnit").setValue(data.unit); +// top.Ext.getCmp("hrpCost").setValue(data.cost); +// top.Ext.getCmp("hrpContrastDefinition").show(); +// } else { +// showResult("没有该物资编码对应的hrp高值耗材信息"); +// } +// }else{ +// showResult("后台异常,请联系系统管理!"); +// } +// } +// }) +//} Ext.onReady(function() { Ext.QuickTips.init(); @@ -1205,24 +246,30 @@ //********* 2、ForgonGrid *********** var columns = [ - {header : "编码",width : 60,dataIndex : 'externalCode'}, - {header : "名称",width : 150,dataIndex : 'name', renderer : rendeColor}, - {header : "规格",width : 100,dataIndex : 'specification'}, + {header : "名称",width : 150,dataIndex : 'name', renderer : rendeColor}, + {header : "单位",width : 50,dataIndex : 'unit'}, + {header : "注册证",width : 100,dataIndex : 'certification'}, +// {header : "规格",width : 100,dataIndex : 'specification'}, {header : "类别",width : 80,dataIndex : 'grade'}, - {header : "包装规格",width : 80,dataIndex : 'packageSpec'}, + {header : "类型",width : 80,dataIndex : 'type'}, +// {header : "包装规格",width : 80,dataIndex : 'packageSpec'}, {header : "参考价",width : 60,dataIndex : 'referencePrice'}, - {header : "总数",width : 50,dataIndex : 'amount'}, - {header : "最小申请数量",width : 80,dataIndex : 'minApplyAmount'}, + {header : "是否植入物",width : 80,dataIndex : 'isImplant'}, + {header : "收费码",width : 60,dataIndex : 'chargeCode'}, + {header : "平台代码",width : 60,dataIndex : 'platformCode'}, + {header : "物资编码",width : 60,dataIndex : 'inventorySerialNumber'}, +// {header : "总数",width : 50,dataIndex : 'amount'}, + {header : "最大库存",width : 60,dataIndex : 'maxStorage'}, + {header : "最小库存",width : 60,dataIndex : 'minStorage'}, {header : "最大申请数量",width : 80,dataIndex : 'maxApplyAmount'}, - {header : "单位",width : 50,dataIndex : 'unit'}, - {header : "注册证",width : 100,dataIndex : 'certification'}, + {header : "最小申请数量",width : 80,dataIndex : 'minApplyAmount'}, {header : "拼音码",width : 90,dataIndex : 'spelling'}, {header : "五笔码",width : 90,dataIndex : 'wbCode'}, - {header : "能否作为器械包材料",width : 120,dataIndex : 'isPartOfTousseMaterial'}, - {header : "能否被科室申请",width : 100,dataIndex : 'isApplicationMaterial'}, - {header : "是否消毒供应中心领用物品",width : 100,dataIndex : 'isSupplyRoomGoods'}, - {header : "最小库存",width : 60,dataIndex : 'minStorage'}, - {id : 'operationRemark',header : "最大库存",width : 60,dataIndex : 'maxStorage'} +// {header : "能否作为器械包材料",width : 120,dataIndex : 'isPartOfTousseMaterial'}, +// {header : "能否被科室申请",width : 100,dataIndex : 'isApplicationMaterial'}, +// {header : "是否消毒供应中心领用物品",width : 100,dataIndex : 'isSupplyRoomGoods'}, + {id : 'autoExpandColumnId',header : "外部编码",width : 60,dataIndex : 'externalCode'} +// {id : 'operationRemark',header : "最大库存",width : 60,dataIndex : 'maxStorage'} ]; @@ -1232,8 +279,13 @@ {name : 'externalCode'}, {name : 'specification'}, {name : 'grade'}, - {name : 'packageSpec'}, - {name : 'amount'}, + {name : 'type'}, +// {name : 'packageSpec'}, +// {name : 'amount'}, + {name : 'isImplant'}, + {name : 'chargeCode'}, + {name : 'platformCode'}, + {name : 'inventorySerialNumber'}, {name : 'minApplyAmount'}, {name : 'maxApplyAmount'}, {name : 'unit'}, @@ -1273,7 +325,7 @@ // hidden : SSTS_ExpensiveGoods_Create, iconCls : 'btn_ext_application_add', handler : function() { - addExpensiveGoods(0); + onLoadExpensiveGoodsDefinitionWindow(0); } }, '-', { text : '修改', @@ -1297,7 +349,7 @@ handler : function(){ onStorageRecordDetail(grid); } - }, '-' , { + },'-', { text : '打印高值耗材', hidden: true, iconCls : 'icon_print', @@ -1310,15 +362,15 @@ grid = new Ext.ux.ForgonPageGrid( { tbar : tbar, pageSize : 20, - defaultSortField : 'externalCode', + defaultSortField : 'id', title : '高值耗材列表', - defaultSortDirection : 'ASC', + defaultSortDirection : 'DESC', isCheckboxSelectionModel : true, rememberSelected : false, isShowSearchField : true, plugins: filters, columns : columns, - autoExpandColumn : 'operationRemark', + autoExpandColumn : 'autoExpandColumnId', renderTo : 'gridDiv', frame : false }, readerDetail, Index: ssts-web/src/main/webapp/disinfectsystem/assestManagement/expensiveGoods/expensiveGoodsDefinition.js =================================================================== diff -u --- ssts-web/src/main/webapp/disinfectsystem/assestManagement/expensiveGoods/expensiveGoodsDefinition.js (revision 0) +++ ssts-web/src/main/webapp/disinfectsystem/assestManagement/expensiveGoods/expensiveGoodsDefinition.js (revision 22283) @@ -0,0 +1,826 @@ +var windowObj = null; +var formObj = null; +var expensiveGoodsModelGridObj = null; +var expensiveGoodsSupplierGridObj = null; +var SUPPLIER_TYPE_SUPPLIER = '生产厂家'; +var hiddenResetButton = true; +var oldSelectSupplierId = null; +var newSelectSupplierId = null; + +function checkDate(v){ + var date = new Date(); + var currentDate = ""; + currentDate = date.getFullYear()+"-"; + currentDate += (date.getMonth()+1)+"-"; + currentDate += date.getDate(); + var color = ''; + if(!compareDate(myDateFormat(v),currentDate)){ + color = "#FF7575"; + } + if("" != v){ + return "

" + myDateFormat(v) + "

"; + }else{ + return ''; + } +} +function compareDate(DateOne,DateTwo) { + var OneMonth = DateOne.substring(5,DateOne.lastIndexOf ("-")); + var OneDay = DateOne.substring(DateOne.length,DateOne.lastIndexOf ("-")+1); + var OneYear = DateOne.substring(0,DateOne.indexOf ("-")); + var TwoMonth = DateTwo.substring(5,DateTwo.lastIndexOf ("-")); + var TwoDay = DateTwo.substring(DateTwo.length,DateTwo.lastIndexOf ("-")+1); + var TwoYear = DateTwo.substring(0,DateTwo.indexOf ("-")); + if (Date.parse(OneMonth+"/"+OneDay+"/"+OneYear) >= Date.parse(TwoMonth+"/"+TwoDay+"/"+TwoYear)) { + return true;//dataone>datetwo + } else { + return false; + } +} + +//新添加一个型号 +var newRow = function(){ + var n = expensiveGoodsModelStore.getCount();// 获得总行数 + expensiveGoodsModelStore.add({'model':'','description':'','surfaceStatus':''}); + expensiveGoodsModelGridObj.getPlugin('firstCellEditor').startEditByPosition({ + row : n, + column : 0 + }); +} + +//通过生产厂家id来查询注册证store +var loadCertificationStoreByExpensiveGoodsSupplierId = function(id){ + if(isUndefinedOrNullOrEmpty(id)){ + return ; + } + registrationCertificationStore.load({ + params: { + id: id + }, + callback : function(){ + if(oldSelectSupplierId != newSelectSupplierId){ + if(registrationCertificationStore.count() == 1){ + top.Ext4.getCmp("certification").setValue(registrationCertificationStore.first().data.certification); + top.Ext4.getCmp("registrationCertificationValidityTime").setValue(registrationCertificationStore.first().data.validityTime); + }else{ + top.Ext4.getCmp("certification").setValue(''); + top.Ext4.getCmp("registrationCertificationValidityTime").setValue(''); + } + } + } + }); +} + +//通过后台查询的数据,填充型号store +var fillexpensiveGoodsModelGridStore = function(expensiveGoodsModelList){ + if(isUndefinedOrNullOrEmpty(expensiveGoodsModelList)) + return false; + expensiveGoodsModelStore.removeAll(); + for(var i = 0;imax){ + showResult('最小库存不能大于最大库存'); + top.Ext4.getCmp('minStorage').focus(); + return false; + } + if(minApply > maxApply){ + showResult('最小申请数不能大于最大申请数'); + top.Ext4.getCmp('minApplyAmount').focus(); + return false; + } + } + + var hasEmptyModel = false; + expensiveGoodsModelStore.each(function(record){ + if(record.data.model == ''){ + hasEmptyModel = true; + return false; + } + }); + if(hasEmptyModel){ + showResult("高值耗材型号规格不能为空!"); + return false; + } + + var orginalName = top.Ext4.getCmp("orginalName").getValue(); + var name = top.Ext4.getCmp("name").getValue(); + var msg = ''; + var id = top.Ext4.getCmp('id').getValue(); + + if(!isUndefinedOrNullOrEmpty(id)){ + if(!stringLooksEquals(orginalName,name)){ + msg = "是否确定修改高值耗材名称?" + } + } + if(msg == ''){ + return true; + } + top.Ext4.MessageBox.confirm("请确认",msg, + function(button, text) { + if ("yes" == button){ + return true; + }else{ + return false; + } + }); +} + +//保存 +var save = function(){ + if(!validateForm()){ + return false; + } + + var modelArray=new Array(); + expensiveGoodsModelStore.each(function(record) { + modelArray.push(record.data); + }); + + formObj.submit({ + url : WWWROOT + '/disinfectSystem/expensiveGoodsAction!saveExpensiveGoods.do', + method : 'post', + params : { expensiveGoodsModelLists:top.Ext4.JSON.encode(modelArray), + supplierName:top.Ext4.getCmp('expensiveGoodsSupplier').getRawValue()}, + success: function(form, action) { + var result = Ext4.decode(action.response.responseText); + if(isUndefinedOrNullOrEmpty(result.errorMessage)){ + showResult('保存成功'); + windowObj.close(); + grid.dwrReload(); + }else{ + showResult('保存出错, ' + result.errorMessage); + } + }, + failure : function(form, action) { + showResult('保存出错'); + } + }); +} + +//生产厂家的store +var manufacturerStore = Ext4.create('Ext4.data.Store',{ + autoLoad : true, + pageSize : 20, + fields : [{name : 'name'}, + {name : 'id'}, + {name : 'productionCertificate'}, + {name : 'productionValidityTime'}, + {name : 'businessLicense'}, + {name : 'licenseValidityTime'}], + proxy : { + type : 'ajax', + url : WWWROOT + '/disinfectSystem/baseData/supplierAction!getExpensiveGoodsSupplierData.do?supplierType='+encodeURI(SUPPLIER_TYPE_SUPPLIER), + reader : { + type : 'json', + root : 'data' + } + } +}); + +//供应商的Store +var supplierStore = Ext4.create('Ext4.data.Store',{ + fields :[ + {name : 'supplierName'}, + {name : 'businessCertificate'}, + {name : 'businessValidityTime'}, + {name : 'businessLicense'}, + {name : 'licenseValidityTime'}, + {name : 'authorizerCompany'}, + {name : 'validityTime'}, + {name : 'level'}], + proxy : { + type : 'ajax', + url : WWWROOT + '/disinfectSystem/expensiveGoodsAction!getSupplyChain.do', + reader : { + type : 'json', + root : 'data' + } + } +}); + +//注册证的store +Ext4.define('registrationCertificationModel',{ + extend : 'Ext4.data.Model', + fields : [{ name : 'id'}, + {name : 'certification', type : 'string'}, + {name : 'validityTime', type : 'string'}] +}); +var registrationCertificationStore = Ext4.create('Ext4.data.Store',{ +// pageSize : 5, + model : 'registrationCertificationModel', + proxy : { + type : 'ajax', + url : WWWROOT + '/disinfectSystem/expensiveGoodsAction!getCertificationsByExpensiveGoodsSupplierId.do', + reader : { + type : 'json', + root : 'data' + } + } +}); + +//高值耗材型号store +var expensiveGoodsModelStore = Ext4.create('Ext4.data.Store',{ + fields : [{name : 'id'},{name : 'model'},{name : 'description'},{name : 'surfaceStatus'}] +}); +var expensiveGoodsTypeStore = Ext4.create('Ext4.data.Store',{ + fields : [{name : 'typeName'}], + proxy : { + type : 'ajax', + url : WWWROOT + '/disinfectSystem/expensiveGoodsAction!getExpensiveGoodsType.do', + reader : { + type : 'array' + } + } +}); + +var canOrNoStore = Ext4.create('Ext4.data.Store',{ + fields : [{name : 'value'}], + data : [{value : CONSTANT_CAN}, + {value : CONSTANT_NO}] +}); + +var yesOrNoStore = Ext4.create('Ext4.data.Store',{ + fields : [{name : 'value'}], + data : [{value : CONSTANT_YES}, + {value : CONSTANT_NO}] +}); + +//隐藏项 +var hiddenItems =[ + { + xtype : 'hidden', + name : 'id', + id : 'id' + },{ + xtype : 'hidden', + name : 'certificationId', + id : 'certificationId' + },{ + xtype : 'hidden', + name : 'orginalName', + id : 'orginalName' + },{ + xtype : 'hidden', + name : 'expensiveGoodsSupplierId', + id : 'expensiveGoodsSupplierId' + } +]; + +var columnOfName = { + fieldLabel : '名称', + id : 'name', + name : 'name', + allowBlank : false, + listeners:{ + change:function(field,nV,oV){ + var value = nV.trim(); + field.setValue(value); + } + } +}; +//第一列的选项 +var column1Items = [{ + fieldLabel : '拼音码', + id : 'spelling', + name : 'spelling', +// anchor : '95%', + fieldCls : 'fieldReadOnlyNoRemoveAndTop', + readOnly : true + },{ + xtype : 'numberfield', + fieldLabel : '参考价', + maxLength : '16', + id : 'referencePrice', + name : 'referencePrice', + hideTrigger : true, + allowBlank : false, + minValue: 0 + }, { + xtype : 'combo', + fieldLabel : "类型", + valueField : 'typeName', + displayField : 'typeName', + store : expensiveGoodsTypeStore, + editable : false, + triggerAction : 'all', + queryMode : 'local', + lastQuery: '', + name : "type", + id : "type" + },{ + xtype : 'combo', + fieldLabel : "类别", + valueField : 'name', + displayField : 'name', + store : new Ext4.data.Store({ + data:[{name : '一类'},{name : '二类'},{name : '三类'}], + fields:[{name : 'name'}] + }), + value : '一类', + forceSelection : true, + editable : false, + triggerAction : 'all', + name : "grade", + id : "grade" + },{ + xtype : 'combo', + fieldLabel : '能否申请', + valueField : 'value', + displayField : 'value', + value: CONSTANT_CAN, + store : canOrNoStore, + forceSelection : true, + editable : false, + allowBlank : false, + triggerAction : 'all', + name : "isApplicationMaterial", + id : "isApplicationMaterial" + },{ + xtype : 'numberfield', + fieldLabel : '最小库存', + allowDecimals : false, + maxLength : '16', + id : 'minStorage', + name : 'minStorage', + minValue: 0 + }, { + xtype : 'numberfield', + fieldLabel : '最大库存', + allowDecimals : false, + maxLength : '16', + id : 'maxStorage', + name : 'maxStorage', + minValue: 0 + },{ +// xtype : 'numberfield', +// fieldLabel : '总数', +// maxLength : '16', +// id : 'amount', +// name : 'amount', +// allowBlank : true, +// minValue: 0 +// },{ + xtype : 'numberfield', + fieldLabel : '顺序号', + maxLength : '16', + id : 'sequence', + name : 'sequence', + allowDecimals : false + },{ + fieldLabel : '单位', + maxLength : '16', + id : 'unit', + name : 'unit' + },{ + xtype : 'combo', + id : 'expensiveGoodsSupplier', + name : 'expensiveGoodsSupplier', + fieldLabel : '厂家', + queryParam : 'supplierName', + minChars : 0, + valueField : 'id', + displayField : 'name', + // pageSize : 5, + store : manufacturerStore, + lazyInit : true, + triggerAction : 'all', + hideTrigger : true, + allowBlank : false, + listeners : { + select : function(combo, record, index) { + oldSelectSupplierId = newSelectSupplierId; + newSelectSupplierId = record[0].data.id; + loadCertificationStoreByExpensiveGoodsSupplierId(record[0].data.id+''); + top.Ext4.getCmp('manufacturerBusinessLicense').setValue(record[0].data.businessLicense); + top.Ext4.getCmp('manufacturerProductionCertificate').setValue(record[0].data.productionCertificate); + top.Ext4.getCmp('licenseValidityTime').setValue(record[0].data.licenseValidityTime); + top.Ext4.getCmp('productionValidityTime').setValue(record[0].data.productionValidityTime); + + } + } + } + ]; + +//第二列的选项 +var column2Items = [{ + fieldLabel : '五笔码', + id : 'wbCode', + name : 'wbCode', + fieldCls : 'fieldReadOnlyNoRemoveAndTop', + readOnly : true + }, { + fieldLabel : '收费码', + maxLength : '16', + id : 'chargeCode', + name : 'chargeCode' + },{ + fieldLabel : '平台代码', + maxLength : '16', + id : 'platformCode', + name : 'platformCode' + }, { + fieldLabel : '外部编码', + maxLength : '16', + id : 'externalCode', + name : 'externalCode' + },{ + xtype : 'numberfield', + fieldLabel : '最小申请数量', + maxLength : '16', + id : 'minApplyAmount', + name : 'minApplyAmount', + minValue: 0 + }, { + xtype : 'numberfield', + fieldLabel : '最大申请数量', + maxLength : '16', + id : 'maxApplyAmount', + name : 'maxApplyAmount', + minValue: 0 + },{ + xtype : 'combo', + fieldLabel : '是否盘点', + id : 'isInventoryGoods', + name : 'isInventoryGoods', + valueField : 'value', + displayField : 'value', + value : CONSTANT_YES, + store : yesOrNoStore, + forceSelection : true, + editable : false, + triggerAction : 'all' + },{ + xtype : 'combo', + fieldLabel : '是否植入物', + valueField : 'value', + displayField : 'value', + value: CONSTANT_NO, + store : yesOrNoStore, + forceSelection : true, + allowBlank : false, + triggerAction : 'all', + name : "isImplant", + id : "isImplant" + },{ +// hidden: !sstsConfig.expensiveGoodsInventorySerialNumber, + xtype : 'numberfield', + fieldLabel : '物资编码', + maxLength : '16', + id : 'inventorySerialNumber', + name : 'inventorySerialNumber', + minValue: 0 + } + ]; + +var manufacturerColumn1Items = [{ + xtype : 'combo', + id : 'certification', + name : 'certification', + fieldLabel : '注册证', + valueField : 'certification', + displayField : 'certification', + queryMode : 'local', + store : registrationCertificationStore, + editable : false, + triggerAction: 'all', + lastQuery: '', + allowBlank : false, + listeners : { + select : function(combo, records, index) { + top.Ext4.getCmp('certificationId').setValue(records[0].data.id); + top.Ext4.getCmp('registrationCertificationValidityTime').setValue(records[0].data.validityTime); + } + } + },{ + id : 'manufacturerBusinessLicense', + name : 'manufacturerBusinessLicense', + fieldLabel : '营业执照', + fieldCls : 'fieldReadOnlyNoRemoveAndTop', + readOnly : true + },{ + id : 'manufacturerProductionCertificate', + name : 'manufacturerProductionCertificate', + fieldLabel : '生产许可证', + fieldCls : 'fieldReadOnlyNoRemoveAndTop', + readOnly : true + }]; + +var manufacturerColumn2Items = [{ + fieldLabel : '注册证有效期', + id : 'registrationCertificationValidityTime', + name : 'registrationCertificationValidityTime' + },{ + fieldLabel : '营业执照有效期', + id : 'licenseValidityTime', + name : 'licenseValidityTime' + },{ + fieldLabel : '生产许可证有效期', + id : 'productionValidityTime', + name : 'productionValidityTime' + }]; + + +//加载高值耗材定义界面(根据selectedId来判断是新建还是修改) +var onLoadExpensiveGoodsDefinitionWindow = function(selectedId,supplierId){ + + if(isUndefinedOrNullOrEmpty(selectedId)){ + selectedId = 0; + } + + //型号列表 + expensiveGoodsModelGridObj = Ext4.create('top.Ext4.grid.Panel',{ +// id : 'expensiveGoodsModelGrid', + plugins: { + ptype: 'cellediting', + pluginId : 'firstCellEditor', + clicksToEdit: 2 + }, + selType: 'rowmodel', + store: expensiveGoodsModelStore, + listeners : { + validateedit : function(editor,context){ + var valid = true; + if(context.colIdx != 0) //只对第一列进行校验 + return true; + if(context.value == context.originalValue) //值没有改变,不进行校验 + return false; + var judge = []; + expensiveGoodsModelStore.each(function(record){ + var indexOfStore = expensiveGoodsModelStore.indexOf(record); + judge.push(record.data.model); + if(judge.contains(context.value)){ + showResult('已包含相同型号:'+ context.value +',不可重复添加!\n'+'当前编辑行(第'+(context.rowIdx+1)+'行)与第'+(indexOfStore+1)+'行冲突!'); + valid = false; + return false; + } + }); + if(!valid){ + return false; //有重复值,返回false + } + } + }, + columns: [ + { text: '型号规格', dataIndex: 'model', flex : 5,editor : {xtype : 'textfield', allowBlank : false}}, + { text: '说明', dataIndex: 'description', flex : 10,editor : 'textfield'}, + { text: '表面状态', dataIndex: 'surfaceStatus', flex : 5,editor : 'textfield'} + ], + tbar : [{ + text : '新增', + width : 70, + iconCls : 'btn_ext_add', + handler : function() { + newRow(); + } + }, { + text : '删除', + iconCls : 'btn_remove', + handler : function() { + var selectModel = expensiveGoodsModelGridObj.getSelectionModel(); + var rows = selectModel.getSelection();// 返回值为 Model 数组 + if (rows.length == 0) { + showResult('最少选择一条信息,进行删除!'); + } else { + top.Ext4.MessageBox.confirm('提示框', '您确定要删除选中的型号吗?', function(btn) { + if (btn == 'yes') { + if (rows) { + for ( var i = 0; i < rows.length; i++) { + expensiveGoodsModelStore.remove(rows[i]); + selectModel.selectPrevious(true); + } + } + } + }); + } + } + }] //tbar + }); + + //供应商列表 + expensiveGoodsSupplierGridObj = Ext4.create('top.Ext4.grid.Panel',{ + store: supplierStore, + columns: [ + { text: '供应商', dataIndex: 'supplierName', flex : 5}, + { text: '经营许可证', dataIndex: 'businessCertificate', flex : 5}, + { text: '经营许可证有效期', dataIndex: 'businessValidityTime', flex : 5,align : 'center',renderer : checkDate}, + { text: '营业执照', dataIndex: 'businessLicense', flex : 5}, + { text: '营业执照有效期', dataIndex: 'licenseValidityTime', flex : 5,align : 'center',renderer : checkDate}, + { text: '授权方', dataIndex: 'authorizerCompany', flex : 5}, + { text: '授权有效期', dataIndex: 'validityTime', flex : 5,align : 'center',renderer : checkDate}, + { text: '供应链级别', dataIndex: 'level', flex : 3} + ] + }); + + +// frame : true, +// border : 0, +// labelSeparator : ':', +// bodyPadding : '5 5 0', +// autoScroll : true, +// buttonAlign : 'center', + //表单整体 + formObj = Ext4.create('top.Ext4.form.Panel',{ +// frame : true, + border : false, + bodyStyle: 'background:transparent;', + labelSeparator : ':', + fieldDefaults : { + labelAlign : 'right', + labelWidth : 110, + maxLength : '41' + }, + layout : 'column', + items : [ +// + { + columnWidth : 1, +// xtype : 'fieldset', + defaultType : 'textfield', + border : false, + layout : 'form', + anchor : "90%", +// plain : false, + bodyStyle: 'background:transparent;', +// frame : true, + items : columnOfName + + },{ + columnWidth : 0.5, + defaultType : 'textfield', +// border : false, + layout : 'form', +// plain : true, +// frame : true, + border : false, + bodyStyle: 'background:transparent;', + items : column1Items.concat(hiddenItems) + },{ + columnWidth : 0.5, + defaultType : 'textfield', + border : false, + layout : 'form', +// frame : true, + bodyStyle: 'background:transparent;', + items : column2Items + },{ + columnWidth : 1, + frame : true, + border : true, + layout : 'column', + items : [{ + columnWidth : 0.5, + defaultType : 'textfield', + layout : 'form', + border : false, + bodyStyle: 'background:transparent;', + defaults : { + labelWidth : 106 + }, + items : manufacturerColumn1Items + },{ + columnWidth : 0.5, + defaultType : 'textfield', + layout : 'form', + border : false, + bodyStyle: 'background:transparent;', + defaults : { + labelAlign : 'right', + labelWidth : 110, + fieldCls : 'fieldReadOnlyNoRemoveAndTop', + readOnly : true + }, + items : manufacturerColumn2Items + } + ]} + ] + }); + + + //窗口 + windowObj = Ext4.create('top.Ext4.window.Window', { + title: '高值耗材定义', + height: 600, + width: 1000, + layout : 'column', + modal : true, +// border : false, +// plain : true, + buttonAlign : 'center', + items : [ + { + columnWidth : 1, + collapsible : true, + layout : 'column', + items : [{ + columnWidth : .6, + title : '基本信息', +// height : 400, + frame : true, + items : formObj + },{ + columnWidth : .4, + title : '型号信息', + height : 410, + frame : false, +// padding : "0 0 0 10", + items : expensiveGoodsModelGridObj + }] + + } + ,{ + columnWidth : 1, + collapsible : true, + collapseDirection : 'bottom', + title : '供应商信息', + height : 250, +// padding : "10 0 0 0", + items : expensiveGoodsSupplierGridObj + } + ], + listeners : { + close : function(){ + expensiveGoodsModelStore.removeAll(); + registrationCertificationStore.removeAll(); + supplierStore.removeAll(); + }, + show : function(){ //把型号grid设置为多选模式 + expensiveGoodsModelGridObj.getSelectionModel().setSelectionMode("MULTI"); + } + }, + buttons: [{ + text: '保存', + handler: save + }, { + text: '取消', + handler: function() { + windowObj.close(); + } + }] + }); + + windowObj.show(); + expensiveGoodsTypeStore.load(); //加载高值耗材类型store + top.Ext4.getCmp('type').setValue(document.getElementById("parm_s_type").value); + if(selectedId == 0){ + return ;//新建的不从后台获取数据 + } + + formObj.getForm().load({ + url : WWWROOT + '/disinfectSystem/expensiveGoodsAction!loadExpensiveGoods.do', + method : 'post', + waitMsg : '正在加载数据,请稍候', + params : { id : selectedId}, + success : function(form ,action){ + var expensiveGoods = action.result.data; + var expensiveGoodsSupplier = expensiveGoods.expensiveGoodsSupplier; + top.Ext4.getCmp("orginalName").setValue(expensiveGoods.name); + loadCertificationStoreByExpensiveGoodsSupplierId(expensiveGoods.expensiveGoodsSupplierId); + oldSelectSupplierId = newSelectSupplierId = expensiveGoods.expensiveGoodsSupplierId; + fillexpensiveGoodsModelGridStore(expensiveGoods.expensiveGoodsModelLists); + + +// manufacturerStore.load({ +// params: {supplierName: expensiveGoodsSupplier}, +// callback: function(records, operation, success) { +// if (records && records.length > 0) { +// top.Ext4.getCmp("expensiveGoodsSupplier").setValue(expensiveGoodsSupplier); +// } +// } +// }); + + + supplierStore.load({ + params : { + id : selectedId, + supplierId : expensiveGoods.expensiveGoodsSupplierId + } + }); + } + }); + + +} + Index: ssts-web/src/main/webapp/disinfectsystem/assestManagement/expensiveGoods/expensiveGoodsStockView.js =================================================================== diff -u -r22061 -r22283 --- ssts-web/src/main/webapp/disinfectsystem/assestManagement/expensiveGoods/expensiveGoodsStockView.js (.../expensiveGoodsStockView.js) (revision 22061) +++ ssts-web/src/main/webapp/disinfectsystem/assestManagement/expensiveGoods/expensiveGoodsStockView.js (.../expensiveGoodsStockView.js) (revision 22283) @@ -1,797 +1,296 @@ var entityName = "高值耗材库存"; var grid; var root; -var formObj; -var formWindow = null; -var disposableGoodsStock = null; -var TYPE_DIPOSABLEGOODS = '普通物品'; -var TYPE_EXPENSIVEDIPOSABLEGOODS = '高值耗材'; -function closeFormWindow(){ - if(formWindow != null){ - formWindow.close(); - formWindow = null; - } -} -function addDiposableGoods(disposableGoodsId,disposableGoodsStockId) { - var dType = document.getElementById("parm_s_type").value; - var diposableGooodsStore = new Ext.data.SimpleStore({ - fields : [ 'typeName' ], - url : WWWROOT + '/disinfectSystem/diposableGoodsAction!getDiposableGoodsType.do' - }); - - //能否作为器械包材料 - var isPartOfTousseMaterialStore = new Ext.data.SimpleStore( { - fields : [ 'value'], - data : [[CONSTANT_YES],[CONSTANT_NO]] - }); - - //能否被科室申请 - var isApplicationMaterialStore = new Ext.data.SimpleStore( { - fields : [ 'value'], - data : [[CONSTANT_YES],[CONSTANT_NO]] - }); - - //是否供应室物品 - var yesNoStore = new Ext.data.SimpleStore( { - fields : [ 'value'], - data : [[STR_YES],[STR_NO]] - }); - - var godownEntryItemStore = new top.Ext.data.Store({ - proxy : new top.Ext.data.HttpProxy({ - url : WWWROOT + '/disinfectSystem/diposableGoodsAction!loadDisposableGoodsBatchStocksByDisposableGoodsStockID.do?id=' + disposableGoodsStockId, - method : 'POST' - }), - reader : new top.Ext.data.JsonReader({ - fields : [ - {name : 'id'}, - {name : 'disposableGoodsBatchId'}, - {name : 'barcode'}, - {name : 'storage'}, - {name : 'batchNumber'}, - {name : 'cost'}, - {name : 'expDate'}, - {name : 'supplierName'} - ] - }) - }); - - var tbar = [{ - text : '查看高值耗材', - iconCls : 'btn_ext_refresh', - handler : function(){ - var records = top.Ext.getCmp('batchNumberGrid').getSelectionModel().getSelections(); - if (records.length == 0) { - showResult("请选择要查看的批次!"); - return false; - } - var disposableGoodsBatchStockIds = ''; - for ( var i = 0, len = records.length; i < len; i++) { - if(disposableGoodsBatchStockIds == ''){ - disposableGoodsBatchStockIds = records[i].data.id; - }else { - disposableGoodsBatchStockIds += ','+ records[i].data.id; - } - } - - viewExpensiveDisposablegoods(disposableGoodsId, disposableGoodsStockId, disposableGoodsBatchStockIds); - } - }, '-', { - text : '查看所有高值耗材', - iconCls : 'btn_ext_application_edit', - id : 'editTbar', - handler : function() { - viewExpensiveDisposablegoods(disposableGoodsId, disposableGoodsStockId, ''); - } - }]; - var selectModel = new top.Ext.grid.CheckboxSelectionModel(); - formObj = new top.Ext.FormPanel( { - id : 'diposableGoodsForm', - frame : true, - labelAlign:'right', - labelSeparator : ':', - bodyStyle : 'padding:5px 5px 0px 5px', - autoHeight : true, - autoScroll : true, - items:[{ - layout : 'column', - items : [{ - columnWidth : 0.4, - layout : 'form', - labelWidth : 70, - items : [{ - xtype : 'hidden', - name : 'id', - id : 'id' - },{ - xtype : 'hidden', - name : 'originalFormParams', - id : 'originalFormParams' - },{ - xtype : 'hidden', - name : 'orginalName', - id : 'orginalName' - },{ - xtype : 'hidden', - name : 'orginalSpecification', - id : 'orginalSpecification' - },{ - xtype : 'hidden', - name : 'items', - id : 'items' - },{ - columnWidth : 1, - layout : 'form', - labelWidth : 110, - items : [{ - xtype : 'textfield', - fieldLabel : '名称', - maxLength : '41', - id : 'name', - name : 'name', - allowBlank : false, - anchor : '95%', - listeners:{ - change:function(field,nV,oV){ - var value = nV.trim(); - field.setValue(value); - } - } - }] - },{ - columnWidth : 1, - layout : 'form', - labelWidth : 110, - items : [{ - xtype : 'textfield', - fieldLabel : '规格', - maxLength : '41', - id : 'specification', - name : 'specification', - allowBlank : true, - anchor : '95%' - }] - },{ - columnWidth : 1, - layout : 'form', - labelWidth : 110, - items : [{ - xtype : 'textfield', - fieldLabel : '单位转换调整系数', - maxLength : '41', - id : 'unitConvertCoefficient', - name : 'unitConvertCoefficient', - allowBlank : true, - anchor : '95%' - }] - },{ - columnWidth : 1, - layout : 'form', - labelWidth : 110, - items : [{ - xtype : 'textfield', - fieldLabel : '包装规格', - maxLength : '41', - id : 'packageSpec', - name : 'packageSpec', - allowBlank : true, - anchor : '95%' - }] - },{ - columnWidth : 1, - layout : 'form', - labelWidth : 110, - items : [{ - xtype : 'combo', - fieldLabel : "类别", - valueField : 'typeName', - displayField : 'typeName', - store : diposableGooodsStore, - forceSelection : true, - editable : false, - triggerAction : 'all', - name : "type", - id : "type", - value : dType, - anchor : '95%' - }] - },{ - columnWidth : 1, - layout : 'form', - labelWidth : 110, - items : [{ - xtype : 'combo', - fieldLabel : "能否配包", - valueField : 'value', - displayField : 'value', - store : isPartOfTousseMaterialStore, - forceSelection : true, - allowBlank : false, - mode : 'local', - triggerAction : 'all', - name : "isPartOfTousseMaterial", - id : "isPartOfTousseMaterial", - anchor : '95%' - }] - }, { - columnWidth : 1, - layout : 'form', - labelWidth : 110, - items : [{ - xtype : 'combo', - fieldLabel : '能否申请', - valueField : 'value', - displayField : 'value', - store : isApplicationMaterialStore, - forceSelection : true, - allowBlank : false, - mode : 'local', - triggerAction : 'all', - name : "isApplicationMaterial", - id : "isApplicationMaterial", - anchor : '95%' - }] - },{ +//function printAmount() { +// top.Ext.MessageBox.prompt("输入框", "打印数量:", function(bu, txt) { +// return txt; +// }); +//} - columnWidth : 1, - layout : 'form', - labelWidth : 110, - items : [{ - xtype : 'combo', - fieldLabel : '消毒供应中心物品', - valueField : 'value', - displayField : 'value', - store : yesNoStore, - forceSelection : true, - allowBlank : false, - mode : 'local', - triggerAction : 'all', - name : "isSupplyRoomGoods", - id : "isSupplyRoomGoods", - anchor : '95%' - }] - - },{ - columnWidth : 1, - layout : 'form', - labelWidth : 110, - items : [{ - xtype : 'numberfield', - fieldLabel : '最小库存', - allowDecimals : false, - maxLength : '16', - id : 'minStorage', - name : 'minStorage', - anchor : '95%' - }] - }, { - columnWidth : 1, - layout : 'form', - labelWidth : 110, - items : [{ - xtype : 'numberfield', - fieldLabel : '最大库存', - allowDecimals : false, - maxLength : '16', - id : 'maxStorage', - name : 'maxStorage', - anchor : '95%' - }] - }, { - columnWidth : 1, - layout : 'form', - labelWidth : 110, - items : [{ - xtype : 'textfield', - fieldLabel : '拼音码', - id : 'spelling', - name : 'spelling', - readOnly : true, - allowBlank : true, - anchor : '95%' - }] - }, { - columnWidth : 1, - layout : 'form', - labelWidth : 110, - items : [{ - xtype : 'textfield', - fieldLabel : '五笔码', - id : 'wbCode', - name : 'wbCode', - readOnly : true, - allowBlank : true, - anchor : '95%' - }] - }, { - columnWidth : 1, - layout : 'form', - labelWidth : 110, - items : [{ - xtype : 'textfield', - fieldLabel : '外部编码', - maxLength : '16', - id : 'externalCode', - name : 'externalCode', - allowBlank : true, - anchor : '95%' - }] - }, { - columnWidth : 1, - layout : 'form', - labelWidth : 110, - items : [{ - xtype : 'numberfield', - fieldLabel : '参考价', - maxLength : '16', - id : 'referencePrice', - name : 'referencePrice', - allowBlank : false, - allowNegative : false, - anchor : '95%' - }] - }, { - columnWidth : 1, - layout : 'form', - labelWidth : 110, - items : [{ - xtype : 'numberfield', - fieldLabel : '最小申请数量', - maxLength : '16', - id : 'minApplyAmount', - name : 'minApplyAmount', - allowBlank : true, - anchor : '95%' - }] - }, { - columnWidth : 1, - layout : 'form', - labelWidth : 110, - items : [{ - xtype : 'textfield', - fieldLabel : '单位', - maxLength : '16', - id : 'unit', - name : 'unit', - allowBlank : true, - anchor : '95%' - }] - }, { - columnWidth : 1, - layout : 'form', - labelWidth : 110, - items : [{ - xtype : 'numberfield', - fieldLabel : '总数', - maxLength : '16', - id : 'amount', - name : 'amount', - readOnly : true, - cls : 'fieldReadOnlyNoRemove', - allowBlank : false, - value : 0, - anchor : '95%' - }] - } - ] - },{ - columnWidth : 0.6, - layout : 'form', - items : [ - new top.Ext.grid.GridPanel({ - id :'batchNumberGrid', - store : godownEntryItemStore , - height : 390, - width : 485, - bodyStyle : 'border:1px solid #afd7af', - sm : selectModel, - cm : new top.Ext.grid.ColumnModel([selectModel, - {header : "id",dataIndex : 'id',hidden : true}, - {header : "条码",width : 90,dataIndex : 'barcode',menuDisabled:true}, - {header : "批次",width : 90,dataIndex : 'batchNumber',menuDisabled:true,renderer : function batchRenderer(v, p, record){ - return v; -// var data = record.data; -// var disposableGoodsBatchStockIds = data.id; -// var params = disposableGoodsId+','+disposableGoodsStockId+','+disposableGoodsBatchStockIds; -// return '' + v + ''; - }}, - {header : "价格",width : 50,dataIndex : 'cost',menuDisabled:true}, - {header : "库存",width : 50,dataIndex : 'storage',menuDisabled:true}, - {header : "失效期",width : 90,dataIndex : 'expDate',renderer:myDateFormat,menuDisabled:true}, - {id:'supplierName',header : "供应商",width : 130,dataIndex : 'supplierName',menuDisabled:true} - ]), - autoExpandColumn : 'supplierName', - frame : false, - viewConfig: {forceFit:true}, - tbar: tbar, - title : '批次列表' - }) - ] - }] - }], - buttons : [{ - id : 'saveBtn', - hidden: true, - text : '保存', - handler : save - },{ - id : 'cancleBtn', - text : '取消', - handler : function() { - closeFormWindow(); - } - },{ - id : 'print', -// hidden:true, - text : '打印批次', - handler : function() { - var items = null; - var records = top.Ext.getCmp('batchNumberGrid').getSelectionModel().getSelections(); - if (records.length == 0) { - showResult("请选择要打印的批次!"); - return false; - } - var goodsName = top.Ext.getCmp('name').getValue(); - - for ( var i = 0, len = records.length; i < len; i++) { - if(items == null){ - items = records[i].data.disposableGoodsBatchId; - }else { - items += ',' + records[i].data.disposableGoodsBatchId; - } - } - top.Ext.getCmp("items").setValue(items); - formObj.form.submit({ - url : WWWROOT + '/disinfectSystem/diposableGoodsAction!printDiposableGoods.do', - method : 'POST', - waitMsg : '正在保存数据,请稍候', - waitTitle : '提交表单', - success : function(form, action) { - window.close(); - grid.dwrReload(); - //打印条码 - printBarcode(action.result.barcode); +//function printBarcode(barcodeStr){ +// if(barcodeStr!=null && barcodeStr.length > 0){ +// top.Ext.Msg.show({ +// title: '输入框', +// msg: '打印数量:', +// width: 100, +// buttons: Ext.MessageBox.OKCANCEL, +// prompt : true, +// fn: function(bu, txt) { +// if(bu == 'ok'){ +// if(isNaN(txt) == false){ +// var godownEntryItem = barcodeStr.split(";"); +// var specification = top.Ext.getCmp('specification').getValue(); +// for(var j = 0 ; j< Number(txt) ; j++){ +// for ( var i = 0; i < godownEntryItem.length; i++) { +// var resultItem = godownEntryItem[i].split("#&"); +// var name =resultItem[0]; +// var barcode = resultItem[1]; +// var expDate = resultItem[2]; +// var supplierName = resultItem[3]; +// var batchNumber = resultItem[4]; +// printDiposableGoodsInfo(barcode,name,expDate,supplierName,batchNumber,0,specification); +// } +// } +// }else{ +// showResult("打印数量必须是数字,请重新输入!"); +// } +// } +// }, +// animEl: 'addAddressBtn', +// value:'1' +// }); +// } +//} - }, - failure : function(form, action) { - showResult(action.result.message); - } - }); - } - }] - }); - - if($Id("parm_s_type").value != ""){ - top.Ext.getCmp("type").setValue($Id("parm_s_type").value); - } - - formWindow = new top.Ext.Window( { - id : 'diposableGoodsWin', - layout : 'fit', - title : '一次性物品信息', - width : 850, - modal : true, - autoHeight : true, - border : false, - plain : true, - items : [ formObj ] - }); - formWindow.show(); - diposableGooodsStore.load(); - if(id != 0){ - godownEntryItemStore.load(); - } -} -function printAmount() { - top.Ext.MessageBox.prompt("输入框", "打印数量:", function(bu, txt) { - return txt; - }); -} - -function printBarcode(barcodeStr){ - if(barcodeStr!=null && barcodeStr.length > 0){ - top.Ext.Msg.show({ - title: '输入框', - msg: '打印数量:', - width: 100, - buttons: Ext.MessageBox.OKCANCEL, - prompt : true, - fn: function(bu, txt) { - if(bu == 'ok'){ - if(isNaN(txt) == false){ - var godownEntryItem = barcodeStr.split(";"); - var specification = top.Ext.getCmp('specification').getValue(); - for(var j = 0 ; j< Number(txt) ; j++){ - for ( var i = 0; i < godownEntryItem.length; i++) { - var resultItem = godownEntryItem[i].split("#&"); - var name =resultItem[0]; - var barcode = resultItem[1]; - var expDate = resultItem[2]; - var supplierName = resultItem[3]; - var batchNumber = resultItem[4]; - printDiposableGoodsInfo(barcode,name,expDate,supplierName,batchNumber,0,specification); - } - } - }else{ - showResult("打印数量必须是数字,请重新输入!"); - } - } - }, - animEl: 'addAddressBtn', - value:'1' - }); - } -} - -function submitForSaveDisposableGoods(){ - formObj.form.submit( { - url : WWWROOT + '/disinfectSystem/diposableGoodsAction!saveDiposableGoods.do', - method : 'POST', - waitMsg : '正在保存数据,请稍候', - waitTitle : '提交表单', - success : function(form, action) { - formWindow.close(); - showResult('保存成功'); - grid.dwrReload(); - }, - failure : function(form, action) { - showResult(action.result.message); - top.Ext.getCmp('saveBtn').enable(); - } - }); -} -function validateAndSubmit(){ - Ext.Ajax.request({ - url : WWWROOT + '/disinfectSystem/diposableGoodsAction!validate.do', - params : { - validateId : top.Ext.getCmp('id').getValue(), - valifateName:top.Ext.getCmp('name').getValue(), - specification:top.Ext.getCmp('specification').getValue() - }, - success : function(response, options) { - var result = Ext.decode(response.responseText); - if(result.stauts==1){ - var orginalName = top.Ext.getCmp("orginalName").getValue(); - var orginalSpecification = top.Ext.getCmp("orginalSpecification").getValue(); - var name = top.Ext.getCmp("name").getValue(); - var specification = top.Ext.getCmp("specification").getValue(); - var msg = ''; - if(!stringLooksEquals(orginalName,name) && !stringLooksEquals(orginalSpecification,specification)){ - msg = "是否确定修改一次性物品名称和规格?" - }else if(!stringLooksEquals(orginalName,name)){ - msg = "是否确定修改一次性物品名称?" - }else if(!stringLooksEquals(orginalSpecification,specification)){ - msg = "是否确定修改一次性物品规格?" - }else{ - submitForSaveDisposableGoods(); - return; - } - top.Ext.MessageBox.confirm("请确认",msg, - function(button, text) { - if ("yes" == button){ - submitForSaveDisposableGoods(); - }else{ - top.Ext.getCmp('saveBtn').enable(); - } - }); - }else{ - showResult(result.message); - top.Ext.getCmp('saveBtn').enable(); - } - }, - failure : function(response, options) { - var result = Ext.decode(response.responseText); - showResult(result.cause); - } - }); -} - -function save(){ - //if(!form.getForm().isValid()){ - if(!formObj.getForm().isValid()){ - showResult('请正确填写表单各值'); - return false; - } - var unitConvertCoefficient = top.Ext.getCmp('unitConvertCoefficient').getValue(); - if(unitConvertCoefficient != null && unitConvertCoefficient != ""){ - if(unitConvertCoefficient <= 0){ - showResult("单位转换调整系数必须大于0!"); - top.Ext.getCmp('unitConvertCoefficient').setValue(""); - top.Ext.getCmp('unitConvertCoefficient').focus(); - return false; - } - } - - var max = top.Ext.getCmp('maxStorage').getValue(); - var min = top.Ext.getCmp('minStorage').getValue(); - if(typeof max == 'number' && typeof min == 'number'){ - if(min>max){ - showResult('最小库存不能大于最大库存'); - top.Ext.getCmp('minStorage').focus(); - return false; - } - } - this.disable(); - validateAndSubmit(); -} - -function printBatchNum(barcodeStr){ - if(barcodeStr!=null && barcodeStr.length > 0){ - Ext.Msg.show({ - title: '输入框', - msg: '打印数量:', - width: 100, - buttons: Ext.MessageBox.OKCANCEL, - prompt : true, - fn: function(bu, txt) { - if(bu == 'ok'){ - if(isNaN(txt) == false){ - var godownEntryItem = barcodeStr.split(";"); - for(var j = 0 ; j< Number(txt) ; j++){ - for ( var i = 0; i < godownEntryItem.length; i++) { - var resultItem = godownEntryItem[i].split("#&"); - var name =resultItem[0]; - var barcode = resultItem[1]; - var expDate = resultItem[2]; - var supplierName = resultItem[3]; - var batchNumber = resultItem[4]; - var specification = resultItem[5]; - printDiposableGoodsInfo(barcode,name,expDate,supplierName,batchNumber,0,specification); - } - } - }else{ - showResult("打印数量必须是数字,请重新输入!"); - } - } - }, - animEl: 'addAddressBtn', - value:'1' - }); - } -} -function onStorageRecordDetail(grid){ - var records = grid.getSelectionModel().getSelections(); - if(records.length == 0){ - showResult("请选择一次性物品"); - return; - } - if(records.length != 1){ - showResult("只能选择一个一次性物品"); - return; - } - - var storageRecord = new StorageRecord(); - storageRecord.setDisposableGoodsId(records[0].data['expensiveGoods.id']); - storageRecord.showDetail(); -} -//打印批次条码 -function printBatchStockBarcode(grid){ - var records = grid.getSelectionModel().getSelections(); - if(records.length == 0){ - showResult("请选择要打印批次条码的物品"); - }else{ - var ids = ""; - for(var i = 0,len=records.length;i 0){ +// Ext.Msg.show({ +// title: '输入框', +// msg: '打印数量:', +// width: 100, +// buttons: Ext.MessageBox.OKCANCEL, +// prompt : true, +// fn: function(bu, txt) { +// if(bu == 'ok'){ +// if(isNaN(txt) == false){ +// var godownEntryItem = barcodeStr.split(";"); +// for(var j = 0 ; j< Number(txt) ; j++){ +// for ( var i = 0; i < godownEntryItem.length; i++) { +// var resultItem = godownEntryItem[i].split("#&"); +// var name =resultItem[0]; +// var barcode = resultItem[1]; +// var expDate = resultItem[2]; +// var supplierName = resultItem[3]; +// var batchNumber = resultItem[4]; +// var specification = resultItem[5]; +// printDiposableGoodsInfo(barcode,name,expDate,supplierName,batchNumber,0,specification); +// } +// } +// }else{ +// showResult("打印数量必须是数字,请重新输入!"); +// } +// } +// }, +// animEl: 'addAddressBtn', +// value:'1' +// }); +// } +//} +//function onStorageRecordDetail(grid){ // var records = grid.getSelectionModel().getSelections(); -// -// if (records.length == 0) { -// showResult("请选择要删除的一次性物品!"); -// return false; +// if(records.length == 0){ +// showResult("请选择一次性物品"); +// return; // } -// var ids = null; -// for ( var i = 0, len = records.length; i < len; i++) { -// if (ids == null) { -// ids = records[i].data['id']; -// } else { -// ids = ids + ';' + records[i].data['id']; -// } +// if(records.length != 1){ +// showResult("只能选择一个一次性物品"); +// return; // } -// top.Ext.MessageBox.confirm("请确认","是否确定要删除选中的一次性物品信息?", -// function(button, text) { -// if ("yes" == button){ -// Ext.Ajax.request({ -// url : WWWROOT + '/disinfectSystem/diposableGoodsAction!deleteDiposableGoods.do', -// params : {ids : ids}, -// success : function(response, options) { -// showResult(response.responseText); -// grid.dwrReload(); -// }, -// failure : function(response, options) { -// showResult(response.responseText); -// } -// }); +// +// var storageRecord = new StorageRecord(); +// storageRecord.setDisposableGoodsId(records[0].data['expensiveGoods.id']); +// storageRecord.showDetail(); +//} +//打印批次条码 +//function printBatchStockBarcode(grid){ +// var records = grid.getSelectionModel().getSelections(); +// if(records.length == 0){ +// showResult("请选择要打印批次条码的物品"); +// }else{ +// var ids = ""; +// for(var i = 0,len=records.length;i 1) { - showResult("一次只能修改一个一次性物品!"); + showResult("一次只能显示一种高值耗材!"); return false; } - id = records[0].data['id']; - var disposableGoodsID = records[0].data.disposableGoodsID; - addDiposableGoods(disposableGoodsID,id); - top.Ext.getCmp('diposableGoodsForm').form.load({ - url : WWWROOT + '/disinfectSystem/diposableGoodsAction!loadDisposableGoodsStock.do', - method : 'GET', - waitMsg : '正在加载数据,请稍候', - params : {id : id}, - success : function(form, action) { - disposableGoodsStock = action.result.data; - top.Ext.getCmp("orginalName").setValue(disposableGoodsStock.name); - top.Ext.getCmp("orginalSpecification").setValue(disposableGoodsStock.specification); + + var expensiveGoodsId = records[0].data['expensiveGoods.id']; + + var expensiveGoodsModelStockStore = Ext4.create('top.Ext4.data.Store',{ + fields : [{name : 'model'},{name : 'storage'},{name : 'description'},{name : 'surfaceStatus'}], + proxy : { + type : 'ajax', + url : WWWROOT + '/disinfectSystem/expensiveGoodsAction!getExpensiveGoodsModelStock.do', + reader : { + type : 'json', + root : 'data' + } }, - failure : function(form, action) { + listeners : { + beforeload : function(){ + myMask = new Ext4.LoadMask({ + msg : '正在加载数据,请稍等...', + target : detailWindowObj + }); + myMask.show(); + } } + }) + + var detailWindowObj = Ext4.create('top.Ext4.window.Window',{ + title: '高值耗材库存详情', + height: 410, + width: 800, + layout : 'column', + modal : true, + buttonAlign : 'center', + items : [ + { + columnWidth : .4, + title : '基本信息', + layout : 'form', + border : false, + defaultType : 'textfield', + labelSeparator : '......', + bodyStyle: 'background:transparent;', + defaults : { + labelAlign : 'left', + fieldCls : 'fieldReadOnlyNoRemoveAndTop', + readOnly : true, + labelSeparator : ':' + }, + items : [{ + fieldLabel : '名称', + id : 'name' + },{ + fieldLabel : '数量', + id : 'amount' + },{ + fieldLabel : '参考价', + id : 'referencePrice' + },{ + fieldLabel : '仓库名称', + id : 'warehouseName' + },{ + fieldLabel : '类别', + id : 'grade' + },{ + fieldLabel : '类型', + id : 'type' + },{ + fieldLabel : '单位', + id : 'unit' + },{ + fieldLabel : '注册证', + id : 'certification' + },{ + fieldLabel : '是否植入物', + id : 'isImplant' + },{ + fieldLabel : '最大库存', + id : 'maxStorage' + },{ + fieldLabel : '最小库存', + id : 'minStorage' + } + ] + },{ + columnWidth :.6, + items : { + xtype : 'grid', + title : '型号信息', + frame : false, + store : expensiveGoodsModelStockStore, + height : 350, + viewConfig : { + loadMask : false + }, + columns : [ + {text: '型号规格', dataIndex: 'model', flex : 5}, + {text: '型号库存', dataIndex: 'storage', flex : 5}, + {text: '说明', dataIndex: 'description', flex : 5}, + {text: '表面状态', dataIndex: 'surfaceStatus', flex : 5} + ] + } + } + ], + buttons: [{ + text: '确定', + handler : function(){ + detailWindowObj.close(); + } + }] }); + detailWindowObj.show(); + expensiveGoodsModelStockStore.load({ + params : { + id : expensiveGoodsId + }, + callback : function(){ + myMask.hide(); + } + }); + setFormValue(records[0]); }; function reloadGrid(type){ $Id("parm_s_type").value = type; grid.dwrReload(); } -function modify(){ +function showStockDetail(){ loadFormData(grid); } function rendeColor(v, p, record){ var data = record.data; var amount = data.amount; if(typeof amount=='number'){ - if((typeof data.minStorage=='number' && data.minStorage>amount) || (typeof data.maxStorage=='number' && data.maxStorage" + v + "

"; + if((typeof data['expensiveGoods.minStorage']=='number' && data['expensiveGoods.minStorage']>amount) || + (typeof data['expensiveGoods.maxStorage']=='number' && data['expensiveGoods.maxStorage']" + v + "

"; } } - return "" + v + ""; + return "" + v + ""; } -function viewExpensiveDisposablegoods(disposableGoodsId,disposableGoodsStockIds,disposableGoodsBatchStockIds){ - if(isUndefinedOrNull(disposableGoodsStockIds)){ - disposableGoodsStockIds = ''; - } - if(isUndefinedOrNull(disposableGoodsBatchStockIds)){ - disposableGoodsBatchStockIds = ''; - } - closeFormWindow(); - loadExpensiveDisposableGoodsInfo(disposableGoodsId,disposableGoodsStockIds,disposableGoodsBatchStockIds); -} Ext.onReady(function() { Ext.QuickTips.init(); @@ -812,16 +311,29 @@ //********* 2、ForgonGrid *********** var columns = [ {header : "ID", width : 50,dataIndex : 'id',hidden : true}, -// {header : "名称",width : 180,dataIndex : 'name', renderer : rendeColor}, - {header : "名称",width : 180,dataIndex : 'name'}, + {header : "名称",width : 180,dataIndex : 'name', renderer : rendeColor}, +// {header : "名称",width : 180,dataIndex : 'name'}, {header : "总数",width : 50,dataIndex : 'amount'}, {header : "前总数",width : 50,dataIndex : 'preAmount',hidden : true}, {header : "参考价",width : 50,dataIndex : 'referencePrice',hidden : true}, - {header : "规格",width : 100,dataIndex : 'specification', hidden : true}, +// {header : "规格",width : 100,dataIndex : 'specification', hidden : true}, {header : "仓库ID",width : 50,dataIndex : 'warehouseID', hidden : true}, - {header : "仓库名称",width : 120,dataIndex : 'warehouseName'} -// {header : "高值耗材名称",width : 120,dataIndex : 'expensiveGoods.name'} + {header : "仓库名称",width : 120,dataIndex : 'warehouseName'}, + + {header : "类别",width : 80,dataIndex : 'expensiveGoods.grade'}, + {header : "类型",width : 50,dataIndex : 'expensiveGoods.type'}, + {header : "单位",width : 50,dataIndex : 'expensiveGoods.unit'}, + {header : "注册证",width : 100,dataIndex : 'expensiveGoods.certification'}, + {header : "是否植入物",width : 80,dataIndex : 'expensiveGoods.isImplant'}, + {header : "收费码",width : 60,dataIndex : 'expensiveGoods.chargeCode'}, + {header : "平台代码",width : 60,dataIndex : 'expensiveGoods.platformCode'}, + {header : "物资编码",width : 60,dataIndex : 'expensiveGoods.inventorySerialNumber'}, + {header : "最大库存",width : 60,dataIndex : 'expensiveGoods.maxStorage'}, + {header : "最小库存",width : 60,dataIndex : 'expensiveGoods.minStorage'}, + {header : "最大申请数量",width : 80,dataIndex : 'expensiveGoods.maxApplyAmount'}, + {header : "最小申请数量",width : 80,dataIndex : 'expensiveGoods.minApplyAmount'} + ]; var readerDetail = [ @@ -834,7 +346,19 @@ {name : 'warehouseID'}, {name : 'warehouseName'}, {name : 'expensiveGoods.name'}, - {name : 'expensiveGoods.id'} + {name : 'expensiveGoods.type'}, + {name : 'expensiveGoods.id'}, + {name : 'expensiveGoods.grade'}, + {name : 'expensiveGoods.unit'}, + {name : 'expensiveGoods.certification'}, + {name : 'expensiveGoods.isImplant'}, + {name : 'expensiveGoods.chargeCode'}, + {name : 'expensiveGoods.platformCode'}, + {name : 'expensiveGoods.inventorySerialNumber'}, + {name : 'expensiveGoods.maxStorage'}, + {name : 'expensiveGoods.minStorage'}, + {name : 'expensiveGoods.maxApplyAmount'}, + {name : 'expensiveGoods.minApplyAmount'} ]; var filters = new Ext.grid.GridFilters({ @@ -852,6 +376,12 @@ ); var tbar = [{ + text : '型号详情', + iconCls : 'btn_ext_refresh', + handler : function(){ + showStockDetail(); + } + }, '-' ,{ text : '出入库记录', hidden: true, iconCls : 'btn_ext_refresh', @@ -865,62 +395,20 @@ handler : function(){ printBatchStockBarcode(grid); } - }/* - , '-' , { - //用于程序员调试 - text : '更新旧数据', - hidden : false, - handler : function() { - DiposableGoodsTableManager.updateOldData(function(msg){showResult(msg);}); - } - }, '-' , { - //将属于供应室领用的一次性物品进行分类 - text : '分类供应室领用类型', - hadden : false, - handler : function() { - DiposableGoodsTableManager.updateSupplyRoomDiposableGoodsType(function(msg){showResult('更新成功,请刷新页面')}); - } } - , '-' , { - text : '导出一次性物品库存', - handler : function() { - window.location.href = WWWROOT+"/disinfectsystem/reportforms/diposableGoodsStorageReportExportForm.jsp"; - } - }, '-' , { - text : '导出物资收发存汇总', - handler : function() { - window.location.href = WWWROOT+"/disinfectsystem/reportforms/diposableGoodsPriceStatisticsReportExportForm.jsp"; - } - }, '-' , { - //用于程序员调试 - text : '更新旧数据', - hidden : false, - handler : function() { - DiposableGoodsTableManager.updateOldData(function(msg){showResult(msg);}); - } - }, '-', { - text : '导入一次性物品库存EXCEL', - hidden : false, - handler : function() { - location.href = WWWROOT - + "/disinfectsystem/basedatamanager/importbasedata/amendDiposableGoodsStorage.mhtml"; - } - } - */ ]; grid = new Ext.ux.ForgonPageGrid( { tbar : tbar, pageSize : 20, defaultSortField : 'id', - title : '高值耗材列表', - defaultSortDirection : 'ASC', + title : '高值耗材库存列表', + defaultSortDirection : 'DESC', isCheckboxSelectionModel : true, rememberSelected : false, isShowSearchField : true, plugins: filters, columns : columns, -// autoExpandColumn : 'operationRemark', renderTo : 'gridDiv', frame : false }, readerDetail, Index: ssts-expensivegoods/src/main/java/com/forgon/disinfectsystem/expensiveGoods/service/ExpensiveGoodsManager.java =================================================================== diff -u -r22257 -r22283 --- ssts-expensivegoods/src/main/java/com/forgon/disinfectsystem/expensiveGoods/service/ExpensiveGoodsManager.java (.../ExpensiveGoodsManager.java) (revision 22257) +++ ssts-expensivegoods/src/main/java/com/forgon/disinfectsystem/expensiveGoods/service/ExpensiveGoodsManager.java (.../ExpensiveGoodsManager.java) (revision 22283) @@ -327,4 +327,11 @@ * @return */ public JSONArray getSupplyChainInfo(String id,String supplierId); + + /** + * 根据高值耗材id,获取它的型号库存信息 + * @param id 高值耗材id + * @return + */ + public JSONArray getExpensiveGoodsModelStock(String id); }