lighter hace 4 años
padre
commit
8ab2735c42

+ 1 - 0
src/main/java/thyyxxk/webserver/config/exception/ExceptionEnum.java

@@ -15,6 +15,7 @@ public enum ExceptionEnum {
     NETWORK_ERROR(1003, "网络异常!"),
     EXIST_NEGATIVE_FEES(1004, "此患者费用清单存在负数。"),
     NO_DATA_EXIST(1005, "没有查询到符合条件的数据。"),
+    ABNORMAL_YZ_ACT_ORDER(1006, "此患者存在异常状态医嘱。"),
     // 以下是需要弹窗提示的错误
     LOGICAL_ERROR(2001, ""),
     NEED_PROOFREAD(2002, ""),

+ 6 - 2
src/main/java/thyyxxk/webserver/constants/HrgAddr.java → src/main/java/thyyxxk/webserver/constants/ExternalAddr.java

@@ -3,7 +3,7 @@ package thyyxxk.webserver.constants;
 /**
  * @author dj
  */
-public class HrgAddr {
+public class ExternalAddr {
 
     public final static String QUERY_PATIENT_INFO = "http://webhis.thyy.cn:81/thmz/api/v1/queryPatientInfo";
 
@@ -13,5 +13,9 @@ public class HrgAddr {
 
     public static final String GET_CHARGE_DETAIL_BY_HIS_ORD_NUM = "http://webhis.thyy.cn:81/thmz/api/v1/getChargeDetailByHisOrdNum";
 
-    public static final String PAY_CHARGE_DETAIL_FORM_HAI_CI = "http://webhis.thyy.cn:81/thmz/api/v1/payChargeDetailFormHaiCi";
+    public static final String PAY_CHARGE_DETAIL_FORM_DBZSF = "http://webhis.thyy.cn:81/thmz/api/v1/payChargeDetailFormDbzsf";
+
+    public static final String CREATE_ORDER_FOR_MZ_GUIDE_BILL = "http://192.168.200.3:8805/wxserver/wxApi/createOrderForMzGuideBill";
+
+    public static final String HTML_TO_IMAGE = "http://192.168.200.3:8805/htmlToImage/healthCardImage/execute";
 }

+ 12 - 2
src/main/java/thyyxxk/webserver/controller/yibao/DismissController.java

@@ -5,6 +5,7 @@ import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 import thyyxxk.webserver.config.auth.PassToken;
 import thyyxxk.webserver.config.exception.ExceptionEnum;
+import thyyxxk.webserver.constants.ResponceType;
 import thyyxxk.webserver.dao.his.yibao.PatientDao;
 import thyyxxk.webserver.entity.ResultVo;
 import thyyxxk.webserver.entity.dictionary.PureCodeName;
@@ -21,6 +22,9 @@ import thyyxxk.webserver.utils.TokenUtil;
 import java.util.List;
 import java.util.concurrent.atomic.AtomicReference;
 
+/**
+ * @author dj
+ */
 @Slf4j
 @RestController
 @RequestMapping("/dismiss")
@@ -42,6 +46,12 @@ public class DismissController {
         return service.getActOrders(inpatientNo, admissTimes);
     }
 
+    @PostMapping("/dismiss")
+    public ResultVo<Object> dismiss(@RequestBody Patient param) {
+        param.setStaffId(TokenUtil.getTokenUserId());
+        return service.dismiss(param);
+    }
+
     @PostMapping("/dismissCalculate")
     public ResultVo<List<PureCodeName>> calculate(@RequestBody Patient param) {
         param.setStaffId(TokenUtil.getTokenUserId());
@@ -51,7 +61,7 @@ public class DismissController {
     @PostMapping("/selfPayDismiss")
     public synchronized ResultVo<String> selfPayDismiss(@RequestBody YbSettleFee param) {
         param.setStaffId(TokenUtil.getTokenUserId());
-        param.setResponceType("01");
+        param.setResponceType(ResponceType.NO_MEDICAL_INSURANCE);
         return service.doDismiss(param);
     }
 
@@ -93,7 +103,7 @@ public class DismissController {
             return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "未找到住院号【" + param.getInpatientNo() + "】的在院业务。");
         }
         p.setTable(table);
-        if (p.getResponceType().equals("01")) {
+        if (p.getResponceType().equals(ResponceType.NO_MEDICAL_INSURANCE)) {
             YbSettleFee feePojo = new YbSettleFee();
             feePojo.setResponceType("01");
             feePojo.setInpatientNo(p.getInpatientNo());

+ 3 - 0
src/main/java/thyyxxk/webserver/entity/HrgResponse.java

@@ -2,6 +2,9 @@ package thyyxxk.webserver.entity;
 
 import lombok.Data;
 
+/**
+ * @author dj
+ */
 @Data
 public class HrgResponse {
     private Integer resultCode;

+ 6 - 0
src/main/java/thyyxxk/webserver/entity/ResultVo.java

@@ -33,6 +33,12 @@ public class ResultVo<T> {
         this.message = message;
     }
 
+    public ResultVo(ExceptionEnum exceptionEnum, T data) {
+        this.code = exceptionEnum.getCode();
+        this.message = exceptionEnum.getMessage();
+        this.data = data;
+    }
+
     public ResultVo(ExceptionEnum exceptionEnum, String message, T data) {
         this.code = exceptionEnum.getCode();
         this.message = message;

+ 2 - 2
src/main/java/thyyxxk/webserver/service/lisdock/LisDockService.java

@@ -8,6 +8,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.web.client.RestTemplate;
 import thyyxxk.webserver.config.exception.ExceptionEnum;
 import thyyxxk.webserver.constants.Capacity;
+import thyyxxk.webserver.constants.ExternalAddr;
 import thyyxxk.webserver.dao.his.inspections.InspectionsDao;
 import thyyxxk.webserver.entity.ResultVo;
 import thyyxxk.webserver.entity.examinations.inspections.InspectionsIndex;
@@ -159,9 +160,8 @@ public class LisDockService {
     }
 
     private String html2image(HealthCardResult param) {
-        String url = "http://192.168.200.3:8805/htmlToImage/healthCardImage/execute";
         RestTemplate restTemplate = new RestTemplate();
-        Map<String, Object> res = restTemplate.postForObject(url, param, Map.class);
+        Map<String, Object> res = restTemplate.postForObject(ExternalAddr.HTML_TO_IMAGE, param, Map.class);
         log.info("生成图片结果:{}", res);
         if (null == res || null == res.get("code")) {
             return null;

+ 5 - 6
src/main/java/thyyxxk/webserver/service/mzpayqrcode/MzPayQrcodeService.java

@@ -8,7 +8,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.web.client.RestTemplate;
 import thyyxxk.webserver.config.exception.ExceptionEnum;
 import thyyxxk.webserver.constants.Capacity;
-import thyyxxk.webserver.constants.HrgAddr;
+import thyyxxk.webserver.constants.ExternalAddr;
 import thyyxxk.webserver.dao.his.mzpayqrcode.MzPayQrcodeDao;
 import thyyxxk.webserver.entity.HrgResponse;
 import thyyxxk.webserver.entity.ResultVo;
@@ -40,7 +40,7 @@ public class MzPayQrcodeService {
         obj.put("patIdType", 11);
         obj.put("patIdNo", socialNo);
         RestTemplate template = new RestTemplate();
-        return template.postForObject(HrgAddr.QUERY_PATIENT_INFO, obj, PatInfo.class);
+        return template.postForObject(ExternalAddr.QUERY_PATIENT_INFO, obj, PatInfo.class);
     }
 
     public ResultVo<List<Map<String, String>>> getRoughList(String patientId) {
@@ -53,7 +53,7 @@ public class MzPayQrcodeService {
         obj.put("patCardNo", patientId);
         obj.put("hisOrdNum", "");
         RestTemplate template = new RestTemplate();
-        HrgResponse hrgRes = template.postForObject(HrgAddr.GET_MZ_CHARGE_DETAIL_FOR_UN_PAID, obj, HrgResponse.class);
+        HrgResponse hrgRes = template.postForObject(ExternalAddr.GET_MZ_CHARGE_DETAIL_FOR_UN_PAID, obj, HrgResponse.class);
         if (null == hrgRes || null == hrgRes.getResultCode()) {
             return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "网络服务错误!");
         }
@@ -79,7 +79,7 @@ public class MzPayQrcodeService {
         pObj.put("hisOrdNum", param.getHisOrdNum());
 
         RestTemplate template = new RestTemplate();
-        HrgResponse hrgRes = template.postForObject(HrgAddr.GET_CHARGE_DETAIL_BY_HIS_ORD_NUM, pObj, HrgResponse.class);
+        HrgResponse hrgRes = template.postForObject(ExternalAddr.GET_CHARGE_DETAIL_BY_HIS_ORD_NUM, pObj, HrgResponse.class);
         if (null == hrgRes || null == hrgRes.getResultCode()) {
             return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "网络服务错误!");
         }
@@ -90,8 +90,7 @@ public class MzPayQrcodeService {
         JSONObject retObj = new JSONObject();
         retObj.put("list", makeSimpleData(list));
         RestTemplate restTemplate = new RestTemplate();
-        String url = "http://192.168.200.3:8805/wxserver/wxApi/createOrderForMzGuideBill";
-        ResultVo<String> qrResult = restTemplate.postForObject(url, param, ResultVo.class);
+        ResultVo<String> qrResult = restTemplate.postForObject(ExternalAddr.CREATE_ORDER_FOR_MZ_GUIDE_BILL, param, ResultVo.class);
         if (null == qrResult || qrResult.getCode() != ExceptionEnum.SUCCESS.getCode()) {
             return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "请求微信支付二维码失败,请联系管理员。");
         }

+ 19 - 2
src/main/java/thyyxxk/webserver/service/yibao/DismissService.java

@@ -40,6 +40,24 @@ public class DismissService {
         this.dao = dao;
     }
 
+    public ResultVo<Object> dismiss(Patient param) {
+        ResultVo<List<ActOrderGroup>> actOrders = getActOrders(param.getInpatientNo(), param.getAdmissTimes());
+        if (actOrders.getCode() != ExceptionEnum.SUCCESS.getCode()) {
+            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, actOrders.getMessage());
+        }
+        if (!actOrders.getData().isEmpty()) {
+            return ResultVoUtil.fail(ExceptionEnum.ABNORMAL_YZ_ACT_ORDER, actOrders.getData());
+        }
+        ResultVo<List<PureCodeName>> calculate = calculateForDismiss(param);
+        if (calculate.getCode() == ExceptionEnum.EXIST_NEGATIVE_FEES.getCode()) {
+            return ResultVoUtil.fail(ExceptionEnum.EXIST_NEGATIVE_FEES, calculate.getData());
+        }
+        if (calculate.getCode() != ExceptionEnum.SUCCESS.getCode()) {
+            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, calculate.getMessage());
+        }
+        return ResultVoUtil.success();
+    }
+
     public ResultVo<List<ActOrderGroup>> getActOrders(String inpatientNo, Integer admissTimes) {
         final Integer ledgerSn = dao.getLedgerSn(inpatientNo, admissTimes);
         if (ledgerSn < 1) {
@@ -153,8 +171,7 @@ public class DismissService {
         }
         List<PureCodeName> feeNegativeList = dao.feeOrderNegative(inpatientNo, admissTimes);
         if (feeNegativeList.size() > 0) {
-            return ResultVoUtil.fail(ExceptionEnum.EXIST_NEGATIVE_FEES, "此患者费用清单存在负数。",
-                    feeNegativeList);
+            return ResultVoUtil.fail(ExceptionEnum.EXIST_NEGATIVE_FEES, feeNegativeList);
         }
         dao.deleteTemporaryTable(inpatientNo, admissTimes);
         final Integer transFlag = param.getDismissFlag() == 1 ? 0 : 2;

+ 4 - 0
src/main/java/thyyxxk/webserver/utils/ResultVoUtil.java

@@ -24,6 +24,10 @@ public class ResultVoUtil {
         return new ResultVo<>(exceptionEnum, message);
     }
 
+    public static <T> ResultVo<T> fail(ExceptionEnum exceptionEnum, T data) {
+        return new ResultVo<>(exceptionEnum, data);
+    }
+
     public static <T> ResultVo<T> fail(ExceptionEnum exceptionEnum, String message, T data) {
         return new ResultVo<>(exceptionEnum, message, data);
     }