Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/imagefilemanager/service/ImageFileManagerImpl.java =================================================================== diff -u -r21816 -r21989 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/imagefilemanager/service/ImageFileManagerImpl.java (.../ImageFileManagerImpl.java) (revision 21816) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/imagefilemanager/service/ImageFileManagerImpl.java (.../ImageFileManagerImpl.java) (revision 21989) @@ -29,16 +29,20 @@ import org.hibernate.Query; import org.hibernate.Session; +import com.forgon.disinfectsystem.basedatamanager.supplier.service.ExpensiveGoodsSupplierManager; import com.forgon.disinfectsystem.basedatamanager.supplier.service.RegistrationCertificationManager; import com.forgon.disinfectsystem.basedatamanager.supplier.service.SupplierManager; import com.forgon.disinfectsystem.basedatamanager.supplyroomconfig.service.SupplyRoomConfigManager; import com.forgon.disinfectsystem.common.geom.SizeAndPosition; import com.forgon.disinfectsystem.entity.assestmanagement.ExpensiveGoodsBill; import com.forgon.disinfectsystem.entity.basedatamanager.imagefilemanager.ImageFile; import com.forgon.disinfectsystem.entity.basedatamanager.materialdefinition.MaterialDefinition; +import com.forgon.disinfectsystem.entity.basedatamanager.supplier.ExpensiveGoodsSupplier; import com.forgon.disinfectsystem.entity.basedatamanager.supplier.RegistrationCertification; import com.forgon.disinfectsystem.entity.basedatamanager.supplyroomconfig.SupplyRoomConfig; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; +import com.forgon.disinfectsystem.entity.expensivegoods.AuthorizationCertification; +import com.forgon.disinfectsystem.entity.expensivegoods.RelevancyGoodsAuthorization; import com.forgon.disinfectsystem.entity.qualitymonitoringmanager.qualitymonitoring.QualityMonitoringInstance; import com.forgon.disinfectsystem.expensiveGoods.service.ExpensiveGoodsBillManager; import com.forgon.disinfectsystem.tousse.materialdefinition.service.MaterialDefinitionManager; @@ -73,6 +77,8 @@ private ExpensiveGoodsBillManager expensiveGoodsBillManager; + private ExpensiveGoodsSupplierManager expensiveGoodsSupplierManager; + public void setExpensiveGoodsBillManager( ExpensiveGoodsBillManager expensiveGoodsBillManager) { @@ -103,6 +109,11 @@ this.registrationCertificationManager = registrationCertificationManager; } + public void setExpensiveGoodsSupplierManager( + ExpensiveGoodsSupplierManager expensiveGoodsSupplierManager) { + this.expensiveGoodsSupplierManager = expensiveGoodsSupplierManager; + } + @Override public ImageFile getImageFileById(String id) { if (StringUtils.isNotBlank(id)) { @@ -780,7 +791,27 @@ saveImage(imageFile); } objectDao.saveOrUpdate(expensiveGoodsBill); - } else { + }else if(ImageFile.IMAGE_TYPE_EXPENSIVESUPPLIER + .equals(objectType)){ + ExpensiveGoodsSupplier expensiveGoodsSupplier = expensiveGoodsSupplierManager.getSupplierById(objectID); + for (ImageFile imageFile : uploadImageList) { + setImageFileOrder(imageFile); + imageFile.setObjectId(expensiveGoodsSupplier.getId().toString()); + saveImage(imageFile); + } + expensiveGoodsSupplier.setIsUploadImage("是"); + objectDao.saveOrUpdate(expensiveGoodsSupplier); + }else if(ImageFile.IMAGE_TYPE_AUTHORIZEDSUPPLIER + .equals(objectType)){ + AuthorizationCertification authorizationCertification = (AuthorizationCertification) objectDao.getByID_ForUpdate(AuthorizationCertification.class.getSimpleName(), objectID); + for (ImageFile imageFile : uploadImageList) { + setImageFileOrder(imageFile); + imageFile.setObjectId(authorizationCertification.getId().toString()); + saveImage(imageFile); + } + authorizationCertification.setIsUploadImage("是"); + objectDao.saveOrUpdate(authorizationCertification); + }else { ret = false; } return ret; Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplier/service/ExpensiveGoodsSupplierManagerImpl.java =================================================================== diff -u -r21944 -r21989 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplier/service/ExpensiveGoodsSupplierManagerImpl.java (.../ExpensiveGoodsSupplierManagerImpl.java) (revision 21944) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplier/service/ExpensiveGoodsSupplierManagerImpl.java (.../ExpensiveGoodsSupplierManagerImpl.java) (revision 21989) @@ -1,5 +1,6 @@ package com.forgon.disinfectsystem.basedatamanager.supplier.service; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; @@ -9,6 +10,7 @@ import java.util.regex.Pattern; import net.sf.json.JSONArray; +import net.sf.json.JSONObject; import org.apache.commons.lang.StringUtils; @@ -69,8 +71,49 @@ expensiveGoodsSupplier.setId(null); } if (StringUtils.isNotBlank(registrationsConfigResult)) { - expensiveGoodsSupplier.setRegistrationCertificate(registrationCertificationManager.getRegistrationCertificate( - registrationsConfigResult,expensiveGoodsSupplier)); + 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 certification = obj.optString("certification"); + String validityTime = obj.optString("validityTime"); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + //失效期转换成date类型 + try { + date = sdf.parse(validityTime); + } catch (Exception e) { + e.printStackTrace(); + } + String type = obj.optString("type"); + if(type.equals("营业执照")){ + expensiveGoodsSupplier.setBusinessLicense(certification); + expensiveGoodsSupplier.setLicenseValidityTime(date); + expensiveGoodsSupplier.setLicenseType(type); + registrationsResuit.remove(obj); + continue; + } + if(type.equals("生产许可证")){ + expensiveGoodsSupplier.setProductionCertificate(certification); + expensiveGoodsSupplier.setProductionValidityTime(date); + expensiveGoodsSupplier.setProductionType(type); + registrationsResuit.remove(obj); + continue; + } + if(type.equals("经营许可证")){ + expensiveGoodsSupplier.setBusinessCertificate(certification); + expensiveGoodsSupplier.setBusinessValidityTime(date); + expensiveGoodsSupplier.setBusinessType(type); + registrationsResuit.remove(obj); + continue; + } + } + if(registrationsResuit.size()>0){ + registrationsConfigResult = registrationsResuit.toString(); //去除掉了2证,只有注册证信息 + expensiveGoodsSupplier.setRegistrationCertificate(registrationCertificationManager.getRegistrationCertificate( + registrationsConfigResult,expensiveGoodsSupplier)); + } } saveOrUpdate(expensiveGoodsSupplier); } Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplier/action/ExpensiveGoodsSupplierAction.java =================================================================== diff -u -r21944 -r21989 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplier/action/ExpensiveGoodsSupplierAction.java (.../ExpensiveGoodsSupplierAction.java) (revision 21944) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplier/action/ExpensiveGoodsSupplierAction.java (.../ExpensiveGoodsSupplierAction.java) (revision 21989) @@ -305,7 +305,7 @@ } /** - * 获取包上传图片总数 + * 获取供应商上传的证件图片总数 */ public void getSupplierUploadPicTotalPage() { int count = expensiveGoodsSupplier.getImagesCount(objectDao); @@ -320,23 +320,8 @@ } /** - * 获取包上传图片总数 + * 供应商包含的证件图片 */ - public void getTousseUploadPicTotalPage() { - int count = expensiveGoodsSupplier.getImagesCount(objectDao); - HttpServletResponse httpServletResponse = StrutsParamUtils - .getResponse(); - httpServletResponse.setCharacterEncoding("UTF-8"); - try { - httpServletResponse.getWriter().print(count); - } catch (IOException e) { - e.printStackTrace(); - } - } - - /** - * 包图片 - */ public void getSupplierPic() { String page = StrutsParamUtils.getPraramValue("page", "1"); byte[] img = null; Index: ssts-web/src/main/webapp/disinfectsystem/basedatamanager/supplier/expensiveGoodsSupplierView.jsp =================================================================== diff -u -r21539 -r21989 --- ssts-web/src/main/webapp/disinfectsystem/basedatamanager/supplier/expensiveGoodsSupplierView.jsp (.../expensiveGoodsSupplierView.jsp) (revision 21539) +++ ssts-web/src/main/webapp/disinfectsystem/basedatamanager/supplier/expensiveGoodsSupplierView.jsp (.../expensiveGoodsSupplierView.jsp) (revision 21989) @@ -60,8 +60,9 @@ var madeCompany = '<%=ExpensiveGoodsSupplier.SUPPLIER_TYPE_MADECOMPANY%>';//生产厂家 var expensivegoodssupplier = '<%=ExpensiveGoodsSupplier.SUPPLIER_TYPE_EXPENSIVEGOODSSUPPLIER%>';//高值耗材供应商 -var imageTypeCertification = '<%=ImageFile.IMAGE_TYPE_CERTIFICATION%>'; //图片类别 -var imageTypeTousse = '<%=ImageFile.IMAGE_TYPE_CERTIFICATION%>'; +var imageTypeCertification = '<%=ImageFile.IMAGE_TYPE_CERTIFICATION%>'; //注册证图片类别 +var imageTypeTousse = '<%=ImageFile.IMAGE_TYPE_CERTIFICATION%>'; +var imageTypeExpensiveSupplier = '<%=ImageFile.IMAGE_TYPE_EXPENSIVESUPPLIER%>'; //高值耗材供应商图片类别 Index: ssts-web/src/main/webapp/disinfectsystem/basedatamanager/supplier/expensiveGoodsSupplierView.js =================================================================== diff -u -r21539 -r21989 --- ssts-web/src/main/webapp/disinfectsystem/basedatamanager/supplier/expensiveGoodsSupplierView.js (.../expensiveGoodsSupplierView.js) (revision 21539) +++ ssts-web/src/main/webapp/disinfectsystem/basedatamanager/supplier/expensiveGoodsSupplierView.js (.../expensiveGoodsSupplierView.js) (revision 21989) @@ -90,6 +90,20 @@ 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 + ""; +//} Ext.onReady(function() { Ext.QuickTips.init(); // 记录cookie(3步) @@ -134,7 +148,8 @@ {type:'string',dataIndex:'cellPhone'}, {type:'string',dataIndex:'rentTousse'}, {type:'string',dataIndex:'email'}, - {type:'string',dataIndex:'address'} + {type:'string',dataIndex:'address'}, + {type:'string',dataIndex:'registrationCertificate'} ] }); @@ -155,6 +170,8 @@ name : 'rentTousse' },{ name : 'email' + },{ + name : 'registrationCertificate' }]; var sign = true; Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/imagefilemanager/ImageFile.java =================================================================== diff -u -r21038 -r21989 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/imagefilemanager/ImageFile.java (.../ImageFile.java) (revision 21038) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/imagefilemanager/ImageFile.java (.../ImageFile.java) (revision 21989) @@ -43,6 +43,8 @@ public static final String IMAGE_TYPE_SPECIFICATION = "器械包说明书"; public static final String IMAGE_TYPE_CERTIFICATION = "注册证图片"; public static final String IMAGE_TYPE_ExpensiveGoodsBill = "高值耗材发票图片"; + public static final String IMAGE_TYPE_EXPENSIVESUPPLIER= "高值耗材供应商图片"; + public static final String IMAGE_TYPE_AUTHORIZEDSUPPLIER= "授权高值耗材供应商图片"; private Long id; Index: ssts-web/src/main/webapp/disinfectsystem/basedatamanager/supplier/expensiveGoodsSupplierForm.js =================================================================== diff -u -r21539 -r21989 --- ssts-web/src/main/webapp/disinfectsystem/basedatamanager/supplier/expensiveGoodsSupplierForm.js (.../expensiveGoodsSupplierForm.js) (revision 21539) +++ ssts-web/src/main/webapp/disinfectsystem/basedatamanager/supplier/expensiveGoodsSupplierForm.js (.../expensiveGoodsSupplierForm.js) (revision 21989) @@ -27,11 +27,50 @@ top.Ext.getCmp('configGrid').startEditing(n, 0);// 开始编辑0单元格 } + function newShopCard(){ + var n = top.Ext.getCmp('configGrid').getStore().getCount();// 获得总行数 + var p = new registrationCertificateConfig({ + id : 0, + certification : '', + validityTime : '', + 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, + certification : '', + validityTime : '', + 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, + certification : '', + validityTime : '', + 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 : 'certification', - header : "注册证号", + header : "证件号", dataIndex : 'certification', - width : 80 , + width : 60 , editor : new top.Ext.form.NumberField({ allowBlank : false, minValue:1, @@ -58,7 +97,7 @@ }, { id : 'validityTime', header : "失效期", - width : 60, + width : 50, dataIndex : 'validityTime', renderer: function(v,p,record){ v = v||{}; @@ -80,14 +119,14 @@ }, { id:'type', header:"类别", - width : 30, + 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', @@ -107,11 +146,11 @@ }, { id:'operation', header:"操作", - width : 60, + width : 50, dataIndex:'operation', hidden:id == 0?true:false, renderer: function(v,p,record){ - var str = " "; + var str = " "; return str; } }]); @@ -131,7 +170,7 @@ singleSelect : false }), tbar : [{ - text : '新增注册证', + text : '新增证件', width : 70 , iconCls : 'btn_ext_add', handler : function() { @@ -143,7 +182,7 @@ } } }, { - text : '删除注册证', + text : '删除证件', iconCls : 'btn_remove', handler : function() { var rows = top.Ext.getCmp('configGrid').getSelectionModel().getSelections();// 返回值为 Record 数组 @@ -364,7 +403,21 @@ editable : false, mode : 'local', triggerAction : 'all', - anchor : '95%' + anchor : '95%', + listeners : { + select : function(combo,record,index ){ + //创建2证,厂商类型不同证件类型不同 + if(top.Ext.getCmp('rentTousse').getValue()== madeCompany){ + configStore.removeAll(); + newShopCard(); + newCertificate(); + }else{ + configStore.removeAll(); + newShopCard(); + newManageCard(); + } + } + } }] }, { layout : 'form', @@ -419,6 +472,47 @@ success : function(form, action) { configStore.removeAll(); //清空上次器械包注册信息 var supplier = action.result.data; +// //初始化供应商的授权许可证生产厂家没这许可证 +// if(supplier.businessCertificate != null && supplier.businessCertificate != ''){ +// var supplierBusinessCertificates = new registrationCertificateConfig({ +// id : supplier.id, +// certification : supplier.businessCertificate, +// validityTime :new Date(supplier.businessValidityTime.time), +// type : supplier.businessType +// }); +// configStore.add(supplierBusinessCertificates); +// } + + //初始化供应商的经营许可证 + if(supplier.businessCertificate != null && supplier.businessCertificate != ''){ + var supplierBusinessCertificates = new registrationCertificateConfig({ + id : supplier.id, + certification : supplier.businessCertificate, + validityTime :new Date(supplier.businessValidityTime.time), + type : supplier.businessType + }); + configStore.add(supplierBusinessCertificates); + } + //初始化供应商的生产许可证 + if(supplier.productionCertificate != null && supplier.productionCertificate != ''){ + var supplierProductionCertificates = new registrationCertificateConfig({ + id : supplier.id, + certification : supplier.productionCertificate, + validityTime :new Date(supplier.productionValidityTime.time), + type : supplier.productionType + }); + configStore.add(supplierProductionCertificates); + } + //初始化供应商的营业执照 + if(supplier.businessLicense != null && supplier.businessLicense != ''){ + var supplierBusinessLicenseCertificates = new registrationCertificateConfig({ + id : supplier.id, + certification : supplier.businessLicense, + validityTime :new Date(supplier.licenseValidityTime.time), + type : supplier.licenseType + }); + configStore.add(supplierBusinessLicenseCertificates); + } //初始化供应商包含的注册证 for(var i = 0 ;i < supplier.registrationCertificate.length;i++){ var supplierRegistrationCertificate = supplier.registrationCertificate[i]; @@ -430,6 +524,11 @@ }); configStore.add(supplierRegistrationCertificates); } + //类型为生产厂家是添加时带出2证 + if(top.Ext.getCmp('rentTousse').getValue()== madeCompany && id==0){ + newShopCard(); + newCertificate(); + } }, failure : function(form, action) { } @@ -455,9 +554,14 @@ if (rows) { for ( var i = 0; i < rows.length; i++) { var index = configStore.indexOf(rows[i]); //获取本行数据下标 - var record = configStore.getAt(index); //用本行数据下标获取点击行的注册证信息 + var record = configStore.getAt(index); //用本行数据下标获取点击行的证件信息 var id = record.data.id; //获取注册证ID - uploadToussePackingImageFile(imageTypeCertification,id); + var type = record.data.type; //获取证件类型 + if(type == '一类' || type == '二类' || type == '三类'){ + uploadToussePackingImageFile(imageTypeCertification,id); //类型为注册证传注册证图片反之为高值耗材供应商证图片 + }else{ + uploadToussePackingImageFile(imageTypeExpensiveSupplier,id); + } } } } @@ -534,35 +638,58 @@ if(sstsConfig.enableExpensiveGoods && rentTousse == madeCompany){ //高值耗材启用并且厂商类型为生产厂家才可以添加注册证 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; if(certification == '' || certification == null || certification == ' '){ - showResult('请填写注册证号!'); + showResult('请填写证号!'); this.enable(); return false; } var validityTime = top.Ext.getCmp('configGrid').getView().getCell(i,1).firstChild.innerText; if(validityTime == '' || validityTime == null || validityTime == ' '){ - showResult("请填写失效日期!"); + showResult("请填写失效日期!"); this.enable(); return false; } } - } - var rentTousse = top.Ext.getCmp('rentTousse').getValue(); + var certificationCount = configStore.getCount(); - if(certificationCount > 0 && rentTousse != madeCompany){ //高值耗材启用并且厂商类型为生产厂家才可以添加注册证 - showResult("厂商类型不为生产厂家不能添加注册证!"); - this.enable(); - return false; + var certificateTypes = new Array(); + for(var i = 0 ;i < certificationCount;i++){ + var licenseType = top.Ext.getCmp('configGrid').getView().getCell(i,2).firstChild.innerText; + certificateTypes.push(licenseType); } + if(!certificateTypes.contains('营业执照')){ + showResult("营业执照缺少!"); + this.enable(); + return false; + } + if(rentTousse == madeCompany){ + if(!certificateTypes.contains('生产许可证')){ + showResult("生产许可证缺少!"); + this.enable(); + return false; + } + + if(!certificateTypes.contains('一类') && !certificateTypes.contains('二类') && !certificateTypes.contains('三类')){ + showResult("注册证证缺少!"); + this.enable(); + return false; + } + }else{ + if(!certificateTypes.contains('经营许可证')){ + showResult("经营许可证缺少!"); + this.enable(); + return false; + } + } var rentTousse = top.Ext.getCmp('rentTousse').getValue(); if(rentTousse == madeCompany && !sstsConfig.enableExpensiveGoods){