Index: ssts-web/src/main/webapp/disinfectsystem/basedatamanager/supplier/supplierView.jsp
===================================================================
diff -u -r17150 -r20837
--- ssts-web/src/main/webapp/disinfectsystem/basedatamanager/supplier/supplierView.jsp (.../supplierView.jsp) (revision 17150)
+++ ssts-web/src/main/webapp/disinfectsystem/basedatamanager/supplier/supplierView.jsp (.../supplierView.jsp) (revision 20837)
@@ -1,6 +1,7 @@
<%@page import="com.forgon.disinfectsystem.entity.basedatamanager.supplier.Supplier"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ include file="/common/taglibs.jsp"%>
+<%@page import="com.forgon.disinfectsystem.entity.basedatamanager.imagefilemanager.ImageFile"%>
@@ -15,8 +16,10 @@
+
+
Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplier/action/RegistrationCertificationAction.java
===================================================================
diff -u -r20824 -r20837
--- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplier/action/RegistrationCertificationAction.java (.../RegistrationCertificationAction.java) (revision 20824)
+++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplier/action/RegistrationCertificationAction.java (.../RegistrationCertificationAction.java) (revision 20837)
@@ -46,16 +46,17 @@
@Action(value = "SupplierRegistrationCertificateAction")
public class RegistrationCertificationAction implements ModelDriven, Preparable {
- private RegistrationCertification supplierRegistrationCertificate;
+ private RegistrationCertification registrationCertification;
- private RegistrationCertificationManager supplierRegistrationCertificateManager;
+ private RegistrationCertificationManager registrationCertificationManager;
private String spell;
- public void setSupplierRegistrationCertificateManager(
- RegistrationCertificationManager supplierRegistrationCertificateManager) {
- this.supplierRegistrationCertificateManager = supplierRegistrationCertificateManager;
+ public void setRegistrationCertificationManager(
+ RegistrationCertificationManager registrationCertificationManager) {
+ this.registrationCertificationManager = registrationCertificationManager;
}
+
public void setSpell(String spell) {
this.spell = spell;
}
@@ -77,7 +78,7 @@
e1.printStackTrace();
}
try {
- jsonStr = supplierRegistrationCertificateManager
+ jsonStr = registrationCertificationManager
.searchSupplierRegistrationCertificate(spell).toString();
} catch (Exception e) {
e.printStackTrace();
@@ -89,16 +90,16 @@
public void prepare() throws Exception {
String id = StrutsParamUtils.getPraramValue("id", "");
if (StringUtils.isNotBlank(id) && !id.equals("0")) {
- supplierRegistrationCertificate = supplierRegistrationCertificateManager.getById(id);
+ registrationCertification = registrationCertificationManager.getById(id);
} else {
- supplierRegistrationCertificate = new RegistrationCertification();
+ registrationCertification = new RegistrationCertification();
}
}
@Override
public RegistrationCertification getModel() {
- return supplierRegistrationCertificate;
+ return registrationCertification;
}
Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplier/service/RegistrationCertificationManagerImpl.java
===================================================================
diff -u -r20824 -r20837
--- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplier/service/RegistrationCertificationManagerImpl.java (.../RegistrationCertificationManagerImpl.java) (revision 20824)
+++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplier/service/RegistrationCertificationManagerImpl.java (.../RegistrationCertificationManagerImpl.java) (revision 20837)
@@ -1,12 +1,17 @@
package com.forgon.disinfectsystem.basedatamanager.supplier.service;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
import java.util.ArrayList;
+import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import org.apache.commons.lang.StringUtils;
+
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
@@ -87,29 +92,47 @@
registrationsConfigResult = registrationsConfigResult.replace("\\\"", "\"");
}
List reCertificates = new ArrayList();
+ List registrationCertifications = supplier.getRegistrationCertificate();
JSONArray jsonArray = JSONArray.fromObject(registrationsConfigResult);
+ List list = new ArrayList(); //判断前台有没有进行删除注册证设的List集合
+ String id = null ;
+ Date date = null; //初始化date
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject obj = jsonArray.getJSONObject(i);
- String registrationNumber = obj.optString("registrationNumber");
+ String certification = obj.optString("certification");
String validityTime = obj.optString("validityTime");
-// String time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(validityTime);
-// @SuppressWarnings("deprecation")
-// Date date=new Date(time);
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+// String times = (validityTime.substring(83,86)+ 1990)+ "-" +((validityTime.substring(47,50)+ 1990)+ "-" +(validityTime.substring(47,30)+ 1990);
+ if(!validityTime.equals("null") && !validityTime.equals(" ") ){
+ String time=validityTime.substring(0,10);
+ try {
+ date = sdf.parse(time);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
String type = obj.optString("type");
- String id = obj.optString("id");
+ id = obj.optString("id");
+ list.add(Long.parseLong(id));
RegistrationCertification registration;
- if(id != null ){
- registration = getById(id);
+ if(Long.parseLong(id) == 0){
+ registration = new RegistrationCertification();
}else{
- registration = new RegistrationCertification();
+ registration = getById(id);
}
- registration.setCertification(registrationNumber);
+ registration.setCertification(certification);
registration.setType(type);
- registration.setValidityTime(null);
+ registration.setValidityTime(date);
registration.setSupplier(supplier);
objectDao.saveOrUpdate(registration);
reCertificates.add(registration);
}
+ for(RegistrationCertification registrationCertification : registrationCertifications){
+ //原有的注册证和前台传过来的值比较少了就执行删除操作
+ if(!list.contains(registrationCertification.getId()) && Long.parseLong(id) != 0 ){
+ objectDao.deleteById(RegistrationCertification.class.getSimpleName(), registrationCertification.getId().toString());;
+ }
+ }
return reCertificates;
}
}
Index: ssts-web/src/main/webapp/disinfectsystem/basedatamanager/supplier/supplierForm.js
===================================================================
diff -u -r14417 -r20837
--- ssts-web/src/main/webapp/disinfectsystem/basedatamanager/supplier/supplierForm.js (.../supplierForm.js) (revision 14417)
+++ ssts-web/src/main/webapp/disinfectsystem/basedatamanager/supplier/supplierForm.js (.../supplierForm.js) (revision 20837)
@@ -1,14 +1,260 @@
var id;
var formObj;
var supplierWin;
+var registrationPanel;
+var registrationConfig;
function addAndEditSupplier(id) {
this.id = id;
var isDeposableStore = new Ext.data.SimpleStore( {
fields : [ 'value' ],
- data : [ [ renttousse ], [ madeCompany ],[ supplier ] ]
+ data : [ [ renttousse ], [ madeCompany ],[ supplier ],[expensivegoodssupplier] ]
});
+
+ configStore = new top.Ext.data.Store({
+ });
+
+ function newRow(){
+ 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 : "注册证号",
+ dataIndex : 'certification',
+ width : 100 ,
+ editor : new top.Ext.form.NumberField({
+ allowBlank : false,
+ minValue:1,
+ listeners : {
+ change : function(numberField, newValue, oldValue) {
+ var rowIndex = top.Ext.getCmp('configGrid').getStore().getCount();//grid的行数
+ var configStore = top.Ext.getCmp('configGrid').getStore();
+ var judge = [];
+ for(var i =0 ;i < rowIndex ; i++ ){
+ var electRecord = configStore.getAt(i);
+ var a = configStore.getAt(i).data.certification;
+ if(judge.contains(newValue)){
+ showResult('已包含注册证:'+ newValue +',不可重复添加!');
+ judge.splice(0,judge.length); //数组清空
+ numberField.setValue(oldValue);
+ return false;
+ }else{
+ judge.push(electRecord.get('certification'));
+ }
+ }
+ },
+ specialKey : function(field,event){
+ if(event.getKey()==13 ){
+ if(isLastRow){//是最后一行,新增空白行
+ newRow();
+ }
+ }2017-11-15
+ }
+ }
+ })
+ }, {
+ id : 'validityTime',
+ header : "失效期",
+ width : 100,
+ dataIndex : 'validityTime',
+ renderer: function(v,p,record){
+ v = v||{};
+ if(v.format){
+ return v.format('Y-m-d');
+ }else if(v.year && v.month && v.date){
+ return (v.year + 1900) + "-" + (v.month+1) + "-" + v.date;
+ }
+ return "";
+ },
+ editor : new top.Ext.form.DateExtensiableField( {
+ readOnly : false,
+ minWidth:177,
+ 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
+ })
+ }, {
+ id:'type',
+ header:"类别",
+ width : 30,
+ dataIndex:'type',
+ editor : new top.Ext.form.ComboBox({
+ xtype : 'combo',
+ valueField : 'type',
+ displayField : 'type',
+ store : new Ext.data.SimpleStore({
+ data:[['一类'],['二类'],['三类']],
+ fields:['type']
+ }),
+ mode : 'local',
+ forceSelection : true,
+ editable : false,
+ triggerAction : 'all',
+ listeners : {
+ specialKey : function(field,event){
+ if(event.getKey()==13 ){
+ if(isLastRow){//是最后一行,新增空白行
+ newRow();
+ }
+ }
+ }
+ }
+ })
+ }]);
+ registrationPanel = new top.Ext.grid.EditorGridPanel({
+ id : 'configGrid',
+ name : 'configGrid',
+ store : configStore,
+ cm : registrationCm,
+ height:250,
+ frame : false,
+ bodyStyle : 'border:1px solid #afd7af',
+ autoExpandColumn : 'count',
+ viewConfig: {forceFit:true},
+ clicksToEdit : 1,//设置点击几次才可编辑
+ selModel : new top.Ext.grid.RowSelectionModel({
+ singleSelect : false
+ }),
+ tbar : [{
+ text : '新增注册证',
+ width : 70 ,
+ iconCls : 'btn_ext_add',
+ handler : function() {
+ newRow();
+ }
+ }, {
+ text : '删除注册证',
+ iconCls : 'btn_remove',
+ handler : function() {
+ var rows = top.Ext.getCmp('configGrid').getSelectionModel().getSelections();// 返回值为 Record 数组
+ if (rows.length == 0) {
+ showResult('最少选择一条信息,进行删除!');
+ } else {
+ top.Ext.MessageBox.confirm('提示框', '您确定要进行该操作?', function(btn) {
+ if (btn == 'yes') {
+ if (rows) {
+ for ( var i = 0; i < rows.length; i++) {
+ configStore.remove(rows[i]);
+ }
+ }
+ }
+ });
+ }
+ }
+ }],
+ listeners: {
+ beforeedit: function(obj){
+ eventEdit = obj;
+ },
+ afteredit:function(grid){
+ eventEdit = null;
+ }
+ }
+ });
+
+ var page = 1;
+ var totalPage = 0;
+ var toolbarPage = new top.Ext.Toolbar.TextItem({
+ text : '第1页'
+ });
+ var toolbarTotalPage = new top.Ext.Toolbar.TextItem({
+ text : '共0页'
+ });
+
+
+
+ Ext.Ajax.request({
+ url : WWWROOT + '/disinfectSystem/baseData/supplierAction!getSupplierUploadPicTotalPage.do',
+ params : {
+ id : id
+ },
+ success : function(result){
+ var pageStr = result.responseText;
+ totalPage = parseInt(pageStr);
+ var element = top.Ext.get(toolbarTotalPage.el);
+ element.update('共' + totalPage + '页');
+ },
+ failure : function(){
+
+ }
+ });
+
+ var imagePanel = new top.Ext.Panel({
+ id : 'imagePanel',
+ layout : 'fit',
+ height : 270,
+ items : [{
+ xtype : 'box',
+ id : 'browseImage',
+ fieldLabel : "预览图片",
+ autoEl : {
+ id : 'imageBrowse',
+ tag : 'img',
+ autoHeight:true,
+ src : WWWROOT + '/ext/resources/images/default/s.gif',
+ style : 'filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale);',
+ complete : 'off'
+ }
+ }]
+ });
+
+ var showTousseImage = new top.Ext.Panel({
+ items : [{
+ xtype : 'panel',
+ id : 'pageToolbar',
+ bbar : ['->',{
+ xtype : 'button',
+ text : '<<',
+ tooltip :"上一页",
+ handler : function(){
+ if (page - 1 <= 0) {
+ showResult('已是第一页');
+ return;
+ }
+ page = page - 1;
+ var url = WWWROOT + '/disinfectSystem/baseData/supplierAction!getSupplierPic.do?id=' + id + '&page=' + page +'&time='+new Date();;
+ var imageBrowse = top.Ext.get('imageBrowse');
+ var image = imageBrowse.dom;
+ image.src = url;// 覆盖原来的图片
+ var element = top.Ext.get(toolbarPage.el);
+ element.update('第' + page + '页');
+ }
+ },
+ toolbarPage,
+ toolbarTotalPage,{
+ xtype : 'button',
+ text : '>>',
+ tooltip :"下一页",
+ handler : function() {
+ if (page + 1 > totalPage) {
+ showResult('已是最后一页');
+ return;
+ }
+ page = page + 1;
+ var url = WWWROOT + '/disinfectSystem/baseData/supplierAction!getSupplierPic.do?id=' + id + '&page=' + page +'&time='+new Date();
+ var imageBrowse = top.Ext.get('imageBrowse');
+ var image = imageBrowse.dom;
+ image.src = url;// 覆盖原来的图片
+ var element = top.Ext.get(toolbarPage.el);
+ element.update('第' + page + '页');
+ }
+ }]
+ },imagePanel]
+ });
+
+
formObj = new top.Ext.FormPanel( {
id : 'supplierForm',
frame : true,
@@ -108,6 +354,22 @@
triggerAction : 'all',
anchor : '95%'
}]
+ }, {
+ layout : 'form',
+ columnWidth : 0.5,
+ labelWidth : 70,
+ items : [
+ registrationPanel
+ ]
+ }, {
+ layout : 'form',
+ columnWidth : 0.5,
+ bodyStyle : 'border:1px solid #afd7af',
+ height:250,
+ labelWidth : 60,
+ items : [
+ showTousseImage
+ ]
}]
} ],
buttons : [ {
@@ -118,14 +380,21 @@
text : '取消',
id : 'saveAndNewBtn',
handler : cancel
+ }, {
+ text : '注册证图片管理',
+ id : 'uploadFile',
+ hidden:id == 0?true:false,
+ handler : function(){
+ uploadToussePackingImageFile(imageTypeSupplier,id);
+ }
} ]
});
supplierWin = new top.Ext.Window( {
id : 'supplierWin',
layout : 'fit',
title : '供应商信息',
- width : 600,
+ width : 800,
border : false,
modal : true,
autoHeight : true,
@@ -139,19 +408,56 @@
url : WWWROOT + '/disinfectSystem/baseData/supplierAction!loadSupplier.do',
method : 'GET',
waitMsg : '正在加载数据,请稍候',
+ params : {
+ id : id
+ },
success : function(form, action) {
- if(id==0) {
+ configStore.removeAll(); //清空上次器械包注册信息
+ var supplier = action.result.data;
+ //初始化供应商包含的注册证
+ for(var i = 0 ;i < supplier.registrationCertificate.length;i++){
+ var supplierRegistrationCertificate = supplier.registrationCertificate[i];
+ var supplierRegistrationCertificates = new registrationCertificateConfig({
+ id : supplierRegistrationCertificate.id,
+ certification : supplierRegistrationCertificate.certification,
+ validityTime : supplierRegistrationCertificate.validityTime,
+ type : supplierRegistrationCertificate.type
+ });
+ configStore.add(supplierRegistrationCertificates);
}
},
failure : function(form, action) {
- },
- params : {
- id : id
}
});
+
}
+var registrationCertificateConfig = Ext.data.Record.create([
+ {name : 'id'},
+ {name : 'certification'},
+ {name : 'validityTime'},
+ {name : 'type'}
+]);
+
function validateAndSubmit(){
+ //供应商相关注册证信息
+ var registrations = [];
+ var configStore = top.Ext.getCmp('configGrid').getStore();
+ var rowIndex = top.Ext.getCmp('configGrid').getStore().getCount();//grid的行数
+ for(var i =0 ;i < rowIndex ; i++ ){
+ var record = configStore.getAt(i);
+ var id = configStore.getAt(i).data.id;
+ var certification = record.get('certification');
+ var validityTime = record.get('validityTime');
+ var type = record.get('type');
+ var registration = {
+ id : id,
+ certification: certification,
+ validityTime: validityTime,
+ type: type
+ }
+ registrations.push(registration);
+ }
Ext.Ajax.request({
url : WWWROOT + '/disinfectSystem/baseData/supplierAction!validate.do',
params : {validateId : top.Ext.getCmp('id').getValue(),valifateName:top.Ext.getCmp('companyName').getValue(), valifateType:top.Ext.getCmp('rentTousse').getValue()}, //多传一个供应商类型(陈家儒改)
@@ -163,6 +469,7 @@
method : 'POST',
waitMsg : '正在保存数据,请稍候',
waitTitle : '提交表单',
+ params : {registrationsConfigResult : JSON.stringify(registrations)},
success : function(form, action) {
supplierWin.close();
showResult('保存成功');
@@ -192,6 +499,21 @@
this.enable();
return false;
}
+ var certificationCount = configStore.getCount();
+ if (certificationCount <= 0 ){
+ 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('请填写注册证号!');
+ this.enable();
+ return false;
+ }
+ }
validateAndSubmit();
}