Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplier/service/ExpensiveGoodsSupplierManagerImpl.java =================================================================== diff -u -r22005 -r22265 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplier/service/ExpensiveGoodsSupplierManagerImpl.java (.../ExpensiveGoodsSupplierManagerImpl.java) (revision 22005) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplier/service/ExpensiveGoodsSupplierManagerImpl.java (.../ExpensiveGoodsSupplierManagerImpl.java) (revision 22265) @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.Date; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.regex.Matcher; @@ -18,10 +19,11 @@ import com.forgon.directory.acegi.tools.AcegiHelper; import com.forgon.disinfectsystem.entity.basedatamanager.supplier.ExpensiveGoodsSupplier; import com.forgon.disinfectsystem.entity.basedatamanager.supplier.Supplier; +import com.forgon.disinfectsystem.entity.expensivegoods.AuthorizationCertification; +import com.forgon.disinfectsystem.entity.expensivegoods.ExpensiveGoodsAuthorization; import com.forgon.security.tools.Util; import com.forgon.tools.GB2Alpha; import com.forgon.tools.GB2WB; -import com.forgon.tools.StrutsParamUtils; import com.forgon.tools.date.DateTools; import com.forgon.tools.hibernate.ObjectDao; @@ -110,9 +112,14 @@ registrationsResuit.remove(obj); continue; } + //删除授权证信息,授权证只能在授权界面修改或添加 + if(certificationType.equals(ExpensiveGoodsSupplier.CERTIFICATE_TYPE_AUTHORIZATION)){ + registrationsResuit.remove(obj); + continue; + } } if(registrationsResuit.size()>0){ - registrationsConfigResult = registrationsResuit.toString(); //去除掉了2证,只有注册证信息 + registrationsConfigResult = registrationsResuit.toString(); //去除掉了除注册证外其他证信息,只保留注册证信息 expensiveGoodsSupplier.setRegistrationCertificate(registrationCertificationManager.getRegistrationCertificate( registrationsConfigResult,expensiveGoodsSupplier)); } @@ -320,4 +327,17 @@ return mapList; } + @SuppressWarnings("unchecked") + @Override + public List getAuthorizationCertificationList( + Long expensiveGoodsSupplierId) { + String sql = " where po.authorizedCompanyId = " + expensiveGoodsSupplierId; + List expensiveGoodsAuthorization = objectDao.getBySql_ForUpdate2(ExpensiveGoodsAuthorization.class.getSimpleName(), sql); + HashSet authorizationCertification = new HashSet(); + for(ExpensiveGoodsAuthorization ega : expensiveGoodsAuthorization){ + authorizationCertification.addAll(ega.getRelevancyGoodsAuthorization().getAuthorizationCertificationList()); + } + List authorizationCertifications = new ArrayList(authorizationCertification); + return authorizationCertifications; + } } Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplier/action/ExpensiveGoodsSupplierAction.java =================================================================== diff -u -r22174 -r22265 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplier/action/ExpensiveGoodsSupplierAction.java (.../ExpensiveGoodsSupplierAction.java) (revision 22174) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplier/action/ExpensiveGoodsSupplierAction.java (.../ExpensiveGoodsSupplierAction.java) (revision 22265) @@ -39,6 +39,8 @@ import com.forgon.disinfectsystem.entity.basedatamanager.supplier.RegistrationCertification; import com.forgon.disinfectsystem.entity.basedatamanager.supplier.Supplier; import com.forgon.disinfectsystem.entity.basedatamanager.supplyroomconfig.SupplyRoomConfig; +import com.forgon.disinfectsystem.entity.expensivegoods.AuthorizationCertification; +import com.forgon.disinfectsystem.entity.expensivegoods.ExpensiveGoodsAuthorization; import com.forgon.register.service.RegisterManagerImpl; import com.forgon.systemsetting.model.HttpOption; import com.forgon.systemsetting.service.HttpOptionManager; @@ -194,11 +196,14 @@ PropertyFilter propertyFilter = new JsonPropertyFilter(new String[] {}); config.setJsonPropertyFilter(propertyFilter); config.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT); + List authorizationCertification = expensiveGoodsSupplierManager.getAuthorizationCertificationList(expensiveGoodsSupplier.getId()); Map map = new HashMap(); map.put("success", true); map.put("data", expensiveGoodsSupplier); + map.put("authorizationCertification",authorizationCertification); JSONObject jsonObject = JSONObject.fromObject(map, config); String jsonStr = jsonObject.toString(); + StrutsResponseUtils.output(jsonStr); try { StrutsParamUtils.getResponse().getWriter().println(jsonStr); } catch (IOException e) { Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplier/service/ExpensiveGoodsSupplierManager.java =================================================================== diff -u -r21944 -r22265 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplier/service/ExpensiveGoodsSupplierManager.java (.../ExpensiveGoodsSupplierManager.java) (revision 21944) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplier/service/ExpensiveGoodsSupplierManager.java (.../ExpensiveGoodsSupplierManager.java) (revision 22265) @@ -2,9 +2,8 @@ import java.util.List; import java.util.Map; -import java.util.Date; import com.forgon.disinfectsystem.entity.basedatamanager.supplier.ExpensiveGoodsSupplier; -import com.forgon.disinfectsystem.entity.basedatamanager.supplier.Supplier; +import com.forgon.disinfectsystem.entity.expensivegoods.AuthorizationCertification; /** @@ -46,4 +45,11 @@ public void saveOrUpdate(ExpensiveGoodsSupplier expensiveGoodsSupplier, String registrationsConfigResult); + /** + * 根据供应商Id查出所拥有的授权证 + * @param expensiveGoodsSupplierId + * @return + */ + public List getAuthorizationCertificationList(Long expensiveGoodsSupplierId); + } Index: ssts-web/src/main/webapp/disinfectsystem/basedatamanager/supplier/expensiveGoodsSupplierForm.js =================================================================== diff -u -r22153 -r22265 --- ssts-web/src/main/webapp/disinfectsystem/basedatamanager/supplier/expensiveGoodsSupplierForm.js (.../expensiveGoodsSupplierForm.js) (revision 22153) +++ ssts-web/src/main/webapp/disinfectsystem/basedatamanager/supplier/expensiveGoodsSupplierForm.js (.../expensiveGoodsSupplierForm.js) (revision 22265) @@ -3,8 +3,11 @@ var supplierWin; var registrationPanel; var registrationConfig; +var authorizationCertifications; //授权证信息集合 +var expensiveGoodsSupplierId; //供应商Id function addAndEditSupplier(id) { this.id = id; + this.expensiveGoodsSupplierId = id; Ext.BLANK_IMAGE_URL = WWWROOT + '/ext/resources/images/default/s.gif'; var isDeposableStore = new Ext.data.SimpleStore( { fields : [ 'value' ], @@ -104,7 +107,25 @@ allowBlank : false, minValue:1, listeners : { - + specialKey : function(field,event){ + if(event.getKey()==13 ){ + if(isLastRow){//是最后一行,新增空白行 + newRow(); + } + } + }, + focus : function(value) { + //获取所点证件的信息 + var rows = top.Ext.getCmp('configGrid').getSelectionModel().getSelections();// 返回值为 Record 数组 + //获取证件类型 + var certificationType = rows[0].data.certificationType; + //对比是否是授权类型 + if(certificationType == authorization){ + showResult('授权证只能在授权界面修改和添加!'); + top.Ext.getCmp('configGrid').stopEditing(); + return false; + } + } } }) }, { @@ -127,7 +148,28 @@ altFormats : 'Y-m-d|Y-n-j|y-n-j|y-m-j|y-m-d|y-n-d|Y-n-d|Y-m-j|Ymd|Ynj|ynj|ymj|ymd|ynd|Ynd|Ymj|Y/m/d|Y/n/j|y/n/j|y/m/j|y/m/d|y/n/d|Y/n/d|Y/m/j', format : 'Y-m-d', editable : false, - allowBlank : false + allowBlank : false, + listeners : { + specialKey : function(field,event){ + if(event.getKey()==13 ){ + if(isLastRow){//是最后一行,新增空白行 + newRow(); + } + } + }, + focus : function(value) { + //获取所点证件的信息 + var rows = top.Ext.getCmp('configGrid').getSelectionModel().getSelections();// 返回值为 Record 数组 + //获取证件类型 + var certificationType = rows[0].data.certificationType; + //对比是否是授权类型 + if(certificationType == authorization){ + showResult('授权证只能在授权界面修改和添加!'); + top.Ext.getCmp('configGrid').stopEditing(); + return false; + } + } + } }) }, { id:'type', @@ -162,7 +204,6 @@ //对比是否是注册证类型 if(certificationType != registrationCertification){ showResult('只有注册证可以选择注册证类别!'); - value.setValue(''); top.Ext.getCmp('configGrid').stopEditing(); return false; } @@ -251,7 +292,8 @@ Ext.Ajax.request({ url : WWWROOT + '/disinfectSystem/baseData/expensiveGoodsSupplierAction!getSupplierUploadPicTotalPage.do', params : { - id : id + id : id , + authorizationCertifications : authorizationCertifications }, success : function(result){ var pageStr = result.responseText; @@ -498,16 +540,7 @@ 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); -// } + authorizationCertifications = action.result.authorizationCertification; //初始化供应商的经营许可证 if(supplier.businessCertificate != null && supplier.businessCertificate != ''){ @@ -554,6 +587,20 @@ }); configStore.add(supplierRegistrationCertificates); } + + //初始化供应商包含的授权证 + for(var i = 0 ;i < authorizationCertifications.length;i++){ + var supplierAuthorizationCertification = authorizationCertifications[i]; + var supplierRegistrationCertificates = new registrationCertificateConfig({ + id : supplierAuthorizationCertification.id, + certificationType : authorization, + certification : supplierAuthorizationCertification.authorizationNumber, + validityTime :new Date(supplierAuthorizationCertification.validityTime.time), + type : '' + }); + configStore.add(supplierRegistrationCertificates); + } + //类型为生产厂家是添加时带出2证 if(top.Ext.getCmp('rentTousse').getValue()== madeCompany && id==0){ newShopCard(); @@ -585,12 +632,18 @@ for ( var i = 0; i < rows.length; i++) { var index = configStore.indexOf(rows[i]); //获取本行数据下标 var record = configStore.getAt(index); //用本行数据下标获取点击行的证件信息 - var id = record.data.id; //获取注册证ID - var type = record.data.type; //获取证件类型 - if(type == '一类' || type == '二类' || type == '三类'){ + var id = record.data.id; //获取证件ID + var type = record.data.certificationType; //获取证件类型 + if(type == registrationCertification){ //注册证 uploadToussePackingImageFile(imageTypeCertification,id); //类型为注册证传注册证图片反之为高值耗材供应商证图片 - }else{ - uploadToussePackingImageFile(imageTypeExpensiveSupplier,id); + }else if(type == businessCertificate){ //经营许可证 + uploadToussePackingImageFile(imageTypeExpensiveSupplier,id,expensiveGoodsSupplierId); + }else if(type == businessLicense){ //营业执照 + uploadToussePackingImageFile(imageTypeBusinessLicense,id,expensiveGoodsSupplierId); + }else if(type == authorization){ //授权证 + uploadToussePackingImageFile(imageTypeAuthorizedSupplier,id,expensiveGoodsSupplierId); + }else if(type == productionCertificate){ //生产许可证 + uploadToussePackingImageFile(imageTypeProductionCertificate,id,expensiveGoodsSupplierId); } } } Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/supplier/ExpensiveGoodsSupplier.java =================================================================== diff -u -r22005 -r22265 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/supplier/ExpensiveGoodsSupplier.java (.../ExpensiveGoodsSupplier.java) (revision 22005) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/supplier/ExpensiveGoodsSupplier.java (.../ExpensiveGoodsSupplier.java) (revision 22265) @@ -150,6 +150,7 @@ public static final String CERTIFICATE_TYPE_PRODUCTIONCERTIFICATE = "生产许可证"; public static final String CERTIFICATE_TYPE_BUSINESSCERTIFICATE= "经营许可证"; public static final String CERTIFICATE_TYPE_BUSINESSLICENSE= "营业执照"; + public static final String CERTIFICATE_TYPE_AUTHORIZATION= "授权证"; public static Map ColumnNameAndPoPropertyNameMap= new LinkedHashMap(7); @@ -391,7 +392,7 @@ public int getImagesCount(ObjectDao objectDao) { String sql = " where po.imageType='" + ImageFile.IMAGE_TYPE_CERTIFICATION + "' and po.objectId in (select id from "+ RegistrationCertification.class.getSimpleName() +" where expensiveGoodsSupplier.id=" + id + - ") or po.objectId =" + id; + ") or po.expensiveGoodsSupplierId =" + id; int count = objectDao.countObjectBySql(ImageFile.class.getSimpleName(), sql); return count; } @@ -404,7 +405,7 @@ */ public ImageFile getImageAt(ObjectDao objectDao, int index) { Session session = objectDao.getHibernateSession(); - Query query = session.createQuery("from ImageFile where objectId in (select id from "+ RegistrationCertification.class.getSimpleName() +" where expensiveGoodsSupplier.id=" + id + ") or objectId =" + id + " order by serialNum asc"); + Query query = session.createQuery("from ImageFile where objectId in (select id from "+ RegistrationCertification.class.getSimpleName() +" where expensiveGoodsSupplier.id=" + id + ") or expensiveGoodsSupplierId =" + id + " order by serialNum asc"); // query.setLong("id", id); query.setMaxResults(1); //最大一条数据 query.setFirstResult(index); //根据页数找第几张图片 Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/imagefilemanager/ImageFile.java =================================================================== diff -u -r21989 -r22265 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/imagefilemanager/ImageFile.java (.../ImageFile.java) (revision 21989) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/imagefilemanager/ImageFile.java (.../ImageFile.java) (revision 22265) @@ -43,8 +43,10 @@ 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= "授权高值耗材供应商图片"; + public static final String IMAGE_TYPE_EXPENSIVESUPPLIER= "高值耗材供应商经营许可证图片"; + public static final String IMAGE_TYPE_AUTHORIZEDSUPPLIER= "高值耗材供应商授权证图片"; + public static final String IMAGE_TYPE_BUSINESSLICENSE= "高值耗材供应商营业执照图片"; + public static final String IMAGE_TYPE_PRODUCTIONCERTIFICATE= "高值耗材供应商生产许可证图片"; private Long id; @@ -101,6 +103,10 @@ */ private String thumbnailImagePath; + /** + * 高值耗材供应商ID(为授权证图片冗余个字段方便高值耗材供应商显示授权证图片) + */ + private Long expensiveGoodsSupplierId; @Id @GeneratedValue(strategy = GenerationType.AUTO) @@ -215,4 +221,12 @@ this.thumbnailImagePath = thumbnailImagePath; } + public Long getExpensiveGoodsSupplierId() { + return expensiveGoodsSupplierId; + } + + public void setExpensiveGoodsSupplierId(Long expensiveGoodsSupplierId) { + this.expensiveGoodsSupplierId = expensiveGoodsSupplierId; + } + } Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/imagefilemanager/service/ImageFileManagerImpl.java =================================================================== diff -u -r21989 -r22265 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/imagefilemanager/service/ImageFileManagerImpl.java (.../ImageFileManagerImpl.java) (revision 21989) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/imagefilemanager/service/ImageFileManagerImpl.java (.../ImageFileManagerImpl.java) (revision 22265) @@ -811,6 +811,26 @@ } authorizationCertification.setIsUploadImage("是"); objectDao.saveOrUpdate(authorizationCertification); + }else if(ImageFile.IMAGE_TYPE_BUSINESSLICENSE + .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_PRODUCTIONCERTIFICATE + .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 { ret = false; } Index: ssts-web/src/main/webapp/disinfectsystem/basedatamanager/supplier/expensiveGoodsSupplierView.jsp =================================================================== diff -u -r22152 -r22265 --- ssts-web/src/main/webapp/disinfectsystem/basedatamanager/supplier/expensiveGoodsSupplierView.jsp (.../expensiveGoodsSupplierView.jsp) (revision 22152) +++ ssts-web/src/main/webapp/disinfectsystem/basedatamanager/supplier/expensiveGoodsSupplierView.jsp (.../expensiveGoodsSupplierView.jsp) (revision 22265) @@ -62,11 +62,15 @@ var expensivegoodssupplier = '<%=ExpensiveGoodsSupplier.SUPPLIER_TYPE_EXPENSIVEGOODSSUPPLIER%>';//高值耗材供应商 var imageTypeCertification = '<%=ImageFile.IMAGE_TYPE_CERTIFICATION%>'; //注册证图片类别 var imageTypeTousse = '<%=ImageFile.IMAGE_TYPE_CERTIFICATION%>'; -var imageTypeExpensiveSupplier = '<%=ImageFile.IMAGE_TYPE_EXPENSIVESUPPLIER%>'; //高值耗材供应商图片类别 +var imageTypeExpensiveSupplier = '<%=ImageFile.IMAGE_TYPE_EXPENSIVESUPPLIER%>'; //高值耗材供应商经营许可证图片类别 +var imageTypeBusinessLicense = '<%=ImageFile.IMAGE_TYPE_BUSINESSLICENSE%>'; //高值耗材供应商营业执照图片类别 +var imageTypeProductionCertificate = '<%=ImageFile.IMAGE_TYPE_PRODUCTIONCERTIFICATE%>'; //高值耗材供应商生产许可证图片类别 +var imageTypeAuthorizedSupplier = '<%=ImageFile.IMAGE_TYPE_AUTHORIZEDSUPPLIER%>'; //高值耗材供应商授权证图片类别 var registrationCertification = '<%=ExpensiveGoodsSupplier.CERTIFICATE_TYPE_REGISTRATIONCERTIFICATION%>'; //注册证类型 var productionCertificate = '<%=ExpensiveGoodsSupplier.CERTIFICATE_TYPE_PRODUCTIONCERTIFICATE%>'; //生产许可证类型 var businessCertificate = '<%=ExpensiveGoodsSupplier.CERTIFICATE_TYPE_BUSINESSCERTIFICATE%>'; //经营许可证类型 var businessLicense = '<%=ExpensiveGoodsSupplier.CERTIFICATE_TYPE_BUSINESSLICENSE%>'; //营业执照类型 +var authorization = '<%=ExpensiveGoodsSupplier.CERTIFICATE_TYPE_AUTHORIZATION%>'; //授权证类型 Index: ssts-web/src/main/webapp/disinfectsystem/assestManagement/expensiveGoods/expensiveGoodsAuthorizationForm.js =================================================================== diff -u -r22121 -r22265 --- ssts-web/src/main/webapp/disinfectsystem/assestManagement/expensiveGoods/expensiveGoodsAuthorizationForm.js (.../expensiveGoodsAuthorizationForm.js) (revision 22121) +++ ssts-web/src/main/webapp/disinfectsystem/assestManagement/expensiveGoods/expensiveGoodsAuthorizationForm.js (.../expensiveGoodsAuthorizationForm.js) (revision 22265) @@ -1,5 +1,6 @@ var registrationPanel; var id; +var expensiveGoodsSupplierId; function addExpensiveGoodsAuthorization(id,ishidden,isclear){ this.id = id; var supplierStore = new top.Ext.data.Store({ @@ -596,7 +597,8 @@ var record = configStore.getAt(index); //用本行数据下标获取点击行的证件信息 var id = record.data.id; //获取证ID var type = record.data.type; //获取证件类型 - uploadToussePackingImageFile(imageTypeAuthorized,id); //类型为高值耗材供应商证授权图片 + expensiveGoodsSupplierId = top.Ext.getCmp('authorizedCompanyName').getValue();//被授权的供应商Id + uploadToussePackingImageFile(imageTypeAuthorized,id,expensiveGoodsSupplierId); //类型为高值耗材供应商证授权图片 } } }