wangsy преди 4 години
родител
ревизия
3ab0f88328

+ 21 - 0
znwz-service/src/main/java/com/diagbot/client/NacidServiceClient.java

@@ -0,0 +1,21 @@
+package com.diagbot.client;
+
+import com.diagbot.client.hystrix.NacidServiceHystrix;
+import com.diagbot.vo.NacidTestVO;
+import com.diagbot.vo.NacidVO;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+
+import java.net.URI;
+
+/**
+ * @description: 核酸检测远程调用
+ * @author: fangqw
+ * @date: 2020/12/8 19:45
+ */
+@FeignClient(name = "nacid",url = "url-placehokder",fallback = NacidServiceHystrix.class)
+public interface NacidServiceClient {
+    @PostMapping("/api/InterfaceService/gethsjc")
+    NacidTestVO extract(URI uri, NacidVO nacidVO);
+
+}

+ 25 - 0
znwz-service/src/main/java/com/diagbot/client/hystrix/NacidServiceHystrix.java

@@ -0,0 +1,25 @@
+package com.diagbot.client.hystrix;
+
+import com.diagbot.client.NacidServiceClient;
+import com.diagbot.vo.NacidTestVO;
+import com.diagbot.vo.NacidVO;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import java.net.URI;
+
+/**
+ * @description: 核酸检测远程调用熔断器
+ * @author: fangqw
+ * @date: 2020/12/9 10:29
+ */
+@Component
+@Slf4j
+public class NacidServiceHystrix implements NacidServiceClient {
+
+    @Override
+    public NacidTestVO extract(URI uri, NacidVO nacidVO) {
+        log.error("【hystrix】调用{}异常", "extract");
+        return null;
+    }
+}

+ 23 - 0
znwz-service/src/main/java/com/diagbot/dto/NacidTestDTO.java

@@ -0,0 +1,23 @@
+package com.diagbot.dto;
+
+import com.diagbot.vo.NacidTestVO;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: fangqw
+ * @time: 2020/12/8 11:04
+ */
+@Getter
+@Setter
+public class NacidTestDTO {
+    private NacidTestVO nacidTestVo;
+
+    //红绿蓝颜色
+    private String colour;
+
+    //有效期
+    private String indate;
+
+}

+ 32 - 0
znwz-service/src/main/java/com/diagbot/facade/NacidClientFacade.java

@@ -0,0 +1,32 @@
+package com.diagbot.facade;
+
+import com.diagbot.client.NacidServiceClient;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
+import com.diagbot.util.StringUtil;
+import com.diagbot.vo.NacidTestVO;
+import com.diagbot.vo.NacidVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Component;
+
+import java.net.URI;
+
+@Component
+public class NacidClientFacade {
+
+    @Autowired
+    private NacidServiceClient nacidServiceClient;
+
+    public NacidTestVO extract(NacidVO nacidVO) {
+        URI uri = null;
+        try {
+            uri = new URI("http://192.1.2.31:9000");
+        } catch (Exception e) {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR);
+        }
+
+        return nacidServiceClient.extract(uri, nacidVO);
+    }
+
+}

+ 58 - 0
znwz-service/src/main/java/com/diagbot/facade/NacidTestFacade.java

@@ -0,0 +1,58 @@
+package com.diagbot.facade;
+
+import com.diagbot.dto.NacidTestDTO;
+import com.diagbot.service.NacidTestService;
+import com.diagbot.util.DateUtil;
+import com.diagbot.vo.NacidTestVO;
+import com.diagbot.vo.NacidVO;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+/**
+ * @Description:
+ * @author: fangqw
+ * @time: 2020/12/8 11:07
+ */
+@Component
+@Slf4j
+public class NacidTestFacade implements NacidTestService {
+    NacidTestDTO nacidTestDTO =new NacidTestDTO();
+
+    public NacidTestDTO queryNacid(NacidTestVO nacidTestVo){
+       String result = nacidTestVo.getREPORTVALUE();
+       if(result == null){
+           nacidTestDTO.setColour("0");
+       }
+       String bluedate;
+       String reportdate = nacidTestVo.getREPORTDT();
+       Date report_date = DateUtil.parseDate(reportdate,"yyyy年MM月dd日");
+       int  effective_date = Integer.parseInt(nacidTestVo.getDAY());
+       Date blue_date = DateUtil.addDate(report_date,effective_date);
+        System.out.println(blue_date.toString());
+       bluedate = new SimpleDateFormat("yyyy年MM月dd日").format(blue_date);
+       Date now_date = DateUtil.parseDate(DateUtil.getCurrentDateStr("yyyy年MM月dd日"),"yyyy年MM月dd日");
+       //当前日期早于蓝码日期
+       if(now_date.before(blue_date)){
+           if(result.equals("阴性") ){
+               nacidTestDTO.setColour("1");
+           }
+           if(result.equals("阳性")){
+               nacidTestDTO.setColour("2");
+           }
+       }
+       //当前日期等于蓝码日期
+       if(now_date.equals(blue_date)){
+           nacidTestDTO.setColour("3");
+       }
+       //当前日期晚于蓝码日期,失效
+        if(now_date.after(blue_date)){
+            nacidTestDTO.setColour("4");
+        }
+        nacidTestDTO.setNacidTestVo(nacidTestVo);
+        nacidTestDTO.setIndate(reportdate+"-"+bluedate);
+       return nacidTestDTO;
+    }
+}

+ 13 - 0
znwz-service/src/main/java/com/diagbot/service/NacidTestService.java

@@ -0,0 +1,13 @@
+package com.diagbot.service;
+
+import com.diagbot.dto.NacidTestDTO;
+import com.diagbot.vo.NacidTestVO;
+
+/**
+ *
+ * @author fangqw
+ * @since 2020-12-08
+ */
+public interface NacidTestService {
+    NacidTestDTO queryNacid(NacidTestVO nacidTestVo);
+}

+ 10 - 0
znwz-service/src/main/java/com/diagbot/vo/DataVO.java

@@ -0,0 +1,10 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class DataVO {
+    private String MRN;
+}

+ 109 - 0
znwz-service/src/main/java/com/diagbot/vo/NacidTestVO.java

@@ -0,0 +1,109 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: fangqw
+ * @time: 2020/12/8 10:07
+ */
+@Getter
+@Setter
+public class NacidTestVO {
+
+    /**
+     * 工号EMPID
+     */
+    private String EMPID;
+
+    /**
+     * 病历号MRN
+     */
+    private String MRN;
+
+    /**
+     * 医生名字NAME
+     */
+    private String NAME;
+
+    /**
+     * 性别SEX
+     */
+    private String SEX;
+
+    /**
+     * 科室号DEPTID
+     */
+    private String DEPTID;
+
+    /**
+     * 科室名称
+     */
+    private String DEPTNAME;
+
+    /**
+     * 身份证号CID
+     */
+    private String CID;
+
+    /**
+     * 电话短号NETPHONE
+     */
+    private String NETPHONE;
+
+    /**
+     * 电话CELLPHONE
+     */
+    private String CELLPHONE;
+
+    /**
+     * 类别TYPE
+     */
+    private String TYPE;
+
+    /**
+     * 备注REMARK
+     */
+    private String REMARK;
+
+    /**
+     * 序号RDN
+     */
+    private String RDN;
+
+    /**
+     * 有效标记USEFLAG
+     */
+    private String USEFLAG;
+
+    /**
+     * 报告日期REPORTDT
+     */
+    private String REPORTDT;
+
+    /**
+     * 效期天数DAY
+     */
+    private String DAY;
+
+    /**
+     * 结果REPORTVALUE
+     */
+    private String REPORTVALUE;
+
+    /**
+     * 报告类型REPORTTYPE
+     */
+    private String REPORTTYPE;
+
+    /**
+     * 更新日期UPDATEDT
+     */
+    private String UPDATEDT;
+
+    /**
+     * 更新人UPDATEJP
+     */
+    private String UPDATEJP;
+}

+ 14 - 0
znwz-service/src/main/java/com/diagbot/vo/NacidVO.java

@@ -0,0 +1,14 @@
+package com.diagbot.vo;
+
+import com.diagbot.vo.DataVO;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class NacidVO {
+    private String tradeCode;
+    private String authentication;
+    //data 包含病历号
+    private DataVO data;
+}

+ 37 - 0
znwz-service/src/main/java/com/diagbot/web/NacidTestController.java

@@ -0,0 +1,37 @@
+package com.diagbot.web;
+
+import com.diagbot.client.NacidServiceClient;
+import com.diagbot.dto.NacidTestDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.entity.Response;
+import com.diagbot.facade.NacidClientFacade;
+import com.diagbot.facade.NacidTestFacade;
+import com.diagbot.vo.NacidTestVO;
+import com.diagbot.vo.NacidVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
+
+@RestController
+@RequestMapping("/nacid")
+@Api(value = "邵逸夫核酸检测API", tags = { "邵逸夫核酸检测API" })
+public class NacidTestController {
+
+    @Autowired
+    private NacidTestFacade nacidTestFacade;
+    @Autowired
+    private NacidClientFacade nacidServiceClient;
+
+    @ApiOperation(value = "邵逸夫核酸检测[by:fangqw]")
+    @PostMapping("/nacid")
+    public RespDTO<NacidTestDTO> queryNacid (@Valid@RequestBody NacidVO nacidVo){
+        NacidTestVO nacidTestVo = nacidServiceClient.extract(nacidVo);
+        return RespDTO.onSuc(nacidTestFacade.queryNacid(nacidTestVo));
+    }
+}