Index: ssts-web/src/main/webapp/disinfectsystem/basedatamanager/supplier/expensiveGoodsSupplierView.js =================================================================== diff -u -r21989 -r22005 --- ssts-web/src/main/webapp/disinfectsystem/basedatamanager/supplier/expensiveGoodsSupplierView.js (.../expensiveGoodsSupplierView.js) (revision 21989) +++ ssts-web/src/main/webapp/disinfectsystem/basedatamanager/supplier/expensiveGoodsSupplierView.js (.../expensiveGoodsSupplierView.js) (revision 22005) @@ -90,20 +90,17 @@ loadFormData(grid); } -//function rendeColor(v, p, record){ -// var supplier = record.data; -// if(supplier != null){ -// for(var i = 0 ;i < supplier.registrationCertificate.length;i++){ -// var supplierRegistrationCertificate = supplier.registrationCertificate[i]; -// var validityTime = new Date(supplierRegistrationCertificate.validityTime.time); -// var warningUntil = new Date(supplierRegistrationCertificate.warningUntil.time); -// } -// if((typeof data.minStorage=='number' && data.minStorage>amount) || (typeof data.maxStorage=='number' && data.maxStorage" + v + "

"; -// } -// } -// return "" + v + ""; -//} +function rendeColor(v, p, record){ + var expensiveGoodsSupplier = record.data; + if(expensiveGoodsSupplier != null){ + //判断是否有注册证过期或达到预警期有就改变名称背景颜色为黄色 + if(expensiveGoodsSupplier.expired){ + return "

" + v + "

"; + } + } + return "" + v + ""; +} + Ext.onReady(function() { Ext.QuickTips.init(); // 记录cookie(3步) @@ -112,7 +109,7 @@ header : "公司名称", width : 200, dataIndex : 'companyName', - renderer : modifyRecord + renderer : rendeColor }, { header : "联系人", width : 80, @@ -149,7 +146,7 @@ {type:'string',dataIndex:'rentTousse'}, {type:'string',dataIndex:'email'}, {type:'string',dataIndex:'address'}, - {type:'string',dataIndex:'registrationCertificate'} + {type:'string',dataIndex:'expired'} ] }); @@ -171,7 +168,7 @@ },{ name : 'email' },{ - name : 'registrationCertificate' + name : 'expired' }]; var sign = true; Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/supplier/ExpensiveGoodsSupplier.java =================================================================== diff -u -r21990 -r22005 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/supplier/ExpensiveGoodsSupplier.java (.../ExpensiveGoodsSupplier.java) (revision 21990) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/supplier/ExpensiveGoodsSupplier.java (.../ExpensiveGoodsSupplier.java) (revision 22005) @@ -1,6 +1,9 @@ package com.forgon.disinfectsystem.entity.basedatamanager.supplier; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Calendar; import java.util.Date; import java.util.LinkedHashMap; import java.util.List; @@ -16,6 +19,7 @@ import javax.persistence.Table; import javax.persistence.Transient; +import org.apache.commons.lang.BooleanUtils; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.annotations.Cache; @@ -132,11 +136,20 @@ public String isUploadImage; /** + * 是否有注册证过期 + */ + public boolean expired; + + /** * 租用器械包-----公司类型(生产厂家或者高值耗材供应商) */ private String rentTousse = ExpensiveGoodsSupplier.SUPPLIER_TYPE_MADECOMPANY; public static final String SUPPLIER_TYPE_MADECOMPANY = "生产厂家"; public static final String SUPPLIER_TYPE_EXPENSIVEGOODSSUPPLIER = "高值耗材供应商"; + public static final String CERTIFICATE_TYPE_REGISTRATIONCERTIFICATION = "注册证"; + public static final String CERTIFICATE_TYPE_PRODUCTIONCERTIFICATE = "生产许可证"; + public static final String CERTIFICATE_TYPE_BUSINESSCERTIFICATE= "经营许可证"; + public static final String CERTIFICATE_TYPE_BUSINESSLICENSE= "营业执照"; public static Map ColumnNameAndPoPropertyNameMap= new LinkedHashMap(7); @@ -335,6 +348,29 @@ this.isUploadImage = isUploadImage; } + @Transient + public boolean getExpired(){ + if(BooleanUtils.isTrue(expired)){ + return expired; + } + if(registrationCertificate != null){ + for(RegistrationCertification rc : registrationCertificate){ + //判断注册证是否过期和是否到了预警时间 + if(rc.getValidityTime().getTime() < new Date().getTime() || rc.getWarningUntil().getTime() < new Date().getTime()){ + expired = true; + break; + }else{ + expired = false; + } + } + } + return expired; + } + + public void setExpired(boolean expired) { + this.expired = expired; + } + @OneToMany(mappedBy = "expensiveGoodsSupplier", fetch = FetchType.LAZY, cascade = {CascadeType.ALL}) public List getRegistrationCertificate() { return registrationCertificate; Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplier/action/ExpensiveGoodsSupplierAction.java =================================================================== diff -u -r21989 -r22005 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplier/action/ExpensiveGoodsSupplierAction.java (.../ExpensiveGoodsSupplierAction.java) (revision 21989) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplier/action/ExpensiveGoodsSupplierAction.java (.../ExpensiveGoodsSupplierAction.java) (revision 22005) @@ -67,7 +67,6 @@ private ExpensiveGoodsSupplierManager expensiveGoodsSupplierManager; private String supplierName; private HttpOptionManager httpOptionManager; - private RegistrationCertificationManager registrationCertificationManager; private ObjectDao objectDao; private SupplyRoomConfigManager supplyRoomConfigManager; @@ -85,11 +84,6 @@ this.supplierName = supplierName; } - public void setRegistrationCertificationManager( - RegistrationCertificationManager registrationCertificationManager) { - this.registrationCertificationManager = registrationCertificationManager; - } - public void setObjectDao(ObjectDao objectDao) { this.objectDao = objectDao; } @@ -309,14 +303,7 @@ */ public void getSupplierUploadPicTotalPage() { int count = expensiveGoodsSupplier.getImagesCount(objectDao); - HttpServletResponse httpServletResponse = StrutsParamUtils - .getResponse(); - httpServletResponse.setCharacterEncoding("UTF-8"); - try { - httpServletResponse.getWriter().print(count); - } catch (IOException e) { - e.printStackTrace(); - } + StrutsResponseUtils.output(count); } /** Index: ssts-web/src/main/webapp/disinfectsystem/basedatamanager/supplier/expensiveGoodsSupplierForm.js =================================================================== diff -u -r21993 -r22005 --- ssts-web/src/main/webapp/disinfectsystem/basedatamanager/supplier/expensiveGoodsSupplierForm.js (.../expensiveGoodsSupplierForm.js) (revision 21993) +++ ssts-web/src/main/webapp/disinfectsystem/basedatamanager/supplier/expensiveGoodsSupplierForm.js (.../expensiveGoodsSupplierForm.js) (revision 22005) @@ -14,59 +14,88 @@ configStore = new top.Ext.data.Store({ }); + //注册证 function newRow(){ var n = top.Ext.getCmp('configGrid').getStore().getCount();// 获得总行数 var p = new registrationCertificateConfig({ id : 0, + certificationType : registrationCertification, certification : '', validityTime : '', type : '一类' }); top.Ext.getCmp('configGrid').stopEditing();// 停止编辑 configStore.add(p);// 插入到最后一行 - top.Ext.getCmp('configGrid').startEditing(n, 0);// 开始编辑0单元格 + top.Ext.getCmp('configGrid').startEditing(n, 1);// 开始编辑0单元格 } - + //营业执照 function newShopCard(){ var n = top.Ext.getCmp('configGrid').getStore().getCount();// 获得总行数 var p = new registrationCertificateConfig({ id : 0, + certificationType : businessLicense, certification : '', validityTime : '', - type : '营业执照' + type : '' }); top.Ext.getCmp('configGrid').stopEditing();// 停止编辑 configStore.add(p);// 插入到最后一行 - top.Ext.getCmp('configGrid').startEditing(n, 0);// 开始编辑0单元格 } - + //经营许可证 function newManageCard(){ var n = top.Ext.getCmp('configGrid').getStore().getCount();// 获得总行数 var p = new registrationCertificateConfig({ id : 0, + certificationType : businessCertificate, certification : '', validityTime : '', - type : '经营许可证' + type : '' }); top.Ext.getCmp('configGrid').stopEditing();// 停止编辑 configStore.add(p);// 插入到最后一行 - top.Ext.getCmp('configGrid').startEditing(n, 0);// 开始编辑0单元格 } - + //生产许可证 function newCertificate(){ var n = top.Ext.getCmp('configGrid').getStore().getCount();// 获得总行数 var p = new registrationCertificateConfig({ id : 0, + certificationType : productionCertificate, certification : '', validityTime : '', - type : '生产许可证' + type : '' }); top.Ext.getCmp('configGrid').stopEditing();// 停止编辑 configStore.add(p);// 插入到最后一行 - top.Ext.getCmp('configGrid').startEditing(n, 0);// 开始编辑0单元格 } var registrationCm = new top.Ext.grid.ColumnModel([{ + id:'certificationType', + header:"证件类别", + width : 60, + dataIndex:'certificationType', + editor : new top.Ext.form.ComboBox({ + xtype : 'combo', + valueField : 'certificationType', + displayField : 'certificationType', + store : new Ext.data.SimpleStore({ + data: [[businessLicense],[businessCertificate],[productionCertificate],[registrationCertification]], + fields:['certificationType'] + }), + mode : 'local', + forceSelection : true, + editable : false, + triggerAction : 'all', + listeners : { + specialKey : function(field,event){ + if(event.getKey()==13 ){ + if(isLastRow){//是最后一行,新增空白行 + newRow(); + } + } + } + } + }) + }, { id : 'certification', header : "证件号", dataIndex : 'certification', @@ -81,9 +110,9 @@ var judge = []; for(var i =0 ;i < rowIndex ; i++ ){ var electRecord = configStore.getAt(i); - var a = configStore.getAt(i).data.certification; + var certification = configStore.getAt(i).data.certification; var type = configStore.getAt(i).data.type; - if(a != ''){ + if(certification != ''){ if(judge.contains(newValue)){ showResult('已包含相同证号:'+ newValue +',不可重复添加!'); judge.splice(0,judge.length); //数组清空 @@ -121,15 +150,15 @@ }) }, { id:'type', - header:"类别", + header:"注册证类别", width : 60, dataIndex:'type', editor : new top.Ext.form.ComboBox({ xtype : 'combo', valueField : 'type', displayField : 'type', store : new Ext.data.SimpleStore({ - data:[['一类'],['二类'],['三类'],['营业执照'],['经营许可证'],['生产许可证']], + data:[['一类'],['二类'],['三类']], fields:['type'] }), mode : 'local', @@ -143,6 +172,18 @@ newRow(); } } + }, + select : function(value) { + //获取所点证件的信息 + var rows = top.Ext.getCmp('configGrid').getSelectionModel().getSelections();// 返回值为 Record 数组 + //获取证件类型 + var certificationType = rows[0].data.certificationType; + //对比是否是注册证类型 + if(certificationType != registrationCertification){ + showResult('只有注册证可以选择注册证类别!'); + value.setValue(''); + return false; + } } } }) @@ -163,7 +204,7 @@ name : 'configGrid', store : configStore, cm : registrationCm, - height:250, + height:300, frame : false, bodyStyle : 'border:1px solid #afd7af', autoExpandColumn : 'count', @@ -433,7 +474,7 @@ layout : 'form', columnWidth : 0.5, bodyStyle : 'border:1px solid #afd7af', - height:250, + height:300, labelWidth : 60, items : [ showCertificateImage @@ -455,7 +496,7 @@ id : 'supplierWin', layout : 'fit', title : '供应商信息', - width : 800, + width : 900, border : false, modal : true, autoHeight : true, @@ -490,29 +531,32 @@ if(supplier.businessCertificate != null && supplier.businessCertificate != ''){ var supplierBusinessCertificates = new registrationCertificateConfig({ id : supplier.id, + certificationType : supplier.businessType, certification : supplier.businessCertificate, validityTime :new Date(supplier.businessValidityTime.time), - type : supplier.businessType + type : '' }); configStore.add(supplierBusinessCertificates); } //初始化供应商的生产许可证 if(supplier.productionCertificate != null && supplier.productionCertificate != ''){ var supplierProductionCertificates = new registrationCertificateConfig({ id : supplier.id, + certificationType : supplier.productionType, certification : supplier.productionCertificate, validityTime :new Date(supplier.productionValidityTime.time), - type : supplier.productionType + type : '' }); configStore.add(supplierProductionCertificates); } //初始化供应商的营业执照 if(supplier.businessLicense != null && supplier.businessLicense != ''){ var supplierBusinessLicenseCertificates = new registrationCertificateConfig({ id : supplier.id, + certificationType : supplier.licenseType, certification : supplier.businessLicense, validityTime :new Date(supplier.licenseValidityTime.time), - type : supplier.licenseType + type : '' }); configStore.add(supplierBusinessLicenseCertificates); } @@ -521,6 +565,7 @@ var supplierRegistrationCertificate = supplier.registrationCertificate[i]; var supplierRegistrationCertificates = new registrationCertificateConfig({ id : supplierRegistrationCertificate.id, + certificationType : registrationCertification, certification : supplierRegistrationCertificate.certification, validityTime :new Date(supplierRegistrationCertificate.validityTime.time), type : supplierRegistrationCertificate.type @@ -571,6 +616,7 @@ var registrationCertificateConfig = Ext.data.Record.create([ {name : 'id'}, + {name : 'certificationType'}, {name : 'certification'}, {name : 'validityTime'}, {name : 'type'} @@ -584,11 +630,13 @@ for(var i =0 ;i < rowIndex ; i++ ){ var record = configStore.getAt(i); var id = configStore.getAt(i).data.id; + var certificationType = record.get('certificationType'); var certification = record.get('certification'); var validityTime = record.data.validityTime.format('Y-m-d'); var type = record.get('type'); var registration = { id : id, + certificationType: certificationType, certification: certification, validityTime: validityTime, type: type @@ -638,25 +686,25 @@ } var rentTousse = top.Ext.getCmp('rentTousse').getValue(); - if(sstsConfig.enableExpensiveGoods && rentTousse == madeCompany){ //高值耗材启用并且厂商类型为生产厂家才可以添加注册证 + if(sstsConfig.enableExpensiveGoods){ //高值耗材启用才验各类证件 var certificationCount = configStore.getCount(); if (certificationCount <= 0 ){ - showResult('证不能为空!'); + showResult('请填写证件,证件不能为空!'); this.enable(); return false; } for(var i = 0 ;i < certificationCount;i++){ - var certification = top.Ext.getCmp('configGrid').getView().getCell(i,0).firstChild.innerText; + var certification = top.Ext.getCmp('configGrid').getView().getCell(i,1).firstChild.innerText; if(certification == '' || certification == null || certification == ' '){ - showResult('请填写证号!'); + showResult('请填写证件号!'); this.enable(); return false; } - var validityTime = top.Ext.getCmp('configGrid').getView().getCell(i,1).firstChild.innerText; + var validityTime = top.Ext.getCmp('configGrid').getView().getCell(i,2).firstChild.innerText; if(validityTime == '' || validityTime == null || validityTime == ' '){ - showResult("请填写失效日期!"); + showResult("请填写证件失效日期!"); this.enable(); return false; } @@ -666,29 +714,29 @@ var certificationCount = configStore.getCount(); var certificateTypes = new Array(); for(var i = 0 ;i < certificationCount;i++){ - var licenseType = top.Ext.getCmp('configGrid').getView().getCell(i,2).firstChild.innerText; + var licenseType = top.Ext.getCmp('configGrid').getView().getCell(i,0).firstChild.innerText; certificateTypes.push(licenseType); } - if(!certificateTypes.contains('营业执照')){ - showResult("营业执照缺少!"); + if(!certificateTypes.contains(businessLicense)){ + showResult("请添加营业执照信息!"); this.enable(); return false; } if(rentTousse == madeCompany){ - if(!certificateTypes.contains('生产许可证')){ - showResult("生产许可证缺少!"); + if(!certificateTypes.contains(productionCertificate)){ + showResult("请添加生产许可证信息!"); this.enable(); return false; } - if(!certificateTypes.contains('一类') && !certificateTypes.contains('二类') && !certificateTypes.contains('三类')){ - showResult("注册证证缺少!"); + if(!certificateTypes.contains(registrationCertification)){ + showResult("请添加注册证信息!"); this.enable(); return false; } }else{ - if(!certificateTypes.contains('经营许可证')){ - showResult("经营许可证缺少!"); + if(!certificateTypes.contains(businessCertificate)){ + showResult("请添加经营许可证信息!"); this.enable(); return false; } Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplier/service/ExpensiveGoodsSupplierManagerImpl.java =================================================================== diff -u -r21989 -r22005 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplier/service/ExpensiveGoodsSupplierManagerImpl.java (.../ExpensiveGoodsSupplierManagerImpl.java) (revision 21989) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplier/service/ExpensiveGoodsSupplierManagerImpl.java (.../ExpensiveGoodsSupplierManagerImpl.java) (revision 22005) @@ -71,12 +71,12 @@ expensiveGoodsSupplier.setId(null); } if (StringUtils.isNotBlank(registrationsConfigResult)) { - JSONArray jsonArray = JSONArray.fromObject(registrationsConfigResult); + JSONArray jsonArray = JSONArray.fromObject(registrationsConfigResult);//前台传来的证件集 JSONArray registrationsResuit = JSONArray.fromObject(registrationsConfigResult); //用于去掉不是注册证的信息 Date date = null ; //初始化date for (int i = 0; i < jsonArray.size(); i++) { JSONObject obj = jsonArray.getJSONObject(i); - Long id = obj.optLong("id"); //证件所属ID 除了注册证,其他证件是直接在供应商表内的 + String certificationType = obj.optString("certificationType"); String certification = obj.optString("certification"); String validityTime = obj.optString("validityTime"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); @@ -86,25 +86,27 @@ } catch (Exception e) { e.printStackTrace(); } - String type = obj.optString("type"); - if(type.equals("营业执照")){ + //保存营业执照数据 + if(certificationType.equals(ExpensiveGoodsSupplier.CERTIFICATE_TYPE_BUSINESSLICENSE)){ expensiveGoodsSupplier.setBusinessLicense(certification); expensiveGoodsSupplier.setLicenseValidityTime(date); - expensiveGoodsSupplier.setLicenseType(type); + expensiveGoodsSupplier.setLicenseType(certificationType); registrationsResuit.remove(obj); continue; } - if(type.equals("生产许可证")){ + //保存生产许可证 + if(certificationType.equals(ExpensiveGoodsSupplier.CERTIFICATE_TYPE_PRODUCTIONCERTIFICATE)){ expensiveGoodsSupplier.setProductionCertificate(certification); expensiveGoodsSupplier.setProductionValidityTime(date); - expensiveGoodsSupplier.setProductionType(type); + expensiveGoodsSupplier.setProductionType(certificationType); registrationsResuit.remove(obj); continue; } - if(type.equals("经营许可证")){ + //保存经营许可证 + if(certificationType.equals(ExpensiveGoodsSupplier.CERTIFICATE_TYPE_BUSINESSCERTIFICATE)){ expensiveGoodsSupplier.setBusinessCertificate(certification); expensiveGoodsSupplier.setBusinessValidityTime(date); - expensiveGoodsSupplier.setBusinessType(type); + expensiveGoodsSupplier.setBusinessType(certificationType); registrationsResuit.remove(obj); continue; } Index: ssts-web/src/main/webapp/disinfectsystem/basedatamanager/supplier/expensiveGoodsSupplierView.jsp =================================================================== diff -u -r21989 -r22005 --- ssts-web/src/main/webapp/disinfectsystem/basedatamanager/supplier/expensiveGoodsSupplierView.jsp (.../expensiveGoodsSupplierView.jsp) (revision 21989) +++ ssts-web/src/main/webapp/disinfectsystem/basedatamanager/supplier/expensiveGoodsSupplierView.jsp (.../expensiveGoodsSupplierView.jsp) (revision 22005) @@ -63,6 +63,10 @@ var imageTypeCertification = '<%=ImageFile.IMAGE_TYPE_CERTIFICATION%>'; //注册证图片类别 var imageTypeTousse = '<%=ImageFile.IMAGE_TYPE_CERTIFICATION%>'; var imageTypeExpensiveSupplier = '<%=ImageFile.IMAGE_TYPE_EXPENSIVESUPPLIER%>'; //高值耗材供应商图片类别 +var registrationCertification = '<%=ExpensiveGoodsSupplier.CERTIFICATE_TYPE_REGISTRATIONCERTIFICATION%>'; //注册证类型 +var productionCertificate = '<%=ExpensiveGoodsSupplier.CERTIFICATE_TYPE_PRODUCTIONCERTIFICATE%>'; //生产许可证类型 +var businessCertificate = '<%=ExpensiveGoodsSupplier.CERTIFICATE_TYPE_BUSINESSCERTIFICATE%>'; //经营许可证类型 +var businessLicense = '<%=ExpensiveGoodsSupplier.CERTIFICATE_TYPE_BUSINESSLICENSE%>'; //营业执照类型