Index: ssts-web/src/main/webapp/mobileClient/clientForAndroid.json =================================================================== diff -u -r40302 -r41048 --- ssts-web/src/main/webapp/mobileClient/clientForAndroid.json (.../clientForAndroid.json) (revision 40302) +++ ssts-web/src/main/webapp/mobileClient/clientForAndroid.json (.../clientForAndroid.json) (revision 41048) @@ -1,7 +1,7 @@ { "success":"true", - "version":"4.7.41", - "urlSuffix": "/mobileClient/SterileSupplySystem_Android_V4.7.41_20250430_v4_1_release.apk", - "urlSuffix-nologo":"/mobileClient/SterileSupplySystem_Android_V4.7.41_20250430_v4_1_nologo_release.apk", - "urlSuffix-6p": "/mobileClient/SterileSupplySystem_Android_V4.7.41_20250430_v4_1_6p_release.apk", + "version":"V4.7.42", + "urlSuffix": "/mobileClient/SterileSupplySystem_Android_V4.7.42_20250930_v4_1_release.apk", + "urlSuffix-nologo":"/mobileClient/SterileSupplySystem_Android_V4.7.42_20250930_v4_1_nologo_release.apk", + "urlSuffix-6p": "/mobileClient/SterileSupplySystem_Android_V4.7.42_20250930_v4_1_6p_release.apk", } \ No newline at end of file Index: ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/service/ServiceManagerImpl.java =================================================================== diff -u -r40752 -r41048 --- ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/service/ServiceManagerImpl.java (.../ServiceManagerImpl.java) (revision 40752) +++ ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/service/ServiceManagerImpl.java (.../ServiceManagerImpl.java) (revision 41048) @@ -20,7 +20,6 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; -import java.util.Optional; import java.util.Set; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -106,6 +105,7 @@ import com.forgon.disinfectsystem.entity.basedatamanager.operationRoom.OperationRoom; import com.forgon.disinfectsystem.entity.basedatamanager.position.Position; import com.forgon.disinfectsystem.entity.basedatamanager.position.TousseOperation; +import com.forgon.disinfectsystem.entity.basedatamanager.rinser.Rinser; import com.forgon.disinfectsystem.entity.basedatamanager.signRecord.SignRecord; import com.forgon.disinfectsystem.entity.basedatamanager.sterilisation.Sterilisation; import com.forgon.disinfectsystem.entity.basedatamanager.sterilizer.Sterilizer; @@ -121,6 +121,7 @@ import com.forgon.disinfectsystem.entity.basedatamanager.toussereturndisinfect.TousseReturnDisinfectRecord; import com.forgon.disinfectsystem.entity.becleanitem.ClassifyBasket; import com.forgon.disinfectsystem.entity.borrowrecord.BorrowRecord; +import com.forgon.disinfectsystem.entity.equipmentinspection.instance.EquipmentInspectionInstance; import com.forgon.disinfectsystem.entity.foreigntousseapplication.ForeignTousseApplication; import com.forgon.disinfectsystem.entity.idcardinstance.IDCardInstance; import com.forgon.disinfectsystem.entity.invoicemanager.Invoice; @@ -3288,6 +3289,36 @@ } /** + * 设备巡检列表 + * @param params + * @return + */ + @SuppressWarnings(value="unused") + private String getInfoByBarcode_EquipmentInspectionInstanceList(JSONObject params){ + String barcode = params.optString("barcode"); + if (StringUtils.isBlank(barcode)) { + return JSONUtil.buildJsonObject(false,"缺失参数barcode").toString(); + } + BarcodeDevice barcodeDevice = barcodeManager.getBarcodeByBarcode(barcode,false); + if(barcodeDevice == null){ + throw new SystemException("请输入正确的条码"); + } + if (barcodeDevice instanceof Sterilizer) { + // 灭菌炉 + Sterilizer sterilizer = (Sterilizer) barcodeDevice; + JSONObject json = JSONUtil.buildJsonObject(true, JSONUtil.toJSONObjectWithInclude(sterilizer, new String[]{"id","name"})); + json.put("type", "灭菌炉"); + return json.toString(); + } else if (barcodeDevice instanceof Rinser) { + Rinser rinser = (Rinser) barcodeDevice; + JSONObject json = JSONUtil.buildJsonObject(true, JSONUtil.toJSONObjectWithInclude(rinser, new String[]{"id","name"})); + json.put("type", "清洗机"); + return json.toString(); + } + throw new SystemException("只能扫描清洗机或灭菌炉的条码"); + } + + /** * 加载灭菌目的对应配置的灭菌耗材信息 * @param params * @return @@ -8784,6 +8815,65 @@ } /** + * 获取设备巡检记录列表-ZSRY-60 + * @param params + * @return + */ + @SuppressWarnings("unchecked") + public String getEquipmentInspectionInstanceList(JSONObject params) { + int first = params.optInt("first"); + int count = params.optInt("count"); + + String startTimeCondition = ""; + String endTimeCondition = ""; + //开始时间起止范围条件(格式为yyyy-MM-dd HH:mm:ss;yyyy-MM-dd HH:mm:ss) + String startDateParam = params.optString("startDate"); + if(StringUtils.isNotBlank(startDateParam)){ + String[] startDateArray = startDateParam.split(";"); + String startTime = startDateArray[0]; + if(StringUtils.isNotBlank(startTime)){ + Date startDate = ForgonDateUtils.safelyParseDate(startTime, ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS); + startTimeCondition = String.format(" and po.startDate >= %s",dateQueryAdapter.dateAdapter(startDate)); + } + String endTime = startDateArray[1]; + if(StringUtils.isNotBlank(endTime)){ + Date endDate = ForgonDateUtils.safelyParseDate(endTime, ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS); + endTimeCondition = String.format(" and po.startDate <= %s",dateQueryAdapter.dateAdapter(endDate)); + } + } + + String sql = String.format("where 1=1 %s %s", startTimeCondition, endTimeCondition); + Collection equipmentInspectionInstances = objectDao.findBySql( + EquipmentInspectionInstance.class.getSimpleName(), sql, first, + count, "id desc"); + + JSONArray equipmentInspectionInstancesJsonArray = new JSONArray(); + if(CollectionUtils.isNotEmpty(equipmentInspectionInstances)){ + for(EquipmentInspectionInstance equipmentInspectionInstance : equipmentInspectionInstances){ + JSONObject jsonObject = new JSONObject(); + jsonObject.put("id", equipmentInspectionInstance.getId()); + jsonObject.put("formName", equipmentInspectionInstance.getFormDefinition().getFormName()); + jsonObject.put("createUserName", equipmentInspectionInstance.getCreateUserName()); + jsonObject.put("createDate", ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMM.format(equipmentInspectionInstance.getCreateDate())); + equipmentInspectionInstancesJsonArray.add(jsonObject); + } + } + + return new JSONStringer().object().key("success").value(true) + .key("equipmentInspectionInstances").value(equipmentInspectionInstancesJsonArray).endObject() + .toString(); + } + + /** + * 移除设备巡检记录-ZSRY-60 + * @param params + * @return + */ + private String deleteEquipmentInspectionInstance(JSONObject params){ + return null; + } + + /** * 查询待归还交接外来器械申请单列表 * @param params 查询参数 * @return Index: ssts-web/src/main/webapp/disinfectsystem/equipmentInspection/forminstanceForm.js =================================================================== diff -u -r40949 -r41048 --- ssts-web/src/main/webapp/disinfectsystem/equipmentInspection/forminstanceForm.js (.../forminstanceForm.js) (revision 40949) +++ ssts-web/src/main/webapp/disinfectsystem/equipmentInspection/forminstanceForm.js (.../forminstanceForm.js) (revision 41048) @@ -1,9 +1,15 @@ var formInstanceWin = null; +/** + * 关闭窗口 + */ function cancelFormInstance() { if (top.Ext.getCmp('formInstanceWin')) { top.Ext.getCmp('formInstanceWin').close(); } + backToAndroidListPage(); + //冒似写在js文件里的脚本调不了安卓的函数 + //Android.callAndroid("closeWindow"); } function submitForm2(saveAndCreate) { @@ -16,6 +22,7 @@ success: function (form, action) { var result = Ext.decode(action.response.responseText); showResult(result.message); + speakContentThrouhtAndroid(result.message); if (result.success) { if (saveAndCreate) { document.getElementById('gridDiv').innerHTML = ''; @@ -28,16 +35,19 @@ failure: function (form, action) { var result = Ext.decode(action.response.responseText); showResult(result.message); + speakContentThrouhtAndroid(result.message); } }); } +//设备名称的数据源 +var deviceInfoStore; function addFormInstanceWin(id) { if (id == null || id == 'undentified') { id = ""; } - var deviceInfoStore = new Ext.data.Store({ + deviceInfoStore = new Ext.data.Store({ proxy: new Ext.data.HttpProxy({ url: WWWROOT + '/disinfectSystem/equipmentInspectionDefAction!loadEquipmentInspectionDefDeviceInfo.do', method: 'POST' @@ -141,22 +151,7 @@ select: function (combo, record, index) { var id = record.data.id; var type = record.data.type; - Ext.Ajax.request({ - url: WWWROOT + '/disinfectSystem/equipmentInspectionDefAction!loadEquipmentInspectionDefByEquipment.do', - params: { equipmentId: id, type: type }, - success: function (response, options) { - var result = Ext.decode(response.responseText); - if (result.success && result.data.length > 0) { - Ext.getCmp("formDefinitionId").setValue(result.data[0].id); - Ext.getCmp("formDefinitionName").setValue(result.data[0].formName); - Ext.getCmp("equipmentID").setValue(id); - Ext.getCmp("equipmentType").setValue(type); - addFormDefinitionItem(result.data[0].id, 'addFormInstanceForm', 'formDefinitionItemIds'); - } else { - renderFormInstance([], 'addFormInstanceForm', 'formDefinitionItemIds'); - } - } - }); + setComboSelectedByValue(id, type); } } }] @@ -263,7 +258,59 @@ } } +/** + * 根据value选中设备并触发选中事件 + */ +function setComboSelectedByValue(id, type){ + Ext.Ajax.request({ + url: WWWROOT + '/disinfectSystem/equipmentInspectionDefAction!loadEquipmentInspectionDefByEquipment.do', + params: { equipmentId: id, type: type }, + success: function (response, options) { + var result = Ext.decode(response.responseText); + if (result.success && result.data.length > 0) { + Ext.getCmp("formDefinitionId").setValue(result.data[0].id); + Ext.getCmp("formDefinitionName").setValue(result.data[0].formName); + Ext.getCmp("equipmentID").setValue(id); + Ext.getCmp("equipmentType").setValue(type); + addFormDefinitionItem(result.data[0].id, 'addFormInstanceForm', 'formDefinitionItemIds'); + } else { + renderFormInstance([], 'addFormInstanceForm', 'formDefinitionItemIds'); + } + } + }); +} + +/** + * 选中某个设备(通常来自嵌入端,比如android) + * @param deviceType 设备类型 + * @param deviceId 设备id + * @param deviceName 设备名称 + */ +function setDeviceSelected(deviceType, deviceId, deviceName){ + /*deviceInfoStore.load(function(records, operation, success){ + + });*/ + deviceInfoStore.load({ + params: { + + }, + callback: function (records, operation, success) { + if (records.length && records.length >= 1) { + for(var i = 0;i < records.length;i++){ + var record = records[i]; + if(deviceType == record.data.type && deviceId == record.data.id){ + Ext.getCmp("equipmentName").setValue(deviceName); + Ext.getCmp("equipmentID").setValue(deviceId); + Ext.getCmp("equipmentType").setValue(deviceType); + setComboSelectedByValue(deviceId, deviceType); + } + } + } + } + }); +} + Ext.onReady(function () { addFormInstanceWin(id) + loadPage(); }); - Index: ssts-web/src/main/webapp/disinfectsystem/equipmentInspection/forminstanceForm.jsp =================================================================== diff -u -r40949 -r41048 --- ssts-web/src/main/webapp/disinfectsystem/equipmentInspection/forminstanceForm.jsp (.../forminstanceForm.jsp) (revision 40949) +++ ssts-web/src/main/webapp/disinfectsystem/equipmentInspection/forminstanceForm.jsp (.../forminstanceForm.jsp) (revision 41048) @@ -1,3 +1,4 @@ +<%@page import="org.apache.commons.lang.StringUtils"%> <%@ page contentType="text/html; charset=UTF-8"%> <%@ include file="/common/taglibs.jsp"%> @@ -9,8 +10,12 @@ <%@ include file="/common/includeExtJsAndCss.jsp"%> +<% + String userName = StringUtils.defaultString((String)request.getAttribute("userName"),""); +%> @@ -21,6 +26,76 @@ Index: ssts-web/src/main/webapp/mobileClient/SterileSupplySystem_Android_V4.7.42_20250930_v4_1_6p_release.apk =================================================================== diff -u Binary files differ