diff --git a/dataConfig/homeQualitySet.json b/dataConfig/homeQualitySet.json index f0499ba..1879013 100644 --- a/dataConfig/homeQualitySet.json +++ b/dataConfig/homeQualitySet.json @@ -19,9 +19,18 @@ "filestoragetype":1, //上传接口 "uploadConnector":"http://192.168.1.107:9291/api/downplatform/report", -// //基本数据存放处,根节点不填,最后一层为基本信息存放标签与doubleBasic配合 + //基本数据存放处,根节点不填,最后一层为基本信息存放标签与doubleBasic配合 "basicDirectory":["DOCUMENT"], //可能存在存储基本数据不同情况的标签 - "doubleBasic":["TestItemInfo","BioTestInfo"] + "doubleBasic":["TestItemInfo","BioTestInfo"], + + //--------撤销配置部分------------- + //采集流水号所在位置,根目录不填 + "repealDirectory":["DOCUMENT"], + //采集流水号名 + "repealSerialnum":"UNIQUE_ID", + //撤销接口 + "repoalConnector":"http://192.168.1.107:9291/api/down/cancel" + } \ No newline at end of file diff --git a/src/main/java/com/docus/bgts/entity/CanlcelDto.java b/src/main/java/com/docus/bgts/entity/CanlcelDto.java new file mode 100644 index 0000000..b7d815d --- /dev/null +++ b/src/main/java/com/docus/bgts/entity/CanlcelDto.java @@ -0,0 +1,16 @@ +package com.docus.bgts.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 撤销文件类 + */ +@Data +@ApiModel("撤销文件类") +public class CanlcelDto { + @ApiModelProperty("采集流水号") + private String serialnum; + +} diff --git a/src/main/java/com/docus/bgts/enums/Codes.java b/src/main/java/com/docus/bgts/enums/Codes.java index 39ee26b..45db107 100644 --- a/src/main/java/com/docus/bgts/enums/Codes.java +++ b/src/main/java/com/docus/bgts/enums/Codes.java @@ -24,6 +24,7 @@ public enum Codes { DIRECTORY("1000","directory"), //上传接口地址 UPLOAD("0","uploadConnector"), + REPOAL("0","repoalConnector"), //患者主索引号 EMP_ID("0","indexFlag"), //错误日志编号 diff --git a/src/main/java/com/docus/bgts/facade/IAfCollectTaskService.java b/src/main/java/com/docus/bgts/facade/IAfCollectTaskService.java index 2ee8f97..4a0545b 100644 --- a/src/main/java/com/docus/bgts/facade/IAfCollectTaskService.java +++ b/src/main/java/com/docus/bgts/facade/IAfCollectTaskService.java @@ -3,6 +3,7 @@ package com.docus.bgts.facade; import com.baomidou.mybatisplus.extension.service.IService; import com.docus.bgts.entity.AfCollectTask; +import com.docus.bgts.entity.CanlcelDto; import com.docus.bgts.entity.ReportDownDto; /** @@ -22,4 +23,10 @@ public interface IAfCollectTaskService extends IService { void insert(ReportDownDto reportDownDto); void updateInterfaceCollect(String collectSubId, int state); + + /** + * 撤销文件功能 + * @param canlcelDto + */ + void invokeRepoalFile(CanlcelDto canlcelDto) throws Exception; } diff --git a/src/main/java/com/docus/bgts/handler/ITBasicWebService.java b/src/main/java/com/docus/bgts/handler/ITBasicWebService.java index dadb839..87a7e0e 100644 --- a/src/main/java/com/docus/bgts/handler/ITBasicWebService.java +++ b/src/main/java/com/docus/bgts/handler/ITBasicWebService.java @@ -7,14 +7,14 @@ import javax.jws.WebService; @WebService public interface ITBasicWebService { /** - * 检验报告推送 + * 检验报告推送(广东省中医院) * @return */ @WebMethod String pushSurveyReport(String xml); /** - * 电子病理采集 + * 电子病理采集(梅州人民医院) * @param xml * @return */ @@ -22,7 +22,7 @@ public interface ITBasicWebService { String EmrDocumentArchive(String xml); /** - * 电子病理撤销 + * 电子病理撤销(梅州人民医院) * @param xml * @return */ diff --git a/src/main/java/com/docus/bgts/handler/TBasicWebService.java b/src/main/java/com/docus/bgts/handler/TBasicWebService.java index 54c7e20..739b565 100644 --- a/src/main/java/com/docus/bgts/handler/TBasicWebService.java +++ b/src/main/java/com/docus/bgts/handler/TBasicWebService.java @@ -2,6 +2,7 @@ package com.docus.bgts.handler; import com.alibaba.fastjson.JSON; +import com.docus.bgts.entity.CanlcelDto; import com.docus.bgts.entity.ReportDownDto; import com.docus.bgts.entity.ReportDownPatientDto; import com.docus.bgts.entity.ReportDownScanFileDto; @@ -165,7 +166,51 @@ public class TBasicWebService implements ITBasicWebService { @Override public String EmrDocumentArchiveCancel(String xml) { - return ResultUtils.fail(); + try { + logger.info("--------------撤销接收到xml--------------"); + logger.info(xml); + //解析xml,并提取CanlcelDto对象 + CanlcelDto canlcelDto = getCanlCelDtoByXml(xml); + //调用上传服务撤销功能 + afCollectTaskService.invokeRepoalFile(canlcelDto); + logger.info("--------------撤销操作完成-------------"); + return ResultUtils.success().asXML(); + } catch (RuntimeException e) { + logger.info("发送错误:" + e.getMessage()); + mrReportErrorService.insert(xml); + return ResultUtils.fail(e.getMessage()); + } catch (Exception e) { + logger.info("发送错误:" + e.getMessage()); + e.printStackTrace(); + mrReportErrorService.insert(xml); + return ResultUtils.fail(e.getMessage()); + } + + } + + /** + * 解析xml,返回CanlcelDto对象 + * + * @param xml + * @return + */ + private CanlcelDto getCanlCelDtoByXml(String xml) { + XmlUtils xmlUtils = new XmlUtils(xml); + //采集流水号所在位置目录 + List repealDirectory = (List) FileUtils.getJsonByName("repealDirectory"); + Element element = xmlUtils.getElement(repealDirectory); + String repealSerialnum = String.valueOf(FileUtils.getJsonByName("repealSerialnum")); + Element repealSerialnumElement = element.element(repealSerialnum); + CanlcelDto canlcelDto = new CanlcelDto(); + + if (null == repealSerialnumElement || StringUtils.isBlank(repealSerialnumElement.getText())) { + throw new RuntimeException(repealSerialnum + "标签必须有值"); + } else { + String serialnum = repealSerialnumElement.getText(); + logger.info("当前流水号为:" + serialnum); + canlcelDto.setSerialnum(serialnum); + } + return canlcelDto; } /** diff --git a/src/main/java/com/docus/bgts/service/AfCollectTaskServiceImpl.java b/src/main/java/com/docus/bgts/service/AfCollectTaskServiceImpl.java index 6899096..ed4df1f 100644 --- a/src/main/java/com/docus/bgts/service/AfCollectTaskServiceImpl.java +++ b/src/main/java/com/docus/bgts/service/AfCollectTaskServiceImpl.java @@ -1,13 +1,17 @@ package com.docus.bgts.service; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.docus.bgts.entity.*; +import com.docus.bgts.enums.Codes; import com.docus.bgts.facade.IAfCollectTaskService; import com.docus.bgts.mapper.AfCollectTaskMapper; import com.docus.bgts.mapper.AfInterfaceCollectMapper; import com.docus.bgts.mapper.AfInterfaceCollectSubMapper; +import com.docus.bgts.utils.FileUtils; +import com.docus.bgts.utils.HttpUtils; import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -15,8 +19,11 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.io.UnsupportedEncodingException; import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** *

@@ -29,7 +36,7 @@ import java.util.List; @Service public class AfCollectTaskServiceImpl extends ServiceImpl implements IAfCollectTaskService { - private Logger log= LogManager.getLogger(); + private Logger log = LogManager.getLogger(); @Autowired AfCollectTaskMapper afCollectTaskMapper; @@ -49,7 +56,7 @@ public class AfCollectTaskServiceImpl extends ServiceImpl headMap = new HashMap<>(); + headMap.put("Content-Type", "application/json"); + log.info("开始文件撤回操作:"+canlcelDto); + String post = HttpUtils.post(String.valueOf(FileUtils.getJsonByName(Codes.REPOAL.getMessage())), headMap, JSON.parseObject(JSON.toJSONString(canlcelDto), Map.class)); + Map resMap = JSON.parseObject(post, Map.class); + if (String.valueOf(resMap.get("code")).equals("500")) { + throw new RuntimeException(String.valueOf(resMap.get("msg"))); + } + } + }