Browse Source

订单修改

wangjun 3 years ago
parent
commit
c4672366c5

+ 71 - 1
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/TasyNatService.java

@ -25,6 +25,7 @@ import net.sf.json.xml.XMLSerializer;
import org.apache.commons.collections.map.HashedMap;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.math.NumberUtils;
import org.checkerframework.checker.units.qual.A;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@ -809,6 +810,11 @@ public class TasyNatService {
                        baseNatAppointmentDO.setVoucherNo(voucherNo);
                        if ("已扣费".equalsIgnoreCase(jsonObject.getString("Status"))){
                            baseNatAppointmentDO.setPayStatus("1");
                            BusinessOrderDO businessOrderDO = businessOrderDao.selectByRelationCode(baseNatAppointmentDO.getId().toString());
                            if (businessOrderDO!=null){
                                businessOrderDO.setStatus(1);
                                businessOrderDao.save(businessOrderDO);
                            }
                        }
                        baseNatAppointmentDao.save(baseNatAppointmentDO);
                    }
@ -836,7 +842,6 @@ public class TasyNatService {
                businessOrderDO.setOrderNo(newOrder);
                businessOrderDO.setHistoryOrder(orderNo+","+newOrder);
            }
            com.alibaba.fastjson.JSONObject orderObj= new com.alibaba.fastjson.JSONObject();
            orderObj.put("payType",1);
            orderObj.put("tradeNo",businessOrderDO.getOrderNo());
@ -925,4 +930,69 @@ public class TasyNatService {
        logger.info("hdrQueryDataWS json:"+json);
        return json;
    }
    public  Map checkBalance(String relationCode) throws  Exception{
        BaseNatAppointmentDO baseNatAppointmentDO = baseNatAppointmentDao.findOne(Integer.parseInt(relationCode));
        WlyyHospitalSysDictDO wlyyHospitalSysDictDO = wlyyHospitalSysDictDao.findById("MzBalance");
        String tmpBalance="";
        if (wlyyHospitalSysDictDO!=null){
            tmpBalance=wlyyHospitalSysDictDO.getDictValue();
        }
        String res = findHisPatientCard(baseNatAppointmentDO.getCardNo());
        String mediacard=baseNatAppointmentDO.getMedicare();
        Map result=new HashMap();
        if (StringUtils.isNoneBlank(res)){
            JSONObject jsonObject = JSON.parseObject(res);
            if ("1".equalsIgnoreCase(jsonObject.getString("ReturnCode"))) {
                String patients=jsonObject.getString("patients");
                if (patients.contains("[")){
                    JSONArray jsonArray = JSON.parseArray(patients);
                    if (jsonArray != null && jsonArray.size() > 0) {
                        for (int i = 0; i < jsonArray.size(); i++) {
                            JSONObject child = jsonArray.getJSONObject(i);
                            if (mediacard.equalsIgnoreCase(child.getString("CardNo"))) {
                                String MzBalance = child.getString("MzBalance");
                                if (StringUtils.isNoneBlank(tmpBalance)){
                                    MzBalance=tmpBalance;
                                }
                                System.out.println("MzBalance====="+MzBalance);
                                if (StringUtils.isNoneBlank(MzBalance) && Integer.parseInt(MzBalance) < 0) {
                                    result.put("msgCode", "-1");
                                    result.put("msg", "余额不足");
                                    return result;
                                }
                            }
                        }
                    }
                }else {
                    try {
                        JSONObject jsonObject1= JSONObject.parseObject(patients);
                        if (mediacard.equalsIgnoreCase(jsonObject1.getString("CardNo"))) {
                            String MzBalance = jsonObject1.getString("MzBalance");
                            if (StringUtils.isNoneBlank(tmpBalance)){
                                MzBalance=tmpBalance;
                            }
                            System.out.println("MzBalance====="+MzBalance);
                            if (StringUtils.isNoneBlank(MzBalance) && Integer.parseInt(MzBalance) < 0) {
                                result.put("msgCode", "-1");
                                result.put("msg", "余额不足");
                                return result;
                            }
                            return result;
                        }
                    }catch (Exception e){
                        e.printStackTrace();
                        result.put("msgCode","-1000");
                        result.put("msg","json格式验证失败");
                    }
                }
            }
        }
        result.put("msgCode","200");
        result.put("msg","验证通过");
        return  result;
    }
}

+ 8 - 0
common/common-entity/sql记录

@ -1206,3 +1206,11 @@ CREATE TABLE `voluntary_recruitment_people` (
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='企业人员表';
alter table base_job_category  add code varchar(50);
alter table base_nat_appointment  add oder_num varchar(50);
alter table base_business_order_pay  add history_order varchar(1000);

+ 23 - 7
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/patient/PatientNoLoginEndPoint.java

@ -2318,6 +2318,10 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
                                 @RequestParam(value = "traceNo", required = false) String traceNo,
                             @ApiParam(name = "msg", value = "msg", required = false)
                                 @RequestParam(value = "msg", required = false) String msg) throws Exception {
        System.out.println("进入回调code="+code);
        System.out.println("进入回调orderNo="+orderNo);
        System.out.println("进入回调traceNo="+traceNo);
        System.out.println("进入回调msg="+msg);
        if ("0".equalsIgnoreCase(code)){
            BusinessOrderDO businessOrderDO = businessOrderDao.selectByTraceNoAndorderNo(orderNo,traceNo);
            if (businessOrderDO!=null){
@ -2326,10 +2330,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
                String res = tasyNatService.orderStatus(requestObj);
                JSONObject orderStatus=JSONObject.parseObject(res);
                if ("0".equalsIgnoreCase(orderStatus.getString("code"))){
                    JSONObject data = orderStatus.getJSONObject("data");
                    if ("1".equalsIgnoreCase(data.getString("payOrderStatus"))){
                        businessOrderDO.setStatus(1);
                        businessOrderDao.save(businessOrderDO);
                    System.out.println("开始同步状态");
                        BaseNatAppointmentDO baseNatAppointmentDO = baseNatAppointmentDao.findOne(Integer.valueOf(businessOrderDO.getRelationCode()));
                        if (baseNatAppointmentDO!=null){
                            if (baseNatAppointmentDO.getPayStatus().equalsIgnoreCase("0")){
@ -2344,20 +2345,25 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
                                    if ("1".equalsIgnoreCase(feeObj.getString("ReturnCode"))){
                                        String voucherNo = feeObj.getString("ApplyNo");
                                        baseNatAppointmentDO.setVoucherNo(voucherNo);
                                    }else{
                                        return feeObj.getString("ReturnMsg");
                                    }
                                }else{
                                    return  "FAILED";
                                }
                                baseNatAppointmentDO.setPayStatus("1");
                                baseNatAppointmentDao.save(baseNatAppointmentDO);
                                tasyNatService.sendWxtemplateMessaeg(baseNatAppointmentDO.getConsumer(),"hszfcgtx",baseNatAppointmentDO.getName(),baseNatAppointmentDO.getId().toString());
                                businessOrderDO.setStatus(1);
                                businessOrderDao.save(businessOrderDO);
                                tasyNatService.sendWxtemplateMessaeg(baseNatAppointmentDO.getConsumer(),baseNatAppointmentDO.getName(),"hszfcgtx",baseNatAppointmentDO.getId().toString());
                            }
                            return "SUCCESS";
                    }
                }
                }
            }
        }
        return  "failed";
        return  "FAILED";
    }
    @GetMapping("/saveNatAppointment")
@ -2522,7 +2528,17 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
        }catch (Exception e){
            return failedMixEnvelopException(e);
        }
    }
    @GetMapping("/checkBalance")
    public Envelop checkBalance(
            @ApiParam(name = "relationCode", value = "relationCode")
            @RequestParam(value = "relationCode",required = false)String relationCode) throws Exception {
        try {
            return success(tasyNatService.checkBalance(relationCode));
        }catch (Exception e){
            return failedMixEnvelopException(e);
        }
    }
}