bing 2 سال پیش
والد
کامیت
455970bc6b

+ 3 - 3
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/a4endpoint/MedicineOrderDrugsEndpoint.java

@ -42,13 +42,13 @@ public class MedicineOrderDrugsEndpoint extends EnvelopRestEndpoint {
    }
    @GetMapping("/open/readCardInfo")
    @ApiOperation(value = "封装读卡参数,患者用医保凭证是改接口与getSettlementInfoList前调用", notes = "封装读卡参数")
    @ApiOperation(value = "封装读卡参数,患者用医保凭证是改接口在getSettlementInfoList前调用,后续无需在重复读卡", notes = "封装读卡参数")
    public Envelop readCardInfo(
            @ApiParam(name = "orgCode", value = "orgCode")
            @RequestParam(value = "orgCode", required = true) String orgCode,
            @ApiParam(name = "mdtrt_cert_type", value = "凭证类型01扫医保凭证02身份证03医保卡")
            @RequestParam(value = "mdtrt_cert_type", defaultValue = "01",required = false) String mdtrt_cert_type,
            @ApiParam(name = "cardNo", value = "卡识别码")
            @ApiParam(name = "cardNo", value = "卡号")
            @RequestParam(value = "cardNo", required = false) String cardNo,
            @ApiParam(name = "card_sn", value = "卡识别码")
            @RequestParam(value = "card_sn", required = false) String card_sn,
@ -84,7 +84,7 @@ public class MedicineOrderDrugsEndpoint extends EnvelopRestEndpoint {
    public Envelop getSettlementInfoFirst(
            @ApiParam(name = "recipe_no", value = "recipe_no")
            @RequestParam(value = "recipe_no", required = true) String recipe_no,
            @ApiParam(name = "mdtrt_cert_type", value = "凭证类型01扫医保凭证02身份证03医保卡")
            @ApiParam(name = "mdtrt_cert_type", value = "凭证类型01扫医保凭证02身份证03医保卡 如果是扫凭证 该参数传02外加身份证字段 且无需再重复读卡 ")
            @RequestParam(value = "mdtrt_cert_type", defaultValue = "03",required = false) String mdtrt_cert_type,
            @ApiParam(name = "card_sn", value = "卡识别码")
            @RequestParam(value = "card_sn", required = false) String card_sn,

+ 15 - 9
svr/svr-base/src/main/java/com/yihu/jw/base/service/a3service/MedOrderService.java

@ -839,13 +839,13 @@ public class MedOrderService {
                                    String APPLY_TIME="";//开单时间
                                    Date visitDate = null;
                                    String USER_NAME = "";
                                    Double totalAmount = 0.0;//医疗费总金额
                                    Double ownPay = 0.0;
                                    BigDecimal totalAmount = new BigDecimal(0.00);
                                    BigDecimal ownPay = new BigDecimal(0.00);
                                    DecimalFormat amountDf = new DecimalFormat("0.00");
                                    String RATE_TYPE = "";//续方费用类别 1自费 2医保
                                    String SUM_COST =amountDf.format(Double.valueOf(waitForPay.getString("SUM_COST")));//医保支付下,sumCost=0 当作自费号处理
                                    String SUM_CHARGE =amountDf.format(Double.valueOf(waitForPay.getString("SUM_COST")));//待结算自付总费用
                                    Double INSUR_ITEM_PRICE = 0.0;//医保单价
                                    BigDecimal INSUR_ITEM_PRICE = new BigDecimal(0);
                                    String visit_msgid = ""; //发送方报文ID【用于基线门诊挂号接口,自助机fsi.terminal.register接口】
                                    String visit_rush_msgid = ""; //发送方报文ID【用于基线门诊挂号撤销接口,自助机fsi.terminal.register.cancel接口】
                                    String VISIT_NO = ""; //门诊号【对应基线接口:ipt_otp_no】
@ -916,10 +916,10 @@ public class MedOrderService {
                                                    ylzMedicalMxDO.setAmount(SETTLE_DETAIL_OBJ.getString("ITEM_QUANTITY"));//数量
                                                    ylzMedicalMxDO.setTotalMoney(amountDf.format(Double.valueOf(SETTLE_DETAIL_OBJ.getString("COST"))));//金额
                                                    totalAmount +=Double.valueOf(SETTLE_DETAIL_OBJ.getString("COST"));
                                                    ownPay +=Double.valueOf(SETTLE_DETAIL_OBJ.getString("CHARGE"));
                                                    totalAmount = totalAmount.add(new BigDecimal(SETTLE_DETAIL_OBJ.getString("COST")));
                                                    ownPay = ownPay.add(new BigDecimal(SETTLE_DETAIL_OBJ.getString("CHARGE")));
                                                    if (null!=SETTLE_DETAIL_OBJ.get("INSUR_ITEM_PRICE")){
                                                        INSUR_ITEM_PRICE += Double.valueOf(SETTLE_DETAIL_OBJ.getString("INSUR_ITEM_PRICE"));//医保项目单价
                                                        INSUR_ITEM_PRICE = INSUR_ITEM_PRICE.add(new BigDecimal(SETTLE_DETAIL_OBJ.getString("INSUR_ITEM_PRICE")));
                                                    }
                                                    ylzMedicalMxDO.setSingleDose(SETTLE_DETAIL_OBJ.getString("PHYSIC_DOSE"));//每次用量
                                                    ylzMedicalMxDO.setUseFrequency(SETTLE_DETAIL_OBJ.getString("FREQUENCY"));//使用频率
@ -1004,9 +1004,6 @@ public class MedOrderService {
                                        }
                                    }
                                    if(!amountDf.format(totalAmount).equals(SUM_COST)||!amountDf.format(ownPay).equals(SUM_CHARGE)){
                                        throw new Exception("金额不对无法结算");
                                    }
                                    if (newYlzRelation){
                                        ylzMedicalRelationDO.setLogNo(prescription_code);
                                        ylzMedicalRelationDO.setOrgCode(orgCode);
@ -1074,6 +1071,15 @@ public class MedOrderService {
                                        //费用为0的医保结算也需要当作自费处理
                                        ylzMedicalRelationDO.setMedicalState(0);
                                    }
                                    BigDecimal b1 = new BigDecimal(ylzMedicalRelationDO.getPersonCash());//个人现金支付金额
                                    BigDecimal b2 = new BigDecimal(ylzMedicalRelationDO.getPersonAccount());//个人账户支付金额
                                    BigDecimal b3 = new BigDecimal(ylzMedicalRelationDO.getMedicalPrice());//医保基金总额
                                    Double totalPirce=b1.add(b2).add(b3).doubleValue();
                                    logger.info("总费用:"+totalPirce);
                                    if (totalPirce!=Double.parseDouble(ylzMedicalRelationDO.getTotalAmount())){
                                        throw new Exception("金额不对无法结算");
                                    }
                                    ylzMedicailRelationDao.save(ylzMedicalRelationDO);
                                    ylzMedicalRelationDO.setYlzMedicalIcdDOList(icdDOList);
                                    ylzMedicalRelationDO.setYlzMedicalMxDOList(mxDOList);