Index: ssts-web/src/main/webapp/disinfectsystem/config/qhrsgzzyy/spring/webservice-cxf.xml =================================================================== diff -u -r40985 -r41002 --- ssts-web/src/main/webapp/disinfectsystem/config/qhrsgzzyy/spring/webservice-cxf.xml (.../webservice-cxf.xml) (revision 40985) +++ ssts-web/src/main/webapp/disinfectsystem/config/qhrsgzzyy/spring/webservice-cxf.xml (.../webservice-cxf.xml) (revision 41002) @@ -25,6 +25,17 @@ implementor="#CssdMessageServiceV4" /> + + + + + + + + + + Index: ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/datasync/common/CssdMessageWebServiceV4Impl.java =================================================================== diff -u -r40976 -r41002 --- ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/datasync/common/CssdMessageWebServiceV4Impl.java (.../CssdMessageWebServiceV4Impl.java) (revision 40976) +++ ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/datasync/common/CssdMessageWebServiceV4Impl.java (.../CssdMessageWebServiceV4Impl.java) (revision 41002) @@ -98,6 +98,8 @@ private DateQueryAdapter dateQueryAdapter; @Autowired private TousseDefinitionManager tousseDefinitionManager; + @Autowired(required=false) + private CssdUseRecordServiceV4 cssdMessageUseRecordServiceV4; /** * 同步配置(取自各项目的参数名称配置文件fieldsMappingTalbe.json) @@ -135,7 +137,11 @@ } else if ("INSTRUMENT_SET_DEFINITION_INFO_QUERY".equals(action)){ result = this.tousseDefinitionInfoQuery(action, message); } else if ("INSTRUMENT_SET_USERECORD_REGISTRATION".equals(action)) { - result = this.useRecordRegister(action, message); + if(cssdMessageUseRecordServiceV4 != null){ + result = cssdMessageUseRecordServiceV4.CssdUseRecordService(message); + }else{ + result = this.useRecordRegister(action, message); + } } else if ("INSTRUMENT_SET_TRACE_INFO_QUERY".equals(action)) { result = this.tousseTraceInfoQuery(action, message); } else if ("INSTRUMENT_SET_USERECORD_INFO_QUERY".equals(action)) { Index: ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/datasync/common/CssdUseRecordServiceV4Impl.java =================================================================== diff -u -r40324 -r41002 --- ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/datasync/common/CssdUseRecordServiceV4Impl.java (.../CssdUseRecordServiceV4Impl.java) (revision 40324) +++ ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/datasync/common/CssdUseRecordServiceV4Impl.java (.../CssdUseRecordServiceV4Impl.java) (revision 41002) @@ -5,6 +5,7 @@ import java.util.Date; import java.util.HashMap; import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Set; @@ -308,6 +309,9 @@ } tiBarcode = tousseInstance.getBarcode(); } + if(tousseInsBarcodes.contains(tiBarcode)){ + throw new RuntimeException(String.format("器械包实例条码%s重复推送!", tiBarcode)); + } tousseInsBarcodes.add(tiBarcode); // 加急的 String urgentLevelId = processDataByXpath(document, null, urgentLevelIdXpath); @@ -430,6 +434,8 @@ List statusErrorTiList = new ArrayList(); // 1、查询器械包实例 if(CollectionUtils.isNotEmpty(tousseInsBarcodes)){ + //去除重复条码 + tousseInsBarcodes = new ArrayList(new LinkedHashSet(tousseInsBarcodes)); for (String code : tousseInsBarcodes) { BarcodeDevice bd = barcodeManager.getBarcodeByBarcode(code); if (bd instanceof TousseInstance) { @@ -445,6 +451,8 @@ //内镜循环实例id if(CollectionUtils.isNotEmpty(endoscopeCycleInstanceIdList)){ + //去除重复内镜循环实例id + endoscopeCycleInstanceIdList = new ArrayList(new LinkedHashSet(endoscopeCycleInstanceIdList)); List tousseInstanceList = objectDao.getCollection(TousseInstance.class.getSimpleName(), "endoscopeCycleInstanceId", endoscopeCycleInstanceIdList); if(CollectionUtils.isEmpty(tousseInstanceList)){ throw new RuntimeException("内镜循环实例id" + StringTools.join(endoscopeCycleInstanceIdList, "、") + "没有关联的器械包实例");