Ver código fonte

续方对接

chenjiasheng 3 anos atrás
pai
commit
3dcdf820df

+ 72 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/a1entity/Mediicinedrugs.java

@ -128,10 +128,82 @@ public class Mediicinedrugs extends UuidIdentityEntityWithOperator implements Se
     * 品牌
     */
    private String brand;
    /*
    * 药品Sku*/
    private String drugSku;
    /*药品数量*/
    private Float drugNum;
    /*使用量*/
    private Float useNum;
    /*使用方法*/
    private String useWay;
    /*使用频率*/
    private String useRate;
    /*每次使用剂量*/
    private String useDose;
    /*补充用法*/
    private String useWayAdd;
    public Mediicinedrugs() {
    }
    public String getDrugSku() {
        return drugSku;
    }
    public void setDrugSku(String drugSku) {
        this.drugSku = drugSku;
    }
    public Float getDrugNum() {
        return drugNum;
    }
    public void setDrugNum(Float drugNum) {
        this.drugNum = drugNum;
    }
    public Float getUseNum() {
        return useNum;
    }
    public void setUseNum(Float useNum) {
        this.useNum = useNum;
    }
    public String getUseWay() {
        return useWay;
    }
    public void setUseWay(String useWay) {
        this.useWay = useWay;
    }
    public String getUseRate() {
        return useRate;
    }
    public void setUseRate(String useRate) {
        this.useRate = useRate;
    }
    public String getUseDose() {
        return useDose;
    }
    public void setUseDose(String useDose) {
        this.useDose = useDose;
    }
    public String getUseWayAdd() {
        return useWayAdd;
    }
    public void setUseWayAdd(String useWayAdd) {
        this.useWayAdd = useWayAdd;
    }
    public String getState() {
        return state;
    }

+ 134 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/a1entity/Mediicineorder.java

@ -83,6 +83,24 @@ public class Mediicineorder extends UuidIdentityEntityWithOperator implements Se
     */
    private String pickUpNum;
    /**
     *诊断信息
     */
    private String info;
    public String getAttr() {
        return attr;
    }
    public void setAttr(String attr) {
        this.attr = attr;
    }
    /*
    * 订单属性
    * */
    private String attr;
    /**
     * 订单金额
     */
@ -158,13 +176,64 @@ public class Mediicineorder extends UuidIdentityEntityWithOperator implements Se
    /**
     * 货道信息
     */
    /**
     * 医院信息
     */
    private String hospitalInfo;
    private String cargoInfo;
    /**
     * 出生日期
     */
    private Date birth;
    /*
    科室信息
    * */
    private String deptNum;
    private String deptName;
    /*医生信息*/
    private String doctorNum;
    private String doctorName;
    /*医嘱*/
    private String doctorAdvice;
    /*过敏史*/
    private String allergyInfo;
    /*商户id*/
    private String userId;
    /*门店编号*/
    private String shopNo;
    public String getUserId() {
        return userId;
    }
    public void setUserId(String userId) {
        this.userId = userId;
    }
    public String getShopNo() {
        return shopNo;
    }
    public void setShopNo(String shopNo) {
        this.shopNo = shopNo;
    }
    public String getAllergyInfo() {
        return allergyInfo;
    }
    public void setAllergyInfo(String allergyInfo) {
        this.allergyInfo = allergyInfo;
    }
    public Mediicineorder() {
    }
    public String getOrderNum() {
        return orderNum;
    }
@ -176,6 +245,63 @@ public class Mediicineorder extends UuidIdentityEntityWithOperator implements Se
    public String getOrderState() {
        return orderState;
    }
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    public Date getBirth() {
        return birth;
    }
    public String getDoctorAdvice() {
        return doctorAdvice;
    }
    public void setDoctorAdvice(String doctorAdvice) {
        this.doctorAdvice = doctorAdvice;
    }
    public String getDoctorNum() {
        return doctorNum;
    }
    public void setDoctorNum(String doctorNum) {
        this.doctorNum = doctorNum;
    }
    public String getDoctorName() {
        return doctorName;
    }
    public void setDoctorName(String doctorName) {
        this.doctorName = doctorName;
    }
    public String getDeptNum() {
        return deptNum;
    }
    public void setDeptNum(String deptNum) {
        this.deptNum = deptNum;
    }
    public String getDeptName() {
        return deptName;
    }
    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }
    public void setBirth(Date birth) {
        this.birth = birth;
    }
    public String getHospitalInfo() {
        return hospitalInfo;
    }
    public void setHospitalInfo(String hospitalInfo) {
        this.hospitalInfo = hospitalInfo;
    }
    public void setOrderState(String orderState) {
        this.orderState = orderState;
@ -205,6 +331,14 @@ public class Mediicineorder extends UuidIdentityEntityWithOperator implements Se
        this.prescribeTime = prescribeTime;
    }
    public String getInfo() {
        return info;
    }
    public void setInfo(String info) {
        this.info = info;
    }
    public String getPrescribeNum() {
        return prescribeNum;
    }

+ 21 - 2
common/common-entity/src/main/java/com/yihu/jw/entity/hospital/consult/WlyyHospitalSysDictDO.java

@ -125,6 +125,25 @@ public class  WlyyHospitalSysDictDO extends UuidIdentityEntityWithOperator {
        this.hospital = hospital;
    }
    @Override
    public String toString() {
        return "WlyyHospitalSysDictDO{" +
                "saasId='" + saasId + '\'' +
                ", dictName='" + dictName + '\'' +
                ", dictCode='" + dictCode + '\'' +
                ", dictValue='" + dictValue + '\'' +
                ", pyCode='" + pyCode + '\'' +
                ", sort=" + sort +
                ", hospital='" + hospital + '\'' +
                ", imgUrl='" + imgUrl + '\'' +
                ", modelName='" + modelName + '\'' +
                ", createTime=" + createTime +
                ", createUser='" + createUser + '\'' +
                ", createUserName='" + createUserName + '\'' +
                ", updateTime=" + updateTime +
                ", updateUser='" + updateUser + '\'' +
                ", updateUserName='" + updateUserName + '\'' +
                ", id='" + id + '\'' +
                '}';
    }
}

+ 9 - 1
svr/svr-base/src/main/java/com/yihu/jw/base/dao/a2dao/MediicineorderDao.java

@ -2,7 +2,7 @@ package com.yihu.jw.base.dao.a2dao;
import com.yihu.jw.entity.a1entity.Mediicineorder;
import com.yihu.jw.entity.patient.Message;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
@ -19,5 +19,13 @@ public interface MediicineorderDao extends PagingAndSortingRepository<Mediicineo
    //统计时间段的天的订单数量
    @Query("select count(1) from Mediicineorder a where a.prescribeTime >= ?1 and a.prescribeTime<=?2")
    int getcount(Date beg , Date end);
    @Query("select a from Mediicineorder a where a.prescribeNum = ?1")
    Mediicineorder findMediicineorderByPrescribeNum(String prescribeNum);
    @Query("select a from Mediicineorder a where a.id=?1")
    Mediicineorder findById(String id);
    @Query("select a from Mediicineorder a where a.orderNum=?1")
    Mediicineorder findByOrderNum(String order);
}

+ 62 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/a4endpoint/MedOrderEndpoint.java

@ -0,0 +1,62 @@
package com.yihu.jw.base.endpoint.a4endpoint;
import com.yihu.jw.base.service.a3service.MedOrderService;
import com.yihu.jw.entity.a1entity.Mediicinedrugs;
import com.yihu.jw.entity.a1entity.Mediicineorder;
import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
import com.yihu.jw.hospital.dict.service.WlyyHospitalSysDictService;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.rm.base.BaseRequestMapping;
import com.yihu.jw.utils.EntityUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping(value = BaseRequestMapping.BaseOrder.PREFIX)
@Api(value = "订单续方管理",description = "订单续方管理" ,tags = "MedOrder - 续方管理服务接口")
public class MedOrderEndpoint extends EnvelopRestEndpoint {
    @Autowired
    MedOrderService medOrderService;
    @Autowired
    WlyyHospitalSysDictService wlyyHospitalSysDictService;
    @PostMapping(value = "/open/renew")
    @ApiOperation(value = "接收续方订单接口",notes = "接收续方订单接口" )
    public Envelop renew(@ApiParam(name = "jsonData",value = "json数据",required = true)
                                @RequestParam(value = "jsonData",required = true)String jsonData){
        Map <String,Object>map =medOrderService.saveOrder(jsonData);
        Mediicineorder mediicineorder=(Mediicineorder)map.get("order");
        Mediicinedrugs mediicinedrugs=(Mediicinedrugs)map.get("drugs");
        if (map.size()>0&&mediicineorder!=null&&mediicinedrugs!=null) {
            return success(map);
        }
        return failed("处方已存在",500);
    }
    @GetMapping(value = "wlyygc/webHospital/getOrgPhysicDict")
    @ApiOperation(value = "同步药品字典",notes = "同步药品字典")
    public ListEnvelop<WlyyHospitalSysDictDO> getOrgPhysicDict(@ApiParam(name = "jsonData",value = "json数据",required = true)
                                                                   @RequestParam(value = "jsonData",required = true)
                                                                           String jsonData) throws Exception {
        List<WlyyHospitalSysDictDO> list= EntityUtils.jsonToList(jsonData,WlyyHospitalSysDictDO.class);
        System.out.println(list);
        List<WlyyHospitalSysDictDO> sysDictDOS=new ArrayList<>();
        for (WlyyHospitalSysDictDO wlyyHospitalSysDictDO:list){
            WlyyHospitalSysDictDO sysDictDO=wlyyHospitalSysDictService.save(wlyyHospitalSysDictDO);
            sysDictDOS.add(sysDictDO);
        }
        System.out.println(sysDictDOS);
        return success("msg",sysDictDOS);
    }
}

+ 98 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/a3service/MedOrderService.java

@ -0,0 +1,98 @@
package com.yihu.jw.base.service.a3service;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.base.dao.a2dao.MediicinedrugsDao;
import com.yihu.jw.base.dao.a2dao.MediicineorderDao;
import com.yihu.jw.entity.a1entity.Mediicinedrugs;
import com.yihu.jw.entity.a1entity.Mediicineorder;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;;
import java.util.HashMap;
import java.util.Map;
@Transactional
@Service
public class MedOrderService {
    private static Logger logger = LoggerFactory.getLogger(MedOrderService.class);
    @Autowired
    MediicineorderDao mediicineorderDao;
    @Autowired
    MediicinedrugsDao mediicinedrugsDao;
    /**
     * 获取续方订单及药方
     * @return
     */
    public Map<String,Object> saveOrder(String jsonData){
        Map<String,Object>result=new HashMap<>();
        if (StringUtils.isNotBlank(jsonData)){
            JSONObject params=JSONObject.parseObject(jsonData);
            String order=params.getString("realOrder");
            Mediicineorder mediicineorder=new Mediicineorder();
            if (mediicineorderDao.findByOrderNum(order)==null) {
                mediicineorder.setOrderNum(order);
            }else{
                result.put("failed","订单号已存在");
                return result;
            }
            String sex=params.getString("rx_patient_sex");
            mediicineorder.setSex(sex);
            String equNum=params.getString("device_no");
            mediicineorder.setEquNum(equNum);
            String name=params.getString(" rx_patient_name");
            mediicineorder.setName(name);
            String age=params.getString(" rx_patient_age");
            mediicineorder.setAge(age);
            mediicineorder.setUserId(params.getString("user_id"));
            mediicineorder.setShopNo(params.getString("shop_no"));
            mediicineorder.setAddress(params.getString(" rx_patient_address"));
            mediicineorder.setContact(params.getString(" rx_patient_phone"));
            mediicineorder.setIdNum(params.getString(" rx_patient_identity"));
            mediicineorder.setOrderType(params.getString(" rx_type"));
            mediicineorder.setOrderState(params.getString("rx_state"));
            mediicineorder.setAttr(params.getString(" rx_attr"));
            mediicineorder.setIdNum(params.getString("rx_patient_identity"));
            mediicineorder.setPrescribeTime(params.getDate("rx_time"));
            mediicineorder.setBirth(params.getDate("rx_patient_birth"));
            mediicineorder.setInfo(params.getString("rx_diagnosis_info"));
            mediicineorder.setHospitalInfo(params.getString(" rx_hospital_info"));
            mediicineorder.setDeptNum(params.getString(" rx_department_no"));
            mediicineorder.setDeptName(params.getString(" rx_department_name"));
            mediicineorder.setDoctorNum(params.getString("rx_doctor_no"));
            mediicineorder.setDeptName(params.getString("rx_doctor_name"));
            mediicineorder.setDoctorAdvice(params.getString(" rx_doctoradvice"));
            mediicineorder.setAllergyInfo(params.getString(" rx_allergy_info"));
            JSONArray jsonArray=params.getJSONArray("rx_drugs");
            Mediicinedrugs mediicinedrugs=new Mediicinedrugs();
            for (int i = 0; i <jsonArray.size() ; i++) {
                JSONObject jsonObject=jsonArray.getJSONObject(i);
                mediicinedrugs.setId(jsonObject.getString("drug_id"));
                mediicinedrugs.setDrugSku(jsonObject.getString("drug_sku "));
                mediicinedrugs.setDrugCode(jsonObject.getString("drug_code"));
                mediicinedrugs.setDrugName(jsonObject.getString("drug_name"));
                mediicinedrugs.setSpecif(jsonObject.getString("drug_specs"));
                mediicinedrugs.setDrugNum(jsonObject.getFloat("drug_num"));
                mediicinedrugs.setPrice(jsonObject.getFloat("drug_price"));
                mediicinedrugs.setUseNum(jsonObject.getFloat("drug_use_num"));
                mediicinedrugs.setUseWay(jsonObject.getString(" drug_use_way"));
                mediicinedrugs.setUseRate(jsonObject.getString(" drug_use_rate"));
                mediicinedrugs.setUseDose(jsonObject.getString(" drug_use_dose"));
                mediicinedrugs.setUnit(jsonObject.getString("drug_use_unit"));
                mediicinedrugs.setUseWayAdd(jsonObject.getString("drug_use_way_add"));
                mediicinedrugs.setManufactor(jsonObject.getString(" drug_firm_name"));
            }
            Mediicineorder ord=mediicineorderDao.save(mediicineorder);
            Mediicinedrugs drugs=mediicinedrugsDao.save(mediicinedrugs);
            result.put("order",ord);
            result.put("drugs",drugs);
            return result;
        }
        return null;
    }
}