瀏覽代碼

续方对接,药品字典

chenjiasheng 3 年之前
父節點
當前提交
659d5d38b2

+ 0 - 1
business/base-service/src/main/java/com/yihu/jw/wlyy/wlyyhttp/WlyyHttpService.java

@ -129,7 +129,6 @@ public class WlyyHttpService {
                headerMap.put("accesstoken",token);
                logger.info("sendWlyyMes url :"+oauthWlyyConfigDO.getUrl()+param);
                String rs = httpClientUtil.get(oauthWlyyConfigDO.getUrl()+param,"utf-8",headerMap);
                JSONObject re = JSONObject.parseObject(rs);
                Integer s = re.getInteger("status");

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

@ -143,7 +143,26 @@ public class Mediicinedrugs extends UuidIdentityEntityWithOperator implements Se
    private String useDose;
    /*补充用法*/
    private String useWayAdd;
    /*机构*/
    private String orgCode;
    /*机构名称*/
    private String orgName;
    public String getOrgName() {
        return orgName;
    }
    public void setOrgName(String orgName) {
        this.orgName = orgName;
    }
    public String getOrgCode() {
        return orgCode;
    }
    public void setOrgCode(String orgCode) {
        this.orgCode = orgCode;
    }
    public Mediicinedrugs() {
    }

+ 89 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/a1entity/Mediicineorderdetail.java

@ -190,7 +190,96 @@ public class Mediicineorderdetail extends UuidIdentityEntityWithOperator impleme
     */
    private Date shippingTime;
    private String drugSku;
    private Float drugNum;
    private String specif;
    private Float useNum;
    private String useWay;
    private String useRate;
    private String useDose;
    private String unit;
    private String useWayAdd;
    private String manufactor;
    public Float getDrugNum() {
        return drugNum;
    }
    public void setDrugNum(Float drugNum) {
        this.drugNum = drugNum;
    }
    public String getSpecif() {
        return specif;
    }
    public void setSpecif(String specif) {
        this.specif = specif;
    }
    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 getUnit() {
        return unit;
    }
    public void setUnit(String unit) {
        this.unit = unit;
    }
    public String getUseWayAdd() {
        return useWayAdd;
    }
    public void setUseWayAdd(String useWayAdd) {
        this.useWayAdd = useWayAdd;
    }
    public String getManufactor() {
        return manufactor;
    }
    public void setManufactor(String manufactor) {
        this.manufactor = manufactor;
    }
    public String getDrugSku() {
        return drugSku;
    }
    public void setDrugSku(String drugSku) {
        this.drugSku = drugSku;
    }
    public Mediicineorderdetail() {
    }

+ 4 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/dao/a2dao/MediicinedrugsDao.java

@ -2,6 +2,7 @@ package com.yihu.jw.base.dao.a2dao;
import com.yihu.jw.entity.a1entity.Mediicinedrugs;
import com.yihu.jw.entity.hospital.DmHospitalDO;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
@ -13,4 +14,7 @@ public interface MediicinedrugsDao extends PagingAndSortingRepository<Mediicined
    @Query("select a from Mediicinedrugs a  ")
    List<Mediicinedrugs> getorderdetail();
    boolean existsByDrugCode(String drugCode);
    Mediicinedrugs findByDrugCode(String drugCode);
}

+ 5 - 28
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/a4endpoint/MedOrderEndpoint.java

@ -1,36 +1,30 @@
package com.yihu.jw.base.endpoint.a4endpoint;
import com.yihu.jw.base.service.a3service.MedOrderService;
import com.yihu.jw.base.service.a3service.MedicineDrugsService;
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;
    MedicineDrugsService medicineDrugsService;
    @PostMapping(value = "/open/renew")
    @PostMapping(value = "/baseOrder/open/renew")
    @ApiOperation(value = "接收续方订单接口",notes = "接收续方订单接口" )
    public Envelop renew(@ApiParam(name = "jsonData",value = "json数据",required = true)
                                @RequestParam(value = "jsonData",required = true)String jsonData){
@ -42,21 +36,4 @@ public class MedOrderEndpoint extends EnvelopRestEndpoint {
        }
        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);
    }
}

+ 30 - 3
svr/svr-base/src/main/java/com/yihu/jw/base/service/a3service/MedOrderService.java

@ -7,24 +7,28 @@ import com.yihu.jw.base.dao.a2dao.MediicineorderDao;
import com.yihu.jw.entity.a1entity.Mediicinedrugs;
import com.yihu.jw.entity.a1entity.Mediicineorder;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.utils.hibernate.HibenateUtils;
import com.yihu.mysql.query.BaseJpaService;
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;
import java.util.*;
@Transactional
@Service
public class MedOrderService {
public class MedOrderService  {
    private static Logger logger = LoggerFactory.getLogger(MedOrderService.class);
    @Autowired
    MediicineorderDao mediicineorderDao;
    @Autowired
    MediicinedrugsDao mediicinedrugsDao;
    @Autowired
    HibenateUtils hibenateUtils;
    /**
     * 获取续方订单及药方
     * @return
@ -95,4 +99,27 @@ public class MedOrderService {
        }
        return null;
    }
    public List getOrgPhysicDict1(String jsonData) throws Exception {
        List<Mediicinedrugs> list=new ArrayList<>();
        if (StringUtils.isNotBlank(jsonData)){
            JSONObject params=JSONObject.parseObject(jsonData);
            JSONArray jsonArray=params.getJSONArray("data");
            for (int i = 0; i <jsonArray.size() ; i++) {
                JSONObject jsonObject=jsonArray.getJSONObject(i);
                Mediicinedrugs mediicinedrugs=new Mediicinedrugs();
                mediicinedrugs.setDrugCode(jsonObject.getString("physic_code"));
                mediicinedrugs.setDrugName(jsonObject.getString("physic_name"));
                mediicinedrugs.setSpecif(jsonObject.getString("physic_spec"));
                mediicinedrugs.setUnit(jsonObject.getString("dose_unit"));
                mediicinedrugs.setUseDose(jsonObject.getString("min_dose"));
                mediicinedrugs.setPrice(jsonObject.getFloat("retail_price"));
                mediicinedrugs.setDosForm(jsonObject.getString("physic_form"));
                mediicinedrugs.setDrugClass(jsonObject.getString("subject_class"));
                list.add(mediicinedrugsDao.save(mediicinedrugs));
            }
            return list;
        }
        return null;
    }
}

+ 3 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/a3service/MedicineDrugsService.java

@ -283,4 +283,7 @@ public class MedicineDrugsService extends BaseJpaService<Mediicinedrugs, Mediici
    }
    public void getOrgPhysicDict(String jsonData) {
    }
}

+ 71 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/a3service/MedicineServive.java

@ -0,0 +1,71 @@
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.entity.a1entity.Mediicinedrugs;
import com.yihu.jw.hospital.HospitalDao;
import com.yihu.jw.wlyy.wlyyhttp.WlyyHttpService;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class MedicineServive {
    private static final Logger logger = LoggerFactory.getLogger(MedicineServive.class);
    @Autowired
    private WlyyHttpService wlyyHttpService;
    @Autowired
    private MedicineDrugsService medicineDrugsService;
    @Autowired
    private HospitalDao hospitalDao;
    @Autowired
    private MediicinedrugsDao mediicinedrugsDao;
    public void getOrgPhysicDict(String jsonData){
        String param="";
        if (StringUtils.isNoneBlank(jsonData)){
            param="?jsonData="+jsonData;
        }
        JSONObject re = wlyyHttpService.sendWlyyMesGet("getOrgPhysicDict",param);
        if(re!=null){
            JSONArray jsonArray = JSONArray.parseArray(re.getString("data"));
            logger.info("mediicinedrugs size:"+jsonArray.size());
            if(jsonArray!=null&&jsonArray.size()>0){
                Integer addCount = 0;
                Integer updateCount =0;
                for(int i=0;i<jsonArray.size();i++){
                    JSONObject h = (JSONObject) jsonArray.get(i);
                    String drugCode = h.getString("physic_code");
                    if(!mediicinedrugsDao.existsByDrugCode(drugCode)){
                        Mediicinedrugs org = new Mediicinedrugs();
                        org.setDrugCode(drugCode);
                        org.setDrugName(h.getString("physic_name"));
                        org.setSpecif(h.getString("physic_spec"));
                        org.setDrugClass(h.getString("subject_class"));
                        org.setUnit(h.getString("dose_unit"));
                        org.setUseDose(h.getString("min_dose"));
                        org.setOrgCode(h.getString("orgCode"));
                        mediicinedrugsDao.save(org);
                        addCount++;
                    }else{
                        Mediicinedrugs org = mediicinedrugsDao.findByDrugCode(drugCode);
                        org.setDrugCode(drugCode);
                        org.setDrugName(h.getString("physic_name"));
                        org.setSpecif(h.getString("physic_spec"));
                        org.setDrugClass(h.getString("subject_class"));
                        org.setUnit(h.getString("dose_unit"));
                        org.setUseDose(h.getString("min_dose"));
                        org.setOrgCode(h.getString("orgCode"));
                        mediicinedrugsDao.save(org);
                        updateCount++;
                    }
                }
                logger.info("mediicinedrugs:addCount:"+addCount+" updateCount:"+updateCount);
            }
        }
    }
}

+ 22 - 0
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/dao/med/MediicineorderdetailDao.java

@ -0,0 +1,22 @@
package com.yihu.jw.hospital.dao.med;
import com.yihu.jw.entity.a1entity.Mediicineorderdetail;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.Date;
import java.util.List;
public interface MediicineorderdetailDao extends PagingAndSortingRepository<Mediicineorderdetail, String> {
    //统计时间段的药品销量
    @Query("select sum(a.quantity) from Mediicineorderdetail a where a.prescribeTime >=  ?1 and a.prescribeTime<= ?2")
    float getsumquantity(Date beg , Date end);
    //返回订单明细
    @Query("select a from Mediicineorderdetail a where a.idOrder =  ?1 ")
    List<Mediicineorderdetail> getorderdetail(String idOrder);
}

+ 44 - 0
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/mediicine/MedicineOrderDrugsEndpoint.java

@ -0,0 +1,44 @@
package com.yihu.jw.hospital.endpoint.mediicine;
import com.yihu.jw.entity.a1entity.Mediicinedrugs;
import com.yihu.jw.entity.a1entity.Mediicineorder;
import com.yihu.jw.hospital.service.MedOrderService;
import com.yihu.jw.hospital.service.med.MedicineDrugsService;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.rm.base.BaseRequestMapping;
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.Map;
@RestController
@RequestMapping(value = BaseRequestMapping.BaseOrder.PREFIX)
@Api(value = "订单续方管理",description = "订单续方管理" ,tags = "MedOrder - 续方管理服务接口")
public class MedicineOrderDrugsEndpoint extends EnvelopRestEndpoint {
    @Autowired
    MedOrderService medOrderService;
    @Autowired
    MedicineDrugsService medicineDrugsService;
    @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);
    }
}

+ 101 - 0
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/service/MedOrderService.java

@ -0,0 +1,101 @@
package com.yihu.jw.hospital.service;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.entity.a1entity.Mediicineorder;
import com.yihu.jw.entity.a1entity.Mediicineorderdetail;
import com.yihu.jw.hospital.dao.med.MedicineorderDao;
import com.yihu.jw.hospital.dao.med.MediicineorderdetailDao;
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.List;
import java.util.Map;
;
@Transactional
@Service
public class MedOrderService {
    private static Logger logger = LoggerFactory.getLogger(MedOrderService.class);
    @Autowired
    MedicineorderDao mediicineorderDao;
    @Autowired
    MediicineorderdetailDao mediicineorderdetailDao;
    /**
     * 获取续方订单及药方
     * @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");
            Mediicineorderdetail mediicineorderdetail=new Mediicineorderdetail();
            for (int i = 0; i <jsonArray.size() ; i++) {
                JSONObject jsonObject=jsonArray.getJSONObject(i);
                mediicineorderdetail.setId(jsonObject.getString("drug_id"));
                mediicineorderdetail.setDrugSku(jsonObject.getString("drug_sku "));
                mediicineorderdetail.setDrugCode(jsonObject.getString("drug_code"));
                mediicineorderdetail.setSpecif(jsonObject.getString("drug_specs"));
                mediicineorderdetail.setDrugNum(jsonObject.getFloat("drug_num"));
                mediicineorderdetail.setPrice(jsonObject.getFloat("drug_price"));
                mediicineorderdetail.setUseNum(jsonObject.getFloat("drug_use_num"));
                mediicineorderdetail.setUseWay(jsonObject.getString(" drug_use_way"));
                mediicineorderdetail.setUseRate(jsonObject.getString(" drug_use_rate"));
                mediicineorderdetail.setUseDose(jsonObject.getString(" drug_use_dose"));
                mediicineorderdetail.setUnit(jsonObject.getString("drug_use_unit"));
                mediicineorderdetail.setUseWayAdd(jsonObject.getString("drug_use_way_add"));
                mediicineorderdetail.setManufactor(jsonObject.getString(" drug_firm_name"));
            }
            Mediicineorder ord=mediicineorderDao.save(mediicineorder);
            Mediicineorderdetail mediicineorderdetail1=mediicineorderdetailDao.save(mediicineorderdetail);
            result.put("order",ord);
            result.put("drugs",mediicineorderdetail1);
            return result;
        }
        return null;
    }
}