Index: ssts-web/src/main/webapp/disinfectsystem/packing/setPlugInRFID.js =================================================================== diff -u -r34448 -r34765 --- ssts-web/src/main/webapp/disinfectsystem/packing/setPlugInRFID.js (.../setPlugInRFID.js) (revision 34448) +++ ssts-web/src/main/webapp/disinfectsystem/packing/setPlugInRFID.js (.../setPlugInRFID.js) (revision 34765) @@ -1,4 +1,5 @@ var keepReading = true; +var isStop = false; var reader; var writer; var port; @@ -39,6 +40,7 @@ async function openPort(params, callback) { try { keepReading = true; + isStop = false; var usbVendorId = params.usbVendorId; var usbProductId = params.usbProductId; var baudRate = params.baudRate ? params.baudRate : 115200; @@ -267,7 +269,9 @@ var uid = arr[0].split('R')[1]; var userId = arr[1]; userId = hextoString(userId); - callback(uid + ',' + userId, true); + if(uid){ + callback(uid + ',' + userId, true); + } } else { var newData = dataString.substring(dataString.indexOf('M') + 1, dataString.indexOf('4646')); newData = hextoString(newData); @@ -415,10 +419,20 @@ writer.releaseLock(); } } -var isStop = false; + +async function startRFID() { + var { usbProductId, usbVendorId } = port.getInfo(); + if (usbVendorId == 6790 && usbProductId == 29987 && isStop == true) {//桌面式 F5005-H + var data = [187, 23, 9, 0, 0, 0, 0, 0, 0, 0, 0, 8, 40, 13, 10]; + var startData = new Uint8Array(data); + await writer.write(startData); + isStop = false; + } +} + async function stopRFID() { var { usbProductId, usbVendorId } = port.getInfo(); - if (usbVendorId == 6790 && usbProductId == 29987) {//桌面式 F5005-H + if (usbVendorId == 6790 && usbProductId == 29987 && isStop == false) {//桌面式 F5005-H //停止读取标签 var stop = [187, 24, 0, 24, 13, 10]; var stopData = new Uint8Array(stop); @@ -453,11 +467,19 @@ addArr.push(0); } } + // var arr = [187]; + // var arr1 = [26, 42, 0, 0, 0, 0, 1, 0, 12]; + // var arr3 = [3, 0, 0, 0, 9]; var arr = [187]; - var arr1 = [26, 42, 0, 0, 0, 0, 1, 0, 12]; - var arr3 = [3, 0, 0, 0, 9]; + var arr1 = [26, 28, 0, 0, 0, 0, 0, 0, 0]; + var arr3 = [3, 0, 0, 0, 8]; - var resultArr = arr1.concat(filterArr).concat(arr3).concat(barcodeArr).concat(addArr); + var resultArr = arr1.concat(arr3).concat(barcodeArr) + if(barcodeArr.length < 16){ + for(var k=0;k<16-barcodeArr.length;k++){ + resultArr.push(0) + } + } var sum = eval(resultArr.join('+')); var str = sum.toString(16); var crc = str.substring(str.length - 2); Index: ssts-web/src/main/webapp/disinfectsystem/basedatamanager/tousse/idCardForm.js =================================================================== diff -u -r34450 -r34765 --- ssts-web/src/main/webapp/disinfectsystem/basedatamanager/tousse/idCardForm.js (.../idCardForm.js) (revision 34450) +++ ssts-web/src/main/webapp/disinfectsystem/basedatamanager/tousse/idCardForm.js (.../idCardForm.js) (revision 34765) @@ -1102,6 +1102,22 @@ }); } + var tousseIsFirst = true; + + function getTousseName(barcode,item) { + Ext.Ajax.request({ + url: WWWROOT + '/disinfectSystem/recyclingRecordAction!loadTousseInstanceInfo.do', + async: false, + params: { barcode: barcode}, + success: function (response, options) { + var result = Ext.decode(response.responseText); + var tousseName = result.tousseName; + item.set('tousseName',tousseName); + tousseIsFirst = true; + } + }); + } + function writerRFIDCard() { var idCardsRecords = gridPanel.getSelectionModel().getSelections(); if (idCardsRecords.length == 0) { @@ -1133,6 +1149,7 @@ { name: 'diposableGoods' }, { name: 'id' }, { name: 'barcode' }, + { name: 'tousseName' }, { name: 'type' }, { name: 'batchNumber' }, { name: 'sterileBatchNumber' }, @@ -1158,12 +1175,12 @@ columns: [new top.Ext.grid.CheckboxSelectionModel({ singleSelect: true, hideable: false }), { header: '序号', dataIndex: 'number', - width: 100, + width: 50, menuDisabled: true }, { header: "标签UID", dataIndex: 'uid', - width: 300, + width: 150, menuDisabled: true }, { header: "用户区数据", @@ -1176,6 +1193,11 @@ width: 100, menuDisabled: true }, { + header: "器械包名称", + dataIndex: 'tousseName', + width: 100, + menuDisabled: true + }, { header: "读取次数", dataIndex: 'count', width: 100, @@ -1210,7 +1232,23 @@ plain: true, items: [recordGrid], buttonAlign: 'center', + listeners : { + 'close':{ + fn: function(){ + stopRFID(); + closeRFID(); + setTimeout(function(){ + grid.dwrReload(); + },500); + } + } + }, buttons: [{ + text: '连续读取标签', + handler: function () { + startRFID(); + } + }, { text: '停止读取标签', handler: function () { stopRFID(); @@ -1237,7 +1275,6 @@ }, { text: '取消', handler: function () { - closeRFID(); win.close(); grid.dwrReload(); } @@ -1269,32 +1306,39 @@ RFIDStore.getAt(i).set('barcode', barcode); } var count = parseInt(RFIDStore.getAt(i).data.count); + var tousseName = RFIDStore.getAt(i).data.tousseName || ''; + if(tousseName == '' && barcode !== '' && tousseIsFirst){ + tousseIsFirst = false; + getTousseName(barcode,RFIDStore.getAt(i)); + } RFIDStore.getAt(i).set('count', count + 1); isHas = true; break; } } if (!isHas) { + if(uid && uid !== 'undefined'){ + var record = new items({ + number: RFIDStore.getCount() + 1, + uid: uid, + userId: userId, + barcode: barcode, + count: 1 + }); + RFIDStore.add(record); + } + } + } else { + if(uid && uid !== 'undefined'){ var record = new items({ - number: RFIDStore.getCount() + 1, + number: 1, uid: uid, userId: userId, barcode: barcode, count: 1 }); - RFIDStore.add(record); } - } else { - var record = new items({ - number: 1, - uid: uid, - userId: userId, - barcode: barcode, - count: 1 - }); - - RFIDStore.add(record); } } else { if (errorStatus == 'msg1') {