Forráskód Böngészése

中山需求修改

wangjun 3 éve
szülő
commit
992cf61c2e

+ 2 - 0
business/base-service/src/main/java/com/yihu/jw/complaint/BaseComplaintDoctorDao.java

@ -9,4 +9,6 @@ import org.springframework.data.repository.PagingAndSortingRepository;
public interface BaseComplaintDoctorDao extends PagingAndSortingRepository<BaseComplaintDoctorDO, String>, JpaSpecificationExecutor<BaseComplaintDoctorDO> {
    @Query("from BaseComplaintDoctorDO t where t.isDel='1' and t.id=?1")
    BaseComplaintDoctorDO findByDelAndId(String id);
    @Query("from BaseComplaintDoctorDO t where t.isDel='1' and t.doctor=?1")
    BaseComplaintDoctorDO findbyDoctorAndDel(String doctor);
}

+ 6 - 1
business/base-service/src/main/java/com/yihu/jw/complaint/BaseComplaintOperateDao.java

@ -1,4 +1,9 @@
package com.yihu.jw.complaint;
public interface BaseComplaintOperateDao {
import com.yihu.jw.entity.base.complaint.BaseComplaintDoctorDO;
import com.yihu.jw.entity.base.complaint.BaseComplaintOperateLogDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
public interface BaseComplaintOperateDao  extends PagingAndSortingRepository<BaseComplaintOperateLogDO, String>, JpaSpecificationExecutor<BaseComplaintOperateLogDO> {
}

+ 129 - 2
business/base-service/src/main/java/com/yihu/jw/complaint/BaseComplaintService.java

@ -4,12 +4,15 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.jw.dict.dao.DictHospitalDeptDao;
import com.yihu.jw.doctor.dao.BaseDoctorDao;
import com.yihu.jw.doctor.dao.BaseDoctorHospitalDao;
import com.yihu.jw.doctor.dao.BaseDoctorRoleDao;
import com.yihu.jw.entity.base.complaint.BaseComplaintDO;
import com.yihu.jw.entity.base.complaint.BaseComplaintDictDO;
import com.yihu.jw.entity.base.complaint.BaseComplaintDoctorDO;
import com.yihu.jw.entity.base.complaint.BaseComplaintOperateLogDO;
import com.yihu.jw.entity.base.dict.DictHospitalDeptDO;
import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
import com.yihu.jw.entity.base.doctor.BaseDoctorHospitalDO;
import com.yihu.jw.entity.base.doctor.BaseDoctorRoleDO;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.utils.StringUtil;
import com.yihu.jw.utils.hibernate.HibenateUtils;
@ -40,6 +43,10 @@ public class BaseComplaintService {
    private ObjectMapper objectMapper;
    @Autowired
    private DictHospitalDeptDao dictHospitalDeptDao;
    @Autowired
    private BaseComplaintOperateDao baseComplaintOperateDao;
    @Autowired
    private BaseDoctorRoleDao baseDoctorRoleDao;
    //修改新增
    public BaseComplaintDictDO createOrUpdateDict(String id, String name) {
@ -91,7 +98,7 @@ public class BaseComplaintService {
        if (null != baseDoctorDO) {
            doctorName = baseDoctorDO.getName();
        }
        List<BaseDoctorHospitalDO> baseDoctorHospitalDO = baseDoctorHospitalDao.findByDeptCodeDoctorCode(deptCode, deptCode);
        List<BaseDoctorHospitalDO> baseDoctorHospitalDO = baseDoctorHospitalDao.findByDeptCodeDoctorCode(deptCode, doctor);
        if (baseDoctorHospitalDO != null && baseDoctorHospitalDO.size() > 0) {
            deptName = baseDoctorHospitalDO.get(0).getDeptName();
        }
@ -127,7 +134,7 @@ public class BaseComplaintService {
        return baseComplaintDoctorDO;
    }
    public MixEnvelop findComplaintDoctor(String doctorName, String deptName, String complaintType, Integer page, Integer pageSize) {
    public MixEnvelop findComplaintDoctor(String doctor,String doctorName, String deptName, String complaintType, Integer page, Integer pageSize) {
        String sql = "select t.id as \"id\"," +
                " t.complaint_id as \"complaintId\"," +
                " t.doctor as \"doctor\"," +
@ -149,6 +156,9 @@ public class BaseComplaintService {
        if (StringUtils.isNoneBlank(complaintType)) {
            sql += " and t.complaint_id = '" + complaintType + "'";
        }
        if (StringUtils.isNoneBlank(doctor)) {
            sql += " and t.doctor = '" + doctor + "'";
        }
        sql += "order by t.create_time desc";
        List<Map<String, Object>> list = hibenateUtils.createSQLQuery(sql, page, pageSize);
        List<Map<String, Object>> listCount = hibenateUtils.createSQLQuery(sql);
@ -189,9 +199,17 @@ public class BaseComplaintService {
     * */
    public void passTo(String id,String complaintId,String doctor,String operator){
        BaseComplaintDO baseComplaintDO = baseComplaintDao.findOne(id);
        BaseComplaintOperateLogDO baseComplaintOperateLogDO = new BaseComplaintOperateLogDO();
        String doctorName="";
        String complaitTypeName="";
        if (null!=baseComplaintDO){
            baseComplaintOperateLogDO.setOperateFrom(operator);
            baseComplaintOperateLogDO.setOperateTo(doctor);
            baseComplaintOperateLogDO.setComplaintTo(complaintId);
            baseComplaintOperateLogDO.setComplaintFrom(baseComplaintDO.getComplaintId());
            baseComplaintOperateLogDO.setRelationCode(id);
            baseComplaintOperateLogDO.setCreateTime(new Date());
            baseComplaintOperateDao.save(baseComplaintOperateLogDO);
            BaseDoctorDO baseDoctorDO = baseDoctorDao.findById(doctor);
            if (null != baseDoctorDO) {
                doctorName=baseDoctorDO.getName();
@ -204,8 +222,117 @@ public class BaseComplaintService {
                complaitTypeName=baseComplaintDictDO.getName();
                baseComplaintDO.setComplaintName(complaitTypeName);
            }
            baseComplaintDao.save(baseComplaintDO);
        }
    }
    //接受投诉
    public void doctorAccept(String id,String doctor) throws Exception{
        BaseComplaintDO baseComplaintDO = baseComplaintDao.findOne(id);
        if (baseComplaintDO!=null&&"0".equalsIgnoreCase(baseComplaintDO.getStatus())){
            baseComplaintDO.setStatus("1");
            BaseDoctorDO baseDoctorDO = baseDoctorDao.findById(doctor);
            if (null != baseDoctorDO) {
                baseComplaintDO.setAcceptorName(baseDoctorDO.getName());
            }
            baseComplaintDO.setAcceptor(doctor);
            baseComplaintDO.setAcceptTime(new Date());
            baseComplaintDao.save(baseComplaintDO);
        }else if ("1".equalsIgnoreCase(baseComplaintDO.getStatus())){
            throw new Exception("该工单已被接受");
        }else {
            throw new Exception("该工单已被处理完成");
        }
    }
    //反馈投诉
    public void dealComplaint(String id,String operator,String content,String imgUrl ,String deptCode) throws  Exception{
        BaseComplaintDO baseComplaintDO = baseComplaintDao.findOne(id);
        if (baseComplaintDO!=null&&"1".equalsIgnoreCase(baseComplaintDO.getStatus())){
            baseComplaintDO.setDealTime(new Date());
            baseComplaintDO.setFeedBack(content);
            baseComplaintDO.setFeedImg(imgUrl);
            baseComplaintDO.setOperator(operator);
            BaseDoctorDO baseDoctorDO = baseDoctorDao.findById(operator);
            if (null != baseDoctorDO) {
                baseComplaintDO.setOperatorName(baseDoctorDO.getName());
            }
            baseComplaintDO.setOperatorDept(deptCode);
            List<BaseDoctorHospitalDO> baseDoctorHospitalDO = baseDoctorHospitalDao.findByDeptCodeDoctorCode(deptCode, operator);
            if (baseDoctorHospitalDO != null && baseDoctorHospitalDO.size() > 0) {
                baseComplaintDO.setOperatorDeptName(baseDoctorHospitalDO.get(0).getDeptName());
            }
            baseComplaintDao.save(baseComplaintDO);
        }else if ("2".equalsIgnoreCase(baseComplaintDO.getStatus())){
            throw new Exception("该工单已被处理完成");
        }else if ("0".equalsIgnoreCase(baseComplaintDO.getStatus())){
            throw new Exception("该工单未被接收");
        }
    }
    //查询投诉列表
    public void findComplaintList(String doctor,String status,String patientName,String patientId,String keyWord,Integer page ,Integer pageSize){
        List<BaseDoctorRoleDO>  rolelist= baseDoctorRoleDao.findByDoctorCode(doctor);
        Boolean queryAll=false;
        if (rolelist.contains("admin")){
            queryAll=true;
        }
        String sql="select t.id as \"id\"," +
                " t.complaint_id as \"complaintId\"," +
                " t.complaint_name as \"complaintName\"," +
                " t.complaint_content as \"complaintContent\"," +
                " t.visit_type as \"visitType\"," +
                " t.visit_time as \"visitTime\"," +
                " t.visit_dept as \"visitDept\"," +
                " t.visit_dept_name as \"visitDeptName\"," +
                " t.adm_no as \"admNo\"," +
                " t.patient as \"patient\"," +
                " t.patient_name as \"patientName\"," +
                " t.patient_idcard as \"patientIdcard\"," +
                " t.idcard_front as \"idcardFront\"," +
                " t.idcard_back as \"idcardBack\"," +
                " t.img_url as \"imgUrl\"," +
                " t.is_del as \"isDel\"," +
                " t.status as \"status\"," +
                " t.create_time as \"createTime\"," +
                " t.accept_time as \"acceptTime\"," +
                " t.deal_time as \"dealTime\"," +
                " t.operator_dept as \"operatorDept\"," +
                " t.operator_dept_name as \"operatorDeptName\"," +
                " t.operator as \"operator\"," +
                " t.operator_name as \"operatorName\"," +
                " t.feed_back as \"feedBack\"," +
                " t.feed_img as \"feedImg\"," +
                " t.acceptor as \"acceptor\"," +
                " b.mobile as \"mobile\"," +
                " t.acceptor_name as \"acceptorName\"" +
                "from base_complaint t " +
                " left join base_patient b on t.patient=b.id" +
                " where t.is_del=1";
        if (!queryAll){
            BaseComplaintDoctorDO baseComplaintDoctorDO= baseComplaintDoctorDao.findbyDoctorAndDel(doctor);
            String complaint="";
            if (baseComplaintDoctorDO!=null){
                complaint=baseComplaintDoctorDO.getComplaintId();
            }
            if (StringUtils.isNoneBlank(complaint)){
                sql+=" and t.complaint_id ='"+complaint+"'";
            }else {
                return;
            }
        }
        if (StringUtils.isNoneBlank(status)){
            sql+=" and t.status ='"+status+"'";
        }
        if (StringUtils.isNoneBlank(patientName)){
            sql+=" and t.patient_name like '%"+patientName+"%'";
        }
        if (StringUtils.isNoneBlank(patientId)){
            sql+=" and t.patient ='"+patientId+"'";
        }
        if (StringUtils.isNoneBlank(keyWord)){
            sql+=" and t.patient_name like '%"+patientName+"%'";
        }
    }
}

+ 1 - 5
svr/svr-internet-hospital/pom.xml

@ -138,11 +138,7 @@
            <artifactId>HikariCP</artifactId>
            <!-- <scope>runtime</scope> -->
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.10</version>
        </dependency>
        <dependency>
            <groupId>com.microsoft.sqlserver</groupId>
            <artifactId>mssql-jdbc</artifactId>

+ 3 - 1
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/complaint/BaseComplaintEndPoint.java

@ -139,6 +139,8 @@ public class BaseComplaintEndPoint  extends EnvelopRestEndpoint {
    @ApiOperation(value = "查询医生列表", notes = "查询医生列表")
    public MixEnvelop findComplaintDoctorList(@ApiParam(name = "doctorName", value = "doctorName", required = false)
                                         @RequestParam(value = "doctorName", required = false) String doctorName,
                                              @ApiParam(name = "doctor", value = "doctor", required = false)
                                              @RequestParam(value = "doctor", required = false) String doctor,
                                              @ApiParam(name = "deptName", value = "deptName", required = false)
                                           @RequestParam(value = "deptName", required = false) String deptName,
                                              @ApiParam(name = "complaintType", value = "complaintType", required = false)
@ -149,7 +151,7 @@ public class BaseComplaintEndPoint  extends EnvelopRestEndpoint {
                                               @RequestParam(value = "pageSize", required = false) Integer pageSize
                                           ) throws Exception {
        try {
            return baseComplaintService.findComplaintDoctor(doctorName,deptName,complaintType,page,pageSize) ;
            return baseComplaintService.findComplaintDoctor(doctor,doctorName,deptName,complaintType,page,pageSize) ;
        }catch (Exception e){
            return failedMixEnvelopException(e);
        }