LAPTOP-KB9HII50\70708 il y a 2 ans
Parent
commit
65cdbcce02

+ 12 - 0
business/base-service/src/main/java/com/yihu/jw/inpatient/dao/BasePatientFeeDao.java

@ -0,0 +1,12 @@
package com.yihu.jw.inpatient.dao;
import com.yihu.jw.entity.base.inpatient.BasePatientFeeDO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
/**
 * Created by yeshijie on 2022/12/7.
 */
public interface BasePatientFeeDao extends JpaRepository<BasePatientFeeDO, String>,
        JpaSpecificationExecutor<BasePatientFeeDO> {
}

+ 16 - 0
business/base-service/src/main/java/com/yihu/jw/inpatient/dao/BasePatientFeeDetailDao.java

@ -0,0 +1,16 @@
package com.yihu.jw.inpatient.dao;
import com.yihu.jw.entity.base.inpatient.BasePatientFeeDetailDO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import java.util.List;
/**
 * Created by yeshijie on 2022/12/7.
 */
public interface BasePatientFeeDetailDao extends JpaRepository<BasePatientFeeDetailDO, String>,
        JpaSpecificationExecutor<BasePatientFeeDetailDO> {
    List<BasePatientFeeDetailDO> findByFeeId(String feeId);
}

+ 24 - 0
business/base-service/src/main/java/com/yihu/jw/inpatient/service/BasePatientFeeService.java

@ -0,0 +1,24 @@
package com.yihu.jw.inpatient.service;
import com.yihu.jw.entity.base.inpatient.BasePatientFeeDO;
import com.yihu.jw.inpatient.dao.BasePatientFeeDao;
import com.yihu.jw.inpatient.dao.BasePatientFeeDetailDao;
import com.yihu.jw.mysql.query.BaseJpaService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
/**
 * Created by yeshijie on 2022/12/7.
 */
@Service
public class BasePatientFeeService extends BaseJpaService<BasePatientFeeDO,BasePatientFeeDao> {
    @Resource
    private BasePatientFeeDao patientFeeDao;
    @Resource
    private BasePatientFeeDetailDao patientFeeDetailDao;
}

+ 92 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/inpatient/BasePatientFeeDO.java

@ -0,0 +1,92 @@
package com.yihu.jw.entity.base.inpatient;
import com.yihu.jw.entity.UuidIdentityEntityWithCreateTime;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
/**
 * 居民费用表
 * Created by yeshijie on 2022/12/7.
 */
@Entity
@Table(name = "base_patient_fee")
public class BasePatientFeeDO extends UuidIdentityEntityWithCreateTime {
    private Integer status;//状态 -1已取消 0待结算 1已结算
    private String type;//类型 1费用
    private String patient;
    private String patientName;
    private Double fee;//总费用
    private String typeName;//类型名称
    private String statusName;//状态名称
    //费用明细
//    List<BasePatientFeeDetailDO> feeDetailList;
    @Column(name = "status")
    public Integer getStatus() {
        return status;
    }
    public void setStatus(Integer status) {
        this.status = status;
    }
    @Column(name = "patient")
    public String getPatient() {
        return patient;
    }
    public void setPatient(String patient) {
        this.patient = patient;
    }
    @Column(name = "patient_name")
    public String getPatientName() {
        return patientName;
    }
    public void setPatientName(String patientName) {
        this.patientName = patientName;
    }
    @Column(name = "fee")
    public Double getFee() {
        return fee;
    }
    public void setFee(Double fee) {
        this.fee = fee;
    }
    @Column(name = "type")
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
    @Transient
    public String getTypeName() {
        return typeName;
    }
    public void setTypeName(String typeName) {
        this.typeName = typeName;
    }
    @Transient
    public String getStatusName() {
        return statusName;
    }
    public void setStatusName(String statusName) {
        this.statusName = statusName;
    }
}

+ 107 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/inpatient/BasePatientFeeDetailDO.java

@ -0,0 +1,107 @@
package com.yihu.jw.entity.base.inpatient;
import com.yihu.jw.entity.UuidIdentityEntityWithCreateTime;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
 * 居民费用详情
 * Created by yeshijie on 2022/12/7.
 */
@Entity
@Table(name = "base_patient_fee_detail")
public class BasePatientFeeDetailDO extends UuidIdentityEntityWithCreateTime {
    private String feeId;//费用表id
    private String patient;
    private String type;//类型 1西药 2化验费
    private String code;//费用编码
    private String name;//费用名称
    private Double fee;//费用
    private Integer num;//数量
    private String relationType;//关联类型
    private String relationtId;//关联id
    @Column(name = "fee_id")
    public String getFeeId() {
        return feeId;
    }
    public void setFeeId(String feeId) {
        this.feeId = feeId;
    }
    @Column(name = "patient")
    public String getPatient() {
        return patient;
    }
    public void setPatient(String patient) {
        this.patient = patient;
    }
    @Column(name = "type")
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
    @Column(name = "code")
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    @Column(name = "name")
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    @Column(name = "fee")
    public Double getFee() {
        return fee;
    }
    public void setFee(Double fee) {
        this.fee = fee;
    }
    @Column(name = "num")
    public Integer getNum() {
        return num;
    }
    public void setNum(Integer num) {
        this.num = num;
    }
    @Column(name = "relation_type")
    public String getRelationType() {
        return relationType;
    }
    public void setRelationType(String relationType) {
        this.relationType = relationType;
    }
    @Column(name = "relationt_id")
    public String getRelationtId() {
        return relationtId;
    }
    public void setRelationtId(String relationtId) {
        this.relationtId = relationtId;
    }
}

+ 3 - 3
common/common-entity/src/main/java/com/yihu/jw/entity/base/nurse/BaseNursingCardDO.java

@ -35,7 +35,7 @@ public class BaseNursingCardDO extends UuidIdentityEntityWithCreateTime {
    private String nurseIdcard;//陪护人身份证
    private Integer nurseAge;//陪护人年龄
    private Integer nurseSex;//陪护人性别
    private Integer familyRelation;//家人关系 关系和原有系统的一致
    private String familyRelation;//家人关系 关系和原有系统的一致
    private String nurseReason;//陪护说明
    private String nucleicReport;//核酸报告
    private String doctor;//审核医生
@ -296,11 +296,11 @@ public class BaseNursingCardDO extends UuidIdentityEntityWithCreateTime {
    }
    @Column(name = "family_relation")
    public Integer getFamilyRelation() {
    public String getFamilyRelation() {
        return familyRelation;
    }
    public void setFamilyRelation(Integer familyRelation) {
    public void setFamilyRelation(String familyRelation) {
        this.familyRelation = familyRelation;
    }

+ 131 - 0
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/inpatient/PatientFeeEndpoint.java

@ -0,0 +1,131 @@
package com.yihu.jw.hospital.endpoint.inpatient;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.entity.base.inpatient.BasePatientFeeDO;
import com.yihu.jw.entity.base.inpatient.BasePatientFeeDetailDO;
import com.yihu.jw.inpatient.dao.BasePatientFeeDao;
import com.yihu.jw.inpatient.dao.BasePatientFeeDetailDao;
import com.yihu.jw.inpatient.service.BasePatientFeeService;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.restmodel.web.PageEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
 * Created by yeshijie on 2022/12/7.
 */
@RestController
@RequestMapping(value ="/patient/fee")
@Api(value = "居民端-费用",  tags = {"居民端-费用"})
public class PatientFeeEndpoint extends EnvelopRestEndpoint {
    @Resource
    private BasePatientFeeService patientFeeService;
    @Resource
    private BasePatientFeeDao patientFeeDao;
    @Resource
    private BasePatientFeeDetailDao patientFeeDetailDao;
    @GetMapping(value = "page")
    @ApiOperation(value = "获取分页")
    public PageEnvelop page (
            @ApiParam(name = "patient", required = true, value = "居民id")
            @RequestParam(value = "patient") String patient,
            @ApiParam(name = "status", value = "状态 -1已取消 0待结算 1已结算")
            @RequestParam(value = "status", required = false) Integer status,
            @ApiParam(name = "startTime", value = "开始时间")
            @RequestParam(value = "startTime", required = false) String startTime,
            @ApiParam(name = "endTime", value = "结束时间")
            @RequestParam(value = "endTime", required = false) String endTime,
            @ApiParam(name = "page", value = "分页大小", required = true, defaultValue = "1")
            @RequestParam(value = "page") Integer page,
            @ApiParam(name = "size", value = "页码", required = true, defaultValue = "15")
            @RequestParam(value = "size") Integer size) {
        try {
            String filters = "patient="+patient;
            if(status!=null){
                filters += ";status="+status;
            }
            if(StringUtils.isNotBlank(startTime)){
                filters+=";createTime>="+startTime;
            }
            if(StringUtils.isNotBlank(endTime)){
                filters+=";createTime<="+endTime+" 23:59:59";
            }
            List<BasePatientFeeDO> list = patientFeeService.search(null, filters, null, page, size);
            Map<Integer,String> map = new HashMap<>();
            map.put(-1,"已取消");
            map.put(0,"待结算");
            map.put(1,"已结算");
            for (BasePatientFeeDO feeDO:list){
                feeDO.setStatusName(map.get(feeDO.getStatus()));
                feeDO.setTypeName("费用");
            }
            int count = (int)patientFeeService.getCount(filters);
            return success(list, count, page, size, BasePatientFeeDO.class);
        }catch (Exception e){
            e.printStackTrace();
            return PageEnvelop.getError("查询失败");
        }
    }
    @GetMapping(value = "findDetail")
    @ApiOperation(value = "获取费用清单详情")
    public Envelop findDetail (
            @ApiParam(name = "id", required = true, value = "清单id")
            @RequestParam(value = "id") String id) {
        try {
            BasePatientFeeDO feeDO = patientFeeDao.findById(id).orElse(null);
            List<JSONObject> list = new ArrayList<>();
            if(feeDO!=null){
                List<BasePatientFeeDetailDO> detailList = patientFeeDetailDao.findByFeeId(id);
                Map<String,List<BasePatientFeeDetailDO>> map = detailList.stream().collect(Collectors.groupingBy(BasePatientFeeDetailDO::getType));
                Map<String,String> typeMap = new HashMap<>();
                typeMap.put("1","西药");
                typeMap.put("2","化验费");
                for (String key:map.keySet()) {
                    JSONObject json = new JSONObject();
                    json.put("type",key);
                    json.put("typeName",typeMap.get(key));
                    json.put("detailList",map.get(key));
                    list.add(json);
                }
            }
            return MixEnvelop.getSuccess("获取成功",feeDO,list);
        }catch (Exception e){
            e.printStackTrace();
            return Envelop.getError("查询失败");
        }
    }
    @PostMapping(value = "settlement")
    @ApiOperation(value = "在线结算")
    public Envelop settlement (
            @ApiParam(name = "id", required = true, value = "清单id")
            @RequestParam(value = "id") String id) {
        try {
            BasePatientFeeDO feeDO = patientFeeDao.findById(id).orElse(null);
            if(feeDO!=null){
                feeDO.setStatus(1);
                patientFeeDao.save(feeDO);
            }
            return success("结算成功");
        }catch (Exception e){
            e.printStackTrace();
            return Envelop.getError("结算失败");
        }
    }
}

+ 1 - 1
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/nurse/NursingCardEndpoint.java

@ -123,7 +123,7 @@ public class NursingCardEndpoint extends EnvelopRestEndpoint {
            @ApiParam(name = "size", value = "页码", required = true, defaultValue = "15")
            @RequestParam(value = "size") Integer size) {
        try {
            String filters = null;
            String filters = "";
            if (status != null){
                filters = "status="+status;
            }