瀏覽代碼

Merge branch 'dev' of http://192.168.1.220:10080/Amoy2/wlyy2.0 into dev

 Conflicts:
	svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/course/CourseService.java
Shi Kejing 4 年之前
父節點
當前提交
0aa717315e
共有 100 個文件被更改,包括 4339 次插入425 次删除
  1. 17 0
      business/base-service/src/main/java/com/yihu/jw/complaint/BaseComplaintDao.java
  2. 18 0
      business/base-service/src/main/java/com/yihu/jw/complaint/BaseComplaintDictDao.java
  3. 23 0
      business/base-service/src/main/java/com/yihu/jw/complaint/BaseComplaintDoctorDao.java
  4. 14 0
      business/base-service/src/main/java/com/yihu/jw/complaint/BaseComplaintOperateDao.java
  5. 580 0
      business/base-service/src/main/java/com/yihu/jw/complaint/BaseComplaintService.java
  6. 3 0
      business/base-service/src/main/java/com/yihu/jw/doctor/dao/BaseDoctorHospitalDao.java
  7. 9 0
      business/base-service/src/main/java/com/yihu/jw/doctor/dao/BaseDoctorSuggestDao.java
  8. 23 15
      business/base-service/src/main/java/com/yihu/jw/doctor/service/BaseDoctorInfoService.java
  9. 156 0
      business/base-service/src/main/java/com/yihu/jw/doctor/service/BaseDoctorSuggestService.java
  10. 33 0
      business/base-service/src/main/java/com/yihu/jw/file_upload/FileUploadService.java
  11. 22 0
      business/base-service/src/main/java/com/yihu/jw/hospital/HospitalDao.java
  12. 14 0
      business/base-service/src/main/java/com/yihu/jw/hospital/consult/dao/BaseAdviceTreatmentDao.java
  13. 5 4
      business/base-service/src/main/java/com/yihu/jw/hospital/dict/WlyyChargeDictDao.java
  14. 1 1
      business/base-service/src/main/java/com/yihu/jw/hospital/dict/service/WlyyHospitalSysDictService.java
  15. 9 0
      business/base-service/src/main/java/com/yihu/jw/hospital/httplog/dao/BaseOperateLogDao.java
  16. 152 0
      business/base-service/src/main/java/com/yihu/jw/hospital/httplog/service/BaseOperateLogService.java
  17. 82 7
      business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/InspectionService.java
  18. 200 202
      business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/PrescriptionService.java
  19. 13 16
      business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/XzyyPrescriptionService.java
  20. 1 0
      business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/entrance/EntranceService.java
  21. 30 11
      business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/entrance/XzzxEntranceService.java
  22. 19 0
      business/base-service/src/main/java/com/yihu/jw/hospital/team/dao/WlyyAdminTeamDao.java
  23. 16 0
      business/base-service/src/main/java/com/yihu/jw/hospital/team/dao/WlyyAdminTeamMemberDao.java
  24. 12 0
      business/base-service/src/main/java/com/yihu/jw/hospital/team/dao/WlyySignFamilyDao.java
  25. 129 0
      business/base-service/src/main/java/com/yihu/jw/hospital/team/service/WlyyAdminTeamService.java
  26. 2 0
      business/base-service/src/main/java/com/yihu/jw/order/BusinessOrderService.java
  27. 97 0
      business/base-service/src/main/java/com/yihu/jw/utils/JDBCSqlServer.java
  28. 25 4
      business/base-service/src/main/java/com/yihu/jw/wechat/enterprise/EnterpriseService.java
  29. 10 1
      business/base-service/src/main/java/com/yihu/jw/wlyy/service/WlyyBusinessService.java
  30. 45 0
      business/base-service/src/main/java/com/yihu/jw/wlyy/wlyyhttp/WlyyHttpService.java
  31. 0 1
      business/es-service/src/main/java/com/yihu/jw/es/service/StatisticsEsService.java
  32. 159 1
      business/es-service/src/main/java/com/yihu/jw/es/util/ElasticsearchUtil.java
  33. 3 0
      business/im-service/src/main/java/com/yihu/jw/im/dao/ConsultTeamDao.java
  34. 2 1
      business/im-service/src/main/java/com/yihu/jw/im/util/ImUtil.java
  35. 74 0
      common/common-entity/sql记录
  36. 289 0
      common/common-entity/src/main/java/com/yihu/jw/entity/base/complaint/BaseComplaintDO.java
  37. 33 0
      common/common-entity/src/main/java/com/yihu/jw/entity/base/complaint/BaseComplaintDictDO.java
  38. 69 0
      common/common-entity/src/main/java/com/yihu/jw/entity/base/complaint/BaseComplaintDoctorDO.java
  39. 67 0
      common/common-entity/src/main/java/com/yihu/jw/entity/base/complaint/BaseComplaintOperateLogDO.java
  40. 124 0
      common/common-entity/src/main/java/com/yihu/jw/entity/base/doctor/BaseDoctorSuggestDO.java
  41. 2 1
      common/common-entity/src/main/java/com/yihu/jw/entity/base/im/ConsultTeamDo.java
  42. 0 9
      common/common-entity/src/main/java/com/yihu/jw/entity/base/menu/BaseMenuShowDO.java
  43. 28 0
      common/common-entity/src/main/java/com/yihu/jw/entity/base/patient/BasePatientDO.java
  44. 10 0
      common/common-entity/src/main/java/com/yihu/jw/entity/base/servicePackage/ServicePackageItemDO.java
  45. 1 1
      common/common-entity/src/main/java/com/yihu/jw/entity/base/system/SystemDictEntryDO.java
  46. 79 0
      common/common-entity/src/main/java/com/yihu/jw/entity/care/course/DoctorPatientTmpDO.java
  47. 1 1
      common/common-entity/src/main/java/com/yihu/jw/entity/care/device/DevicePatientDevice.java
  48. 122 2
      common/common-entity/src/main/java/com/yihu/jw/entity/care/lifeCare/LifeCareOrderDO.java
  49. 58 0
      common/common-entity/src/main/java/com/yihu/jw/entity/care/message/BaseServiceNews.java
  50. 19 1
      common/common-entity/src/main/java/com/yihu/jw/entity/care/securitymonitoring/SecurityMonitoringOrderDO.java
  51. 0 1
      common/common-entity/src/main/java/com/yihu/jw/entity/care/sign/CapacityAssessmentRecordDO.java
  52. 156 0
      common/common-entity/src/main/java/com/yihu/jw/entity/hospital/DmHospitalDO.java
  53. 8 0
      common/common-entity/src/main/java/com/yihu/jw/entity/hospital/dict/WlyyChargeDictDO.java
  54. 106 0
      common/common-entity/src/main/java/com/yihu/jw/entity/hospital/httplog/BaseOperateLogDO.java
  55. 2 0
      common/common-entity/src/main/java/com/yihu/jw/entity/hospital/httplog/WlyyHttpLogDO.java
  56. 3 1
      common/common-entity/src/main/java/com/yihu/jw/entity/hospital/message/SystemMessageDO.java
  57. 141 0
      common/common-entity/src/main/java/com/yihu/jw/entity/hospital/prescription/BaseAdviceTreatmentDO.java
  58. 146 0
      common/common-entity/src/main/java/com/yihu/jw/entity/hospital/team/WlyyAdminTeamDO.java
  59. 207 0
      common/common-entity/src/main/java/com/yihu/jw/entity/hospital/team/WlyyAdminTeamMemberDO.java
  60. 6 0
      common/common-entity/src/main/java/com/yihu/jw/entity/job/QuartzJobConfig.java
  61. 2 0
      common/common-request-mapping/src/main/java/com/yihu/jw/rm/base/BaseRequestMapping.java
  62. 9 0
      common/common-request-mapping/src/main/java/com/yihu/jw/rm/hospital/BaseHospitalRequestMapping.java
  63. 9 0
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/emergency/EmergencyOrderVO.java
  64. 24 6
      common/common-util/src/main/java/com/yihu/jw/util/http/HttpClientUtil.java
  65. 34 19
      gateway/ag-basic/src/main/java/com/yihu/jw/gateway/filter/PostFilter.java
  66. 4 4
      gateway/ag-basic/src/main/resources/application.yml
  67. 1 1
      gateway/ag-basic/src/main/resources/bootstrap.yml
  68. 5 5
      server/svr-authentication/src/main/resources/application.yml
  69. 4 2
      server/svr-configuration/src/main/resources/bootstrap.yml
  70. 30 0
      svr/svr-base/src/main/java/com/yihu/jw/base/dao/course/DoctorPatientTmpDao.java
  71. 4 4
      svr/svr-base/src/main/java/com/yihu/jw/base/dao/menu/BaseMenuShowDao.java
  72. 2 0
      svr/svr-base/src/main/java/com/yihu/jw/base/dao/system/SystemDictEntryDao.java
  73. 37 21
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/article/ArticleEndpoint.java
  74. 7 1
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/common/FileUploadController.java
  75. 17 0
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/menu/BaseMenuNoLoginEndpoint.java
  76. 9 2
      svr/svr-base/src/main/java/com/yihu/jw/base/service/course/RecruitStudentsRecordService.java
  77. 18 10
      svr/svr-base/src/main/java/com/yihu/jw/base/service/menu/BaseMenuManageService.java
  78. 16 0
      svr/svr-base/src/main/java/com/yihu/jw/base/service/servicePackage/ServicePackageItemService.java
  79. 12 0
      svr/svr-base/src/main/java/com/yihu/jw/base/service/servicePackage/ServicePackageService.java
  80. 156 0
      svr/svr-base/src/main/java/com/yihu/jw/base/util/EntranceUtil.java
  81. 10 10
      svr/svr-base/src/main/resources/application.yml
  82. 2 2
      svr/svr-base/src/main/resources/bootstrap.yml
  83. 5 8
      svr/svr-cloud-care/pom.xml
  84. 13 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/config/WebSocketConfig.java
  85. 92 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/config/YsConfig.java
  86. 3 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/course/CourseSalesOrderRecordDao.java
  87. 30 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/course/DoctorPatientTmpDao.java
  88. 4 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/course/RecruitStudentsRecordDao.java
  89. 1 1
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/device/DevicePatientHealthIndexDao.java
  90. 1 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/device/PatientDeviceDao.java
  91. 2 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/doorCoach/BaseDoorCoachOrderDao.java
  92. 2 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/lifeCare/LifeCareOrderDao.java
  93. 23 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/message/BaseServiceNewsDao.java
  94. 5 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/team/BaseTeamDao.java
  95. 26 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/BaseController.java
  96. 2 4
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/apply/PatientBedApplyEndPoint.java
  97. 25 30
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/assistance/EmergencyAssistanceEndpoint.java
  98. 1 2
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/consult/DoctorConsultController.java
  99. 17 12
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/consult/DoctorConsultEndpoint.java
  100. 0 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/consult/PatientConsultEndpoint.java

+ 17 - 0
business/base-service/src/main/java/com/yihu/jw/complaint/BaseComplaintDao.java

@ -0,0 +1,17 @@
package com.yihu.jw.complaint;
import com.yihu.jw.entity.base.complaint.BaseComplaintDO;
import com.yihu.jw.entity.base.complaint.BaseComplaintDictDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
public interface BaseComplaintDao extends PagingAndSortingRepository<BaseComplaintDO, String>, JpaSpecificationExecutor<BaseComplaintDO> {
    @Query("select count(1) from BaseComplaintDO t where t.isDel='1' and t.status=?1 and t.complaintId=?2")
    Integer getCountByStatusAndComplaintId(String status,String complatientId);
    @Query("select count(1) from BaseComplaintDO t where t.isDel='1' and t.status=?1 ")
    Integer getCountByStatus(String status);
}

+ 18 - 0
business/base-service/src/main/java/com/yihu/jw/complaint/BaseComplaintDictDao.java

@ -0,0 +1,18 @@
package com.yihu.jw.complaint;
import com.yihu.jw.entity.base.complaint.BaseComplaintDictDO;
import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
public interface BaseComplaintDictDao extends PagingAndSortingRepository<BaseComplaintDictDO, String>, JpaSpecificationExecutor<BaseComplaintDictDO> {
    @Query("from BaseComplaintDictDO t where t.isDel='1' and t.id=?1")
    BaseComplaintDictDO findById(String id);
    @Query("from BaseComplaintDictDO t where t.isDel='1' and t.name like %?1%")
    List<BaseComplaintDictDO> findByName(String name);
    @Query("from BaseComplaintDictDO t where t.isDel='1'")
    List<BaseComplaintDictDO> findByAll();
}

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

@ -0,0 +1,23 @@
package com.yihu.jw.complaint;
import com.yihu.jw.entity.base.complaint.BaseComplaintDictDO;
import com.yihu.jw.entity.base.complaint.BaseComplaintDoctorDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
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);
    @Query("from BaseComplaintDoctorDO t where t.isDel='1' and t.doctor=?1 and t.complaintId=?2")
    BaseComplaintDoctorDO findbyDoctorAndDelAndType(String doctor,String complaintType);
    @Query("from BaseComplaintDoctorDO t where t.isDel='1' and t.complaintId=?1")
    List<BaseComplaintDoctorDO> findbyComplaintId(String complaintId);
}

+ 14 - 0
business/base-service/src/main/java/com/yihu/jw/complaint/BaseComplaintOperateDao.java

@ -0,0 +1,14 @@
package com.yihu.jw.complaint;
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.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
public interface BaseComplaintOperateDao  extends PagingAndSortingRepository<BaseComplaintOperateLogDO, String>, JpaSpecificationExecutor<BaseComplaintOperateLogDO> {
    @Query("from BaseComplaintOperateLogDO t where t.operateFrom=?1")
    List<BaseComplaintOperateLogDO> findbyOperateFrom(String doctor);
}

+ 580 - 0
business/base-service/src/main/java/com/yihu/jw/complaint/BaseComplaintService.java

@ -0,0 +1,580 @@
package com.yihu.jw.complaint;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
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.entity.base.patient.BasePatientDO;
import com.yihu.jw.hospital.prescription.service.entrance.EntranceService;
import com.yihu.jw.patient.dao.BasePatientDao;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.utils.StringUtil;
import com.yihu.jw.utils.hibernate.HibenateUtils;
import com.yihu.jw.wechat.enterprise.EnterpriseService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
@Service
public class BaseComplaintService {
    @Autowired
    private BaseComplaintDictDao baseComplaintDictDao;
    @Autowired
    private BaseComplaintDoctorDao baseComplaintDoctorDao;
    @Autowired
    private BaseDoctorDao baseDoctorDao;
    @Autowired
    private BaseDoctorHospitalDao baseDoctorHospitalDao;
    @Autowired
    private HibenateUtils hibenateUtils;
    @Autowired
    private BaseComplaintDao baseComplaintDao;
    @Autowired
    private ObjectMapper objectMapper;
    @Autowired
    private DictHospitalDeptDao dictHospitalDeptDao;
    @Autowired
    private BaseComplaintOperateDao baseComplaintOperateDao;
    @Autowired
    private BaseDoctorRoleDao baseDoctorRoleDao;
    @Autowired
    private BasePatientDao basePatientDao;
    @Autowired
    private EnterpriseService enterpriseService;
    @Value("${wechat.id}")
    private String wxId;
    @Value("${wechat.flag}")
    private boolean flag;
    //修改新增
    public BaseComplaintDictDO createOrUpdateDict(String id, String name) {
        BaseComplaintDictDO baseComplaintDictDO = new BaseComplaintDictDO();
        if (StringUtils.isNoneBlank(id)) {
            baseComplaintDictDO = baseComplaintDictDao.findById(id);
            baseComplaintDictDO.setName(name);
            baseComplaintDictDO.setUpdateTime(new Date());
        } else {
            baseComplaintDictDO.setIsDel("1");
            baseComplaintDictDO.setName(name);
            baseComplaintDictDO.setCreateTime(new Date());
        }
        return baseComplaintDictDao.save(baseComplaintDictDO);
    }
    //删除
    public BaseComplaintDictDO deleteDict(String id) {
        BaseComplaintDictDO baseComplaintDictDO = baseComplaintDictDao.findById(id);
        if (null != baseComplaintDictDO) {
            baseComplaintDictDO.setIsDel("0");
            baseComplaintDictDO.setUpdateTime(new Date());
            baseComplaintDictDao.save(baseComplaintDictDO);
        }
        return baseComplaintDictDO;
    }
    public BaseComplaintDictDO findOneDict(String id) {
        BaseComplaintDictDO baseComplaintDictDO = baseComplaintDictDao.findById(id);
        return baseComplaintDictDO;
    }
    //查询
    public List<BaseComplaintDictDO> findAll(String name) {
        List<BaseComplaintDictDO> list = new ArrayList<>();
        if (StringUtils.isNoneBlank(name)) {
            list = baseComplaintDictDao.findByName(name);
        } else {
            list = baseComplaintDictDao.findByAll();
        }
        return list;
    }
    //新增投诉管理医生
    @Transactional
    public void createOrUpdateComplainDoctor(String id, String complaintId, String doctorList) throws Exception {
        JSONArray jsonArray = JSON.parseArray(doctorList);
        for (int i=0;i<jsonArray.size();i++){
            JSONObject jsonObject = jsonArray.getJSONObject(i);
            String doctor = jsonObject.getString("doctor");
            String deptCode = jsonObject.getString("deptCode");
            String deptName = "";
            String doctorName = "";
            BaseComplaintDoctorDO preDoctor= baseComplaintDoctorDao.findbyDoctorAndDel(doctor);
            BaseDoctorDO baseDoctorDO = baseDoctorDao.findById(doctor);
            if (null != baseDoctorDO) {
                doctorName = baseDoctorDO.getName();
            }
            if (preDoctor!=null){
                throw new Exception("医生"+doctorName+"已有负责的投诉类型");
            }
            List<BaseDoctorHospitalDO> baseDoctorHospitalDO = baseDoctorHospitalDao.findByDeptCodeDoctorCode(deptCode, doctor);
            if (baseDoctorHospitalDO != null && baseDoctorHospitalDO.size() > 0) {
                deptName = baseDoctorHospitalDO.get(0).getDeptName();
            }
            if (StringUtils.isNoneBlank(id)) {
                BaseComplaintDoctorDO baseComplaintDoctorDO = new BaseComplaintDoctorDO();
                baseComplaintDoctorDO.setDept(deptCode);
                baseComplaintDoctorDO.setDeptName(deptName);
                baseComplaintDoctorDO.setComplaintId(id);
                baseComplaintDoctorDO.setDoctor(doctor);
                baseComplaintDoctorDO.setDoctorName(doctorName);
                baseComplaintDoctorDO.setIsDel("1");
                baseComplaintDoctorDO.setCreateTime(new Date());
                baseComplaintDoctorDao.save(baseComplaintDoctorDO);
            }
        }
    }
    //删除管理医生
    public BaseComplaintDoctorDO deleteDoctorComplain(String id) {
        BaseComplaintDoctorDO baseComplaintDoctorDO = baseComplaintDoctorDao.findByDelAndId(id);
        if (null != baseComplaintDoctorDO) {
            baseComplaintDoctorDO.setIsDel("0");
            baseComplaintDoctorDO.setUpdateTime(new Date());
            baseComplaintDoctorDao.save(baseComplaintDoctorDO);
        }
        return baseComplaintDoctorDO;
    }
    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\"," +
                " t.doctor_name as \"doctorName\"," +
                " t.dept as \"dept\"," +
                " t.dept_name as \"deptName\"," +
                " t.is_del as \"isDel\"," +
                " t.create_time as \"createTime\"," +
                " t.update_time as \"updateTime\"," +
                " d.photo as \"photo\"," +
                " b.name as \"name\" " +
                " from base_complaint_doctor t left join base_complaint_dict b" +
                " on t.complaint_id=b.id " +
                " left join base_doctor d on t.doctor=d.id where t.is_del='1'";
        if (StringUtils.isNoneBlank(doctorName)) {
            sql += " and t.doctor_name like '%" + doctorName + "%'";
        }
        if (StringUtils.isNoneBlank(deptName)) {
            sql += " and t.dept_name like '%" + deptName + "%'";
        }
        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);
        MixEnvelop mixEnvelop = new MixEnvelop();
        mixEnvelop.setTotalCount(listCount == null ? 0 : listCount.size());
        mixEnvelop.setPageSize(pageSize);
        mixEnvelop.setCurrPage(page);
        mixEnvelop.setDetailModelList(list);
        return mixEnvelop;
    }
    public BaseComplaintDoctorDO findOneDoctorComplain(String id) {
        BaseComplaintDoctorDO baseComplaintDoctorDO = baseComplaintDoctorDao.findByDelAndId(id);
        return baseComplaintDoctorDO;
    }
    /*
     * 患者举报接口
     * */
    public BaseComplaintDO patiemtComplaint(String json) throws Exception{
        BaseComplaintDO baseComplaintDO =objectMapper.readValue(json,BaseComplaintDO.class);
        BaseComplaintDictDO baseComplaintDictDO = baseComplaintDictDao.findById(baseComplaintDO.getComplaintId());
        if (baseComplaintDictDO!=null){
            baseComplaintDO.setComplaintName(baseComplaintDictDO.getName());
        }
        if (StringUtils.isNoneBlank(baseComplaintDO.getVisitDept())){
            DictHospitalDeptDO dictHospitalDeptDO=dictHospitalDeptDao.findByCode(baseComplaintDO.getVisitDept());
            if (dictHospitalDeptDO!=null){
                baseComplaintDO.setVisitDeptName(dictHospitalDeptDO.getName());
            }
        }
        if(StringUtils.isNoneBlank(baseComplaintDO.getPatient())){
            BasePatientDO basePatientDO= basePatientDao.findById(baseComplaintDO.getPatient());
            if (basePatientDO!=null){
                basePatientDO.setIdcardFront(baseComplaintDO.getIdcardFront());
                basePatientDO.setIdcardBack(baseComplaintDO.getIdcardBack());
                basePatientDao.save(basePatientDO);
            }
        }
        baseComplaintDO.setIsDel("1");
        baseComplaintDO.setStatus("0");
        baseComplaintDO.setCreateTime(new Date());
        baseComplaintDO=  baseComplaintDao.save(baseComplaintDO);
        try {
            List<BaseComplaintDoctorDO> doctorList=baseComplaintDoctorDao.findbyComplaintId(baseComplaintDO.getComplaintId());
            for (BaseComplaintDoctorDO baseComplaintDoctorDO:doctorList){
                String url="";
                enterpriseService.sendTWMesByDoctor("zsyy",baseComplaintDoctorDO.getDoctor(),"投诉反馈","您收到一条投诉反馈,点击查看。",url);
            }
        }catch (Exception e){
        }
       return baseComplaintDao.save(baseComplaintDO);
    }
    /*
     * 医生转交
     * */
    public BaseComplaintDO 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();
                baseComplaintDO.setAcceptorName(doctorName);
            }
            baseComplaintDO.setAcceptor(doctor);
            baseComplaintDO.setComplaintId(complaintId);
            BaseComplaintDictDO baseComplaintDictDO = baseComplaintDictDao.findById(id);
            if (baseComplaintDictDO!=null){
                complaitTypeName=baseComplaintDictDO.getName();
                baseComplaintDO.setComplaintName(complaitTypeName);
            }
            baseComplaintDO= baseComplaintDao.save(baseComplaintDO);
            try {
                List<BaseComplaintDoctorDO> doctorList=baseComplaintDoctorDao.findbyComplaintId(baseComplaintDO.getComplaintId());
                for (BaseComplaintDoctorDO baseComplaintDoctorDO:doctorList){
                    String url="";
                    enterpriseService.sendTWMesByDoctor("zsyy",baseComplaintDoctorDO.getDoctor(),"投诉反馈","您收到一条投诉反馈,点击查看。",url);
                }
            }catch (Exception e){
            }
            return baseComplaintDO;
        }
        return null;
    }
    //接受投诉
    public BaseComplaintDO 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("该工单已被处理完成");
        }
        return baseComplaintDO;
    }
    //反馈投诉
    public BaseComplaintDO 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);
            baseComplaintDO.setStatus("2");
            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("该工单未被接收");
        }
        return baseComplaintDO;
    }
    //查询投诉列表
    public MixEnvelop findComplaintList(String doctor,String status,String patientName,String patientId,String keyWord,String complaintId,
                                  String startTime,String endTime,Integer page ,Integer pageSize){
        MixEnvelop mixEnvelop = new MixEnvelop();
        List<BaseDoctorRoleDO>  rolelist= baseDoctorRoleDao.findByDoctorCode(doctor);
        Boolean queryAll=false;
        for (BaseDoctorRoleDO baseDoctorRoleDO:rolelist){
            if ("admin".equalsIgnoreCase(baseDoctorRoleDO.getRoleCode())){
                queryAll=true;
                break;
            }
        }
        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\"," +
                " case  t.visit_type when '1' then '门诊' else '住院' end  as \"visitTypeName\"," +
                " 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);
            /*List<BaseComplaintOperateLogDO> logList =baseComplaintOperateDao.findbyOperateFrom(doctor);
            String types= "";
            if (logList!=null&&logList.size()>0){
                for (int i=0;i<logList.size();i++){
                    if (i==logList.size()-1){
                        types+=logList.get(i).getComplaintTo();
                    }else {
                        types+=logList.get(i).getComplaintTo()+",";
                    }
                }
            }*/
            String complaint="";
            if (baseComplaintDoctorDO!=null){
                complaint=baseComplaintDoctorDO.getComplaintId();
            }
            //complaint=complaint+","+types;
            if (StringUtils.isNoneBlank(complaint)){
                //sql+=" and t.complaint_id in ('"+complaint.replace(",","','")+"')";
                sql+=" and t.complaint_id='"+complaint+"'";
            }else {
                return null;
            }
        }else {
            if (StringUtils.isNoneBlank(complaintId)){
                //sql+=" and t.complaint_id in ('"+complaint.replace(",","','")+"')";
                sql+=" and t.complaint_id='"+complaintId+"'";
            }
        }
        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_idcard like '%"+keyWord+"%' or t.patient_name like '%"+keyWord+"%')";
        }
        if (StringUtils.isNotBlank(startTime)){
            if("xm_ykyy_wx".equals(wxId)){
                if (flag){
                    sql+=" and t.create_time > '"+startTime+"'";
                }else {
                    sql+=" and t.create_time > to_date('" + startTime + "', 'yyyy-mm-dd hh24:mi:ss') ";
                }
            }else{
                sql+=" and t.create_time > '"+startTime+"'";
            }
        }
        if (StringUtils.isNotBlank(endTime)){
            if("xm_ykyy_wx".equals(wxId)){
                if (flag){
                    sql+="  and t.create_time<='" + endTime + "'";
                }else {
                    sql+="  and t.create_time<= to_date('" + endTime + "','yyyy-mm-dd hh24:mi:ss')";
                }
            }else{
                sql+="  and t.create_time<='" + endTime + "'";
            }
        }
        sql+=" order by t.create_time desc ";
        List<Map<String,Object>> list = hibenateUtils.createSQLQuery(sql,page,pageSize);
        String sqlcount = "SELECT COUNT(1) AS \"total\" FROM ("+sql+") q";
        Long count = 0L;
        List<Map<String,Object>> total = hibenateUtils.createSQLQuery(sqlcount);
        if(total!=null){
            //mysql 与 Oracle 聚合函数返回类型不一致,需要判断装换
            count = hibenateUtils.objTransformLong(total.get(0).get("total"));
        }
        mixEnvelop.setTotalCount(count.intValue());
        mixEnvelop.setDetailModelList(list);
        mixEnvelop.setPageSize(pageSize);
        mixEnvelop.setCurrPage(page);
        return mixEnvelop;
    }
    public BaseComplaintDO  findOnePaitentComplaint(String id){
        BaseComplaintDO baseComplaintDO = baseComplaintDao.findOne(id);
        BasePatientDO basePatientDO=basePatientDao.findById(baseComplaintDO.getPatient());
        if (null!=basePatientDO){
            baseComplaintDO.setMobile(basePatientDO.getMobile());
        }
        baseComplaintDO.setVisitTypeName(baseComplaintDO.getVisitType().equalsIgnoreCase("1")?"门诊":"住院");
        return baseComplaintDO;
    }
    //查询投诉列表
    public MixEnvelop findPatientComplaintList(String status,String patientName,String patientId,
                                        String startTime,String endTime,String complaintType,Integer page ,Integer pageSize){
        MixEnvelop mixEnvelop = new MixEnvelop();
        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\"," +
                " case  t.visit_type when '1' then '门诊' else '住院' end  as \"visitTypeName\"," +
                " 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 (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(complaintType)){
            sql+=" and t.complaint_id ='"+complaintType+"'";
        }
        if (StringUtils.isNotBlank(startTime)){
            if("xm_ykyy_wx".equals(wxId)){
                if (flag){
                    sql+=" and t.create_time > '"+startTime+"'";
                }else {
                    sql+=" and t.create_time > to_date('" + startTime + "', 'yyyy-mm-dd hh24:mi:ss') ";
                }
            }else{
                sql+=" and t.create_time > '"+startTime+"'";
            }
        }
        if (StringUtils.isNotBlank(endTime)){
            if("xm_ykyy_wx".equals(wxId)){
                if (flag){
                    sql+="  and t.create_time<='" + endTime + "'";
                }else {
                    sql+="  and t.create_time<= to_date('" + endTime + "','yyyy-mm-dd hh24:mi:ss')";
                }
            }else{
                sql+="  and t.create_time<='" + endTime + "'";
            }
        }
        sql+=" order by t.create_time desc ";
        List<Map<String,Object>> list = hibenateUtils.createSQLQuery(sql,page,pageSize);
        String sqlcount = "SELECT COUNT(1) AS \"total\" FROM ("+sql+") q";
        Long count = 0L;
        List<Map<String,Object>> total = hibenateUtils.createSQLQuery(sqlcount);
        if(total!=null){
            //mysql 与 Oracle 聚合函数返回类型不一致,需要判断装换
            count = hibenateUtils.objTransformLong(total.get(0).get("total"));
        }
        mixEnvelop.setTotalCount(count.intValue());
        mixEnvelop.setDetailModelList(list);
        mixEnvelop.setPageSize(pageSize);
        mixEnvelop.setCurrPage(page);
        return mixEnvelop;
    }
    /*
    * 查询投诉数量*/
    public Map<String,Object> findComplaintCount(String doctor){
        BaseComplaintDoctorDO baseComplaintDoctorDO=baseComplaintDoctorDao.findbyDoctorAndDel(doctor);
        List<BaseDoctorRoleDO>  rolelist= baseDoctorRoleDao.findByDoctorCode(doctor);
        Boolean queryAll=false;
        if (rolelist!=null&&rolelist.contains("admin")){
            queryAll=true;
        }
        Integer complaints=0;
        Integer recieve=0;
        Integer deal=0;
        if (!queryAll){
             complaints=baseComplaintDao.getCountByStatusAndComplaintId("0",baseComplaintDoctorDO.getComplaintId());
             recieve=baseComplaintDao.getCountByStatusAndComplaintId("1",baseComplaintDoctorDO.getComplaintId());
             deal=baseComplaintDao.getCountByStatusAndComplaintId("2",baseComplaintDoctorDO.getComplaintId());
        }else {
            complaints=baseComplaintDao.getCountByStatus("0");
            recieve=baseComplaintDao.getCountByStatus("1");
            deal=baseComplaintDao.getCountByStatus("2");
        }
        Integer total = complaints+recieve+deal;
        Map map=new HashMap();
        map.put("complaints",complaints);
        map.put("recieve",recieve);
        map.put("deal",deal);
        map.put("total",total);
        return map;
    }
}

+ 3 - 0
business/base-service/src/main/java/com/yihu/jw/doctor/dao/BaseDoctorHospitalDao.java

@ -42,4 +42,7 @@ public interface BaseDoctorHospitalDao extends PagingAndSortingRepository<BaseDo
    List<BaseDoctorHospitalDO> findByOrgCodeAndDeptCodeAndDel(String orgCode,String deptCode,String del);
    @Query("select bdo from BaseDoctorHospitalDO bdo where bdo.deptCode = ?1 and bdo.doctorCode=?2 and bdo.del=1")
    List<BaseDoctorHospitalDO> findByDeptCodeDoctorCode(String dept,String doctorCode);
}

+ 9 - 0
business/base-service/src/main/java/com/yihu/jw/doctor/dao/BaseDoctorSuggestDao.java

@ -0,0 +1,9 @@
package com.yihu.jw.doctor.dao;
import com.yihu.jw.entity.base.doctor.BaseDoctorRoleDO;
import com.yihu.jw.entity.base.doctor.BaseDoctorSuggestDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
public interface BaseDoctorSuggestDao  extends PagingAndSortingRepository<BaseDoctorSuggestDO, String>, JpaSpecificationExecutor<BaseDoctorSuggestDO> {
}

+ 23 - 15
business/base-service/src/main/java/com/yihu/jw/doctor/service/BaseDoctorInfoService.java

@ -85,7 +85,7 @@ public class BaseDoctorInfoService extends BaseJpaService<BaseDoctorDO, BaseDoct
                " FROM " +
                " base_doctor a " +
                " JOIN base_doctor_hospital b ON a.id = b.doctor_code " +
                " LEFT JOIN (SELECT * FROM wlyy_charge_dict t WHERE t.dept_type_code ='6') e ON a.charge_type = e.charge_type " +
                " LEFT JOIN (SELECT * FROM wlyy_charge_dict t WHERE t.dept_type_code ='6' and t.is_del='1' ) e ON a.charge_type = e.charge_type " +
                " LEFT JOIN base_doctor_mapping c ON a.id = c.doctor " +
                " WHERE " +
                " 1 = 1";
@ -152,13 +152,13 @@ public class BaseDoctorInfoService extends BaseJpaService<BaseDoctorDO, BaseDoct
                " FROM " +
                " base_doctor a " +
                " JOIN base_doctor_hospital b ON a.id = b.doctor_code " +
                " LEFT JOIN (SELECT * FROM wlyy_charge_dict t WHERE t.dept_type_code ='6') e ON a.charge_type = e.charge_type " +
                " LEFT JOIN wlyy_charge_dict m ON a.twfz_charge_type = m.charge_type\n" +
                " LEFT JOIN wlyy_charge_dict n ON a.spfz_charge_type = n.charge_type\n" +
                " LEFT JOIN wlyy_charge_dict p ON a.spzx_charge_type = p.charge_type\n" +
                " LEFT JOIN wlyy_charge_dict v ON a.twzx_charge_type = v.charge_type\n" +
                " LEFT JOIN wlyy_charge_dict d ON a.xtfz_charge_type = d.charge_type\n" +
                " LEFT JOIN wlyy_charge_dict g ON a.jyzx_charge_type = g.charge_type\n" +
                " LEFT JOIN (SELECT * FROM wlyy_charge_dict t WHERE t.dept_type_code ='6' and t.is_del='1') e ON a.charge_type = e.charge_type " +
                " LEFT JOIN wlyy_charge_dict m ON a.twfz_charge_type = m.charge_type and m.is_del='1'\n" +
                " LEFT JOIN wlyy_charge_dict n ON a.spfz_charge_type = n.charge_type and n.is_del='1'\n" +
                " LEFT JOIN wlyy_charge_dict p ON a.spzx_charge_type = p.charge_type and p.is_del='1'\n" +
                " LEFT JOIN wlyy_charge_dict v ON a.twzx_charge_type = v.charge_type and v.is_del='1'\n" +
                " LEFT JOIN wlyy_charge_dict d ON a.xtfz_charge_type = d.charge_type and d.is_del='1'\n" +
                " LEFT JOIN wlyy_charge_dict g ON a.jyzx_charge_type = g.charge_type and g.is_del='1'\n" +
                " LEFT JOIN base_doctor_mapping c ON a.id = c.doctor " +
                " WHERE 1=1";
        if (StringUtils.isNotBlank(city)){
@ -229,12 +229,12 @@ public class BaseDoctorInfoService extends BaseJpaService<BaseDoctorDO, BaseDoct
                " LEFT JOIN dict_hospital_dept h ON b.dept_code = h.code " +
                " LEFT JOIN wlyy_doctor_special_disease d ON a.id = d.doctor_code " +
                " LEFT JOIN wlyy_charge_dict e ON a.charge_type = e.charge_type " +
                " LEFT JOIN wlyy_charge_dict m ON a.twfz_charge_type = m.charge_type\n" +
                " LEFT JOIN wlyy_charge_dict n ON a.spfz_charge_type = n.charge_type\n" +
                " LEFT JOIN wlyy_charge_dict p ON a.spzx_charge_type = p.charge_type\n" +
                " LEFT JOIN wlyy_charge_dict v ON a.twzx_charge_type = v.charge_type\n" +
                " LEFT JOIN wlyy_charge_dict q ON a.xtfz_charge_type = q.charge_type\n" +
                " LEFT JOIN wlyy_charge_dict g ON a.jyzx_charge_type = g.charge_type\n" +
                " LEFT JOIN wlyy_charge_dict m ON a.twfz_charge_type = m.charge_type and m.is_del='1'\n" +
                " LEFT JOIN wlyy_charge_dict n ON a.spfz_charge_type = n.charge_type and n.is_del='1'\n" +
                " LEFT JOIN wlyy_charge_dict p ON a.spzx_charge_type = p.charge_type and p.is_del='1'\n" +
                " LEFT JOIN wlyy_charge_dict v ON a.twzx_charge_type = v.charge_type and v.is_del='1'\n" +
                " LEFT JOIN wlyy_charge_dict q ON a.xtfz_charge_type = q.charge_type and q.is_del='1'\n" +
                " LEFT JOIN wlyy_charge_dict g ON a.jyzx_charge_type = g.charge_type and g.is_del='1'\n" +
                " WHERE 1=1 ";
        if(StringUtils.isNotBlank(doctorId)){
            sql+=" AND a.id =:id";
@ -586,7 +586,7 @@ public class BaseDoctorInfoService extends BaseJpaService<BaseDoctorDO, BaseDoct
                wlyyChargeDictDO.setCreateTime(new Date());
                wlyyChargeDictDO.setReqFee(chargeFee);
                wlyyChargeDictDO.setChargeType(fee+"");
                wlyyChargeDictDO.setDeptTypeCode("6");
                wlyyChargeDictDO.setIsDel("1");
                wlyyChargeDictDO.setChargeName(doctorName+"创建的号别");
                wlyyChargeDictDO = wlyyChargeDictDao.save(wlyyChargeDictDO);
                return  wlyyChargeDictDO.getChargeType();
@ -599,4 +599,12 @@ public class BaseDoctorInfoService extends BaseJpaService<BaseDoctorDO, BaseDoct
        List<WlyyChargeDictDO> wlyyChargeDictDOS =  wlyyChargeDictDao.findByDeptTypeCode("6");
        return wlyyChargeDictDOS;
    }
    public void deleteChargeDict(String id,String del){
        WlyyChargeDictDO wlyyChargeDictDO =  wlyyChargeDictDao.findOne(id);
        if (wlyyChargeDictDO!=null){
            wlyyChargeDictDO.setIsDel(del);
            wlyyChargeDictDao.save(wlyyChargeDictDO);
        }
    }
}

+ 156 - 0
business/base-service/src/main/java/com/yihu/jw/doctor/service/BaseDoctorSuggestService.java

@ -0,0 +1,156 @@
package com.yihu.jw.doctor.service;
import com.alibaba.fastjson.JSON;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.jw.doctor.dao.BaseDoctorDao;
import com.yihu.jw.doctor.dao.BaseDoctorSuggestDao;
import com.yihu.jw.doctor.dao.DoctorSpecialDiseaseDao;
import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
import com.yihu.jw.entity.base.doctor.BaseDoctorSuggestDO;
import com.yihu.jw.entity.base.doctor.DoctorSpecialDiseaseDo;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
import com.yihu.jw.hospital.dict.WlyyHospitalSysDictDao;
import com.yihu.jw.patient.dao.BasePatientDao;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.utils.hibernate.HibenateUtils;
import com.yihu.mysql.query.BaseJpaService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
import java.util.Map;
@Service
public class BaseDoctorSuggestService  extends BaseJpaService<BaseDoctorSuggestDO, BaseDoctorSuggestDao> {
    @Autowired
    private BaseDoctorDao baseDoctorDao;
    @Autowired
    private HibenateUtils hibenateUtils;
    @Autowired
    private BasePatientDao basePatientDao;
    @Autowired
    private WlyyHospitalSysDictDao wlyyHospitalSysDictDao;
    @Autowired
    private ObjectMapper objectMapper;
    @Autowired
    private BaseDoctorSuggestDao baseDoctorSuggestDao;
    @Value("${wechat.id}")
    private String wxId;
    @Value("${wechat.flag}")
    private boolean flag;
    public void saveDoctorSuggest(String suggestType,String  suggestContent,String  imgUrl,String doctor,String createUser,String relationCode,String relationType) throws  Exception{
        BaseDoctorSuggestDO baseDoctorSuggestDO=new BaseDoctorSuggestDO();
        baseDoctorSuggestDO.setCreateUser(createUser);
        baseDoctorSuggestDO.setSuggestType(suggestType);
        baseDoctorSuggestDO.setSuggestContent(suggestContent);
        baseDoctorSuggestDO.setImgUrl(imgUrl);
        baseDoctorSuggestDO.setRelationCode(relationCode);
        baseDoctorSuggestDO.setRelationType(relationType);
        baseDoctorSuggestDO.setDoctor(doctor);
        baseDoctorSuggestDO.setCreateTime(new Date());
        baseDoctorSuggestDO.setIsDel("1");
        BasePatientDO basePatientDO=basePatientDao.findById(baseDoctorSuggestDO.getCreateUser());
        if (basePatientDO!=null){
            baseDoctorSuggestDO.setCreateUserName(basePatientDO.getName());
        }
        BaseDoctorDO baseDoctorDO=baseDoctorDao.findById(baseDoctorSuggestDO.getDoctor());
        if (baseDoctorDO!=null){
            baseDoctorSuggestDO.setDoctorName(baseDoctorDO.getName());
        }
        List<WlyyHospitalSysDictDO> list =wlyyHospitalSysDictDao.findByDictName("doctorSuggestType");
        for (WlyyHospitalSysDictDO wlyyHospitalSysDictDO:list){
            if (baseDoctorSuggestDO.getSuggestType().equalsIgnoreCase(wlyyHospitalSysDictDO.getDictCode())){
                baseDoctorSuggestDO.setSuggestName(wlyyHospitalSysDictDO.getDictValue());
            }
        }
        baseDoctorSuggestDao.save(baseDoctorSuggestDO);
    }
    public MixEnvelop findDoctorSuggest(String doctor,String patient,String doctorName,String patientName,String startTime,String endTime,
                                        String suggestType,String relationType,String keyWord,Integer page,Integer pageSize){
        MixEnvelop mixEnvelop = new MixEnvelop();
        String sql = "select t.id as \"id\"," +
                "t.suggest_type as \"suggestType\"," +
                "t.suggest_name as \"suggestName\"," +
                "t.suggest_content as \"suggestContent\"," +
                "t.relation_code as \"relationCode\"," +
                "t.relation_type as \"relationType\"," ;
        if("xm_ykyy_wx".equals(wxId)){
            if (flag){
                sql+="date_format(t.create_time, '%Y-%m-%d %H:%i:%s')  as \"createTime\",";
            }else {
                sql+="  to_char(t.create_time,'yyyy-MM-dd HH24:mi:ss') as \"createTime\",";
            }
        }else{
            sql+="date_format(t.create_time, '%Y-%m-%d %H:%i:%s')  as \"createTime\",";
        }
        sql+= "t.create_user as \"createUser\"," +
                "t.create_user_name as \"createUserName\"," +
                "t.doctor as \"doctor\"," +
                "t.doctor_name as \"doctorName\"," +
                "t.is_del as \"isDel\"," +
                "t.img_url as \"imgUrl\"" +
                "from base_doctor_suggest t where t.is_del ='1'";
        if (StringUtils.isNoneBlank(doctor)){
            sql+=" and t.doctor='"+doctor+"'";
        }
        if (StringUtils.isNoneBlank(patient)){
            sql+=" and t.create_user='"+patient+"'";
        }
        if (StringUtils.isNoneBlank(doctorName)){
            sql+=" and t.doctor_name like '%"+doctorName+"%'";
        }
        if (StringUtils.isNoneBlank(patientName)){
            sql+=" and t.create_user_name like '%"+patientName+"%'";
        }if (StringUtils.isNoneBlank(suggestType)){
            sql+=" and t.suggest_type='"+suggestType+"'";
        }if (StringUtils.isNoneBlank(relationType)){
            sql+=" and t.relation_type='"+relationType+"'";
        }if (StringUtils.isNoneBlank(keyWord)){
            sql+=" and t.suggest_content like '%"+keyWord+"%'";
        }
        if (StringUtils.isNotBlank(startTime)){
            if("xm_ykyy_wx".equals(wxId)){
                if (flag){
                    sql+=" and t.create_time > '"+startTime+"'";
                }else {
                    sql+=" and t.create_time > to_date('" + startTime + "', 'yyyy-mm-dd hh24:mi:ss') ";
                }
            }else{
                sql+=" and t.create_time > '"+startTime+"'";
            }
        }
        if (StringUtils.isNotBlank(endTime)){
            if("xm_ykyy_wx".equals(wxId)){
                if (flag){
                    sql+="  and t.create_time<='" + endTime + "'";
                }else {
                    sql+="  and t.create_time<= to_date('" + endTime + "','yyyy-mm-dd hh24:mi:ss')";
                }
            }else{
                sql+="  and t.create_time<='" + endTime + "'";
            }
        }
        sql+=" order by t.create_time desc ";
        List<Map<String,Object>> list = hibenateUtils.createSQLQuery(sql,page,pageSize);
        String sqlcount = "SELECT COUNT(1) AS \"total\" FROM ("+sql+") q";
        Long count = 0L;
        List<Map<String,Object>> total = hibenateUtils.createSQLQuery(sqlcount);
        if(total!=null){
            //mysql 与 Oracle 聚合函数返回类型不一致,需要判断装换
            count = hibenateUtils.objTransformLong(total.get(0).get("total"));
        }
        mixEnvelop.setTotalCount(count.intValue());
        mixEnvelop.setDetailModelList(list);
        mixEnvelop.setPageSize(pageSize);
        mixEnvelop.setCurrPage(page);
        return mixEnvelop;
    }
    public BaseDoctorSuggestDO findById(String id){
        return baseDoctorSuggestDao.findOne(id);
    }
}

+ 33 - 0
business/base-service/src/main/java/com/yihu/jw/file_upload/FileUploadService.java

@ -25,6 +25,7 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import sun.misc.BASE64Decoder;
import javax.activation.MimetypesFileTypeMap;
import java.io.*;
@ -522,5 +523,37 @@ public class FileUploadService {
        fastDFSHelper.delete(groupName,fileName);
    }
    /*
     * base64上传图片心脏
     * @param jsonData,头像转化后的输入流
     * @return
     * @throws Exception
     */
    public UploadVO uploadImagesBase64(String jsonData,String fastdfs_file_url) throws Exception {
        if(StringUtils.isBlank(jsonData)){
            throw new FileInputStreamEmptyException("图片的base64文件文件流不可为空!");
        }
        if(StringUtils.isBlank(fastdfs_file_url)){
            throw new FastfdsFileURLEmptyException("fastdfs url不可为空!");
        }
        BASE64Decoder decoder = new BASE64Decoder();
        byte[] bfile = decoder.decodeBuffer(jsonData);
        InputStream inputStream = new ByteArrayInputStream(bfile);
        ObjectNode objectNode = fastDFSHelper.upload(inputStream, "png", "");
        String groupName = objectNode.get("groupName").toString();
        String remoteFileName = objectNode.get("remoteFileName").toString();
        //解析返回的objectNode
        UploadVO uploadVO = new UploadVO();
        uploadVO.setFileName(remoteFileName);
        uploadVO.setFileType(groupName);
        uploadVO.setFullUri(objectNode.get("fileId").toString().replaceAll("\"", ""));
        uploadVO.setFullUrl(fastdfs_file_url + objectNode.get("fileId").toString().replaceAll("\"", ""));
        //返回文件路径
        return uploadVO;
    }
}

+ 22 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/HospitalDao.java

@ -0,0 +1,22 @@
package com.yihu.jw.hospital;
import com.yihu.jw.entity.hospital.DmHospitalDO;
import com.yihu.jw.entity.hospital.team.WlyyAdminTeamDO;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
public interface HospitalDao extends PagingAndSortingRepository<DmHospitalDO, Integer>, JpaSpecificationExecutor<DmHospitalDO> {
    @Query("from DmHospitalDO t where t.town=?1 and t.del='1'")
    List<DmHospitalDO> findByTownCode(String town, Pageable pageRequest);
    @Query("from DmHospitalDO t where t.code=?1 and t.del='1'")
    DmHospitalDO findByCode(String code);
    boolean existsByCode(String code);
}

+ 14 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/consult/dao/BaseAdviceTreatmentDao.java

@ -0,0 +1,14 @@
package com.yihu.jw.hospital.consult.dao;
import com.yihu.jw.entity.hospital.consult.WlyyDoctorClinicRoomDO;
import com.yihu.jw.entity.hospital.prescription.BaseAdviceTreatmentDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
public interface BaseAdviceTreatmentDao   extends PagingAndSortingRepository<BaseAdviceTreatmentDO, String>, JpaSpecificationExecutor<BaseAdviceTreatmentDO> {
    @Query("from BaseAdviceTreatmentDO t where t.relationCode=?1")
    List<BaseAdviceTreatmentDO> findByRelationCode(String outpatientId);
}

+ 5 - 4
business/base-service/src/main/java/com/yihu/jw/hospital/dict/WlyyChargeDictDao.java

@ -13,14 +13,15 @@ import java.util.List;
 */
@Transactional
public interface WlyyChargeDictDao extends PagingAndSortingRepository<WlyyChargeDictDO, String>, JpaSpecificationExecutor<WlyyChargeDictDO> {
    @Query("from WlyyChargeDictDO t where t.deptTypeCode=?1 and t.isDel='1'")
    List<WlyyChargeDictDO>  findByDeptTypeCode(String deptTypeCode);
    @Query("from WlyyChargeDictDO d where 1=1 ")
    @Query("from WlyyChargeDictDO d where 1=1 and d.isDel='1'")
    List<WlyyChargeDictDO>  findAllDict();
    @Query("from WlyyChargeDictDO t where t.chargeType=?1 and t.deptTypeCode=?2 and t.isDel='1'")
    WlyyChargeDictDO  findByChargeTypeAndDeptTypeCode(String chargeType,String deptTypeCode);
    @Query("from WlyyChargeDictDO t where t.chargeType=?1  and t.isDel='1'")
    WlyyChargeDictDO  findByChargeType(String chargeType);
    @Query("from WlyyChargeDictDO d where d.reqFee = ?1 ")
    @Query("from WlyyChargeDictDO d where d.reqFee = ?1 and d.isDel='1' ")
    WlyyChargeDictDO  findByReqFee(Double reqFee);
}

+ 1 - 1
business/base-service/src/main/java/com/yihu/jw/hospital/dict/service/WlyyHospitalSysDictService.java

@ -54,7 +54,7 @@ public class WlyyHospitalSysDictService extends BaseJpaService<WlyyHospitalSysDi
                " t.create_time as \"createTime\""+
                " from wlyy_hospital_sys_dict t where 1=1 ";
        if (StringUtils.isNoneBlank(name)){
            sql+=" and t.dict_name like '%"+name+"%'";
            sql+=" and t.dict_name = '"+name+"'";
        }
        if (StringUtils.isNoneBlank(modelName)){
            sql+=" and t.model_name like '%"+modelName+"%'";

+ 9 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/httplog/dao/BaseOperateLogDao.java

@ -0,0 +1,9 @@
package com.yihu.jw.hospital.httplog.dao;
import com.yihu.jw.entity.hospital.httplog.BaseOperateLogDO;
import com.yihu.jw.entity.hospital.httplog.WlyyHttpLogDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
public interface BaseOperateLogDao extends PagingAndSortingRepository<BaseOperateLogDO, String>, JpaSpecificationExecutor<BaseOperateLogDO> {
}

+ 152 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/httplog/service/BaseOperateLogService.java

@ -0,0 +1,152 @@
package com.yihu.jw.hospital.httplog.service;
import com.yihu.jw.doctor.dao.BaseDoctorDao;
import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.hospital.httplog.BaseOperateLogDO;
import com.yihu.jw.entity.hospital.httplog.WlyyHttpLogDO;
import com.yihu.jw.entity.hospital.mapping.DoctorMappingDO;
import com.yihu.jw.entity.hospital.mapping.PatientMappingDO;
import com.yihu.jw.hospital.httplog.dao.BaseOperateLogDao;
import com.yihu.jw.hospital.httplog.dao.WlyyHttpLogDao;
import com.yihu.jw.hospital.mapping.dao.DoctorMappingDao;
import com.yihu.jw.hospital.mapping.dao.PatientMappingDao;
import com.yihu.jw.patient.dao.BasePatientDao;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.utils.JDBCSqlServer;
import com.yihu.jw.utils.hibernate.HibenateUtils;
import com.yihu.mysql.query.BaseJpaService;
import org.apache.commons.lang3.StringUtils;
import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
import java.util.Map;
@Service
public class BaseOperateLogService extends BaseJpaService<BaseOperateLogDO, BaseOperateLogDao> {
    @Autowired
    private BaseOperateLogDao baseOperateLogDao;
    @Autowired
    private BasePatientDao basePatientDao;
    @Autowired
    private BaseDoctorDao baseDoctorDao;
    @Autowired
    private JDBCSqlServer jdbcSqlServer;
    @Autowired
    private HibenateUtils hibenateUtils;
    @Autowired
    private PatientMappingDao patientMappingDao;
    @Autowired
    private DoctorMappingDao doctorMappingDao;
    @Value("${wechat.id}")
    private String wxId;
    @Value("${wechat.flag}")
    private boolean flag;
    public void saveOperateLog(String operator,String patient,String code,String name,String relationType,String relationCode){
        BaseOperateLogDO baseOperateLogDO=new BaseOperateLogDO();
        BaseDoctorDO baseDoctorDO=baseDoctorDao.findById(operator);
        baseOperateLogDO.setOperator(operator);
        baseOperateLogDO.setPatient(patient);
        baseOperateLogDO.setCode(code);
        baseOperateLogDO.setName(name);
        baseOperateLogDO.setRelationType(relationType);
        baseOperateLogDO.setCreateTime(new Date());
        baseOperateLogDO.setIsDel("1");
        if (baseDoctorDO!=null){
            baseOperateLogDO.setOperatorName(baseDoctorDO.getName());
        }
        BasePatientDO basePatientDO=basePatientDao.findById(patient);
        if (basePatientDO!=null){
            baseOperateLogDO.setPatientName(basePatientDO.getName());
        }
        baseOperateLogDO=baseOperateLogDao.save(baseOperateLogDO);
        try {
            /*PatientMappingDO patientMappingDO=patientMappingDao.findByPatient(baseOperateLogDO.getPatient());
            if (patientMappingDO!=null){
                baseOperateLogDO.setPatient(patientMappingDO.getMappingCode());
            }
            DoctorMappingDO doctorMappingDO = doctorMappingDao.findByDoctor(baseOperateLogDO.getOperator());
            if (doctorMappingDO!=null){
                baseOperateLogDO.setOperator(doctorMappingDO.getMappingCode());
            }*/
            jdbcSqlServer.insertZsSqlserver(baseOperateLogDO);
        }catch (Exception e){
            e.printStackTrace();
        }
    }
    public MixEnvelop  findOperateLogList(String code,String name,String patientName,String doctorName,String startTime,String endTime,Integer page,Integer pageSize){
        MixEnvelop mixEnvelop = new MixEnvelop();
        String sql ="select t.id as \"id\"," +
                " t.code as \"code\"," +
                " t.name as \"name\"," +
                " t.operator as \"operator\"," +
                " t.operator_name as \"operator_name\"," +
                " t.patient as \"patient\"," +
                " t.patient_name as \"patient_name\"," ;
        if("xm_ykyy_wx".equals(wxId)){
            if (flag){
                sql+="date_format(t.create_time, '%Y-%m-%d %H:%i:%s')  as \"createTime\",";
            }else {
                sql+="  to_char(t.create_time,'yyyy-MM-dd HH24:mi:ss') as \"createTime\",";
            }
        }else{
            sql+="date_format(t.create_time, '%Y-%m-%d %H:%i:%s')  as \"createTime\",";
        }
        sql+= " t.relation_type as \"relation_type\"," +
                " t.relation_code as \"relation_code\"" +
                " from base_operate_log t where t.is_del='1'";
        if (StringUtils.isNoneBlank(code)){
            sql+=" and t.code='"+code+"'";
        }
        if (StringUtils.isNoneBlank(name)){
            sql+=" and t.name like '%"+name+"%'";
        }
        if (StringUtils.isNoneBlank(patientName)){
            sql+=" and t.patient_name like '%"+patientName+"%'";
        }
        if (StringUtils.isNoneBlank(doctorName)){
            sql+=" and t.operator_name like '%"+doctorName+"%'";
        }
        if (StringUtils.isNotBlank(startTime)){
            if("xm_ykyy_wx".equals(wxId)){
                if (flag){
                    sql+=" and t.create_time > '"+startTime+"'";
                }else {
                    sql+=" and t.create_time > to_date('" + startTime + "', 'yyyy-mm-dd hh24:mi:ss') ";
                }
            }else{
                sql+=" and t.create_time > '"+startTime+"'";
            }
        }
        if (StringUtils.isNotBlank(endTime)){
            if("xm_ykyy_wx".equals(wxId)){
                if (flag){
                    sql+="  and t.create_time<='" + endTime + "'";
                }else {
                    sql+="  and t.create_time<= to_date('" + endTime + "','yyyy-mm-dd hh24:mi:ss')";
                }
            }else{
                sql+="  and t.create_time<='" + endTime + "'";
            }
        }
        sql+=" order by t.create_time desc ";
        List<Map<String,Object>> list = hibenateUtils.createSQLQuery(sql,page,pageSize);
        String sqlcount = "SELECT COUNT(1) AS \"total\" FROM ("+sql+") q";
        Long count = 0L;
        List<Map<String,Object>> total = hibenateUtils.createSQLQuery(sqlcount);
        if(total!=null){
            //mysql 与 Oracle 聚合函数返回类型不一致,需要判断装换
            count = hibenateUtils.objTransformLong(total.get(0).get("total"));
        }
        mixEnvelop.setTotalCount(count.intValue());
        mixEnvelop.setDetailModelList(list);
        mixEnvelop.setPageSize(pageSize);
        mixEnvelop.setCurrPage(page);
        return mixEnvelop;
    }
}

+ 82 - 7
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/InspectionService.java

@ -1,23 +1,27 @@
package com.yihu.jw.hospital.prescription.service;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
import com.yihu.jw.entity.hospital.prescription.WlyyInspectionDO;
import com.yihu.jw.entity.hospital.prescription.WlyyInspectionPartsDictDO;
import com.yihu.jw.entity.hospital.prescription.WlyyPrescriptionDO;
import com.yihu.jw.entity.hospital.prescription.*;
import com.yihu.jw.hospital.consult.dao.BaseAdviceTreatmentDao;
import com.yihu.jw.hospital.dict.WlyyHospitalSysDictDao;
import com.yihu.jw.hospital.prescription.dao.InspectionPartsDictDao;
import com.yihu.jw.hospital.prescription.dao.PrescriptionDao;
import com.yihu.jw.hospital.prescription.dao.WlyyInspectionDao;
import com.yihu.jw.hospital.httplog.service.BaseOperateLogService;
import com.yihu.jw.hospital.prescription.dao.*;
import com.yihu.jw.hospital.prescription.service.entrance.EntranceService;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.utils.hibernate.HibenateUtils;
import com.yihu.mysql.query.BaseJpaService;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
@ -27,7 +31,7 @@ import java.util.Map;
@Service
@Transactional
public class InspectionService extends BaseJpaService<WlyyInspectionDO, WlyyInspectionDao> {
    private static final Logger logger = LoggerFactory.getLogger(InspectionService.class);
    @Value("${demo.flag}")
    private boolean demoFlag;
    @Autowired
@ -38,6 +42,16 @@ public class InspectionService extends BaseJpaService<WlyyInspectionDO, WlyyInsp
    private EntranceService entranceService;
    @Autowired
    private HibenateUtils hibenateUtils;
    @Autowired
    private BaseOperateLogService baseOperateLogService;
    @Autowired
    private BaseAdviceTreatmentDao baseAdviceTreatmentDao;
    @Autowired
    private PrescriptionInfoDao prescriptionInfoDao;
    @Autowired
    private ObjectMapper objectMapper;
    @Autowired
    private OutpatientDao outpatientDao;
    public List<WlyyInspectionPartsDictDO> findByPartsCode(String parentCode) {
        return inspectionPartsDictDao.findByParentCode(parentCode);
@ -79,5 +93,66 @@ public class InspectionService extends BaseJpaService<WlyyInspectionDO, WlyyInsp
        mixEnvelop.setCurrPage(page);
        return mixEnvelop;
    }
    public BaseAdviceTreatmentDO saveTreatment(String json,String adviceJson) throws Exception{
        BaseAdviceTreatmentDO baseAdviceTreatmentDO=objectMapper.readValue(adviceJson,BaseAdviceTreatmentDO.class);
        baseAdviceTreatmentDO.setDel(1);
        baseAdviceTreatmentDO.setCreateTime(new Date());
        baseAdviceTreatmentDO=baseAdviceTreatmentDao.save(baseAdviceTreatmentDO);
        if (StringUtils.isNotBlank(json)) {
            //药品
            List<WlyyPrescriptionInfoDO> infoDOs = (List<WlyyPrescriptionInfoDO>) com.alibaba.fastjson.JSONArray.parseArray(json, WlyyPrescriptionInfoDO.class);
            for (WlyyPrescriptionInfoDO info : infoDOs) {
                info.setDel(1);
                info.setPrescriptionId(baseAdviceTreatmentDO.getId());
            }
            //保存药品信息
            prescriptionInfoDao.save(infoDOs);
            logger.info("123");
            Double price = getInfoFee(infoDOs);
            logger.info("12312313213" + price);
            //计算药品费用
            baseAdviceTreatmentDO.setDrugFee(price);
            baseAdviceTreatmentDao.save(baseAdviceTreatmentDO);
        }
        WlyyOutpatientDO wlyyOutpatientDO=outpatientDao.findById(baseAdviceTreatmentDO.getRelationCode());
        if(wlyyOutpatientDO!=null){
            wlyyOutpatientDO.setIcd10Name(baseAdviceTreatmentDO.getDiagnosisName());
            wlyyOutpatientDO.setStatus("2");
            wlyyOutpatientDO.setAdvice(baseAdviceTreatmentDO.getTreatment());
            outpatientDao.save(wlyyOutpatientDO);
        }
        return baseAdviceTreatmentDO;
    }
    /**
     * 计算药品费用
     *
     * @param infoDOs
     * @return
     */
    public Double getInfoFee(List<WlyyPrescriptionInfoDO> infoDOs) {
        DecimalFormat df = new DecimalFormat("#.00");
        Double fee = 0D;
        if (infoDOs != null && infoDOs.size() > 0) {
            for (WlyyPrescriptionInfoDO info : infoDOs) {
                logger.error("getInfoFee===========Quantity:" + info.getQuantity());
                /*      Integer quantity = Integer.parseInt(info.getQuantity());*/
                logger.error("getInfoFee===========PackRetprice:" + info.getPackRetprice());
                /*   fee += info.getPackRetprice() * quantity;*/
                logger.error("getInfoFee===========:" + fee);
                BigDecimal total = new BigDecimal(0);
                BigDecimal quantity = new BigDecimal(info.getQuantity());
                BigDecimal price = new BigDecimal(info.getPackRetprice());
                total = total.add(quantity.multiply(price));
                Double f1 = total.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
                fee += f1;
            }
            logger.error("getInfoFee===========:" + fee);
        }
        return fee;
    }
}

+ 200 - 202
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/PrescriptionService.java

@ -51,6 +51,7 @@ import com.yihu.jw.entity.hospital.prescription.*;
import com.yihu.jw.entity.order.BusinessOrderDO;
import com.yihu.jw.entity.ylzinfo.OauthYlzConfigDO;
import com.yihu.jw.file_upload.FileUploadService;
import com.yihu.jw.hospital.consult.dao.BaseAdviceTreatmentDao;
import com.yihu.jw.hospital.consult.dao.HospitalWaitingRoomDao;
import com.yihu.jw.hospital.consult.dao.WlyyConsultAdviceDao;
import com.yihu.jw.hospital.dict.WlyyChargeDictDao;
@ -60,6 +61,7 @@ import com.yihu.jw.hospital.doctor.dao.PatientRegisterTimeDao;
import com.yihu.jw.hospital.doctor.dao.WlyyDoctorOnlineTimeDao;
import com.yihu.jw.hospital.drugstore.dao.BaseDrugStoreDao;
import com.yihu.jw.hospital.httplog.dao.WlyyHttpLogDao;
import com.yihu.jw.hospital.httplog.service.BaseOperateLogService;
import com.yihu.jw.hospital.mapping.dao.DoctorMappingDao;
import com.yihu.jw.hospital.mapping.dao.PatientMappingDao;
import com.yihu.jw.hospital.mapping.service.DoctorMappingService;
@ -309,10 +311,14 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
    private TnyyEntranceService tnyyEntranceService;
    @Autowired
    private BaseJpushTemplateDao baseJpushTemplateDao;
    @Autowired
    HikariDataSource dataSource;
    /*@Autowired
    HikariDataSource dataSource;*/
    @Autowired
    private BaseSensitiveDao baseSensitiveDao;
    @Autowired
    private BaseOperateLogService baseOperateLogService;
    @Autowired
    private BaseAdviceTreatmentDao baseAdviceTreatmentDao;
    @Value("${demo.flag}")
    private boolean demoFlag;
@ -339,20 +345,22 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
        }
        logger.info("findOutpatientList patNo " + patNo);
        List<WlyyOutpatientVO> wlyyOutpatientVOList  =  entranceService.BS30025(patNo, null, startTime, endTime, demoFlag,ksdm);
        if (!ksdm.equalsIgnoreCase("1500010")){
            List<WlyyOutpatientVO> wlyyOutpatientVOList1  =  entranceService.BS30025(patNo, null, startTime, endTime, demoFlag,"1500010");
            if (wlyyOutpatientVOList!=null&&wlyyOutpatientVOList.size()!=0){
                if(wlyyOutpatientVOList1!=null&&wlyyOutpatientVOList1.size()!=0){
                    for (WlyyOutpatientVO wlyyOutpatientVO:wlyyOutpatientVOList1){
                        logger.info("==="+wlyyOutpatientVO);
                        if (wlyyOutpatientVO!=null){
                            wlyyOutpatientVOList.add(wlyyOutpatientVO);
        if (StringUtils.isNoneBlank(ksdm)){
            if (!ksdm.equalsIgnoreCase("1500010")){
                List<WlyyOutpatientVO> wlyyOutpatientVOList1  =  entranceService.BS30025(patNo, null, startTime, endTime, demoFlag,"1500010");
                if (wlyyOutpatientVOList!=null&&wlyyOutpatientVOList.size()!=0){
                    if(wlyyOutpatientVOList1!=null&&wlyyOutpatientVOList1.size()!=0){
                        for (WlyyOutpatientVO wlyyOutpatientVO:wlyyOutpatientVOList1){
                            logger.info("==="+wlyyOutpatientVO);
                            if (wlyyOutpatientVO!=null){
                                wlyyOutpatientVOList.add(wlyyOutpatientVO);
                            }
                        }
                    }
                }else {
                    wlyyOutpatientVOList = new ArrayList<>();
                    wlyyOutpatientVOList = wlyyOutpatientVOList1;
                }
            }else {
                wlyyOutpatientVOList = new ArrayList<>();
                wlyyOutpatientVOList = wlyyOutpatientVOList1;
            }
        }
        return wlyyOutpatientVOList;
@ -656,82 +664,95 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
        } else {
            prescriptionDOs = prescriptionDao.findByOutpatientId(outpatientId);
        }
        List<WlyyPrescriptionVO> prescriptionVOs = new ArrayList<>();
        List<BusinessOrderDO> businessOrders = new ArrayList<>();
        BusinessOrderDO businessOrder = new BusinessOrderDO();
        if (prescriptionDOs != null && prescriptionDOs.size() > 0) {
            convertToModels(prescriptionDOs, prescriptionVOs, WlyyPrescriptionVO.class);
            for (WlyyPrescriptionVO vo : prescriptionVOs) {
                List<WlyyPrescriptionCheckDO> prescriptionCheckDO = prescriptionCheckDao.findByPrescriptionId(vo.getId());
                //疾病信息
                vo.setDiagnosisVOs(findDiagnosisById(vo.getId()));
                if(null!=prescriptionCheckDO&&prescriptionCheckDO.size()>0){
                    vo.setDispUser(prescriptionCheckDO.get(0).getOperate());
                    vo.setDispUserName(prescriptionCheckDO.get(0).getOperateName());
                }
                //药品信息
                List<WlyyPrescriptionInfoVO> infoVOs = new ArrayList<>();
                System.out.println("=====PrescriptionId======"+vo.getId());
                convertToModels(prescriptionInfoDao.findByPrescriptionId(vo.getId(), 1), infoVOs, WlyyPrescriptionInfoVO.class);
                vo.setInfoVOs(infoVOs);
                //检查检验信息
                List<WlyyInspectionVO> inspectionVOs = new ArrayList<>();
                vo.setInspectionVOs(convertToModels(wlyyInspectionDao.findByPrescriptionId(vo.getId(), 1), inspectionVOs, WlyyInspectionVO.class));
                if (wxId.equalsIgnoreCase("xm_zsyy_wx")) {
                    WlyyPrescriptionEmrDO wlyyPrescriptionEmrDO1 = prescriptionEmrDao.findEmrByPrescriptionId(vo.getId());
                    if (wlyyPrescriptionEmrDO1 != null) {
                        vo.setWlyyPrescriptionEmrDO(wlyyPrescriptionEmrDO1);
                    } else {
                        WlyyPrescriptionEmrDO wlyyPrescriptionEmrDO = readOutPatientXml(outpatientDO.getOriginRegisterNo());
                        //电子病历
                        vo.setWlyyPrescriptionEmrDO(wlyyPrescriptionEmrDO);
        if (!"2".equalsIgnoreCase(outpatientDO.getOutpatientType())){
            List<WlyyPrescriptionVO> prescriptionVOs = new ArrayList<>();
            List<BusinessOrderDO> businessOrders = new ArrayList<>();
            BusinessOrderDO businessOrder = new BusinessOrderDO();
            if (prescriptionDOs != null && prescriptionDOs.size() > 0) {
                convertToModels(prescriptionDOs, prescriptionVOs, WlyyPrescriptionVO.class);
                for (WlyyPrescriptionVO vo : prescriptionVOs) {
                    List<WlyyPrescriptionCheckDO> prescriptionCheckDO = prescriptionCheckDao.findByPrescriptionId(vo.getId());
                    //疾病信息
                    vo.setDiagnosisVOs(findDiagnosisById(vo.getId()));
                    if(null!=prescriptionCheckDO&&prescriptionCheckDO.size()>0){
                        vo.setDispUser(prescriptionCheckDO.get(0).getOperate());
                        vo.setDispUserName(prescriptionCheckDO.get(0).getOperateName());
                    }
                } else if (wxId.equalsIgnoreCase("xm_xzzx_wx")) {
                    WlyyPrescriptionEmrDO wlyyPrescriptionEmrDO1 = prescriptionEmrDao.findEmrByPrescriptionId(vo.getId());
                    if (wlyyPrescriptionEmrDO1 != null) {
                        vo.setWlyyPrescriptionEmrDO(wlyyPrescriptionEmrDO1);
                    } else {
                        List<WlyyPrescriptionEmrDO> listEmr = xzzxEntranceService.selectHistoryEmr(hisPatient,"");
                        if (null!=listEmr&&listEmr.size()>0){
                            vo.setWlyyPrescriptionEmrDO(listEmr.get(0));
                    //药品信息
                    List<WlyyPrescriptionInfoVO> infoVOs = new ArrayList<>();
                    System.out.println("=====PrescriptionId======"+vo.getId());
                    convertToModels(prescriptionInfoDao.findByPrescriptionId(vo.getId(), 1), infoVOs, WlyyPrescriptionInfoVO.class);
                    vo.setInfoVOs(infoVOs);
                    //检查检验信息
                    List<WlyyInspectionVO> inspectionVOs = new ArrayList<>();
                    vo.setInspectionVOs(convertToModels(wlyyInspectionDao.findByPrescriptionId(vo.getId(), 1), inspectionVOs, WlyyInspectionVO.class));
                    if (wxId.equalsIgnoreCase("xm_zsyy_wx")) {
                        WlyyPrescriptionEmrDO wlyyPrescriptionEmrDO1 = prescriptionEmrDao.findEmrByPrescriptionId(vo.getId());
                        if (wlyyPrescriptionEmrDO1 != null) {
                            vo.setWlyyPrescriptionEmrDO(wlyyPrescriptionEmrDO1);
                        } else {
                            WlyyPrescriptionEmrDO wlyyPrescriptionEmrDO = readOutPatientXml(outpatientDO.getOriginRegisterNo());
                            //电子病历
                            vo.setWlyyPrescriptionEmrDO(wlyyPrescriptionEmrDO);
                        }
                    } else if (wxId.equalsIgnoreCase("xm_xzzx_wx")) {
                        WlyyPrescriptionEmrDO wlyyPrescriptionEmrDO1 = prescriptionEmrDao.findEmrByPrescriptionId(vo.getId());
                        if (wlyyPrescriptionEmrDO1 != null) {
                            vo.setWlyyPrescriptionEmrDO(wlyyPrescriptionEmrDO1);
                        } else {
                            List<WlyyPrescriptionEmrDO> listEmr = xzzxEntranceService.selectHistoryEmr(hisPatient,"");
                            if (null!=listEmr&&listEmr.size()>0){
                                vo.setWlyyPrescriptionEmrDO(listEmr.get(0));
                            }
                        }
                    }else {
                        WlyyPrescriptionEmrDO wlyyPrescriptionEmrDO1 = prescriptionEmrDao.findEmrByPrescriptionId(vo.getId());
                        if (wlyyPrescriptionEmrDO1 != null) {
                            vo.setWlyyPrescriptionEmrDO(wlyyPrescriptionEmrDO1);
                        }
                    }
                }else {
                    WlyyPrescriptionEmrDO wlyyPrescriptionEmrDO1 = prescriptionEmrDao.findEmrByPrescriptionId(vo.getId());
                    if (wlyyPrescriptionEmrDO1 != null) {
                        vo.setWlyyPrescriptionEmrDO(wlyyPrescriptionEmrDO1);
                    //支付信息
                    BusinessOrderDO businessOrderDO = businessOrderDao.selectByRelationCode(vo.getId());
                    if (null!=businessOrderDO){
                        businessOrders.add(businessOrderDO);
                    }
                }
                //支付信息
                BusinessOrderDO businessOrderDO = businessOrderDao.selectByRelationCode(vo.getId());
                if (null!=businessOrderDO){
                    businessOrders.add(businessOrderDO);
                }
            }
            rs.put("prescriptions", prescriptionVOs);
            rs.put("businessOrder", businessOrders);
        }
        rs.put("prescriptions", prescriptionVOs);
        rs.put("businessOrder", businessOrders);
            //物流信息
            List<WlyyPrescriptionExpressageDO> expressageDOs = prescriptionExpressageDao.findByOutpatientId(outpatientId);
            if (expressageDOs != null && expressageDOs.size() > 0) {
                rs.put("expressage", convertToModel(expressageDOs.get(0), WlyyPrescriptionExpressageVO.class));
            } else {
                rs.put("expressage", null);
            }
        //物流信息
        List<WlyyPrescriptionExpressageDO> expressageDOs = prescriptionExpressageDao.findByOutpatientId(outpatientId);
        if (expressageDOs != null && expressageDOs.size() > 0) {
            rs.put("expressage", convertToModel(expressageDOs.get(0), WlyyPrescriptionExpressageVO.class));
        } else {
            rs.put("expressage", null);
            //物流配送新
            List<WlyyPrescriptionExpressageLogDO> expressageLogDOs = prescriptionExpressageLogDao.queryByOutpatientIdOrderByCreateTimeDesc(outpatientId);
            List<WlyyPrescriptionExpressageLogVO> expressageLogVOs = new ArrayList<>();
            if (expressageLogDOs != null && expressageLogDOs.size() > 0) {
                rs.put("expressageLogs", convertToModels(expressageLogDOs, expressageLogVOs, WlyyPrescriptionExpressageLogVO.class));
            } else {
                rs.put("expressageLogs", null);
            }
        }else {
            List<BaseAdviceTreatmentDO>  treatmentDOS=baseAdviceTreatmentDao.findByRelationCode(outpatientId);
            if (treatmentDOS!=null&&treatmentDOS.size()>0){
                //药品
                List<WlyyPrescriptionInfoDO> infoDOList=prescriptionInfoDao.findByPrescriptionId(treatmentDOS.get(0).getId(), 1);
                treatmentDOS.get(0).setInfoList(infoDOList);
                rs.put("treatments",treatmentDOS.get(0));
            }else{
                rs.put("treatments","");
            }
        }
        //物流配送新
        List<WlyyPrescriptionExpressageLogDO> expressageLogDOs = prescriptionExpressageLogDao.queryByOutpatientIdOrderByCreateTimeDesc(outpatientId);
        List<WlyyPrescriptionExpressageLogVO> expressageLogVOs = new ArrayList<>();
        if (expressageLogDOs != null && expressageLogDOs.size() > 0) {
            rs.put("expressageLogs", convertToModels(expressageLogDOs, expressageLogVOs, WlyyPrescriptionExpressageLogVO.class));
        } else {
            rs.put("expressageLogs", null);
        }
        //预约记录
        List<WlyyPatientRegisterTimeDO> timeDOs = patientRegisterTimeDao.findByOutpatientId(outpatientId);
@ -1528,7 +1549,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
        }
        logger.info("findDoctorByHospitalAndDept sql:" + sql);
        logger.info("v sql:" + sql);
        List<Map<String, Object>> list = hibenateUtils.createSQLQuery(sql, params);
@ -1734,29 +1755,15 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
                        "\td.req_fee as \"xtzxFee\"\n" +
                        "FROM\n" +
                        "\tbase_doctor t\n" +
                        "LEFT JOIN wlyy_charge_dict m ON t.twfz_charge_type = m.charge_type\n" +
                        "LEFT JOIN wlyy_charge_dict a ON t.spfz_charge_type = a.charge_type\n" +
                        "LEFT JOIN wlyy_charge_dict b ON t.spzx_charge_type = b.charge_type\n" +
                        "LEFT JOIN wlyy_charge_dict v ON t.twzx_charge_type = v.charge_type\n" +
                        "LEFT JOIN wlyy_charge_dict d ON t.twzx_charge_type = d.charge_type\n" +
                        " LEFT JOIN wlyy_charge_dict g ON t.jyzx_charge_type = g.charge_type\n" +
                        "LEFT JOIN wlyy_charge_dict m ON t.twfz_charge_type = m.charge_type and m.is_del='1'\n" +
                        "LEFT JOIN wlyy_charge_dict a ON t.spfz_charge_type = a.charge_type and a.is_del='1'\n" +
                        "LEFT JOIN wlyy_charge_dict b ON t.spzx_charge_type = b.charge_type and b.is_del='1'\n" +
                        "LEFT JOIN wlyy_charge_dict v ON t.twzx_charge_type = v.charge_type and v.is_del='1'\n" +
                        "LEFT JOIN wlyy_charge_dict d ON t.twzx_charge_type = d.charge_type and d.is_del='1'\n" +
                        " LEFT JOIN wlyy_charge_dict g ON t.jyzx_charge_type = g.charge_type and g.is_del='1'\n" +
                        "WHERE t.id = '"+doctor.get("id")+"' ";
                chargeDictDOLists =  hibenateUtils.createSQLQuery(sqlCharge);
                /*if (null!=doctor.get("chargeType")){
                    String chargeTypeList = doctor.get("chargeType").toString();
                    if (chargeType.contains(",")){
                        chargeTypeList = chargeType.replace(",","','");
                    }
                    String sqlCharge = "select charge_type as \"chargeType\",charge_name as \"chargeName\"," +
                            "req_fee  as \"reqFee\",zj_fee  as \"zjFee\",xt_fee  as \"xtFee\",dept_type_code as \"deptTypeCode\" " +
                            " from wlyy_charge_dict where 1=1";
                    sqlCharge+=" and charge_type in ( '"+chargeTypeList+"')";
                    if (StringUtils.isNoneBlank(deptTyepCode)){
                        sqlCharge+=" and dept_type_code in ( '"+deptTyepCode+"')";
                    }
                    chargeDictDOLists =  hibenateUtils.createSQLQuery(sqlCharge);
                }*/
                doctor.put("chargeTypeList",chargeDictDOLists);
            }
            if (StringUtils.isNotBlank(doctorCode)) {
@ -3148,24 +3155,24 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
        if (StringUtils.isNotBlank(startTime)) {
            if ("xm_ykyy_wx".equals(wxId)) {
                if (flag){
                    totalSql += " and e.create_time >= str_to_date('" + startTime + " 00:00:00','YYYY-MM-DD HH24:MI:SS')";
                    totalSql += " and p.create_time >= str_to_date('" + startTime + " 00:00:00','YYYY-MM-DD HH24:MI:SS')";
                }else {
                    totalSql += " and e.create_time >= to_date('" + startTime + " 00:00:00','YYYY-MM-DD HH24:MI:SS')";
                    totalSql += " and p.create_time >= to_date('" + startTime + " 00:00:00','YYYY-MM-DD HH24:MI:SS')";
                }
            } else {
                totalSql += " AND e.create_time >='" + startTime + " 00:00:00'";
                totalSql += " AND p.create_time >='" + startTime + " 00:00:00'";
            }
        }
        if (StringUtils.isNotBlank(endTime)) {
            if ("xm_ykyy_wx".equals(wxId)) {
                if (flag){
                    totalSql += " and e.create_time <= str_to_date('" + endTime + " 23:59:59','YYYY-MM-DD HH24:MI:SS')";
                    totalSql += " and p.create_time <= str_to_date('" + endTime + " 23:59:59','YYYY-MM-DD HH24:MI:SS')";
                }else {
                    totalSql += " and e.create_time <= to_date('" + endTime + " 23:59:59','YYYY-MM-DD HH24:MI:SS')";
                    totalSql += " and p.create_time <= to_date('" + endTime + " 23:59:59','YYYY-MM-DD HH24:MI:SS')";
                }
            } else {
                totalSql += " AND e.create_time <='" + endTime + " 23:59:59'";
                totalSql += " AND p.create_time <='" + endTime + " 23:59:59'";
            }
        }
@ -3234,29 +3241,29 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
        if (StringUtils.isNotBlank(startTime)) {
            if ("xm_ykyy_wx".equals(wxId)) {
                if (flag){
                    sql += " and e.create_time >= str_to_date('" + startTime + " 00:00:00','YYYY-MM-DD HH24:MI:SS')";
                    sql += " and p.create_time >= str_to_date('" + startTime + " 00:00:00','YYYY-MM-DD HH24:MI:SS')";
                }else {
                    sql += " and e.create_time >= to_date('" + startTime + " 00:00:00','YYYY-MM-DD HH24:MI:SS')";
                    sql += " and p.create_time >= to_date('" + startTime + " 00:00:00','YYYY-MM-DD HH24:MI:SS')";
                }
            } else {
                sql += " AND e.create_time >='" + startTime + " 00:00:00'";
                sql += " AND p.create_time >='" + startTime + " 00:00:00'";
            }
        }
        if (StringUtils.isNotBlank(endTime)) {
            if ("xm_ykyy_wx".equals(wxId)) {
                if (flag){
                    sql += " and e.create_time <= str_to_date('" + endTime + " 23:59:59','YYYY-MM-DD HH24:MI:SS')";
                    sql += " and p.create_time <= str_to_date('" + endTime + " 23:59:59','YYYY-MM-DD HH24:MI:SS')";
                }else {
                    sql += " and e.create_time <= to_date('" + endTime + " 23:59:59','YYYY-MM-DD HH24:MI:SS')";
                    sql += " and p.create_time <= to_date('" + endTime + " 23:59:59','YYYY-MM-DD HH24:MI:SS')";
                }
            } else {
                sql += " AND e.create_time <='" + endTime + " 23:59:59'";
                sql += " AND p.create_time <='" + endTime + " 23:59:59'";
            }
        }
        sql +=" order by e.create_time desc ";
        sql +=" order by p.create_time desc ";
        /*       sql += " LIMIT " + (page - 1) * size + "," + size + "";*/
        List<Map<String, Object>> list = hibenateUtils.createSQLQuery(sql, page, size);
        for (Map<String, Object> map : list) {
@ -3759,39 +3766,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
            rs.put("sex",doctorDO.getSex());
            rs.put("popularity",doctorDO.getPopularity());
            rs.put("qrcode",doctorDO.getQrcode());
            //号别
            /*String deptTyepCode = "";
            if ("xm_zsyy_wx".equalsIgnoreCase(wechatId)){
                deptTyepCode = "6";
                List<BaseDoctorHospitalDO> depts = baseDoctorHospitalDao.findByDoctorCode(doctor);
                if (null!=depts&&depts.size()>0){
                    BaseDoctorHospitalDO baseDoctorHospitalDO = depts.get(0);
                    String deptcode =  baseDoctorHospitalDO.getDeptCode();
                    String hosptitalCode = baseDoctorHospitalDO.getOrgCode();
                    List<DictHospitalDeptDO> dictHospitalDeptDO = dictHospitalDeptDao.findByOrgCodeAndCode(hosptitalCode,deptcode);
                    if(null!=dictHospitalDeptDO&&dictHospitalDeptDO.size()>0){
                        if (StringUtils.isNotBlank(dictHospitalDeptDO.get(0).getDeptTypeCode())){
                            deptTyepCode = dictHospitalDeptDO.get(0).getDeptTypeCode();
                        }
                    }
                }
            }*/
            List<Map<String,Object>> chargeDictDOLists = new ArrayList<>();
            /*String chargeType = doctorDO.getChargeType();
            if (StringUtils.isNotBlank(chargeType)){
                if (chargeType.contains(",")){
                    chargeType = chargeType.replace(",","','");
                }
                String sqlCharge = "select charge_type as \"chargeType\",charge_name as \"chargeName\"," +
                        "req_fee  as \"reqFee\",zj_fee  as \"zjFee\",xt_fee  as \"xtFee\",dept_type_code as \"deptTypeCode\" " +
                        " from wlyy_charge_dict where 1=1";
                sqlCharge+=" and charge_type in ( '"+chargeType+"')";
                if (StringUtils.isNoneBlank(deptTyepCode)){
                    sqlCharge+=" and dept_type_code in ( '"+deptTyepCode+"')";
                }
                chargeDictDOLists =  hibenateUtils.createSQLQuery(sqlCharge);
            }*/
            String sqlCharge = "SELECT\n" +
                    "\tm.req_fee as \"twfzFee\",\n" +
                    "\ta.req_fee as \"spfzFee\",\n" +
@ -3801,12 +3776,12 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
                    "\td.req_fee as \"xtzxFee\"\n" +
                    "FROM\n" +
                    "\tbase_doctor t\n" +
                    "LEFT JOIN wlyy_charge_dict m ON t.twfz_charge_type = m.charge_type\n" +
                    "LEFT JOIN wlyy_charge_dict a ON t.spfz_charge_type = a.charge_type\n" +
                    "LEFT JOIN wlyy_charge_dict b ON t.spzx_charge_type = b.charge_type\n" +
                    "LEFT JOIN wlyy_charge_dict v ON t.twzx_charge_type = v.charge_type\n" +
                    "LEFT JOIN wlyy_charge_dict d ON t.xtfz_charge_type = d.charge_type\n" +
                    " LEFT JOIN wlyy_charge_dict g ON t.jyzx_charge_type = g.charge_type\n" +
                    "LEFT JOIN wlyy_charge_dict m ON t.twfz_charge_type = m.charge_type and m.is_del='1'\n" +
                    "LEFT JOIN wlyy_charge_dict a ON t.spfz_charge_type = a.charge_type and a.is_del='1'\n" +
                    "LEFT JOIN wlyy_charge_dict b ON t.spzx_charge_type = b.charge_type and b.is_del='1'\n" +
                    "LEFT JOIN wlyy_charge_dict v ON t.twzx_charge_type = v.charge_type and v.is_del='1'\n" +
                    "LEFT JOIN wlyy_charge_dict d ON t.xtfz_charge_type = d.charge_type and d.is_del='1'\n" +
                    " LEFT JOIN wlyy_charge_dict g ON t.jyzx_charge_type = g.charge_type and g.is_del='1'\n" +
                    "WHERE t.id = '"+doctorDO.getId()+"' ";
            chargeDictDOLists =  hibenateUtils.createSQLQuery(sqlCharge);
            //System.out.println(chargeDictDOLists.get(1));
@ -4090,13 +4065,13 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
                    "\td.req_fee as \"xtzxFee\"\n" +
                    "FROM\n" +
                    "\tbase_doctor t\n" +
                    "LEFT JOIN wlyy_charge_dict m ON t.twfz_charge_type = m.charge_type\n" +
                    "LEFT JOIN wlyy_charge_dict a ON t.spfz_charge_type = a.charge_type\n" +
                    "LEFT JOIN wlyy_charge_dict b ON t.spzx_charge_type = b.charge_type\n" +
                    "LEFT JOIN wlyy_charge_dict v ON t.twzx_charge_type = v.charge_type\n" +
                    "LEFT JOIN wlyy_charge_dict d ON t.xtfz_charge_type = d.charge_type\n" +
                    " LEFT JOIN wlyy_charge_dict g ON t.jyzx_charge_type = g.charge_type\n" +
                    "WHERE t.id = '"+doctorDO.getId()+"' ";
                    "LEFT JOIN wlyy_charge_dict m ON t.twfz_charge_type = m.charge_type and m.is_del='1'\n" +
                    "LEFT JOIN wlyy_charge_dict a ON t.spfz_charge_type = a.charge_type and a.is_del='1'\n" +
                    "LEFT JOIN wlyy_charge_dict b ON t.spzx_charge_type = b.charge_type and b.is_del='1'\n" +
                    "LEFT JOIN wlyy_charge_dict v ON t.twzx_charge_type = v.charge_type and v.is_del='1'\n" +
                    "LEFT JOIN wlyy_charge_dict d ON t.xtfz_charge_type = d.charge_type and d.is_del='1'\n" +
                    " LEFT JOIN wlyy_charge_dict g ON t.jyzx_charge_type = g.charge_type and g.is_del='1'\n" +
                    "WHERE t.id = '"+doctorDO.getId()+"'";
            chargeDictDOLists =  hibenateUtils.createSQLQuery(sqlCharge);
            rs.put("chargeTypeList",chargeDictDOLists);
            //机构科室信息
@ -4209,6 +4184,8 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
            }
            else if("2".equalsIgnoreCase(wlyyOutpatientDO.getType())&&"3".equalsIgnoreCase(wlyyOutpatientDO.getOutpatientType())){
                type="17";
            }else if("2".equalsIgnoreCase(wlyyOutpatientDO.getOutpatientType())){
                type="12";
            }
            description = "居民取消";
            if (StringUtils.isNoneBlank(type)){
@ -4393,24 +4370,33 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
                contentMsg = "您发起的视频咨询已被"+outpatientDO.getDoctorName()+"接诊,请留意医生发送的消息。";
                first = outpatientDO.getConsumerName() + ",您好!您发起的视频咨询,医生已接诊";
            }
            if ("12".equals(type)) {
                contentMsg = "您发起的专科协同已被"+outpatientDO.getDoctorName()+"接诊,请留意医生发送的消息。";
                first = outpatientDO.getConsumerName() + ",您好!您发起的专科协同,医生已接诊";
                return;
            }
            if ("15".equals(type)) {
                contentMsg = "您发起的家医咨询已被"+outpatientDO.getDoctorName()+"接诊,请留意医生发送的消息。";
                first = outpatientDO.getConsumerName() + ",您好!您发起的家医咨询,医生已接诊";
            }
            logger.info("doctorPick诊查费支付成功推送模板消息:outpatientId="+outpatientId);
            msgUrl="/ims-wx/index.html#/returnVisit/record?outpatientId="+outpatientId;
        } else if("doctorRefund".equalsIgnoreCase(titelType)) {
            if ("9".equals(type)) {
                contentMsg = "您的图文复诊订单已退号。由于订单退号,诊察费将退回就诊卡内余额。";
                contentMsg = "您的图文复诊订单已退号。由于订单退号,诊察费将退回本院就诊卡内。";
                first = outpatientDO.getConsumerName() + ",您好!您的图文复诊已退号";
            }
            if ("16".equals(type)) {
                contentMsg =  "您的视频复诊订单已退号。由于订单退号,诊察费将退回就诊卡内余额。";
                first = outpatientDO.getConsumerName() + ",您好!您发起的视频复诊已退号";
                contentMsg =  "您的视频复诊订单已退号。由于订单退号,诊察费将退回本院就诊卡内。";
                first = outpatientDO.getConsumerName() + ",您好!您的视频复诊已退号";
            }
            if ("1".equals(type)) {
                contentMsg =  "您的图文咨询订单已退号。由于订单退号,诊察费将退回就诊卡内余额。";
                first = outpatientDO.getConsumerName() + ",您好!您发起的图文咨询已退号";
                contentMsg =  "您的图文咨询订单已退号。由于订单退号,诊察费将退回本院就诊卡内。";
                first = outpatientDO.getConsumerName() + ",您好!您的图文咨询已退号";
            }
            if ("17".equals(type)) {
                contentMsg = "您的视频咨询订单已退号。由于订单退号,诊察费将退回就诊卡内余额。";
                first = outpatientDO.getConsumerName() + ",您好!您发起的视频咨询已退号";
                contentMsg = "您的视频咨询订单已退号。由于订单退号,诊察费将退回本院就诊卡内。";
                first = outpatientDO.getConsumerName() + ",您好!您的视频咨询已退号";
            }
            logger.info("doctorRefund:outpatientId="+outpatientId);
            msgUrl="/ims-wx/index.html#/returnVisit/record?outpatientId="+outpatientId;
@ -4431,6 +4417,9 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
                contentMsg = "您发起的视频咨询已被您取消。由于订单取消将不做扣费处理。";
                first = outpatientDO.getConsumerName() + ",您好!您的视频咨询已被您取消,您可重新发起";
            }
            if ("12".equals(type)) {
                return;
            }
            logger.info("patientCancel诊查费支付成功推送模板消息:outpatientId="+outpatientId);
            msgUrl="/ims-wx/index.html#/returnVisit/record?outpatientId="+outpatientId;
        }else if("systemCancelRemind".equalsIgnoreCase(titelType)){
@ -4457,8 +4446,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
                first = outpatientDO.getConsumerName() + ",您好!您有一笔未完成的在线问诊订单,请及时处理。";//您有一个视频复诊订单待支付,请及时支付。
                msgUrl="/ims-wx/index.html#/returnVisit/record?outpatientId="+outpatientId;
                logger.info("视频复诊订单待支付微信消息模板推送开始");
            }
            if ("1".equals(type)) {
            }else if ("1".equals(type)) {
                contentMsg = "您有一个图文咨询订单待支付,点击完成支付,如您已支付请忽略本条信息";
                msgUrl="/ims-wx/index.html#/returnVisit/record?outpatientId="+outpatientId;
                first = outpatientDO.getConsumerName() + ",您好!您有一个图文咨询订单待支付,请及时支付。";
@ -4468,23 +4456,24 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
                msgUrl="/ims-wx/index.html#/returnVisit/record?outpatientId="+outpatientId;
                first =  outpatientDO.getConsumerName() + ",您好!您有一个视频咨询订单待支付,请及时支付。";
                logger.info("视频咨询订单待支付微信消息模板推送开始");
            }else {
                return;
            }
        } else if ("paySuccess".equalsIgnoreCase(titelType)) {
            if ("9".equals(type)) {
                contentMsg = "您已成功发起图文复诊,请耐心等待医生接单。如长时间未接诊,建议选择其他医生";
                first = outpatientDO.getConsumerName() + ",您好!您已成功发起图文复诊";
            }
            if ("16".equals(type)) {
            }else if ("16".equals(type)) {
                contentMsg =  "您已成功发起视频复诊,请耐心等待医生接单。如长时间未接诊,建议选择其他医生";
                first = outpatientDO.getConsumerName() + ",您好!您已成功发起视频复诊";
            }
            if ("1".equals(type)) {
            }else if ("1".equals(type)) {
                contentMsg =  "您已成功发起图文咨询,请耐心等待医生接单。如长时间未接诊,建议选择其他医生";
                first = outpatientDO.getConsumerName() + ",您好!您已成功发起图文咨询";
            }
            if ("17".equals(type)) {
            }else if ("17".equals(type)) {
                contentMsg = "您已成功发起视频咨询,请耐心等待医生接单。如长时间未接诊,建议选择其他医生";
                first = outpatientDO.getConsumerName() + ",您好!您已成功发起视频咨询";
            }else {
                return;
            }
            logger.info("paySuccess诊查费支付成功推送模板消息:outpatientId="+outpatientId);
            msgUrl="/ims-wx/index.html#/returnVisit/record?outpatientId="+outpatientId;
@ -4532,18 +4521,17 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
            if (consultTeam.getType()!=null&&1==consultTeam.getType()){
                first = consultTeam.getName() + ",您好!您有1条图文咨询已结束,请及时对咨询医生进行评价。";
                logger.info("图文咨询服务评价微信消息模板推送开始");
            }
            if (consultTeam.getType()!=null&&9==consultTeam.getType()){
            }else if (consultTeam.getType()!=null&&9==consultTeam.getType()){
                first = consultTeam.getName() + ",您好!您有1条图文复诊已结束,请及时对咨询医生进行评价。";
                logger.info("图文复诊服务评价微信消息模板推送开始");
            }
            if (consultTeam.getType()!=null&&16==consultTeam.getType()){
            }else if (consultTeam.getType()!=null&&16==consultTeam.getType()){
                first = consultTeam.getName() + ",您好!您有1条视频复诊已结束,请及时对咨询医生进行评价。";
                logger.info("视频复诊服务评价微信消息模板推送开始");
            }
            if (consultTeam.getType()!=null&&17==consultTeam.getType()){
            }else if (consultTeam.getType()!=null&&17==consultTeam.getType()){
                first = consultTeam.getName() + ",您好!您有1条视频咨询已结束,请及时对咨询医生进行评价。";
                logger.info("视频咨询服务评价微信消息模板推送开始");
            }else {
                return;
            }
            contentMsg = "请对" + consDoctorDO.getName() + "医生的服务进行评价";
            msgUrl="/ims-wx/index.html#/fuwupingjia?consultCode="+consultTeam.getConsult();
@ -5225,8 +5213,8 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
            //根据身份证计算年龄
            for (Map<String, Object> outpatient : list) {
                String idcard = (String) outpatient.get("idcard");
                int patientAge = 0;
                int patientSex = 3;
                Integer patientAge = 0;
                Integer patientSex = 3;
                if (null!=outpatient.get("outPatient")){
                   BasePatientDO basePatientDO = basePatientDao.findById(outpatient.get("outPatient").toString());
                   if (null!=basePatientDO){
@ -5702,7 +5690,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
        if (pagesize <= 0) {
            pagesize = 10;
        }*/
        testHikar();
        //testHikar();
        long statr = new Date().getTime();
        String sql = "SELECT " +
                " d.id AS \"id\", " +
@ -5713,6 +5701,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
                " d.job_title_code AS \"jobTitleCode\", " +
                " d.job_title_name AS \"jobTitleName\"," +
                " d.charge_type AS \"chargeType\"," +
                " h.dept_code AS \"deptCode\"," +
                " h.dept_name AS \"deptName\"," +
                " dw.workTotal AS \"workTotal\","+
                " d.consult_status AS \"consultStatus\"," +
@ -5895,13 +5884,13 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
                "\td.req_fee as \"xtzxFee\"\n" +
                "FROM\n" +
                "\t  ("+sql+")  t \n" +
                "LEFT JOIN wlyy_charge_dict m ON t.twfz_charge_type = m.charge_type\n" +
                "LEFT JOIN wlyy_charge_dict a ON t.spfz_charge_type = a.charge_type\n" +
                "LEFT JOIN wlyy_charge_dict b ON t.spzx_charge_type = b.charge_type\n" +
                "LEFT JOIN wlyy_charge_dict v ON t.twzx_charge_type = v.charge_type\n" +
                "LEFT JOIN wlyy_charge_dict d ON t.xtfz_charge_type = d.charge_type\n" +
                " LEFT JOIN wlyy_charge_dict g ON t.jyzx_charge_type = g.charge_type\n"+
                " where t.id is not null ";
                "LEFT JOIN wlyy_charge_dict m ON t.twfz_charge_type = m.charge_type and m.is_del='1'\n" +
                "LEFT JOIN wlyy_charge_dict a ON t.spfz_charge_type = a.charge_type and a.is_del='1'\n" +
                "LEFT JOIN wlyy_charge_dict b ON t.spzx_charge_type = b.charge_type and b.is_del='1'\n" +
                "LEFT JOIN wlyy_charge_dict v ON t.twzx_charge_type = v.charge_type and v.is_del='1'\n" +
                "LEFT JOIN wlyy_charge_dict d ON t.xtfz_charge_type = d.charge_type and d.is_del='1'\n" +
                " LEFT JOIN wlyy_charge_dict g ON t.jyzx_charge_type = g.charge_type and g.is_del='1'\n"+
                " where t.id is not null";
        List<Map<String,Object>> chargeDictDOLists =  hibenateUtils.createSQLQuery(sqlCharge, params);
        //查询医生各项评价平均分
        String sqlscore = "select t.doctor as \"id\" ,sum(t.score)/3 as\"score\" from ("+
@ -6246,13 +6235,13 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
                    "\td.req_fee as \"xtzxFee\"\n" +
                    "FROM\n" +
                    "\tbase_doctor t\n" +
                    "LEFT JOIN wlyy_charge_dict m ON t.twfz_charge_type = m.charge_type\n" +
                    "LEFT JOIN wlyy_charge_dict a ON t.spfz_charge_type = a.charge_type\n" +
                    "LEFT JOIN wlyy_charge_dict b ON t.spzx_charge_type = b.charge_type\n" +
                    "LEFT JOIN wlyy_charge_dict v ON t.twzx_charge_type = v.charge_type\n" +
                    "LEFT JOIN wlyy_charge_dict d ON t.xtfz_charge_type = d.charge_type\n" +
                    " LEFT JOIN wlyy_charge_dict g ON t.jyzx_charge_type = g.charge_type\n" +
                    "WHERE t.id = '"+map.get("id")+"' ";
                    "LEFT JOIN wlyy_charge_dict m ON t.twfz_charge_type = m.charge_type and m.is_del='1'\n" +
                    "LEFT JOIN wlyy_charge_dict a ON t.spfz_charge_type = a.charge_type and a.is_del='1'\n" +
                    "LEFT JOIN wlyy_charge_dict b ON t.spzx_charge_type = b.charge_type and b.is_del='1'\n" +
                    "LEFT JOIN wlyy_charge_dict v ON t.twzx_charge_type = v.charge_type and v.is_del='1'\n" +
                    "LEFT JOIN wlyy_charge_dict d ON t.xtfz_charge_type = d.charge_type and d.is_del='1'\n" +
                    " LEFT JOIN wlyy_charge_dict g ON t.jyzx_charge_type = g.charge_type and g.is_del='1'\n" +
                    "WHERE t.id = '"+map.get("id")+"'";
            chargeDictDOLists =  hibenateUtils.createSQLQuery(sqlCharge);
            map.put("chargeTypeList",chargeDictDOLists);
            //查询医生各项评价平均分
@ -8994,13 +8983,13 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
                    }
                    logger.info("进入处方签名");
                    //处方签名
                    xzyyPrescriptionService.SOF_SignDataWithExtraInfo(wlyyPrescriptionDO);
                    String baseSign=xzyyPrescriptionService.SOF_SignDataWithExtraInfo(wlyyPrescriptionDO);
                    //同步电子病历
                    WlyyPrescriptionEmrDO prescriptionEmrDO = prescriptionEmrDao.findEmrByPrescriptionId(prescriptionId);
                    try {
                        if (prescriptionEmrDO != null) {
                            logger.info("电子病历同步");
                            xzzxEntranceService.saveEmrToEntrance(prescriptionId);
                            xzzxEntranceService.saveEmrToEntrance(prescriptionId,baseSign);
                            logger.info("电子病历同步");
                            logger.info("电子病历签名");
                            xzyyPrescriptionService.SOF_SignDataWithExtraInfoEmr(wlyyPrescriptionDO);
@ -9547,7 +9536,12 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
     * @return
     * @throws Exception
     */
    public net.sf.json.JSON outpatient(String patient) throws Exception {
    public net.sf.json.JSON outpatient(String patient,String doctorId) throws Exception {
        try {
            baseOperateLogService.saveOperateLog(doctorId,patient,"EMR","住院病历","","");
        }catch (Exception e){
            e.printStackTrace();
        }
        PatientMappingDO mappingDO = patientMappingDao.findByPatient(patient);
        String url = "";
        WlyyHospitalSysDictDO wlyyHospitalSysDictDO = hospitalSysDictDao.findById("HAI_TAI_OUTPATIENT_URL");
@ -9571,6 +9565,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
        XMLSerializer xmlSerializer = new XMLSerializer();
        net.sf.json.JSON json = xmlSerializer.read(returnValue);
        logger.info("返回json" + json);
        return json;
    }
@ -10772,6 +10767,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
                                    chargeDictDO.setReqFee(twPrcie1);
                                    chargeDictDO.setChargeType(twPrcie+"");
                                    chargeDictDO.setChargeName(twPrcie+"");
                                    chargeDictDO.setIsDel("1");
                                    chargeDictDO = wlyyChargeDictDao.save(chargeDictDO);
                                }
                                doctorDO.setTwzxChargeType(chargeDictDO.getChargeType());
@ -10809,6 +10805,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
                                    chargeDictDO.setReqFee(spPrcie1);
                                    chargeDictDO.setChargeType(spPrcie+"");
                                    chargeDictDO.setChargeName(spPrcie+"");
                                    chargeDictDO.setIsDel("1");
                                    chargeDictDO = wlyyChargeDictDao.save(chargeDictDO);
                                }
                                doctorDO.setSpzxChargeType(chargeDictDO.getChargeType());
@ -10888,6 +10885,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
                            chargeDictDO.setReqFee(price1);
                            chargeDictDO.setChargeType(price + "");
                            chargeDictDO.setChargeName(price + "");
                            chargeDictDO.setIsDel("1");
                            chargeDictDO = wlyyChargeDictDao.save(chargeDictDO);
                        }
                        doctorDO.setTwzxChargeType(chargeDictDO.getChargeType());
@ -10907,6 +10905,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
                            chargeDictDO.setReqFee(price1);
                            chargeDictDO.setChargeType(price + "");
                            chargeDictDO.setChargeName(price + "");
                            chargeDictDO.setIsDel("1");
                            chargeDictDO = wlyyChargeDictDao.save(chargeDictDO);
                        }
                        doctorDO.setSpzxChargeType(chargeDictDO.getChargeType());
@ -12627,7 +12626,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
    }
    public void testHikar(){
    /*public void testHikar(){
        try{
            MBeanServer mBeanServer = ManagementFactory.getPlatformMBeanServer();
            ObjectName poolName = new ObjectName("com.zaxxer.hikari:type=Pool (" + dataSource.getPoolName() + ")");
@ -12645,7 +12644,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
            e.printStackTrace();
        }
    }
    }*/
    public String findDomainUrlInDict(){
        try {
            WlyyHospitalSysDictDO wlyyHospitalSysDictDO = wlyyHospitalSysDictDao.findById("domainUrl");
@ -12659,5 +12658,4 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
            return "";
        }
    }
}

+ 13 - 16
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/XzyyPrescriptionService.java

@ -267,11 +267,12 @@ public class XzyyPrescriptionService extends BaseJpaService<WlyyPrescriptionDO,
     * @param prescriptionDO
     * @throws Exception
     */
    public void SOF_SignDataWithExtraInfo(WlyyPrescriptionDO prescriptionDO) throws Exception {
    public String SOF_SignDataWithExtraInfo(WlyyPrescriptionDO prescriptionDO) throws Exception {
        WlyyOutpatientDO outpatientDO = outpatientDao.findById(prescriptionDO.getOutpatientId());
        List<WlyyPrescriptionInfoDO> infoDOS = infoDao.findByPrescriptionId(prescriptionDO.getId(), 1);
        List<WlyyPrescriptionDiagnosisDO> diagnosisDOS = diagnosisDao.findByPrescriptionId(prescriptionDO.getId(),1);
        JSONObject object = new JSONObject();
        String baseSign="";
        object.put("infos",infoDOS);
        object.put("registerSn",outpatientDO.getRegisterNo());
        object.put("diagnosiss",diagnosisDOS);
@ -297,9 +298,14 @@ public class XzyyPrescriptionService extends BaseJpaService<WlyyPrescriptionDO,
                JSONObject object1 = synRecipeInfo("hash_004",getCode(),patientName,patientAge.toString(),patientSex,"SF",recipeTime,hashValue,hashType,openId,idcard);
                if (object1.getString("status").equalsIgnoreCase("0")){
                    logger.info("西药处方签名成功"+object1);
                    JSONObject jsonObject1 = JSONObject.parseObject(object1.getString("data"));
                    if (jsonObject1!=null){
                        baseSign=jsonObject1.getString("stamp");
                    }
                }
            }
        }
        return baseSign;
    }
    /**
@ -442,7 +448,6 @@ public class XzyyPrescriptionService extends BaseJpaService<WlyyPrescriptionDO,
                clientId=oauthCaConfigDO.getClientId();
                clientSecret=oauthCaConfigDO.getClientSecret();
            }
            JSONObject object = new JSONObject();
            JSONObject msg = new JSONObject();
            JSONObject head = new JSONObject();
            head.put("clientId",clientId);
@ -454,10 +459,8 @@ public class XzyyPrescriptionService extends BaseJpaService<WlyyPrescriptionDO,
            }
            body.put("openId",openId);
            msg.put("body",body);
            object.put("msg",msg);
            object.put("signType",0);
            logger.info("请求参数:"+object);
            String response = httpClientUtil.sendPost(url,object.toJSONString());
            logger.info("请求参数:"+msg);
            String response = httpClientUtil.sendPost(url,msg.toJSONString());
            logger.info("请求自动签名授权接口 :"+response);
            return JSONObject.parseObject(response);
        }catch (Exception e){
@ -482,7 +485,6 @@ public class XzyyPrescriptionService extends BaseJpaService<WlyyPrescriptionDO,
                clientId=oauthCaConfigDO.getClientId();
                clientSecret=oauthCaConfigDO.getClientSecret();
            }
            JSONObject object = new JSONObject();
            JSONObject msg = new JSONObject();
            JSONObject head = new JSONObject();
            head.put("clientId",clientId);
@ -494,10 +496,8 @@ public class XzyyPrescriptionService extends BaseJpaService<WlyyPrescriptionDO,
            }
            body.put("openId",baseDoctorDO.getOpenid());
            msg.put("body",body);
            object.put("msg",msg);
            object.put("signType",0);
            logger.info("请求参数:"+object);
            String response = httpClientUtil.sendPost(url,object.toJSONString());
            logger.info("请求参数:"+msg);
            String response = httpClientUtil.sendPost(url,msg.toJSONString());
            JSONObject jsonRes=JSONObject.parseObject(response);
            JSONObject jsonObject = jsonRes.getJSONObject("data");
            Integer grantStep = jsonObject.getInteger("grantStep");
@ -530,7 +530,6 @@ public class XzyyPrescriptionService extends BaseJpaService<WlyyPrescriptionDO,
                clientId=oauthCaConfigDO.getClientId();
                clientSecret=oauthCaConfigDO.getClientSecret();
            }
            JSONObject object = new JSONObject();
            JSONObject msg = new JSONObject();
            JSONObject head = new JSONObject();
            head.put("clientId",clientId);
@ -542,10 +541,8 @@ public class XzyyPrescriptionService extends BaseJpaService<WlyyPrescriptionDO,
            }
            body.put("openId",openId);
            msg.put("body",body);
            object.put("msg",msg);
            object.put("signType",0);
            logger.info("请求参数:"+object);
            String response = httpClientUtil.sendPost(url,object.toJSONString());
            logger.info("请求参数:"+msg);
            String response = httpClientUtil.sendPost(url,msg.toJSONString());
            logger.info("退出授权接口 :"+response);
            return JSONObject.parseObject(response);
        }catch (Exception e){

+ 1 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/entrance/EntranceService.java

@ -1822,6 +1822,7 @@ public class EntranceService {
                            wlyyChargeDictDO.setDeptTypeCode(winNo);
                            Double free = null == jsonObjectBody.get("req_fee") ? 0 : Double.parseDouble(jsonObjectBody.get("req_fee").toString());
                            wlyyChargeDictDO.setReqFee(free);
                            wlyyChargeDictDO.setIsDel("1");
                            wlyyChargeDictDO.setCreateTime(new Date());
                            map.put(chareCode + "_" + winNo, chareName);
                            wlyyChargeDictDO = wlyyChargeDictDao.save(wlyyChargeDictDO);

+ 30 - 11
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/entrance/XzzxEntranceService.java

@ -22,6 +22,7 @@ import com.yihu.jw.entity.hospital.httplog.WlyyHttpLogDO;
import com.yihu.jw.entity.hospital.mapping.DoctorMappingDO;
import com.yihu.jw.entity.hospital.mapping.PatientMappingDO;
import com.yihu.jw.entity.hospital.prescription.*;
import com.yihu.jw.file_upload.FileUploadService;
import com.yihu.jw.hospital.dict.WlyyChargeDictDao;
import com.yihu.jw.hospital.dict.WlyyHospitalSysDictDao;
import com.yihu.jw.hospital.httplog.dao.WlyyHttpLogDao;
@ -33,6 +34,7 @@ import com.yihu.jw.patient.dao.BasePatientDao;
import com.yihu.jw.restmodel.hospital.doctor.CheckInfoVO;
import com.yihu.jw.restmodel.hospital.doctor.PersonInfoVO;
import com.yihu.jw.restmodel.hospital.prescription.*;
import com.yihu.jw.restmodel.iot.common.UploadVO;
import com.yihu.jw.util.common.IdCardUtil;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.util.http.HttpClientUtil;
@ -49,6 +51,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
@ -120,12 +123,17 @@ public class XzzxEntranceService{
    private BaseDoctorHospitalDao baseDoctorHospitalDao;
    @Autowired
    private PrescriptionEmrDao prescriptionEmrDao;
    @Value("${fastDFS.fastdfs_file_url}")
    private String fastdfs_file_url;
    @Autowired
    private FileUploadService fileUploadService;
    private static String key="bvvsf3JA0mUXMU+mVnMaOQ==";
    //发送微信模板消息
    public static String sendMessageUrl ="http://172.16.100.37:8090/hospitalPortal-sms/sms/sendMessage";
    /*@Value("${wechat.url}")*/
    private String sendMessageUrl="http://172.16.100.37:8090/hospitalPortal-sms/sms/sendMessage";
    public static String entranceUrl = "http://172.16.100.240:10023/xzzx/";
    public static String entranceUrlLocal = "http://localhost:10023/xzzx/";
@ -1155,7 +1163,7 @@ public class XzzxEntranceService{
     * @return
     * @throws Exception
     */
    public String GetDrugDict(String spellCode)throws Exception{
    public String GetDrugDict(String spellCode,String drugNo)throws Exception{
        String api = "GetDrugDict";
        String msgHeader ="<?xml version=\"1.0\" encoding=\"utf-8\"?> " +
                "<root> " +
@ -1165,9 +1173,12 @@ public class XzzxEntranceService{
                "   <certificate>"+key+"</certificate> " +
                "</root>";
        String condition ="";
        if (!StringUtils.isEmpty(spellCode)){
        if (!StringUtils.isEmpty(spellCode)&&!"null".equalsIgnoreCase(spellCode)){
            condition += "<spell_code>"+spellCode+"</spell_code>";
        }
        if (!StringUtils.isEmpty(drugNo)&&!"null".equalsIgnoreCase(drugNo)){
            condition += "<physic_code>"+drugNo+"</physic_code>";
        }
        String msgBody ="<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
                "<root>"+condition+"</root>";
@ -1841,6 +1852,7 @@ public class XzzxEntranceService{
                htmlDeo = replaceHtml(htmlDeo,"@patientAge@",jsonObject.getString("patientAge"));
                htmlDeo = replaceHtml(htmlDeo,"@patientsex@",jsonObject.getString("patientsex"));
                htmlDeo = replaceHtml(htmlDeo,"@deptCode@",jsonObject.getString("deptCode"));
                htmlDeo = replaceHtml(htmlDeo,"@baseSign@",jsonObject.getString("baseSign"));
                htmlDeo = replaceHtml(htmlDeo,"@r+outpatientCode@",jsonObject.getString("outpatientCode"));
                htmlDeo = replaceHtml(htmlDeo,"@patientClan@",jsonObject.getString("patientClan"));
                htmlDeo = replaceHtml(htmlDeo,"@Special@",prescriptionEmrDO.getSpecialHistory());
@ -3049,9 +3061,9 @@ public class XzzxEntranceService{
     * @param spellCode 拼音码
     * @return
     */
    public JSONArray selectDrugDict(String spellCode) throws Exception {
    public JSONArray selectDrugDict(String spellCode,String drugNo) throws Exception {
        String response="";
        String url = entranceUrl+"getDrugDict?spellCode="+spellCode;
        String url = entranceUrl+"getDrugDict?spellCode="+spellCode+"&drugNo="+drugNo;
        response = httpClientUtil.get(url,"GBK");
        JSONObject object = JSONObject.parseObject(response);
        JSONArray jsonArray = new JSONArray();
@ -3072,7 +3084,7 @@ public class XzzxEntranceService{
                object1.put("pack_size",jsonObject.getString("PACK_SPEC"));
                object1.put("retprice",jsonObject.getString("RETAIL_PRICE"));
                object1.put("specification",jsonObject.getString("PHYSIC_SPEC"));
                object1.put("pack_retprice",jsonObject.getString(" "));
                object1.put("pack_retprice",jsonObject.getString("RETAIL_PRICE"));
                object1.put("stock_amount",jsonObject.getString("QUANTITY"));
                object1.put("visible_flag",jsonObject.getString("VALID_FLAG"));
                object1.put("drug_flag",jsonObject.getString("OTC_FLAG"));
@ -3083,9 +3095,12 @@ public class XzzxEntranceService{
                object1.put("vol_unit","");
                object1.put("mini_unit_name",jsonObject.getString("PHYSIC_UNIT"));
                DecimalFormat df =new DecimalFormat("0.00");
                Double packSize=Double.parseDouble(jsonObject.get("PACK_SPEC")==null?"1":jsonObject.getString("PACK_SPEC"));
                Double retprice=Double.parseDouble(jsonObject.get("RETAIL_PRICE")==null?"0":jsonObject.getString("RETAIL_PRICE"));
                Double miniUnitPrice=retprice/packSize;
                Double packSize=Double.parseDouble(jsonObject.get("PACK_SPEC").toString().equals("[]")?"1":jsonObject.getString("PACK_SPEC"));
                Double retprice=Double.parseDouble(jsonObject.get("RETAIL_PRICE").toString().equals("[]")?"0":jsonObject.getString("RETAIL_PRICE"));
                Double miniUnitPrice=0.00;
                if (0.00!=packSize){
                    miniUnitPrice=retprice/packSize;
                }
                object1.put("mini_unit_price",df.format(miniUnitPrice));
                object1.put("pack_unit_name",jsonObject.getString("PRICE_UNIT"));
                object1.put("weigh_unit_name",jsonObject.getString("DOSE_UNIT"));
@ -3456,7 +3471,7 @@ public Map checkSyncHis(String IoFlag,String PayCardNo,String NullahNumber,Strin
     * @return
     * @throws Exception
     */
    public String  saveEmrToEntrance(String prescriptionId) throws Exception {
    public String  saveEmrToEntrance(String prescriptionId,String baseSign) throws Exception {
        Map<String,String> params = new HashedMap();
        WlyyPrescriptionDO wlyyPrescriptionDO = prescriptionDao.findOne(prescriptionId);
        JSONObject paramRequest = new JSONObject();
@ -3510,7 +3525,11 @@ public Map checkSyncHis(String IoFlag,String PayCardNo,String NullahNumber,Strin
            paramRequest.put("emrtype","93");
            paramRequest.put("emrtitle","互联网医院");
            if (StringUtils.isNoneBlank(baseSign)){
                //UploadVO uploadVO=fileUploadService.uploadImagesBase64(baseSign,fastdfs_file_url);
                //paramRequest.put("baseSign","https://ih.xmheart.com/fastdfs/"+uploadVO.getFullUri());
                paramRequest.put("baseSign",baseSign);
            }
        }
        params.put("jsonInfo",paramRequest.toJSONString());
        String response = "";

+ 19 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/team/dao/WlyyAdminTeamDao.java

@ -0,0 +1,19 @@
package com.yihu.jw.hospital.team.dao;
import com.yihu.jw.entity.hospital.team.WlyyAdminTeamDO;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
public interface WlyyAdminTeamDao extends PagingAndSortingRepository<WlyyAdminTeamDO, Integer>, JpaSpecificationExecutor<WlyyAdminTeamDO> {
    @Query("from WlyyAdminTeamDO  t where t.orgCode=?1 and t.available=1")
    List<WlyyAdminTeamDO> findTeamByOrgCode(String orgCode, Pageable pageRequest);
    @Query("from WlyyAdminTeamDO  t where t.available=1")
    List<WlyyAdminTeamDO> findTeamAndAvailable();
}

+ 16 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/team/dao/WlyyAdminTeamMemberDao.java

@ -0,0 +1,16 @@
package com.yihu.jw.hospital.team.dao;
import com.yihu.jw.entity.hospital.team.WlyyAdminTeamMemberDO;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import javax.persistence.criteria.CriteriaBuilder;
import java.util.List;
public interface WlyyAdminTeamMemberDao extends PagingAndSortingRepository<WlyyAdminTeamMemberDO, Integer>, JpaSpecificationExecutor<WlyyAdminTeamMemberDO> {
    @Query("from WlyyAdminTeamMemberDO t where t.teamId=?1 and t.available=1")
    List<WlyyAdminTeamMemberDO> findByTeamId(Long teamId, Pageable pageRequest);
}

+ 12 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/team/dao/WlyySignFamilyDao.java

@ -0,0 +1,12 @@
package com.yihu.jw.hospital.team.dao;
import com.yihu.jw.entity.door.SignFamily;
import com.yihu.jw.entity.hospital.team.WlyyAdminTeamDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
public interface WlyySignFamilyDao extends PagingAndSortingRepository<SignFamily, Integer>, JpaSpecificationExecutor<SignFamily> {
    @Query("select count(*) from SignFamily  t where t.doctor=?1 and t.status=1")
    Integer getCountByDoctorCode(String doctor);
}

+ 129 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/team/service/WlyyAdminTeamService.java

@ -0,0 +1,129 @@
package com.yihu.jw.hospital.team.service;
import com.tencentcloudapi.tci.v20190318.models.Person;
import com.yihu.jw.area.dao.BaseTownDao;
import com.yihu.jw.entity.base.area.BaseTownDO;
import com.yihu.jw.entity.hospital.DmHospitalDO;
import com.yihu.jw.entity.hospital.team.WlyyAdminTeamDO;
import com.yihu.jw.entity.hospital.team.WlyyAdminTeamMemberDO;
import com.yihu.jw.hospital.HospitalDao;
import com.yihu.jw.hospital.team.dao.WlyyAdminTeamDao;
import com.yihu.jw.hospital.team.dao.WlyyAdminTeamMemberDao;
import com.yihu.jw.hospital.team.dao.WlyySignFamilyDao;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.utils.hibernate.HibenateUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Service
public class WlyyAdminTeamService {
    @Autowired
    private WlyyAdminTeamDao wlyyAdminTeamDao;
    @Autowired
    private WlyyAdminTeamMemberDao wlyyAdminTeamMemberDao;
    @Autowired
    private HospitalDao hospitalDao;
    @Autowired
    private WlyySignFamilyDao wlyySignFamilyDao;
    @Autowired
    private HibenateUtils hibenateUtils;
    @Autowired
    private BaseTownDao baseTownDao;
    //查询机构
    public MixEnvelop findHospitalByTown(String townCode,Integer page,Integer pageSize){
        PageRequest pageRequest = new PageRequest(page-1,pageSize);
        MixEnvelop mixEnvelop = new MixEnvelop();
        List<DmHospitalDO> list =null;
        list = hospitalDao.findByTownCode(townCode,pageRequest);
        mixEnvelop.setCurrPage(page);
        mixEnvelop.setPageSize(pageSize);
        mixEnvelop.setDetailModelList(list);
        mixEnvelop.setTotalCount(list==null?0:list.size());
        return mixEnvelop;
    }
    //查询团队
    public MixEnvelop findTeamByOrg(String cityCode,String townCode,String orgCode,Integer page,Integer pageSize){
        String sql ="select t.id as \"id\"," +
                "t.name as \"name\"," +
                "t.create_time as \"createTime\"," +
                "t.leader_code as \"leaderCode\"," +
                "t.leader_name as \"leaderName\"," +
                "t.org_code as \"orgCode\"," +
                "t.member_count as \"memberCount\"," +
                "b.name as \"orgName\"," +
                "t.accept_type as \"acceptType\"," +
                "t.special_code as \"specialCode\"," +
                "t.special_name as \"specialName\"," +
                "t.available as \"available\"" +
                " from wlyy_admin_team t inner join dm_hospital b on t.org_code = b.code where t.available=1";
        PageRequest pageRequest = new PageRequest(page-1,pageSize);
        MixEnvelop mixEnvelop = new MixEnvelop();
        if (StringUtils.isNoneBlank(townCode)){
           sql+=" and b.town ='"+townCode+"'";
        }else {
            sql+=" and b.city ='"+cityCode+"'";
        }
        if (StringUtils.isNoneBlank(orgCode)){
            sql+=" and t.org_code ='"+orgCode+"'";
        }
        List<Map<String ,Object>>list= hibenateUtils.createSQLQuery(sql,page,pageSize);
        mixEnvelop.setCurrPage(page);
        mixEnvelop.setPageSize(pageSize);
        mixEnvelop.setDetailModelList(list);
        mixEnvelop.setTotalCount(list==null?0:list.size());
        return mixEnvelop;
    }
    //查询团队下的医生
    public MixEnvelop findDoctorByTeam(String teamCode,Integer page,Integer pageSize){
        PageRequest pageRequest = new PageRequest(page-1,pageSize);
        MixEnvelop mixEnvelop = new MixEnvelop();
        String orgName="";
        List<WlyyAdminTeamMemberDO> list = wlyyAdminTeamMemberDao.findByTeamId(Long.parseLong(teamCode),pageRequest);
        WlyyAdminTeamDO wlyyAdminTeamDO1 =wlyyAdminTeamDao.findOne(Integer.parseInt(teamCode));
        if (wlyyAdminTeamDO1!=null){
            DmHospitalDO dmHospitalDO = hospitalDao.findByCode(wlyyAdminTeamDO1.getOrgCode());
            if (dmHospitalDO!=null){
                orgName=dmHospitalDO.getName();
            }
        }
        for (WlyyAdminTeamMemberDO wlyyAdminTeamMemberDO:list){
            /*Integer count = wlyySignFamilyDao.getCountByDoctorCode(wlyyAdminTeamMemberDO.getDoctorCode());
            wlyyAdminTeamMemberDO.setSignNum(count==null?0:count);*/
            WlyyAdminTeamDO wlyyAdminTeamDO = wlyyAdminTeamDao.findOne(wlyyAdminTeamMemberDO.getTeamId().intValue());
            if (wlyyAdminTeamDO != null) {
                if (wlyyAdminTeamDO.getLeaderCode().equalsIgnoreCase(wlyyAdminTeamMemberDO.getDoctorCode())) {
                    wlyyAdminTeamMemberDO.setTeamLeader(true);
                    wlyyAdminTeamMemberDO.setTeamLeaderOrder(1);
                }else {
                    wlyyAdminTeamMemberDO.setTeamLeaderOrder(0);
                }
            }else {
                wlyyAdminTeamMemberDO.setTeamLeaderOrder(0);
            }
            wlyyAdminTeamMemberDO.setOrgName(orgName);
        }
        list=list.stream().sorted(Comparator.comparing(WlyyAdminTeamMemberDO::getTeamLeaderOrder).reversed()).collect(Collectors.toList());
        mixEnvelop.setCurrPage(page);
        mixEnvelop.setPageSize(pageSize);
        mixEnvelop.setDetailModelList(list);
        mixEnvelop.setTotalCount(list==null?0:list.size());
        return mixEnvelop;
    }
    public List<BaseTownDO> findTownByCity(String city){
       return baseTownDao.findByCityCode(city);
    }
    public WlyyAdminTeamMemberDO findOneTeamMemberById(Integer id){
        return wlyyAdminTeamMemberDao.findOne(id);
    }
}

+ 2 - 0
business/base-service/src/main/java/com/yihu/jw/order/BusinessOrderService.java

@ -1499,6 +1499,7 @@ public class BusinessOrderService extends BaseJpaService<BusinessOrderDO,Busines
     */
    public BusinessOrderDO updatePayStatusByRelation(String relationCode,String wxId) throws Exception {
        logger.info("入参:"+relationCode);
        logger.info("进入无需支付");
        String baseUrl = prescriptionService.findDomainUrlInDict();
        BusinessOrderDO businessOrderDO = businessOrderDao.selectByRelationCode(relationCode);
        WlyyHospitalSysDictDO changeMethod = hospitalSysDictDao.findById("consultPay");
@ -1589,6 +1590,7 @@ public class BusinessOrderService extends BaseJpaService<BusinessOrderDO,Busines
                    }
                }
                if (wxId.equalsIgnoreCase("xm_zsyy_wx")){
                    logger.info("进入无需支付zs"+relationCode+"=="+wxId);
                    String url=baseUrl+"/hlwyy/ims-app-web/#/onlineChat/detail?_rs_title="+outpatientDO.getDescription()+"&type=3&id="+outpatientDO.getId();
                    enterpriseService.sendTWMesByDoctor("zsyy",outpatientDO.getDoctor(),title,msg,url);
                }else if (wxId.equalsIgnoreCase("xm_xzzx_wx")){

+ 97 - 0
business/base-service/src/main/java/com/yihu/jw/utils/JDBCSqlServer.java

@ -0,0 +1,97 @@
package com.yihu.jw.utils;
import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
import com.yihu.jw.entity.hospital.httplog.BaseOperateLogDO;
import com.yihu.jw.hospital.dict.WlyyHospitalSysDictDao;
import com.yihu.jw.util.date.DateUtil;
import lombok.extern.slf4j.Slf4j;
import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.List;
/**
 * @ClassName: JDBCUtils
 * @Description: 实现连接池效果,初始化10个JDBC连接对象并放入池中,提供方法每次返回一个对象
 * @Author: xuezhouyi
 * @Version: V1.0
 **/
@Slf4j
@Service
public class JDBCSqlServer {
    @Autowired
    private WlyyHospitalSysDictDao wlyyHospitalSysDictDao;
    public  void insertZsSqlserver(BaseOperateLogDO baseOperateLogDO) {
        Connection connection=null;
        String driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver";//SQL数据库引擎
        String dbURL="jdbc:sqlserver://192.10.33.110:1433;DatabaseName=logdb";//数据源  !!!注意若出现加载或者连接数据库失败一般是这里出现问题
        String dbName="nethoslogdba";
        String dbPwd="nethoslogdba^1";
        List<WlyyHospitalSysDictDO> configlist = wlyyHospitalSysDictDao.findByDictName("sqlServerConfig");
        for (WlyyHospitalSysDictDO wlyyHospitalSysDictDO:configlist){
            if ("isOpen".equalsIgnoreCase(wlyyHospitalSysDictDO.getDictCode())){
                if (!"1".equalsIgnoreCase(wlyyHospitalSysDictDO.getDictValue())){
                    System.out.println("关闭传入sqlserver");
                    return;
                }
            }
            System.out.println("开启传入sqlserver");
            if ("dbURL".equalsIgnoreCase(wlyyHospitalSysDictDO.getDictCode())){
                dbURL=wlyyHospitalSysDictDO.getDictValue();
            }
            if ("dbName".equalsIgnoreCase(wlyyHospitalSysDictDO.getDictCode())){
                dbName=wlyyHospitalSysDictDO.getDictValue();
            }
            if ("dbPwd".equalsIgnoreCase(wlyyHospitalSysDictDO.getDictCode())){
                dbPwd=wlyyHospitalSysDictDO.getDictValue();
            }
        }
        try{
            Class.forName(driverName);
            connection=DriverManager.getConnection(dbURL,dbName,dbPwd);
            System.out.println("连接数据库成功");
        }catch(Exception e){
            e.printStackTrace();
            System.out.println("连接失败");
        }
        Statement stmt = null;
        try {
            stmt = connection.createStatement();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        String creatTime=DateUtil.dateToStr(baseOperateLogDO.getCreateTime(),"yyyy-MM-dd hh:mm:ss");
        //增删改操作
        String sql_1="insert into nethoslog values('"+baseOperateLogDO.getId()+"','"+baseOperateLogDO.getCode()+"','"+baseOperateLogDO.getName()+"','"+baseOperateLogDO.getOperator()+ "','"+baseOperateLogDO.getOperatorName()+"','"+baseOperateLogDO.getPatient()+"','"+baseOperateLogDO.getPatientName()+"','"+creatTime+ "','','','"+baseOperateLogDO.getIsDel()+"')";
        int count_1 = 0;
        try {
            count_1 = stmt.executeUpdate(sql_1);
            connection.commit();
        } catch (SQLException e) {
            e.printStackTrace();
        }//返回值表示增删改几条数据
        //处理结果
        if(count_1>0){
            System.out.println("更新成功!");
        }
        //关闭
        try {
            stmt.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        try {
            connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

+ 25 - 4
business/base-service/src/main/java/com/yihu/jw/wechat/enterprise/EnterpriseService.java

@ -156,11 +156,22 @@ public class EnterpriseService {
    public String sendMKMesByDoctor(String enterpriseId,String doctor,String content)throws Exception {
        BaseDoctorDO baseDoctorDO = baseDoctorDao.findById(doctor);
        String res="";
        if (baseDoctorDO != null && StringUtils.isNotBlank(baseDoctorDO.getMobile())) {
            WxEnterpriseUserDO user = wxEnterpriseUserDao.findByEnterpriseIdAndMobile(enterpriseId, baseDoctorDO.getMobile());
            if (user != null) {
                return sendMKMes(enterpriseId, user.getUserid(), content);
                WlyyHttpLogDO wlyyHttpLogDO = new WlyyHttpLogDO();
                wlyyHttpLogDO.setDoctor(doctor);
                wlyyHttpLogDO.setRequest(content);
                wlyyHttpLogDO.setName("im消息推送");
                wlyyHttpLogDO.setCode(enterpriseId);
                wlyyHttpLogDO.setCreateTime(new Date());
                wlyyHttpLogDO.setRequest("enterpriseId:"+enterpriseId+",doctor:"+doctor+",url:"+content);
                res=sendMKMes(enterpriseId, user.getUserid(), content);
                wlyyHttpLogDO.setResponse(res);
                logger.info(res);
                wlyyHttpLogDao.save(wlyyHttpLogDO);
                return res;
            }
        }
        return "";
@ -195,7 +206,7 @@ public class EnterpriseService {
                        wlyyHttpLogDO.setCode(outPatientId);
                        wlyyHttpLogDO.setCreateTime(new Date());
                        wlyyHttpLogDO.setRequest("enterpriseId:"+enterpriseId+",doctor:"+doctor+",url:"+url);
                        wlyyHttpLogDO.setResponse(res);
                            wlyyHttpLogDO.setResponse(res);
                        logger.info(res);
                        wlyyHttpLogDao.save(wlyyHttpLogDO);
                    }
@ -253,7 +264,7 @@ public class EnterpriseService {
    public String sendTWMes(String enterpriseId,String userId,String title,String description,String url)throws Exception{
        String mesurl = "https://qyapi.weixin.qq.com/cg1-bin/message/send?access_token="+getToken(enterpriseId);
        String mesurl = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token="+getToken(enterpriseId);
        JSONObject param = new JSONObject();
        param.put("touser",userId);
@ -343,6 +354,16 @@ public class EnterpriseService {
        String rs = HttpUtil.sendPost(mesurl,param.toJSONString());
        logger.info("MKMes:"+rs);
        WlyyHttpLogDO wlyyHttpLogDO = new WlyyHttpLogDO();
        wlyyHttpLogDO.setDoctor(userId);
        wlyyHttpLogDO.setRequest(content);
        wlyyHttpLogDO.setName("im消息推送");
        wlyyHttpLogDO.setCode(enterpriseId);
        wlyyHttpLogDO.setCreateTime(new Date());
        wlyyHttpLogDO.setRequest("enterpriseId:"+enterpriseId+",doctor:"+userId+",url:"+content);
        wlyyHttpLogDO.setResponse(rs);
        logger.info(rs);
        wlyyHttpLogDao.save(wlyyHttpLogDO);
        return rs;
    }

+ 10 - 1
business/base-service/src/main/java/com/yihu/jw/wlyy/service/WlyyBusinessService.java

@ -17,6 +17,8 @@ import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.base.patient.PatientMedicareCardDO;
import com.yihu.jw.entity.hospital.mapping.DoctorMappingDO;
import com.yihu.jw.entity.hospital.prescription.WlyyOutpatientDO;
import com.yihu.jw.hospital.httplog.dao.BaseOperateLogDao;
import com.yihu.jw.hospital.httplog.service.BaseOperateLogService;
import com.yihu.jw.hospital.mapping.dao.DoctorMappingDao;
import com.yihu.jw.hospital.prescription.dao.OutpatientDao;
import com.yihu.jw.hospital.prescription.service.PrescriptionService;
@ -86,6 +88,8 @@ public class WlyyBusinessService {
    private BasePatientMedicareCardDao patientMedicareCardDao;
    @Autowired
    private XzzxEntranceService xzzxEntranceService;
    @Autowired
    private BaseOperateLogService baseOperateLogService;
    /**
@ -275,7 +279,7 @@ public class WlyyBusinessService {
     * @return
     * @throws Exception
     */
    public String wlyyGetPatientAccetokenByIdcard(String patientId,String wxId) throws Exception {
    public String wlyyGetPatientAccetokenByIdcard(String patientId,String wxId,String doctorId) throws Exception {
        
        String idcard = "";
        String result = "";
@ -396,6 +400,11 @@ public class WlyyBusinessService {
                    throw new Exception("请求i健康接口失败");
                }
            }
            try {
                baseOperateLogService.saveOperateLog(doctorId,patientId,"JKDA","健康档案","","");
            }catch (Exception e){
                e.printStackTrace();
            }
        }else {
            throw new Exception("该居民不存在");
        }

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

@ -95,6 +95,51 @@ public class WlyyHttpService {
        }
        return null;
    }
    /**
     * @param configId 配置ID
     * @param param key为param,的参数
     * @return
     */
    public JSONObject sendWlyyMesGet(String configId,String param) {
        try{
            OauthWlyyConfigDO oauthWlyyConfigDO = oauthWlyyConfigDao.findOne(configId);
            //token获取accesstoken
            List<NameValuePair> params = new ArrayList<>();
            params.add(new BasicNameValuePair("appid", oauthWlyyConfigDO.getAppId()));
            params.add(new BasicNameValuePair("appSecret", oauthWlyyConfigDO.getAppSecret()));
            String res = httpClientUtil.post(oauthWlyyConfigDO.getTokenUrl(), params, "UTF-8");
            String token = null;
            JSONObject rsjson = JSONObject.parseObject(res);
            logger.info("sendWlyyMes token :" + rsjson.toString());
            Integer status = rsjson.getInteger("status");
            if (status == 10000) {
                //设置头部
                token = rsjson.getJSONObject("result").getString("accesstoken");
                Map<String,Object> headerMap = new HashedMap();
                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");
                if(s == 200){
                    return re;
                }else{
                    return null;
                }
            }else{
                return null;
            }
        }catch (Exception e){
            logger.error("sendWlyyMes error:"+e.toString());
        }
        return null;
    }
    
}

+ 0 - 1
business/es-service/src/main/java/com/yihu/jw/es/service/StatisticsEsService.java

@ -3748,7 +3748,6 @@ public class StatisticsEsService {
            List<SaveModel> total = elasticsearchUtil.findListDateQuotaLevel1(startDate, endDate, area, level, index1, SaveModel.timeLevel_ZL, null,lowCode);
            //已结束
            List<SaveModel> endTotal = elasticsearchUtil.findListDateQuotaLevel2(startDate, endDate, area, level, index, SaveModel.timeLevel_ZL, null,lowCode,"3");
            logger.info("total"+total==null?"0":String.valueOf(total.size())+";"+total.get(0).getResult1());
            //已接诊
            List<SaveModel> haveReceiveTotal = elasticsearchUtil.findListDateQuotaLevel2(startDate, endDate, area, level, index1, SaveModel.timeLevel_ZL, null,lowCode,"1");
            //未接诊

+ 159 - 1
business/es-service/src/main/java/com/yihu/jw/es/util/ElasticsearchUtil.java

@ -899,7 +899,7 @@ public class ElasticsearchUtil {
     * @return
     * @throws Exception
     */
    public List findDateAllQuotaLevel1(String startDate, String endDate, String area, int level, String index, String timeLevel, String interval, String lowLevel) throws Exception {
    public List findDateAllQuotaLevel1(String startDate, String endDate, String area, int level, String index, String timeLevel, String interval, String lowLevel,String areaLevel) throws Exception {
        //时间格式转换  yyyy-MM-dd转成 2017-07-17T00:00:00+0800
        if (StringUtils.isNotEmpty(startDate)) {
@ -939,6 +939,164 @@ public class ElasticsearchUtil {
            groupBy.append("  group by city,cityName,slaveKey1,slaveKey1Name");
        }
        if (StringUtils.isNotEmpty(area)) {
            if (SaveModel.doctorLevel.equals(level + "")) {
                sql.append(" doctor='" + area + "'");
            }else if (SaveModel.deptLevel.equals(level + "")) {
                sql.append(" dept='" + area + "'");
            } else if (SaveModel.OrgLevel.equals(level + "")) {
                sql.append(" hospital='" + area + "'");
            } else if (SaveModel.townLevel.equals(level + "")) {
                sql.append(" town='" + area + "'");
            } else if (SaveModel.cityLevel.equals(level + "")) {
                sql.append(" city='" + area + "'");
            }
            sql.append(" and ");
        }
        sql.append(" quotaCode='" + index + "'  ");
        sql.append(" and timeLevel='" + timeLevel + "'  ");
        sql.append(" and areaLevel='"+areaLevel+"'");
        if (StringUtils.isNotEmpty(startDate)) {
            sql.append(" and quotaDate>='" + startDate + "'");
        }
        if (StringUtils.isNotEmpty(endDate)) {
            sql.append(" and quotaDate<='" + endDate + "'");
        }
        //根据时间维度分组
        if (StringUtils.isNotEmpty(interval)) {
            if (SaveModel.interval_month.equals(interval)) {
                groupBy.append(" ,date_histogram(field='quotaDate','interval'='month','time_zone'='+08:00','alias'='quotaDate') ");
            } else if (SaveModel.interval_week.equals(interval)) {
                groupBy.append(" ,date_histogram(field='quotaDate','interval'='week','time_zone'='+08:00','alias'='quotaDate') ");
            } else if (SaveModel.interval_day.equals(interval)) {
                groupBy.append(" ,date_histogram(field='quotaDate','interval'='1d','time_zone'='+08:00','alias'='quotaDate') ");
            }
        }
        sql.append(groupBy);
        return excute(sql.toString(), SaveModel.class, "", "");
    }
    public List findDateAllQuotaLevel2(String startDate, String endDate, String area, int level, String index, String timeLevel, String interval, String lowLevel,String areaLevel) throws Exception {
        //时间格式转换  yyyy-MM-dd转成 2017-07-17T00:00:00+0800
        if (StringUtils.isNotEmpty(startDate)) {
            if (startDate.length() > 10) {
                startDate = changeTime(startDate);
            } else {
                startDate = changeDate(startDate);
            }
        }
        if (StringUtils.isNotEmpty(endDate)) {
            if (endDate.length() > 10) {
                endDate = changeTime(endDate);
            } else {
                endDate = changeDate(endDate);
            }
        }
        StringBuffer sql = new StringBuffer();
        StringBuffer groupBy = new StringBuffer();
        String low_level = level + "";
        if (StringUtils.isNotEmpty(lowLevel)) {
            low_level = lowLevel;
        }
        if (SaveModel.doctorLevel.equals(low_level)) {
            sql.append("select doctor as doctor,doctorName as doctorName,slaveKey2 as slaveKey2,slaveKey2Name as slaveKey2Name,sum(result1) as result1, sum(result2) as result2 from " + esIndex + " where ");
            groupBy.append("  group by doctor,doctorName,slaveKey2,slaveKey2Name");
        }else if (SaveModel.deptLevel.equals(low_level)) {
            sql.append("select dept as dept,deptName as deptName,slaveKey2 as slaveKey2,slaveKey2Name as slaveKey2Name,sum(result1) as result1, sum(result2) as result2 from " + esIndex + " where ");
            groupBy.append("  group by dept,deptName,slaveKey2,slaveKey2Name");
        } else if (SaveModel.OrgLevel.equals(low_level)) {
            sql.append("select hospital as hospital,hospitalName as hospitalName,slaveKey2 as slaveKey2,slaveKey2Name as slaveKey2Name,sum(result1) as result1,sum(result2) as result2 from " + esIndex + " where ");
            groupBy.append("  group by hospital,hospitalName,slaveKey2,slaveKey2Name");
        } else if (SaveModel.townLevel.equals(low_level)) {
            sql.append("select town as town,townName as townName,slaveKey2 as slaveKey2,slaveKey2Name as slaveKey2Name,sum(result1) as result1,sum(result2) as result2 from " + esIndex + " where ");
            groupBy.append("  group by town,townName,slaveKey2,slaveKey2Name");
        } else if (SaveModel.cityLevel.equals(low_level)) {
            sql.append("select city as city,cityName as cityName,slaveKey2 as slaveKey2,slaveKey2Name as slaveKey2Name,sum(result1) as result1,sum(result2) as result2 from " + esIndex + " where ");
            groupBy.append("  group by city,cityName,slaveKey2,slaveKey2Name");
        }
        if (StringUtils.isNotEmpty(area)) {
            if (SaveModel.doctorLevel.equals(level + "")) {
                sql.append(" doctor='" + area + "'");
            }else if (SaveModel.deptLevel.equals(level + "")) {
                sql.append(" dept='" + area + "'");
            } else if (SaveModel.OrgLevel.equals(level + "")) {
                sql.append(" hospital='" + area + "'");
            } else if (SaveModel.townLevel.equals(level + "")) {
                sql.append(" town='" + area + "'");
            } else if (SaveModel.cityLevel.equals(level + "")) {
                sql.append(" city='" + area + "'");
            }
            sql.append(" and ");
        }
        sql.append(" quotaCode='" + index + "'  ");
        sql.append(" and timeLevel='" + timeLevel + "'  ");
        sql.append(" and areaLevel='"+areaLevel+"'");
        if (StringUtils.isNotEmpty(startDate)) {
            sql.append(" and quotaDate>='" + startDate + "'");
        }
        if (StringUtils.isNotEmpty(endDate)) {
            sql.append(" and quotaDate<='" + endDate + "'");
        }
        //根据时间维度分组
        if (StringUtils.isNotEmpty(interval)) {
            if (SaveModel.interval_month.equals(interval)) {
                groupBy.append(" ,date_histogram(field='quotaDate','interval'='month','time_zone'='+08:00','alias'='quotaDate') ");
            } else if (SaveModel.interval_week.equals(interval)) {
                groupBy.append(" ,date_histogram(field='quotaDate','interval'='week','time_zone'='+08:00','alias'='quotaDate') ");
            } else if (SaveModel.interval_day.equals(interval)) {
                groupBy.append(" ,date_histogram(field='quotaDate','interval'='1d','time_zone'='+08:00','alias'='quotaDate') ");
            }
        }
        sql.append(groupBy);
        return excute(sql.toString(), SaveModel.class, "", "");
    }
    public List findDateAllQuotaLevel3(String startDate, String endDate, String area, int level, String index, String timeLevel, String interval, String lowLevel) throws Exception {
        //时间格式转换  yyyy-MM-dd转成 2017-07-17T00:00:00+0800
        if (StringUtils.isNotEmpty(startDate)) {
            if (startDate.length() > 10) {
                startDate = changeTime(startDate);
            } else {
                startDate = changeDate(startDate);
            }
        }
        if (StringUtils.isNotEmpty(endDate)) {
            if (endDate.length() > 10) {
                endDate = changeTime(endDate);
            } else {
                endDate = changeDate(endDate);
            }
        }
        StringBuffer sql = new StringBuffer();
        StringBuffer groupBy = new StringBuffer();
        String low_level = level + "";
        if (StringUtils.isNotEmpty(lowLevel)) {
            low_level = lowLevel;
        }
        if (SaveModel.doctorLevel.equals(low_level)) {
            sql.append("select doctor as doctor,doctorName as doctorName,slaveKey3 as slaveKey3,slaveKey3Name as slaveKey3Name,sum(result1) as result1, sum(result2) as result2 from " + esIndex + " where ");
            groupBy.append("  group by doctor,doctorName,slaveKey3,slaveKey3Name");
        }else if (SaveModel.deptLevel.equals(low_level)) {
            sql.append("select dept as dept,deptName as deptName,slaveKey3 as slaveKey3,slaveKey3Name as slaveKey3Name,sum(result1) as result1, sum(result2) as result2 from " + esIndex + " where ");
            groupBy.append("  group by dept,deptName,slaveKey3,slaveKey3Name");
        } else if (SaveModel.OrgLevel.equals(low_level)) {
            sql.append("select hospital as hospital,hospitalName as hospitalName,slaveKey3 as slaveKey3,slaveKey3Name as slaveKey3Name,sum(result1) as result1,sum(result2) as result2 from " + esIndex + " where ");
            groupBy.append("  group by hospital,hospitalName,slaveKey3,slaveKey3Name");
        } else if (SaveModel.townLevel.equals(low_level)) {
            sql.append("select town as town,townName as townName,slaveKey3 as slaveKey3,slaveKey3Name as slaveKey3Name,sum(result1) as result1,sum(result2) as result2 from " + esIndex + " where ");
            groupBy.append("  group by town,townName,slaveKey3,slaveKey3Name");
        } else if (SaveModel.cityLevel.equals(low_level)) {
            sql.append("select city as city,cityName as cityName,slaveKey3 as slaveKey3,slaveKey3Name as slaveKey3Name,sum(result1) as result1,sum(result2) as result2 from " + esIndex + " where ");
            groupBy.append("  group by city,cityName,slaveKey3,slaveKey3Name");
        }
        if (StringUtils.isNotEmpty(area)) {
            if (SaveModel.doctorLevel.equals(level + "")) {
                sql.append(" doctor='" + area + "'");

+ 3 - 0
business/im-service/src/main/java/com/yihu/jw/im/dao/ConsultTeamDao.java

@ -1,6 +1,7 @@
package com.yihu.jw.im.dao;
import com.yihu.jw.entity.base.im.ConsultTeamDo;
import org.hibernate.validator.constraints.LuhnCheck;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
@ -29,4 +30,6 @@ public interface ConsultTeamDao  extends PagingAndSortingRepository<ConsultTeamD
	Integer  countByTime(int type, String doctor, Date startTime, Date endTime);
	ConsultTeamDo queryByRelationCode(String relationCode);
	List<ConsultTeamDo> findByTypeAndDel(Integer type,String del);
}

+ 2 - 1
business/im-service/src/main/java/com/yihu/jw/im/util/ImUtil.java

@ -758,7 +758,8 @@ public class ImUtil {
	public static final String SESSION_TYPE_EMERGENCY_ASSISTANCE = "20";//紧急救助
	public static final String SESSION_TYPE_DOOR_COACH = "21";//上门辅导(上门预约)
	public static final String SESSION_TYPE_SECURITY_WARN = "22";//安防咨询
	public static final String SESSION_TYPE_ONLINE = "23";//在线咨询
	public static final String SESSION_TYPE_ONLINE = "23";//新生儿在线咨询
	public static final String SESSION_TYPE_ONLINEAged = "24";//老人在线咨询
	public static final String CONTENT_TYPE_TEXT = "1";
	

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

@ -992,3 +992,77 @@ alter table wlyy_outpatient ADD is_agree  varchar(2);
alter table base_doctor ADD is_sign  varchar(2);
alter table base_doctor ADD last_sign_time  timestamp;
-- 2021-06-02 ysj
CREATE TABLE `base_seq` (
  `val` int(11) NOT NULL,
  `type` tinyint(4) NOT NULL COMMENT '类型1生活照料'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='自增序列';
INSERT INTO `base`.`base_seq` (`val`, `type`) VALUES ('1000000001', '1');
CREATE FUNCTION seq(seq_type TINYINT (4)) returns int
begin
 UPDATE base_seq SET val=last_insert_id(val+1) WHERE type=seq_type;
 RETURN last_insert_id();
end;
alter table base_life_care_order add column doctor_sign_time datetime DEFAULT NULL COMMENT '医生签到时间';
alter table base_life_care_order add column doctor_sign_way tinyint(1) DEFAULT NULL COMMENT '医生签到方式:1-定位,2-扫码,3-拍照';
alter table base_life_care_order add column doctor_sign_location varchar(50) DEFAULT NULL COMMENT '医生签到位置,记录详细地址';
alter table base_life_care_order add column doctor_sign_img varchar(3000) DEFAULT NULL COMMENT '医生签到照片';
alter table base_life_care_order add column sign_doctor varchar(50) DEFAULT NULL COMMENT '签到医生';
alter table base_life_care_order add column sign_doctor_name varchar(50) DEFAULT NULL COMMENT '签到医生name';
-- 2021-06-07 ysj
alter table base_life_care_order add column conclusion_imgs varchar(3000) DEFAULT NULL COMMENT '小结照片';
alter table base_life_care_order add column conclusion_time datetime DEFAULT NULL COMMENT '小结时间';
alter table base_life_care_order add column conclusion_remark varchar(1200) DEFAULT NULL COMMENT '小结内容';
-- 2021-06-07 lb
CREATE TABLE `base_doctor_patient_tmp` (
  `id` varchar(50) NOT NULL,
  `patient` varchar(50) DEFAULT NULL,
  `type` tinyint(2) DEFAULT NULL COMMENT '1在线咨询,2上门辅导,3入学报名,4购买课程',
  `relation_code` varchar(50) DEFAULT NULL COMMENT '1:咨询code,2上门辅导工单id,3入学订单id,4课程订单id',
  `doctor_code` varchar(50) DEFAULT NULL COMMENT 'type=(1,2,4为医生id;3机构code) ',
  `status` tinyint(2) DEFAULT '0' COMMENT '入学字段 1已入学,0未入学',
  `del` tinyint(1) DEFAULT '1' COMMENT '1有效 0无效',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  PRIMARY KEY (`id`),
  KEY `patient` (`patient`),
  KEY `type_doc_code` (`type`,`doctor_code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='教师医生通讯录埋点数据';
-- 2021-06-10
alter table base.base_service_package_item add column topic_item varchar(50) default null COMMENT '服务项所属专题(base_system_dict_entry remark字段) security 安防服务专题';
--2021-06-11
ALTER table base.base_security_monitoring_order add column topic_item varchar(50) default "preventLost" COMMENT '安防工单所属专题 base_system_dict_entry表service_item';
ALTER TABLE base.base_security_monitoring_order ADD INDEX idx_topIt(topic_item);
ALTER table base_capacity_assessment_record add column age tinyint(4) default  COMMENT '年龄';
ALTER TABLE base.base_doctor_patient_tmp MODIFY COLUMN  doctor_code varchar(50) DEFAULT NULL COMMENT 'type=(1,2,4为医生id) ';
ALTER TABLE base.base_doctor_patient_tmp ADD COLUMN org_code varchar(50) DEFAULT NULL COMMENT 'type=(3为机构code)';
ALTER TABLE base_security_monitoring_order add column scene_img VARCHAR(1000) default null COMMENT '工单发起时的现场照片';
--2021-06-21
ALTER table base_patient add column idcard_front varchar(1000) default NULL  COMMENT '身份证正面';
ALTER table base_patient add column idcard_back varchar(1000) default NULL  COMMENT '身份证反面';
-- 2021-06-17 ysj
ALTER table base_patient ADD COLUMN `lat_lon` varchar(100) DEFAULT NULL COMMENT '定位经纬度';
CREATE TABLE `base_service_news` (
  `id` varchar(50) NOT NULL,
  `content` varchar(200) DEFAULT NULL COMMENT '内容',
  `create_time` datetime DEFAULT NULL,
  `name` varchar(50) DEFAULT NULL COMMENT '姓名',
  `type` varchar(2) DEFAULT NULL COMMENT '类型',
  `code` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='服务动态信息';

+ 289 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/complaint/BaseComplaintDO.java

@ -0,0 +1,289 @@
package com.yihu.jw.entity.base.complaint;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yihu.jw.entity.UuidIdentityEntity;
import com.yihu.jw.entity.UuidIdentityEntityWithOperator;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.util.Date;
@Entity
@Table(name = "base_complaint")
public class BaseComplaintDO  extends UuidIdentityEntity {
    private String complaintId;
    private String complaintName;
    private String complaintContent;
    private String visitType;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    private Date visitTime;
    private String visitDept;
    private String visitDeptName;
    private String admNo;
    private String patient;
    private String patientName;
    private String patientIdcard;
    private String idcardFront;
    private String idcardBack;
    private String imgUrl;
    private String isDel;
    private String status;
    @Transient
    private String mobile;
    private String visitTypeName;
    @Transient
    public String getVisitTypeName() {
        return visitTypeName;
    }
    public void setVisitTypeName(String visitTypeName) {
        this.visitTypeName = visitTypeName;
    }
    @Transient
    public String getMobile() {
        return mobile;
    }
    public void setMobile(String mobile) {
        this.mobile = mobile;
    }
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    private Date createTime;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    private Date acceptTime;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    private Date dealTime;
    private String operator;
    private String operatorName;
    private String operatorDept;
    private String operatorDeptName;
    private String feedBack;
    private String feedImg;
    private String acceptor;
    private String acceptorName;
    @Column(name = "operator_dept")
    public String getOperatorDept() {
        return operatorDept;
    }
    public void setOperatorDept(String operatorDept) {
        this.operatorDept = operatorDept;
    }
    @Column(name = "operator_dept_name")
    public String getOperatorDeptName() {
        return operatorDeptName;
    }
    public void setOperatorDeptName(String operatorDeptName) {
        this.operatorDeptName = operatorDeptName;
    }
    @Column(name = "feed_back")
    public String getFeedBack() {
        return feedBack;
    }
    public void setFeedBack(String feedBack) {
        this.feedBack = feedBack;
    }
    @Column(name = "feed_img")
    public String getFeedImg() {
        return feedImg;
    }
    public void setFeedImg(String feedImg) {
        this.feedImg = feedImg;
    }
    @Column(name = "acceptor")
    public String getAcceptor() {
        return acceptor;
    }
    public void setAcceptor(String acceptor) {
        this.acceptor = acceptor;
    }
    @Column(name = "acceptor_name")
    public String getAcceptorName() {
        return acceptorName;
    }
    public void setAcceptorName(String acceptorName) {
        this.acceptorName = acceptorName;
    }
    @Column(name = "complaint_id")
    public String getComplaintId() {
        return complaintId;
    }
    public void setComplaintId(String complaintId) {
        this.complaintId = complaintId;
    }
    @Column(name = "complaint_name")
    public String getComplaintName() {
        return complaintName;
    }
    public void setComplaintName(String complaintName) {
        this.complaintName = complaintName;
    }
    @Column(name = "complaint_content")
    public String getComplaintContent() {
        return complaintContent;
    }
    public void setComplaintContent(String complaintContent) {
        this.complaintContent = complaintContent;
    }
    @Column(name = "visit_type")
    public String getVisitType() {
        return visitType;
    }
    public void setVisitType(String visitType) {
        this.visitType = visitType;
    }
    @Column(name = "visit_time")
    public Date getVisitTime() {
        return visitTime;
    }
    public void setVisitTime(Date visitTime) {
        this.visitTime = visitTime;
    }
    @Column(name = "visit_dept")
    public String getVisitDept() {
        return visitDept;
    }
    public void setVisitDept(String visitDept) {
        this.visitDept = visitDept;
    }
    @Column(name = "visit_dept_name")
    public String getVisitDeptName() {
        return visitDeptName;
    }
    public void setVisitDeptName(String visitDeptName) {
        this.visitDeptName = visitDeptName;
    }
    @Column(name = "adm_no")
    public String getAdmNo() {
        return admNo;
    }
    public void setAdmNo(String admNo) {
        this.admNo = admNo;
    }
    @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 = "patient_idcard")
    public String getPatientIdcard() {
        return patientIdcard;
    }
    public void setPatientIdcard(String patientIdcard) {
        this.patientIdcard = patientIdcard;
    }
    @Column(name = "idcard_front")
    public String getIdcardFront() {
        return idcardFront;
    }
    public void setIdcardFront(String idcardFront) {
        this.idcardFront = idcardFront;
    }
    @Column(name = "idcard_back")
    public String getIdcardBack() {
        return idcardBack;
    }
    public void setIdcardBack(String idcardBack) {
        this.idcardBack = idcardBack;
    }
    @Column(name = "img_url")
    public String getImgUrl() {
        return imgUrl;
    }
    public void setImgUrl(String imgUrl) {
        this.imgUrl = imgUrl;
    }
    @Column(name = "is_del")
    public String getIsDel() {
        return isDel;
    }
    public void setIsDel(String isDel) {
        this.isDel = isDel;
    }
    @Column(name = "status")
    public String getStatus() {
        return status;
    }
    public void setStatus(String status) {
        this.status = status;
    }
    @Column(name = "create_time")
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    @Column(name = "accept_time")
    public Date getAcceptTime() {
        return acceptTime;
    }
    public void setAcceptTime(Date acceptTime) {
        this.acceptTime = acceptTime;
    }
    @Column(name = "deal_time")
    public Date getDealTime() {
        return dealTime;
    }
    public void setDealTime(Date dealTime) {
        this.dealTime = dealTime;
    }
    @Column(name = "operator")
    public String getOperator() {
        return operator;
    }
    public void setOperator(String operator) {
        this.operator = operator;
    }
    @Column(name = "operator_name")
    public String getOperatorName() {
        return operatorName;
    }
    public void setOperatorName(String operatorName) {
        this.operatorName = operatorName;
    }
}

+ 33 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/complaint/BaseComplaintDictDO.java

@ -0,0 +1,33 @@
package com.yihu.jw.entity.base.complaint;
import com.yihu.jw.entity.UuidIdentityEntity;
import com.yihu.jw.entity.UuidIdentityEntityWithOperator;
import sun.awt.SunHints;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
@Entity
@Table(name = "base_complaint_dict")
public class BaseComplaintDictDO extends UuidIdentityEntityWithOperator {
    private String name;
    private String isDel;
    @Column(name = "name")
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    @Column(name = "is_del")
    public String getIsDel() {
        return isDel;
    }
    public void setIsDel(String isDel) {
        this.isDel = isDel;
    }
}

+ 69 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/complaint/BaseComplaintDoctorDO.java

@ -0,0 +1,69 @@
package com.yihu.jw.entity.base.complaint;
import com.yihu.jw.entity.UuidIdentityEntity;
import com.yihu.jw.entity.UuidIdentityEntityWithOperator;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
@Entity
@Table(name = "base_complaint_doctor")
public class BaseComplaintDoctorDO extends UuidIdentityEntityWithOperator {
    private String complaintId;
    private String doctor;
    private String doctorName;
    private String dept;
    private String deptName;
    private String isDel;
    @Column(name = "complaint_id")
    public String getComplaintId() {
        return complaintId;
    }
    public void setComplaintId(String complaintId) {
        this.complaintId = complaintId;
    }
    @Column(name = "doctor")
    public String getDoctor() {
        return doctor;
    }
    public void setDoctor(String doctor) {
        this.doctor = doctor;
    }
    @Column(name = "doctor_name")
    public String getDoctorName() {
        return doctorName;
    }
    public void setDoctorName(String doctorName) {
        this.doctorName = doctorName;
    }
    @Column(name = "dept")
    public String getDept() {
        return dept;
    }
    public void setDept(String dept) {
        this.dept = dept;
    }
    @Column(name = "dept_name")
    public String getDeptName() {
        return deptName;
    }
    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }
    @Column(name = "is_del")
    public String getIsDel() {
        return isDel;
    }
    public void setIsDel(String isDel) {
        this.isDel = isDel;
    }
}

+ 67 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/complaint/BaseComplaintOperateLogDO.java

@ -0,0 +1,67 @@
package com.yihu.jw.entity.base.complaint;
import com.yihu.jw.entity.UuidIdentityEntity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
@Entity
@Table(name = "base_complaint_operate_log")
public class BaseComplaintOperateLogDO extends UuidIdentityEntity {
    private String  relationCode;
    private String  operateFrom;
    private String  operateTo;
    private Date createTime;
    private String  complaintFrom;
    private String  complaintTo;
    @Column(name = "relation_code")
    public String getRelationCode() {
        return relationCode;
    }
    public void setRelationCode(String relationCode) {
        this.relationCode = relationCode;
    }
    @Column(name = "operate_from")
    public String getOperateFrom() {
        return operateFrom;
    }
    public void setOperateFrom(String operateFrom) {
        this.operateFrom = operateFrom;
    }
    @Column(name = "operate_to")
    public String getOperateTo() {
        return operateTo;
    }
    public void setOperateTo(String operateTo) {
        this.operateTo = operateTo;
    }
    @Column(name = "create_time")
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    @Column(name = "complaint_from")
    public String getComplaintFrom() {
        return complaintFrom;
    }
    public void setComplaintFrom(String complaintFrom) {
        this.complaintFrom = complaintFrom;
    }
    @Column(name = "complaint_to")
    public String getComplaintTo() {
        return complaintTo;
    }
    public void setComplaintTo(String complaintTo) {
        this.complaintTo = complaintTo;
    }
}

+ 124 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/doctor/BaseDoctorSuggestDO.java

@ -0,0 +1,124 @@
package com.yihu.jw.entity.base.doctor;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yihu.jw.entity.UuidIdentityEntity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
@Entity
@Table(name = "base_doctor_suggest")
public class BaseDoctorSuggestDO extends UuidIdentityEntity {
    private String suggestType;
    private String suggestName;
    private String suggestContent;
    private String relationCode;
    private String relationType;
    private Date createTime;
    private String createUser;
    private String createUserName;
    private String doctor;
    private String doctorName;
    private String isDel;
    private String imgUrl;
    @Column(name = "suggest_type")
    public String getSuggestType() {
        return suggestType;
    }
    public void setSuggestType(String suggestType) {
        this.suggestType = suggestType;
    }
    @Column(name = "suggest_name")
    public String getSuggestName() {
        return suggestName;
    }
    public void setSuggestName(String suggestName) {
        this.suggestName = suggestName;
    }
    @Column(name = "suggest_content")
    public String getSuggestContent() {
        return suggestContent;
    }
    public void setSuggestContent(String suggestContent) {
        this.suggestContent = suggestContent;
    }
    @Column(name = "relation_code")
    public String getRelationCode() {
        return relationCode;
    }
    public void setRelationCode(String relationCode) {
        this.relationCode = relationCode;
    }
    @Column(name = "relation_type")
    public String getRelationType() {
        return relationType;
    }
    public void setRelationType(String relationType) {
        this.relationType = relationType;
    }
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    @Column(name = "create_time")
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    @Column(name = "create_user")
    public String getCreateUser() {
        return createUser;
    }
    public void setCreateUser(String createUser) {
        this.createUser = createUser;
    }
    @Column(name = "create_user_name")
    public String getCreateUserName() {
        return createUserName;
    }
    public void setCreateUserName(String createUserName) {
        this.createUserName = createUserName;
    }
    @Column(name = "doctor")
    public String getDoctor() {
        return doctor;
    }
    public void setDoctor(String doctor) {
        this.doctor = doctor;
    }
    @Column(name = "doctor_name")
    public String getDoctorName() {
        return doctorName;
    }
    public void setDoctorName(String doctorName) {
        this.doctorName = doctorName;
    }
    @Column(name = "is_del")
    public String getIsDel() {
        return isDel;
    }
    public void setIsDel(String isDel) {
        this.isDel = isDel;
    }
    @Column(name = "img_url")
    public String getImgUrl() {
        return imgUrl;
    }
    public void setImgUrl(String imgUrl) {
        this.imgUrl = imgUrl;
    }
}

+ 2 - 1
common/common-entity/src/main/java/com/yihu/jw/entity/base/im/ConsultTeamDo.java

@ -24,7 +24,8 @@ public class ConsultTeamDo extends UuidIdentityEntity {
	// 6、患者名医咨询 7医生名医咨询 8续方咨询 9、16在线复诊咨询(居民直接咨询专家)
	// 10医生发起的求助 11思明区上门服务在线咨询
	// 13、互联网医院专家咨询, 20紧急救助咨询, 21上门辅导咨询, 22安防警报咨询
	// 23 在线咨询
	// 23 新生儿在线咨询
	// 24 老人在线咨询
	private String patient;         // 提问者标识
	private String name;            // 患者姓名
	private Integer sex;            // 患者性别

+ 0 - 9
common/common-entity/src/main/java/com/yihu/jw/entity/base/menu/BaseMenuShowDO.java

@ -13,7 +13,6 @@ public class BaseMenuShowDO extends UuidIdentityEntityWithCreateTime {
    private String modelId;
    private String modelName;
    private String menuId;
    private String menuName;
    private String isDel;
    private Integer menuSort;
    private String styleCode;
@ -43,14 +42,6 @@ public class BaseMenuShowDO extends UuidIdentityEntityWithCreateTime {
    public void setMenuId(String menuId) {
        this.menuId = menuId;
    }
    @Column(name = "menu_name")
    public String getMenuName() {
        return menuName;
    }
    public void setMenuName(String menuName) {
        this.menuName = menuName;
    }
    @Column(name = "is_del")
    public String getIsDel() {
        return isDel;

+ 28 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/patient/BasePatientDO.java

@ -279,6 +279,25 @@ public class BasePatientDO extends UuidIdentityEntityWithOperator {
    private String bloodName;
    private String marriageName;
    private String idcardFront;
    private String idcardBack;
    @Column(name = "idcard_front")
    public String getIdcardFront() {
        return idcardFront;
    }
    public void setIdcardFront(String idcardFront) {
        this.idcardFront = idcardFront;
    }
    @Column(name = "idcard_back")
    public String getIdcardBack() {
        return idcardBack;
    }
    public void setIdcardBack(String idcardBack) {
        this.idcardBack = idcardBack;
    }
    private String latLon;//定位经纬度
    public String getCardType() {
        return cardType;
@ -839,4 +858,13 @@ public class BasePatientDO extends UuidIdentityEntityWithOperator {
    public void setMarriageName(String marriageName) {
        this.marriageName = marriageName;
    }
    @Column(name = "lat_lon")
    public String getLatLon() {
        return latLon;
    }
    public void setLatLon(String latLon) {
        this.latLon = latLon;
    }
}

+ 10 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/servicePackage/ServicePackageItemDO.java

@ -29,6 +29,7 @@ public class ServicePackageItemDO extends UuidIdentityEntity implements java.io.
    private String teamName;//'服务团队名称'
    private String createTime;//
    private String dictId;//
    private String topicItem;//所属专题 security 安防专题
    @Column(name = "dict_id")
    public String getDictId() {
        return dictId;
@ -153,4 +154,13 @@ public class ServicePackageItemDO extends UuidIdentityEntity implements java.io.
    public void setDelName(String delName) {
        this.delName = delName;
    }
    @Column(name = "topic_item")
    public String getTopicItem() {
        return topicItem;
    }
    public void setTopicItem(String topicItem) {
        this.topicItem = topicItem;
    }
}

+ 1 - 1
common/common-entity/src/main/java/com/yihu/jw/entity/base/system/SystemDictEntryDO.java

@ -27,7 +27,7 @@ public class SystemDictEntryDO extends UuidIdentityEntity {
	//排序
	private Integer sort;
	//备注
	private String remark;
	private String remark;//dictCode为service_item时 该字段为服务项所对应专题
	@Column(name = "dict_code", nullable = false, length = 50)
	public String getDictCode() {

+ 79 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/care/course/DoctorPatientTmpDO.java

@ -0,0 +1,79 @@
package com.yihu.jw.entity.care.course;
import com.yihu.jw.entity.UuidIdentityEntityWithCreateTime;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
 * Created by Bing on 2021/6/7.
 * 教师通讯录幼儿数据埋点
 */
@Entity
@Table(name="base_doctor_patient_tmp")
public class DoctorPatientTmpDO extends UuidIdentityEntityWithCreateTime {
    private String patient;
    private Integer type; //1在线咨询,2上门辅导,3入学报名,4购买课程
    private String relationCode; //1:咨询code,2上门辅导工单id,3入学订单id,4课程订单id
    private String doctorCode;// type=(1,2,4为医生id;3机构code)
    private String orgCode;// type=(1,2,4为医生id;3机构code)
    private Integer status; //入学字段 1已入学,0未入学
    private Integer del;
    public String getPatient() {
        return patient;
    }
    public void setPatient(String patient) {
        this.patient = patient;
    }
    public Integer getType() {
        return type;
    }
    public void setType(Integer type) {
        this.type = type;
    }
    public String getRelationCode() {
        return relationCode;
    }
    public void setRelationCode(String relationCode) {
        this.relationCode = relationCode;
    }
    public String getDoctorCode() {
        return doctorCode;
    }
    public void setDoctorCode(String doctorCode) {
        this.doctorCode = doctorCode;
    }
    public String getOrgCode() {
        return orgCode;
    }
    public void setOrgCode(String orgCode) {
        this.orgCode = orgCode;
    }
    public Integer getStatus() {
        return status;
    }
    public void setStatus(Integer status) {
        this.status = status;
    }
    public Integer getDel() {
        return del;
    }
    public void setDel(Integer del) {
        this.del = del;
    }
}

+ 1 - 1
common/common-entity/src/main/java/com/yihu/jw/entity/care/device/DevicePatientDevice.java

@ -21,7 +21,7 @@ public class DevicePatientDevice extends IdEntity {
    private String deviceName;
    // 用户code
    private String user;
    // 设备类型标识 1血糖仪,2.血压计,3药盒,4智能手表
    // 设备类型标识 1血糖仪,2.血压计,3药盒,4智能手表,7 = 居家报警器,12 监控器
    private String categoryCode;
    // 用户类型标准 -1代表单用户
    private String userType;

+ 122 - 2
common/common-entity/src/main/java/com/yihu/jw/entity/care/lifeCare/LifeCareOrderDO.java

@ -23,7 +23,8 @@ public class LifeCareOrderDO extends UuidIdentityEntityWithOperator {
    public enum Status {
        cancel(-1, "已取消"),
        waitForAccept(1, "待(医生)接单"),
        waitForAccept(1, "待(医生)接单"),//待服务
        signIn(3, "已签到"),
        complete(2,"已完成");
        private Integer type;
@ -181,9 +182,23 @@ public class LifeCareOrderDO extends UuidIdentityEntityWithOperator {
     */
    private String completeRemark;
    /**
     * 小结照片,最多6张,逗号分隔
     */
    private String conclusionImgs;
    /**
     * 服务小结
     */
    private String conclusionRemark;
    /**
     * 工单结时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    private Date conclusionTime;
    /**
     * 工单状态:
     * 待服务 1、已完成 2 、已取消 -1
     * 待服务 1、已完成 2 、已取消 -1 已签到 3、
     */
    private Integer status;
@ -257,7 +272,34 @@ public class LifeCareOrderDO extends UuidIdentityEntityWithOperator {
    private String hospitalName;
    private Integer type;//发起工单类型(1本人发起 2家人待预约 3医生代预约)
    private String relationCode;//业务关联
    /**
     * 医生签到时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    private Date doctorSignTime;
    /**
     * 医生签到方式:1-定位,2-扫码
     */
    private Integer doctorSignWay;
    /**
     * 医生签到位置,记录详细地址
     */
    private String doctorSignLocation;
    /**
     * 医生签到照片
     */
    private String doctorSignImg;
    /**
     *
     */
    private String signDoctor;
    /**
     * 签到医生姓名
     */
    private String signDoctorName;
    @Column(name = "number")
    public String getNumber() {
@ -585,4 +627,82 @@ public class LifeCareOrderDO extends UuidIdentityEntityWithOperator {
        this.relationCode = relationCode;
    }
    @Column(name = "doctor_sign_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    public Date getDoctorSignTime() {
        return doctorSignTime;
    }
    public void setDoctorSignTime(Date doctorSignTime) {
        this.doctorSignTime = doctorSignTime;
    }
    @Column(name = "doctor_sign_way")
    public Integer getDoctorSignWay() {
        return doctorSignWay;
    }
    public void setDoctorSignWay(Integer doctorSignWay) {
        this.doctorSignWay = doctorSignWay;
    }
    @Column(name = "doctor_sign_location")
    public String getDoctorSignLocation() {
        return doctorSignLocation;
    }
    public void setDoctorSignLocation(String doctorSignLocation) {
        this.doctorSignLocation = doctorSignLocation;
    }
    @Column(name = "doctor_sign_img")
    public String getDoctorSignImg() {
        return doctorSignImg;
    }
    public void setDoctorSignImg(String doctorSignImg) {
        this.doctorSignImg = doctorSignImg;
    }
    @Column(name = "sign_doctor")
    public String getSignDoctor() {
        return signDoctor;
    }
    public void setSignDoctor(String signDoctor) {
        this.signDoctor = signDoctor;
    }
    @Column(name = "sign_doctor_name")
    public String getSignDoctorName() {
        return signDoctorName;
    }
    public void setSignDoctorName(String signDoctorName) {
        this.signDoctorName = signDoctorName;
    }
    @Column(name = "conclusion_imgs")
    public String getConclusionImgs() {
        return conclusionImgs;
    }
    public void setConclusionImgs(String conclusionImgs) {
        this.conclusionImgs = conclusionImgs;
    }
    @Column(name = "conclusion_remark")
    public String getConclusionRemark() {
        return conclusionRemark;
    }
    public void setConclusionRemark(String conclusionRemark) {
        this.conclusionRemark = conclusionRemark;
    }
    @Column(name = "conclusion_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    public Date getConclusionTime() {
        return conclusionTime;
    }
    public void setConclusionTime(Date conclusionTime) {
        this.conclusionTime = conclusionTime;
    }
}

+ 58 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/care/message/BaseServiceNews.java

@ -0,0 +1,58 @@
package com.yihu.jw.entity.care.message;
import com.yihu.jw.entity.UuidIdentityEntityWithCreateTime;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
 * Created with IntelliJ IDEA.
 *
 * @Author: yeshijie
 * @Date: 2021/6/17
 * @Description:
 */
@Entity
@Table(name="base_service_news")
public class BaseServiceNews extends UuidIdentityEntityWithCreateTime {
    //内容
    private String content;
    //姓名
    private String name;
    private String code;
    //类型 1上门辅导、2发起咨询、3发起生活照料、4代预约
    private String type;
    public String getContent() {
        return content;
    }
    public void setContent(String content) {
        this.content = content;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
}

+ 19 - 1
common/common-entity/src/main/java/com/yihu/jw/entity/care/securitymonitoring/SecurityMonitoringOrderDO.java

@ -318,8 +318,10 @@ public class SecurityMonitoringOrderDO extends UuidIdentityEntityWithOperator {
    private String serviceStatus;//服务类型 1-预约项目 2-即时项目
    private String orderInfo;//工单详情 0-未推送 1-未确认 2-已确认
    private String doctorConfirmFinishImg;
    private Integer orderSource;//工单发起来源状态 1APP 2手环 3居家报警
    private Integer orderSource;//工单发起来源状态 1APP 2手环 3居家报警 4监控器发起
    private Integer emergencyCancel;// 紧急预警工单误报警原因 字典emergency_cancel
    private String topicItem;//安防工单所属专题 base_system_dict_entry表service_item
    private String sceneImg;//现场照片
    /**
     * 医生确认医生结束服务时间
@ -709,4 +711,20 @@ public class SecurityMonitoringOrderDO extends UuidIdentityEntityWithOperator {
    public void setEmergencyCancel(Integer emergencyCancel) {
        this.emergencyCancel = emergencyCancel;
    }
    public String getTopicItem() {
        return topicItem;
    }
    public void setTopicItem(String topicItem) {
        this.topicItem = topicItem;
    }
    public String getSceneImg() {
        return sceneImg;
    }
    public void setSceneImg(String sceneImg) {
        this.sceneImg = sceneImg;
    }
}

+ 0 - 1
common/common-entity/src/main/java/com/yihu/jw/entity/care/sign/CapacityAssessmentRecordDO.java

@ -301,7 +301,6 @@ public class CapacityAssessmentRecordDO extends UuidIdentityEntityWithCreateTime
        this.signTime = signTime;
    }
    @Transient
    public Integer getAge() {
        return age;
    }

+ 156 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/hospital/DmHospitalDO.java

@ -0,0 +1,156 @@
package com.yihu.jw.entity.hospital;
import com.yihu.jw.entity.IntegerIdentityEntity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
 * 医院
 *
 * @author George
 */
@Entity
@Table(name = "dm_hospital")
public class DmHospitalDO extends IntegerIdentityEntity {
	private static final long serialVersionUID = 8039389705624435301L;
	private String code;            // 医院編碼
	private String name;	        // 医院名稱
	private String del;             // 作废标志
	private String province;        //省份标志
	private String provinceName;    //省份名称
	private String city;            //城市标志
	private String cityName;        //城市名称
	private String town;            //区县标志
	private String townName;        //区县名称
	private Integer level;          //级别,1医院,2社区医院
	private String address;         //医院详细地址
	private String intro;           //医院简介
	private String photo;           //医院图片
	private String roadCode;        //街道编码
	private String centerSite;      //中心/站点
	public String getDel() {
		return del;
	}
	public void setDel(String del) {
		this.del = del;
	}
	public String getCode() {
		return code;
	}
	public void setCode(String code) {
		this.code = code;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getProvince() {
		return province;
	}
	public void setProvince(String province) {
		this.province = province;
	}
	public String getProvinceName() {
		return provinceName;
	}
	public void setProvinceName(String provinceName) {
		this.provinceName = provinceName;
	}
	public String getCity() {
		return city;
	}
	public void setCity(String city) {
		this.city = city;
	}
	public String getCityName() {
		return cityName;
	}
	public void setCityName(String cityName) {
		this.cityName = cityName;
	}
	public String getTown() {
		return town;
	}
	public void setTown(String town) {
		this.town = town;
	}
	public String getTownName() {
		return townName;
	}
	public void setTownName(String townName) {
		this.townName = townName;
	}
	public Integer getLevel() {
		return level;
	}
	public void setLevel(Integer level) {
		this.level = level;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	public String getIntro() {
		return intro;
	}
	public void setIntro(String intro) {
		this.intro = intro;
	}
	public String getPhoto() {
		return photo;
	}
	public void setPhoto(String photo) {
		this.photo = photo;
	}
	@Column(name="road_code")
	public String getRoadCode() {
		return roadCode;
	}
	public void setRoadCode(String roadCode) {
		this.roadCode = roadCode;
	}
	@Column(name="center_site")
	public String getCenterSite() {
		return centerSite;
	}
	public void setCenterSite(String centerSite) {
		this.centerSite = centerSite;
	}
}

+ 8 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/hospital/dict/WlyyChargeDictDO.java

@ -22,7 +22,15 @@ public class WlyyChargeDictDO extends UuidIdentityEntity {
    private Date createTime;
    /**6总部7金榜8夏禾*/
    private String deptTypeCode;
    private String isDel;
    public String getIsDel() {
        return isDel;
    }
    public void setIsDel(String isDel) {
        this.isDel = isDel;
    }
    public String getChargeType() {
        return chargeType;

+ 106 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/hospital/httplog/BaseOperateLogDO.java

@ -0,0 +1,106 @@
package com.yihu.jw.entity.hospital.httplog;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yihu.jw.entity.UuidIdentityEntity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
@Entity
@Table(name = "base_operate_log")
public class BaseOperateLogDO extends UuidIdentityEntity {
    private String code;
    private String name;
    private String operator;
    private String operatorName;
    private String patient;
    private String patientName;
    private Date createTime;
    private String relationType;
    private String relationCode;
    private String isDel;
    @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 = "operator")
    public String getOperator() {
        return operator;
    }
    public void setOperator(String operator) {
        this.operator = operator;
    }
    @Column(name = "operator_name")
    public String getOperatorName() {
        return operatorName;
    }
    public void setOperatorName(String operatorName) {
        this.operatorName = operatorName;
    }
    @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 = "create_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    @Column(name = "relation_type")
    public String getRelationType() {
        return relationType;
    }
    public void setRelationType(String relationType) {
        this.relationType = relationType;
    }
    @Column(name = "relation_code")
    public String getRelationCode() {
        return relationCode;
    }
    public void setRelationCode(String relationCode) {
        this.relationCode = relationCode;
    }
    @Column(name = "is_del")
    public String getIsDel() {
        return isDel;
    }
    public void setIsDel(String isDel) {
        this.isDel = isDel;
    }
}

+ 2 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/hospital/httplog/WlyyHttpLogDO.java

@ -3,6 +3,7 @@ package com.yihu.jw.entity.hospital.httplog;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yihu.jw.entity.UuidIdentityEntity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
@ -80,6 +81,7 @@ public class WlyyHttpLogDO extends UuidIdentityEntity {
    }
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    @Column(name="create_time")
    public Date getCreateTime() {
        return createTime;
    }

+ 3 - 1
common/common-entity/src/main/java/com/yihu/jw/entity/hospital/message/SystemMessageDO.java

@ -19,7 +19,9 @@ public class SystemMessageDO extends UuidIdentityEntity {
    /**
     *消息类型 上门服务400开头,生活照料500开头 ,安防监控600开头, 上门辅导700开头,紧急救助800开头
     * 在线咨询 850
     * 家属紧急预警系统消息 50
     * 新生儿在线咨询 850
     * 老人在线咨询 851
     */
    private String type;
    /**

+ 141 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/hospital/prescription/BaseAdviceTreatmentDO.java

@ -0,0 +1,141 @@
package com.yihu.jw.entity.hospital.prescription;
import com.yihu.jw.entity.UuidIdentityEntity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.util.Date;
import java.util.List;
/**
* 治疗建议
*
* @author Administrator on  2019年05月16日
*
*/
@Entity
@Table(name = "base_advice_treatment")
public class BaseAdviceTreatmentDO extends UuidIdentityEntity {
    /**
     * 关联outpatientid
     */
    private String relationCode;
    /**
     * 1可用 0删除
     */
    private Integer del;
    /**
     * 诊断编码
     */
    private String diagnosis;
    /**
     * 诊断名称
     */
    private String diagnosisName;
    /**
     * 检查
     */
    private String inspection;
    /**
     * 治疗建议
     */
    private String treatment;
    private Double drugFee;
    private String check;
    private Date createTime;
    @Column(name = "create_time")
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    @Transient
    private List<WlyyPrescriptionInfoDO> infoList;
    @Transient
    public List<WlyyPrescriptionInfoDO> getInfoList() {
        return infoList;
    }
    public void setInfoList(List<WlyyPrescriptionInfoDO> infoList) {
        this.infoList = infoList;
    }
    @Column(name = "check_treat")
    public String getCheck() {
        return check;
    }
    public void setCheck(String check) {
        this.check = check;
    }
    @Column(name = "drug_fee")
    public Double getDrugFee() {
        return drugFee;
    }
    public void setDrugFee(Double drugFee) {
        this.drugFee = drugFee;
    }
    @Column(name = "relation_code")
    public String getRelationCode() {
        return relationCode;
    }
    public void setRelationCode(String relationCode) {
        this.relationCode = relationCode;
    }
    @Column(name = "diagnosis")
    public String getDiagnosis() {
        return diagnosis;
    }
    public void setDiagnosis(String diagnosis) {
        this.diagnosis = diagnosis;
    }
    @Column(name = "diagnosis_name")
    public String getDiagnosisName() {
        return diagnosisName;
    }
    public void setDiagnosisName(String diagnosisName) {
        this.diagnosisName = diagnosisName;
    }
    @Column(name = "inspection")
    public String getInspection() {
        return inspection;
    }
    public void setInspection(String inspection) {
        this.inspection = inspection;
    }
    @Column(name = "treatment")
    public String getTreatment() {
        return treatment;
    }
    public void setTreatment(String treatment) {
        this.treatment = treatment;
    }
    @Column(name = "del")
    public Integer getDel() {
        return del;
    }
    public void setDel(Integer del) {
        this.del = del;
    }
}

+ 146 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/hospital/team/WlyyAdminTeamDO.java

@ -0,0 +1,146 @@
package com.yihu.jw.entity.hospital.team;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yihu.jw.entity.IntegerIdentityEntity;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import javax.persistence.*;
import javax.persistence.criteria.CriteriaBuilder;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
 * Created by yww on 2016/11/15.
 */
@Entity
@Table(name = "wlyy_admin_team")
@EntityListeners(AuditingEntityListener.class)
public class WlyyAdminTeamDO implements Serializable {
    private Integer id;
    private static final long serialVersionUID = 1L;
    private String name;            //团队名称
    private Date createTime;              //创建时间
    private Integer available;
    private String orgCode;
    private String orgName;
    private String leaderCode;
    private String leaderName;
    private String mappingCode;
    private String mappingName;
    private Date lastModified;
    private String memberCount;
    @Id
    @Column(name = "id")
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getMemberCount() {
        return memberCount;
    }
    public void setMemberCount(String memberCount) {
        this.memberCount = memberCount;
    }
    //不对应表中字段
    private List<WlyyAdminTeamMemberDO> memberList = new ArrayList<>();
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    @Column(name = "create_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public Integer getAvailable() {
        return available;
    }
    public void setAvailable(Integer available) {
        this.available = available;
    }
    @Column(name = "org_code")
    public String getOrgCode() {
        return orgCode;
    }
    public void setOrgCode(String orgCode) {
        this.orgCode = orgCode;
    }
    @Transient
    public String getOrgName() {
        return orgName;
    }
    public void setOrgName(String orgName) {
        this.orgName = orgName;
    }
    @Column(name = "leader_code")
    public String getLeaderCode() {
        return leaderCode;
    }
    public void setLeaderCode(String leaderCode) {
        this.leaderCode = leaderCode;
    }
    @Column(name = "leader_name")
    public String getLeaderName() {
        return leaderName;
    }
    public void setLeaderName(String leaderName) {
        this.leaderName = leaderName;
    }
    @Column(name = "mapping_code")
    public String getMappingCode() {
        return mappingCode;
    }
    public void setMappingCode(String mappingCode) {
        this.mappingCode = mappingCode;
    }
    @Transient
    public String getMappingName() {
        return mappingName;
    }
    public void setMappingName(String mappingName) {
        this.mappingName = mappingName;
    }
    @Column(name = "last_modified")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    public Date getLastModified() {
        return lastModified;
    }
    public void setLastModified(Date lastModified) {
        this.lastModified = lastModified;
    }
    @Transient
    public List<WlyyAdminTeamMemberDO> getMemberList() {
        return memberList;
    }
    public void setMemberList(List<WlyyAdminTeamMemberDO> memberList) {
        this.memberList = memberList;
    }
}

+ 207 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/hospital/team/WlyyAdminTeamMemberDO.java

@ -0,0 +1,207 @@
package com.yihu.jw.entity.hospital.team;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yihu.jw.entity.IntegerIdentityEntity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.util.Date;
/**
 * Created by yww on 2016/11/15.
 */
@Entity
@Table(name = "wlyy_admin_team_member")
public class WlyyAdminTeamMemberDO extends IntegerIdentityEntity {
    private static final long serialVersionUID = 1L;
    private Long teamId;
    private String doctorCode;
    private Date joinTime;
    private Integer available;
    private Date lastModified;
    private String photo;
    private String idcard;
    private String expertise;
    private String introduce;
    private String job_name;
    private String job;
    //不对应表字段
    private String doctorName;
    private String mobile;
    private Integer level;
    private String levelName;
    private boolean teamLeader;
    private Integer teamLeaderOrder;
    private Integer signNum;
    private String orgName;
    @Column(name = "job_name")
    public String getJob_name() {
        return job_name;
    }
    public void setJob_name(String job_name) {
        this.job_name = job_name;
    }
    @Column(name = "job")
    public String getJob() {
        return job;
    }
    public void setJob(String job) {
        this.job = job;
    }
    @Column(name = "expertise")
    public String getExpertise() {
        return expertise;
    }
    public void setExpertise(String expertise) {
        this.expertise = expertise;
    }
    @Column(name = "introduce")
    public String getIntroduce() {
        return introduce;
    }
    public void setIntroduce(String introduce) {
        this.introduce = introduce;
    }
    @Transient
    public String getOrgName() {
        return orgName;
    }
    public void setOrgName(String orgName) {
        this.orgName = orgName;
    }
    @Transient
    public Integer getTeamLeaderOrder() {
        return teamLeaderOrder;
    }
    public void setTeamLeaderOrder(Integer teamLeaderOrder) {
        this.teamLeaderOrder = teamLeaderOrder;
    }
    @Column(name = "photo")
    public String getPhoto() {
        return photo;
    }
    public void setPhoto(String photo) {
        this.photo = photo;
    }
    @Transient
    public Integer getSignNum() {
        return signNum;
    }
    public void setSignNum(Integer signNum) {
        this.signNum = signNum;
    }
    @Column(name = "idcard")
    public String getIdcard() {
        return idcard;
    }
    public void setIdcard(String idcard) {
        this.idcard = idcard;
    }
    @Transient
    public boolean isTeamLeader() {
        return teamLeader;
    }
    public void setTeamLeader(boolean teamLeader) {
        this.teamLeader = teamLeader;
    }
    @Column(name = "team_id")
    public Long getTeamId() {
        return teamId;
    }
    public void setTeamId(Long teamId) {
        this.teamId = teamId;
    }
    @Column(name = "doctor_code")
    public String getDoctorCode() {
        return doctorCode;
    }
    public void setDoctorCode(String doctorCode) {
        this.doctorCode = doctorCode;
    }
    @Column(name = "join_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    public Date getJoinTime() {
        return joinTime;
    }
    public void setJoinTime(Date joinTime) {
        this.joinTime = joinTime;
    }
    public Integer getAvailable() {
        return available;
    }
    public void setAvailable(Integer available) {
        this.available = available;
    }
    @Column(name = "last_modified")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    public Date getLastModified() {
        return lastModified;
    }
    public void setLastModified(Date lastModified) {
        this.lastModified = lastModified;
    }
    public String getDoctorName() {
        return doctorName;
    }
    public void setDoctorName(String doctorName) {
        this.doctorName = doctorName;
    }
    @Transient
    public String getMobile() {
        return mobile;
    }
    public void setMobile(String mobile) {
        this.mobile = mobile;
    }
    @Transient
    public Integer getLevel() {
        return level;
    }
    public void setLevel(Integer level) {
        this.level = level;
    }
    @Transient
    public String getLevelName() {
        return levelName;
    }
    public void setLevelName(String levelName) {
        this.levelName = levelName;
    }
}

+ 6 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/job/QuartzJobConfig.java

@ -134,6 +134,7 @@ public class QuartzJobConfig implements java.io.Serializable {
		this.del = del;
	}
	@Column(name = "sql")
	public String getSql() {
		return sql;
	}
@ -142,6 +143,7 @@ public class QuartzJobConfig implements java.io.Serializable {
		this.sql = sql;
	}
	@Column(name = "sql_count")
	public String getSqlCount() {
		return sqlCount;
	}
@ -150,6 +152,7 @@ public class QuartzJobConfig implements java.io.Serializable {
		this.sqlCount = sqlCount;
	}
	@Column(name = "sql_day")
	public String getSqlDay() {
		return sqlDay;
	}
@ -158,6 +161,7 @@ public class QuartzJobConfig implements java.io.Serializable {
		this.sqlDay = sqlDay;
	}
	@Column(name = "sql_year")
	public String getSqlYear() {
		return sqlYear;
	}
@ -166,6 +170,7 @@ public class QuartzJobConfig implements java.io.Serializable {
		this.sqlYear = sqlYear;
	}
	@Column(name = "cache_key")
	public String getCacheKey() {
		return cacheKey;
	}
@ -174,6 +179,7 @@ public class QuartzJobConfig implements java.io.Serializable {
		this.cacheKey = cacheKey;
	}
	@Column(name = "extract_type")
	public String getExtractType() {
		return extractType;
	}

+ 2 - 0
common/common-request-mapping/src/main/java/com/yihu/jw/rm/base/BaseRequestMapping.java

@ -228,6 +228,7 @@ public class BaseRequestMapping {
        public static final String findAllMenu  = "/findAllMenu";
        public static final String findMenuByParentId  = "/findMenuByParentId";
        public static final String findArticleByMenuId= "/findArticleByMenuId";
        public static final String queryById= "/queryById";
    }
@ -293,6 +294,7 @@ public class BaseRequestMapping {
        public static final String UPLOAD_STREAM  = "/upload_stream";
        public static final String UPLOAD_STREAM_video  = "/upload_stream_video";
        public static final String UPLOAD_STRING  = "/upload_string";
        public static final String UPLOAD_STRINGBASE64  = "/UPLOAD_STRINGBASE64";
        public static final String UPLOAD_STREAM_ATTACHMENT  = "/upload_stream_attachment";
        public static final String DELETE_FILE = "/DELETE_FILE";

+ 9 - 0
common/common-request-mapping/src/main/java/com/yihu/jw/rm/hospital/BaseHospitalRequestMapping.java

@ -1306,6 +1306,15 @@ public class BaseHospitalRequestMapping {
        public static final String changeIsRead = "/changeIsRead";
    }
    /**
     * 医生反馈建议
     */
    public static class DoctorSuggest extends Basic{
        public static final String saveSuggest  = "/saveSuggest";
        public static final String findSuggestList  = "/findSuggestList";
        public static final String findOne  = "/findOne";
        public static final String baseDoctorSuggest  = "/baseDoctorSuggest";
    }
    /**
     * 背景展示
     */

+ 9 - 0
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/emergency/EmergencyOrderVO.java

@ -33,6 +33,7 @@ public class EmergencyOrderVO {
    private Integer emergencyCancel;//紧急预警工单误报警原因 字典emergency_cancel
    private String emergencyCancelName;
    private Date updateTime;
    private String sceneImg;//工单发起是现场照片
@ -240,4 +241,12 @@ public class EmergencyOrderVO {
    public void setPhone(String phone) {
        this.phone = phone;
    }
    public String getSceneImg() {
        return sceneImg;
    }
    public void setSceneImg(String sceneImg) {
        this.sceneImg = sceneImg;
    }
}

+ 24 - 6
common/common-util/src/main/java/com/yihu/jw/util/http/HttpClientUtil.java

@ -595,10 +595,28 @@ public class HttpClientUtil {
        return response;
    }
//    public static void main(String[] args) {
//        MultiValueMap<String, String> param = new LinkedMultiValueMap<>();
//        org.springframework.http.HttpEntity<JSONObject> response = aqgCookieHttp("http://api.aiqiangua.com:8888/api/device/868219010321351",null,HttpMethod.GET,
//                "user=2|1:0|10:1620279813|4:user|16:MTM1NTk0ODUyNzA=|9d8d1403e854d37b551b57c9e53581b2ba7c491ba394a2b3a1b83f4ebc3c2d34");
//        System.out.println(response.getBody().toString());
//    }
    public org.springframework.http.HttpEntity<JSONObject> assesTokenPostHttp(String url, JSONObject params,HttpMethod method){
        RestTemplate restTemplate = new RestTemplate();
        HttpHeaders headers = new HttpHeaders();
        MediaType type = MediaType.parseMediaType(MediaType.APPLICATION_JSON_VALUE);
        headers.setContentType(type);
        headers.add("Accept", MediaType.APPLICATION_JSON.toString());
        org.springframework.http.HttpEntity<String> request = new org.springframework.http.HttpEntity<>(params.toString(), headers);
        org.springframework.http.HttpEntity<JSONObject> response = restTemplate.exchange(url, method, request, JSONObject.class);
        return response;
    }
    public  org.springframework.http.HttpEntity<JSONObject> iotAssesTokenPostHttp(String url, MultiValueMap<String, String> params,HttpMethod method){
        RestTemplate restTemplate = new RestTemplate();
        HttpHeaders headers = new HttpHeaders();
        MediaType type = MediaType.parseMediaType(MediaType.APPLICATION_FORM_URLENCODED_VALUE);
        headers.setContentType(type);
        headers.add("Accept", MediaType.APPLICATION_JSON.toString());
        org.springframework.http.HttpEntity<MultiValueMap<String, String>> request = new org.springframework.http.HttpEntity<>(params, headers);
        org.springframework.http.HttpEntity<JSONObject> response = restTemplate.exchange(url, method, request, JSONObject.class);
        return response;
    }
    public static void main(String[] args)  {
    }
}

+ 34 - 19
gateway/ag-basic/src/main/java/com/yihu/jw/gateway/filter/PostFilter.java

@ -7,6 +7,7 @@ import com.netflix.zuul.ZuulFilter;
import com.netflix.zuul.context.RequestContext;
import com.yihu.jw.entity.base.dict.BaseExceptionLogDO;
import com.yihu.jw.entity.base.dict.BaseExceptionServerDictDO;
import com.yihu.jw.entity.hospital.prescription.BaseAdviceTreatmentDO;
import com.yihu.jw.gateway.AesEncryptUtils;
import com.yihu.jw.gateway.methlog.BaseExceptionService;
@ -83,31 +84,44 @@ public class PostFilter extends ZuulFilter {
                break;
            }
        }
        net.sf.json.JSONObject jsonObject = net.sf.json.JSONObject.fromObject(body);
        String status =jsonObject.getString("status");
        if (!"200".equalsIgnoreCase(status)){
            jsonObject.put("status",serviceId+status);
            BaseExceptionLogDO baseExceptionLogDO = new BaseExceptionLogDO();
            baseExceptionLogDO.setCreateTime(new Date());
            List<Map<String,Object>> list = baseExceptionService.findExceptionDict("",status,"","1");
            if (list!=null&&list.size()>0){
                responseCode=serviceId+list.get(0).get("code").toString();
                exceptionType = list.get(0).get("exceptionType").toString();
                baseExceptionLogDO.setExceptionType(exceptionType);
                baseExceptionLogDO.setServiceCode(serviceId);
                baseExceptionLogDO.setExceptionCode(responseCode);
                try {
        try {
            net.sf.json.JSONObject jsonObject = net.sf.json.JSONObject.fromObject(body);
            String status =jsonObject.getString("status");
            if (!"200".equalsIgnoreCase(status)){
                jsonObject.put("status",serviceId+status);
                BaseExceptionLogDO baseExceptionLogDO = new BaseExceptionLogDO();
                baseExceptionLogDO.setCreateTime(new Date());
                List<Map<String,Object>> list = baseExceptionService.findExceptionDict("",status,"","1");
                if (list!=null&&list.size()>0){
                    responseCode=serviceId+list.get(0).get("code").toString();
                    exceptionType = list.get(0).get("exceptionType").toString();
                    baseExceptionLogDO.setExceptionType(exceptionType);
                    baseExceptionLogDO.setServiceCode(serviceId);
                    baseExceptionLogDO.setExceptionCode(responseCode);
                    try {
                        String  in = ctx.getRequest().getParameter("object");
                        String jsonobject = AesEncryptUtils.decrypt(in);
                        baseExceptionLogDO.setRequest(jsonobject);
                        baseExceptionLogDO.setResponse(jsonObject.toString());
                        baseExceptionLogDao.save(baseExceptionLogDO);
                    }catch (Exception s){
                        s.printStackTrace();
                    }
                }else {
                    String  in = ctx.getRequest().getParameter("object");
                    String jsonobject = AesEncryptUtils.decrypt(in);
                    baseExceptionLogDO.setRequest(jsonobject);
                    String requestParam = AesEncryptUtils.decrypt(in);
                    baseExceptionLogDO.setRequest(requestParam);
                    baseExceptionLogDO.setExceptionType("其他异常");
                    baseExceptionLogDO.setServiceCode(serviceId);
                    baseExceptionLogDO.setExceptionCode(status);
                    baseExceptionLogDO.setResponse(jsonObject.toString());
                    baseExceptionLogDao.save(baseExceptionLogDO);
                }catch (Exception s){
                    s.printStackTrace();
                }
            }
        }catch (Exception e){
            e.printStackTrace();
        }
        JSONObject object = new JSONObject();
        object.put("status","200");
        object.put("data", AesEncryptUtils.encrypt(body));
@ -129,5 +143,6 @@ public class PostFilter extends ZuulFilter {
        return null;
 
    }
 
}

+ 4 - 4
gateway/ag-basic/src/main/resources/application.yml

@ -233,10 +233,10 @@ spring:
spring:
  profiles: hzprod
  datasource:
    url: jdbc:mysql://172.26.0.13:3306/base?useUnicode:true&amp;characterEncoding=utf-8&amp;autoReconnect=true&useSSL=false
    username: root
    password: '*ukOOSl&c0!y'
    url: jdbc:mysql://10.18.43.40:3306/base?useUnicode:true&amp;characterEncoding=utf-8&amp;autoReconnect=true&useSSL=false
    username: wlyy
    password: '0XxS3W*!cRj'
  redis:
    host: 172.26.0.13 # Redis server host.
    host: 10.18.43.40 # Redis server host.
    port: 6379  # Redis server port.
    password: Kb6wKDQP1W4

+ 1 - 1
gateway/ag-basic/src/main/resources/bootstrap.yml

@ -128,4 +128,4 @@ spring:
  cloud:
    config:
      uri: ${wlyy-spring.config.uri:http://127.0.0.1:1221}
      label: ${wlyy-spring.config.label:jwdev}
      label: ${wlyy-spring.config.label:master}

+ 5 - 5
server/svr-authentication/src/main/resources/application.yml

@ -380,11 +380,11 @@ wechat:
spring:
  profiles: hzprod
  datasource:
    url: jdbc:mysql://172.26.0.13:3306/base?useUnicode:true&amp;characterEncoding=utf-8&amp;autoReconnect=true&useSSL=false
    username: root
    password: '*ukOOSl&c0!y'
    url: jdbc:mysql://10.18.43.40:3306/base?useUnicode:true&amp;characterEncoding=utf-8&amp;autoReconnect=true&useSSL=false
    username: wlyy
    password: '0XxS3W*!cRj'
  redis:
    host: 172.26.0.13 # Redis server host.
    host: 10.18.43.40 # Redis server host.
    port: 6379  # Redis server port.
    password: Kb6wKDQP1W4
  ##发现服务
@ -395,7 +395,7 @@ iHealth:
zhongshanHospital:
  user-info-uri: 1
fastDFS:
  fastdfs_file_url: http://172.26.0.13:8888/
  fastdfs_file_url: http://10.18.43.40:8888/
wlyy:
  url: 1
#文件服务器上传配置 0本地,1.I健康,2.内网调用

+ 4 - 2
server/svr-configuration/src/main/resources/bootstrap.yml

@ -189,6 +189,8 @@ spring:
      failFast: true #启动快速失败 即链接不到配置服务就启动失败
      server:
        git:
          uri: ${wlyy.spring.config.git.uri:http://192.168.1.220:10080/Amoy2/wlyy2.0.config.git}
          uri: ${wlyy.spring.config.git.uri:http://10.18.43.41:3001/jkzl/ehr.config.git}
          basedir: /usr/local/wlyy2.0-config
        default-label: ${wlyy.spring.config.git.label:jwdev}
          username: jkzl
          password: jkzl
        default-label: ${wlyy.spring.config.git.label:master}

+ 30 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/dao/course/DoctorPatientTmpDao.java

@ -0,0 +1,30 @@
package com.yihu.jw.base.dao.course;
import com.yihu.jw.entity.care.course.DoctorPatientTmpDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
/**
 * Created by Bing on 2021/6/7.
 */
public interface DoctorPatientTmpDao extends PagingAndSortingRepository<DoctorPatientTmpDO,String>,
        JpaSpecificationExecutor<DoctorPatientTmpDO> {
    DoctorPatientTmpDO findByRelationCode(String relationCode);
    @Query(value = "select count(1) from DoctorPatientTmpDO t where t.patient=?1 and t.doctorCode = ?2 and t.type=?3")
    Integer findByPatientAndDoctorCodeAndType(String patient,String doctorCode,Integer type);
    @Query(value = "select count(1) from DoctorPatientTmpDO t where t.patient=?1 and t.orgCode = ?2 and t.type=?3 and t.status=?4 and t.del=1")
    Integer findByPatientAndOrgCodeAndTypeAndStatus(String patient,String orgCode,Integer type,Integer status);
    List<DoctorPatientTmpDO> queryByPatientAndTypeIn(String patient,Integer[] type);
    @Modifying
    @Query(value = "update DoctorPatientTmpDO t set t.del=0 where 1=1")
    void deleteAll();
}

+ 4 - 4
svr/svr-base/src/main/java/com/yihu/jw/base/dao/menu/BaseMenuShowDao.java

@ -11,8 +11,8 @@ public interface BaseMenuShowDao  extends PagingAndSortingRepository<BaseMenuSho
    @Modifying
    @Query("update BaseMenuShowDO p set p.isDel=?2 where p.id=?1")
    BaseMenuShowDO updateStatus(String id,String status);
    @Query( value = "select max(t.menu_sort) AS \"zuida\" from base_menu_show t where t.is_del='1'",nativeQuery = true)
    Integer getMaxSort();
    @Query( value = "select min(t.menu_sort) AS \"zuixiao\" from base_menu_show t where t.is_del='1'",nativeQuery = true)
    Integer getMinSort();
    @Query( value = "select max(t.menu_sort) AS \"zuida\" from base_menu_show t where t.is_del='1' and t.model_id=?1",nativeQuery = true)
    Integer getMaxSort(String modelId);
    @Query( value = "select min(t.menu_sort) AS \"zuixiao\" from base_menu_show t where t.is_del='1' and t.model_id=?1",nativeQuery = true)
    Integer getMinSort(String modelId);
}

+ 2 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/dao/system/SystemDictEntryDao.java

@ -28,4 +28,6 @@ public interface SystemDictEntryDao extends PagingAndSortingRepository<SystemDic
    boolean existsBySaasIdAndCode(String saasid,String code);
    Integer countBySaasIdAndCodeNot(String saasid,String code);
    SystemDictEntryDO findByDictCodeAndCode(String dictCode, String code);
}

+ 37 - 21
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/article/ArticleEndpoint.java

@ -4,12 +4,16 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.base.dao.article.KnowledgeArticleDictDao;
import com.yihu.jw.base.dao.article.KnowledgeArticleUserDao;
import com.yihu.jw.base.dao.role.RoleDao;
import com.yihu.jw.base.dao.user.UserDao;
import com.yihu.jw.base.service.article.KnowledgeArticleService;
import com.yihu.jw.base.service.article.KnowledgeArticleUserService;
import com.yihu.jw.base.service.article.KnowledgeCategoryService;
import com.yihu.jw.doctor.dao.BaseDoctorHospitalDao;
import com.yihu.jw.entity.base.doctor.BaseDoctorHospitalDO;
import com.yihu.jw.entity.base.patient.BasePatientBusinessDO;
import com.yihu.jw.entity.base.role.RoleDO;
import com.yihu.jw.entity.base.user.UserDO;
import com.yihu.jw.entity.hospital.article.KnowledgeArticleDO;
import com.yihu.jw.entity.hospital.article.KnowledgeArticleDictDO;
import com.yihu.jw.entity.hospital.article.KnowledgeArticleUserDO;
@ -53,6 +57,10 @@ public class ArticleEndpoint extends EnvelopRestEndpoint {
	private KnowledgeArticleUserDao knowledgeArticleUserDao;
	@Autowired
	private KnowledgeArticleDictDao knowledgeArticleDictDao;
	@Autowired
	private UserDao userdao;
	@Autowired
	private RoleDao roleDao;
	
	@GetMapping(value = BaseHospitalRequestMapping.KnowledgeArticle.searchKnowledgePageList)
	@ApiOperation(value = "获取文章列表")
@ -81,12 +89,30 @@ public class ArticleEndpoint extends EnvelopRestEndpoint {
			@RequestParam(value = "pageSize", required = true,defaultValue = "10")Integer pageSize)throws Exception{
		try {
			if(StringUtils.isBlank(filters)){
				filters=filters+"del=1";
			}else{
				filters=filters+";del=1";
			String userId=getUID();
			UserDO userDO = userdao.findById(userId);
			boolean queryAll=false;
			if (userDO!=null){
				RoleDO roleDO= roleDao.findOne(userDO.getRoleId());
				if (roleDO!=null){
					if ("admin".equalsIgnoreCase(roleDO.getCode())){
						queryAll=true;
					}
				}
			}
			if (queryAll){
				if(StringUtils.isBlank(filters)){
					filters=filters+"del=1";
				}else{
					filters=filters+";del=1";
				}
			}else {
				if(StringUtils.isBlank(filters)){
					filters=filters+"del=1"+";createUser="+userId+"";
				}else{
					filters=filters+";del=1"+";createUser="+userId+"";
				}
			}
			List<KnowledgeArticleDictDO> list  = knowledgeArticleService.search(fields,filters,sorts,page,pageSize);
			List<KnowledgeArticleDictDO> totals  = knowledgeArticleService.search(fields,filters,sorts);
@ -124,22 +150,12 @@ public class ArticleEndpoint extends EnvelopRestEndpoint {
	public Envelop queryByCode(
			@ApiParam(name = "id", value = "id", required = true)
			@RequestParam(value = "id", required = true)String id) throws Exception{
			try {
				KnowledgeArticleDictDO articleDO = knowledgeArticleService.retrieve(id);
				KnowledgeArticleUserDO knowledgeArticleUserDO = knowledgeArticleUserDao.findByrelationCodeAndUserAndDel(articleDO.getId(),getUID());
				if (knowledgeArticleUserDO!=null){
					articleDO.setIsUsed(knowledgeArticleUserDO.getUsed());
					articleDO.setKnowledgeArticleUserDO(knowledgeArticleUserDO);
				}
				List<BaseDoctorHospitalDO> doctorHospitalDOS = doctorHospitalDao.findByDoctorCode(articleDO.getCreateUser());
				if (doctorHospitalDOS!=null&&doctorHospitalDOS.size()!=0){
					articleDO.setHospitalName(doctorHospitalDOS.get(0).getOrgName());
					articleDO.setDeptName(doctorHospitalDOS.get(0).getDeptName());
				}
				return success(articleDO);
			}catch (Exception e){
				return failedException(e);
			}
		try {
			KnowledgeArticleDictDO articleDO = knowledgeArticleService.retrieve(id);
			return success(articleDO);
		}catch (Exception e){
			return failedException(e);
		}
	}
	
	@PostMapping (value = BaseHospitalRequestMapping.KnowledgeArticle.deleteById)

+ 7 - 1
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/common/FileUploadController.java

@ -168,6 +168,12 @@ public class FileUploadController extends EnvelopRestEndpoint {
            return success("上传成功", uploadVO);
        }
    @PostMapping(value = BaseRequestMapping.FileUpload.UPLOAD_STRINGBASE64)
    @ApiOperation(value = "base64上传图片Xz",notes = "base64上传图片Xz")
    public ObjEnvelop<UploadVO> uploadBase64(@ApiParam(name = "jsonData", value = "头像转化后的输入流")
                                             @RequestBody String jsonData) throws Exception {
        UploadVO uploadVO = fileUploadService.uploadImagesBase64(jsonData,fastdfs_file_url);
        return success("上传成功", uploadVO);
    }
}

+ 17 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/menu/BaseMenuNoLoginEndpoint.java

@ -1,9 +1,12 @@
package com.yihu.jw.base.endpoint.menu;
import com.yihu.jw.base.service.article.KnowledgeArticleService;
import com.yihu.jw.base.service.menu.BaseMenuManageService;
import com.yihu.jw.entity.hospital.article.KnowledgeArticleDictDO;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.rm.base.BaseRequestMapping;
import com.yihu.jw.rm.hospital.BaseHospitalRequestMapping;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
@ -19,6 +22,8 @@ import org.springframework.web.bind.annotation.RestController;
public class BaseMenuNoLoginEndpoint extends EnvelopRestEndpoint {
    @Autowired
    private BaseMenuManageService menuService;
    @Autowired
    private KnowledgeArticleService knowledgeArticleService;
    @GetMapping(value = BaseRequestMapping.MenuNologin.findAllMenu)
    @ApiOperation(value = "查询首页列表")
    public Envelop findMenuShowByKey(
@ -61,5 +66,17 @@ public class BaseMenuNoLoginEndpoint extends EnvelopRestEndpoint {
            return failedException(e);
        }
    }
    @GetMapping(value = BaseRequestMapping.MenuNologin.queryById)
    @ApiOperation(value = "根据id查询文章")
    public Envelop queryByCode(
            @ApiParam(name = "id", value = "id", required = true)
            @RequestParam(value = "id", required = true)String id) throws Exception{
        try {
            KnowledgeArticleDictDO articleDO = knowledgeArticleService.retrieve(id);
            return success(articleDO);
        }catch (Exception e){
            return failedException(e);
        }
    }
}

+ 9 - 2
svr/svr-base/src/main/java/com/yihu/jw/base/service/course/RecruitStudentsRecordService.java

@ -3,6 +3,7 @@ package com.yihu.jw.base.service.course;
import com.yihu.jw.base.dao.course.PatientOrderRefundDao;
import com.yihu.jw.base.dao.course.RecruitStudentsDao;
import com.yihu.jw.base.dao.course.RecruitStudentsRecordDao;
import com.yihu.jw.base.util.EntranceUtil;
import com.yihu.jw.base.util.WxMessageUtil;
import com.yihu.jw.entity.care.course.PatientOrderRefundDO;
import com.yihu.jw.entity.care.course.RecruitStudentsDO;
@ -34,6 +35,8 @@ public class RecruitStudentsRecordService extends BaseJpaService<RecruitStudents
    private RecruitStudentsDao recruitStudentsDao;
    @Autowired
    private WxMessageUtil wxMessageUtil;
    @Autowired
    private EntranceUtil entranceUtil;
    /**
     * 退费操作
@ -58,6 +61,7 @@ public class RecruitStudentsRecordService extends BaseJpaService<RecruitStudents
    public int leaveSchool(String id){
       int ret = recruitStudentsRecordDao.updateStatus(id);
        entranceUtil.deleteRecord(id);
       return ret;
    }
@ -83,7 +87,9 @@ public class RecruitStudentsRecordService extends BaseJpaService<RecruitStudents
            }else{
                re += recruitStudentsRecordDO.getPatientName()+",";
            }
        }
        entranceUtil.updateStatus2(1,idStr);
        recruitStudentsRecordDao.save(list);
        wxMessageUtil.sengdWxTemplates(list);
//        if(re.length()>0){
@ -107,6 +113,7 @@ public class RecruitStudentsRecordService extends BaseJpaService<RecruitStudents
                list.add(recruitStudentsRecordDO);
            }
        }
        entranceUtil.deleteRecord2(idStr);
        recruitStudentsRecordDao.save(list);
    }
@ -137,7 +144,7 @@ public class RecruitStudentsRecordService extends BaseJpaService<RecruitStudents
     */
    public synchronized String admission(String id){
        RecruitStudentsRecordDO recruitStudentsRecordDO = recruitStudentsRecordDao.findOne(id);
        if("1".equals(recruitStudentsRecordDO.getStatus())){
        if(!"1".equals(recruitStudentsRecordDO.getStatus())){
            return "只有待审核状态的人员才能录取";
        }
        if(isAdmissionFull(recruitStudentsRecordDO.getRecruitStudentsId())){
@ -154,7 +161,7 @@ public class RecruitStudentsRecordService extends BaseJpaService<RecruitStudents
     */
    public synchronized String refuse(String id){
        RecruitStudentsRecordDO recruitStudentsRecordDO = recruitStudentsRecordDao.findOne(id);
        if("1".equals(recruitStudentsRecordDO.getStatus())){
        if(!"1".equals(recruitStudentsRecordDO.getStatus())){
            return "只有待审核状态的人员才能拒绝";
        }
        recruitStudentsRecordDO.setStatus("4");

+ 18 - 10
svr/svr-base/src/main/java/com/yihu/jw/base/service/menu/BaseMenuManageService.java

@ -18,6 +18,7 @@ import com.yihu.jw.hospital.dict.WlyyHospitalSysDictDao;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.utils.StringUtil;
import com.yihu.jw.utils.hibernate.HibenateUtils;
import org.apache.commons.lang3.StringUtils;
@ -471,11 +472,15 @@ public class BaseMenuManageService {
                " t.model_id as \"modelId\", " +
                " t.model_name as \"modelName\", " +
                " t.menu_id as \"menuId\", " +
                " t.menu_name as \"menuName\", " +
                " m.name as \"menuName\", " +
                " t.is_del as \"isDel\"," +
                " m.status as \"status\"," +
                " t.create_time as \"createTime\"," +
                " t.menu_sort as \"menuSort\"," +
                " t.style_code as \"styleCode\"," +
                " m.bg_img as \"bgImg\"," +
                " m.menu_title as \"menuTitle\"," +
                " m.describtion as \"describtion\"," +
                " t.style_name as \"styleName\" " +
                " from base_menu_show t left join " +
                " base_menu_dict m on t.menu_id= m.id" +
@ -486,17 +491,18 @@ public class BaseMenuManageService {
                " t.model_id as \"modelId\", " +
                " t.model_name as \"modelName\", " +
                " t.menu_id as \"menuId\", " +
                " t.menu_name as \"menuName\", " +
                " m.name as \"menuName\", " +
                " t.is_del as \"isDel\"," +
                " t.create_time as \"createTime\"," +
                " t.menu_sort as \"menuSort\"," +
                " m.link_url as \"linkUrl\"," +
                " t.style_code as \"styleCode\"," +
                " m.status as \"status\"," +
                " t.style_name as \"styleName\" " +
                " from base_menu_show t left join " +
                " base_link_dict m on t.menu_id= m.id" +
                " where t.is_del ='1' and t.model_id='03' and t.status='1' order by t.menu_sort asc ";
                " where t.is_del ='1' and t.model_id='03' order by t.menu_sort asc ";
        List<Map<String,Object>> listLink=hibenateUtils.createSQLQuery(sqlLink);
        for (Map<String,Object> map:listModel){
            List<Map<String,Object>> child = new ArrayList<>();
            if("03".equalsIgnoreCase(map.get("modelId").toString())){
@ -508,8 +514,8 @@ public class BaseMenuManageService {
                        child.add(childMap);
                    }
                }
                map.put("childList",child);
            }
            map.put("childList",child);
        }
        return listModel;
    }
@ -523,7 +529,7 @@ public class BaseMenuManageService {
     */
    public BaseMenuShowDO downMenuShow(String id) throws Exception{
        BaseMenuShowDO baseMenuShowDO= baseMenuShowDao.findOne(id);
        int maxSort = baseMenuShowDao.getMaxSort();
        int maxSort = baseMenuShowDao.getMaxSort(baseMenuShowDO.getModelId());
        int sort = 0;
        if(null!=baseMenuShowDO){
            sort = baseMenuShowDO.getMenuSort();
@ -557,7 +563,7 @@ public class BaseMenuManageService {
    public BaseMenuShowDO upMenuShow(String id) throws Exception{
        //当前
        BaseMenuShowDO baseMenuShowDO = baseMenuShowDao.findOne(id);
        int minSort = baseMenuShowDao.getMinSort();
        int minSort = baseMenuShowDao.getMinSort(baseMenuShowDO.getModelId());
        int sort = 0;
        if(null!=baseMenuShowDO){
            sort = baseMenuShowDO.getMenuSort();
@ -587,8 +593,10 @@ public class BaseMenuManageService {
        int i =1;
        for (BaseMenuShowDO baseMenuShowDO:menuShowDO){
            for (WlyyHospitalSysDictDO wlyyHospitalSysDictDO:list){
                if (baseMenuShowDO.getStyleCode().equalsIgnoreCase(wlyyHospitalSysDictDO.getDictCode())){
                    baseMenuShowDO.setStyleName(wlyyHospitalSysDictDO.getDictValue());
                if (StringUtils.isNoneBlank(baseMenuShowDO.getStyleCode())){
                    if (baseMenuShowDO.getStyleCode().equalsIgnoreCase(wlyyHospitalSysDictDO.getDictCode())){
                        baseMenuShowDO.setStyleName(wlyyHospitalSysDictDO.getDictValue());
                    }
                }
            }
            String modelSql = "select t.id as \"id\"," +
@ -670,7 +678,7 @@ public class BaseMenuManageService {
                " t.menu_title as \"menuTitle\", " +
                " t.describtion as \"describtion\", " +
                " t.menu_img as \"menuImg\"  " +
                "from base_menu_dict t   where 1=1 and t.is_del ='1' and status =1";
                "from base_menu_dict t   where 1=1 and t.is_del ='1' and t.status =1";
        if (StringUtils.isNoneBlank(parentId)){
            sqlParent+=" and t.id = '"+parentId+"'";
        }else {

+ 16 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/servicePackage/ServicePackageItemService.java

@ -2,10 +2,12 @@ package com.yihu.jw.base.service.servicePackage;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.base.dao.servicePackage.ServicePackageItemDao;
import com.yihu.jw.base.dao.system.SystemDictEntryDao;
import com.yihu.jw.base.dao.team.BaseTeamDao;
import com.yihu.jw.base.util.ConstantUtils;
import com.yihu.jw.entity.base.org.BaseOrgDO;
import com.yihu.jw.entity.base.servicePackage.ServicePackageItemDO;
import com.yihu.jw.entity.base.system.SystemDictEntryDO;
import com.yihu.jw.entity.base.team.BaseTeamDO;
import com.yihu.jw.org.dao.BaseOrgDao;
import com.yihu.jw.util.date.DateUtil;
@ -30,6 +32,8 @@ public class ServicePackageItemService extends BaseJpaService<ServicePackageItem
    private BaseOrgDao  baseOrgDao;
    @Autowired
    private BaseTeamDao baseTeamDao;
    @Autowired
    private SystemDictEntryDao systemDictEntryDao;
    public JSONObject create(ServicePackageItemDO itemDO){
        JSONObject result = new JSONObject();
@ -48,6 +52,12 @@ public class ServicePackageItemService extends BaseJpaService<ServicePackageItem
            itemDO.setTeamName(baseTeamDO.getName());
        }
        if(StringUtil.isEmpty(itemDO.getId())){
            SystemDictEntryDO systemDictEntryDO = systemDictEntryDao.findByDictCodeAndCode("service_item",itemDO.getCode());
            if (systemDictEntryDO!=null){
                if (StringUtils.isNotBlank(systemDictEntryDO.getRemark())){//服务项所属专题不为空
                    itemDO.setTopicItem(systemDictEntryDO.getRemark());
                }
            }
            //新增
            List<ServicePackageItemDO> itemDOList = servicePackageItemDao.findByTeamCode(itemDO.getTeamCode(),itemDO.getCode());
            if(itemDOList!=null&&itemDOList.size()>0){
@ -61,6 +71,12 @@ public class ServicePackageItemService extends BaseJpaService<ServicePackageItem
            servicePackageItemDao.save(itemDO);
        }else{
            //修改
            SystemDictEntryDO systemDictEntryDO = systemDictEntryDao.findByDictCodeAndCode("service_item",itemDO.getCode());
            if (systemDictEntryDO!=null){
                if (StringUtils.isNotBlank(systemDictEntryDO.getRemark())){//服务项所属专题不为空
                    itemDO.setTopicItem(systemDictEntryDO.getRemark());
                }
            }
            ServicePackageItemDO oldItemDO = servicePackageItemDao.findOne(itemDO.getId());
            oldItemDO.setName(itemDO.getName());
            oldItemDO.setDel(itemDO.getDel());

+ 12 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/servicePackage/ServicePackageService.java

@ -4,16 +4,19 @@ import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.base.dao.servicePackage.ServicePackageDao;
import com.yihu.jw.base.dao.servicePackage.ServicePackageItemDao;
import com.yihu.jw.base.dao.servicePackage.ServicePackageSignRecordDao;
import com.yihu.jw.base.dao.system.SystemDictEntryDao;
import com.yihu.jw.base.dao.team.BaseTeamDao;
import com.yihu.jw.base.util.ConstantUtils;
import com.yihu.jw.entity.base.org.BaseOrgDO;
import com.yihu.jw.entity.base.servicePackage.ServicePackageDO;
import com.yihu.jw.entity.base.servicePackage.ServicePackageItemDO;
import com.yihu.jw.entity.base.system.SystemDictEntryDO;
import com.yihu.jw.entity.base.team.BaseTeamDO;
import com.yihu.jw.org.dao.BaseOrgDao;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.utils.StringUtil;
import com.yihu.mysql.query.BaseJpaService;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
@ -43,6 +46,8 @@ public class ServicePackageService extends BaseJpaService<ServicePackageDO, Serv
    private BaseOrgDao baseOrgDao;
    @Autowired
    private BaseTeamDao baseTeamDao;
    @Autowired
    private SystemDictEntryDao systemDictEntryDao;
    @Autowired
    private ServicePackageSignRecordDao servicePackageSignRecordDao;
@ -85,6 +90,13 @@ public class ServicePackageService extends BaseJpaService<ServicePackageDO, Serv
            itemDO1.setDictId(itemDO.getId());
            itemDO1.setServicePackageId(servicePackageDO.getId());
            itemDO1.setCreateTime(DateUtil.getStringDate());
            SystemDictEntryDO systemDictEntryDO = systemDictEntryDao.findByDictCodeAndCode("service_item",itemDO.getCode());
            if (systemDictEntryDO!=null){
                if (StringUtils.isNotBlank(systemDictEntryDO.getRemark())){//服务项所属专题不为空
                    itemDO1.setTopicItem(systemDictEntryDO.getRemark());
                }
            }
            itemDOs.add(itemDO1);
        }
        servicePackageItemDao.save(itemDOs);

+ 156 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/util/EntranceUtil.java

@ -0,0 +1,156 @@
package com.yihu.jw.base.util;
import com.yihu.jw.base.dao.course.CourseDao;
import com.yihu.jw.base.dao.course.CourseSalesOrderRecordDao;
import com.yihu.jw.base.dao.course.DoctorPatientTmpDao;
import com.yihu.jw.base.dao.course.RecruitStudentsRecordDao;
import com.yihu.jw.doctor.dao.BaseDoctorHospitalDao;
import com.yihu.jw.entity.base.doctor.BaseDoctorHospitalDO;
import com.yihu.jw.entity.base.im.ConsultTeamDo;
import com.yihu.jw.entity.care.course.CourseDO;
import com.yihu.jw.entity.care.course.CourseSalesOrderRecordDO;
import com.yihu.jw.entity.care.course.DoctorPatientTmpDO;
import com.yihu.jw.entity.care.course.RecruitStudentsRecordDO;
import com.yihu.jw.entity.care.doorCoach.BaseDoorCoachOrderDO;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
 * 教师与新生儿 入学关系更新工具
 * Created by Bing on 2021/6/11.
 */
@Component
public class EntranceUtil {
    @Autowired
    private DoctorPatientTmpDao doctorPatientTmpDao;
    @Autowired
    private BaseDoctorHospitalDao doctorHospitalDao;
    /**
     *
     * @param patient
     * @param type
     * @param del
     * @param doctorCode
     * @param orgCode
     * @param relationCode
     */
    public void newRecord(String patient,Integer type,Integer del,String doctorCode,String orgCode,String relationCode){
        if (1==type||2==type){//在线咨询与上门辅导不重复保存
            if (doctorPatientTmpDao.findByPatientAndDoctorCodeAndType(patient,doctorCode,type)!=0){
                return ;
            }
        }
        DoctorPatientTmpDO tmpDO = new DoctorPatientTmpDO();
        tmpDO.setPatient(patient);
        tmpDO.setType(type);
        tmpDO.setDel(del);
        tmpDO.setStatus(0);
        if (StringUtils.isBlank(orgCode)){
            List<BaseDoctorHospitalDO> list = doctorHospitalDao.findByDoctorCode(doctorCode);
            if (list.size()>0){
                orgCode = list.get(0).getOrgCode();
            }
        }
        if (doctorPatientTmpDao.findByPatientAndOrgCodeAndTypeAndStatus(patient,orgCode,3,1)!=0){
            tmpDO.setDel(0);
        }
        tmpDO.setOrgCode(orgCode);
        tmpDO.setDoctorCode(doctorCode);
        tmpDO.setRelationCode(relationCode);
        doctorPatientTmpDao.save(tmpDO);
    }
    /**
     * 更新状态 状态为1 已入学,将该幼儿咨询、上门、课程数据失效
     * @param relationCode
     */
    public void updateStatus(Integer status,String relationCode){
        DoctorPatientTmpDO tmpDO = doctorPatientTmpDao.findByRelationCode(relationCode);
        if (tmpDO!=null){
            tmpDO.setStatus(status);
            doctorPatientTmpDao.save(tmpDO);
            if (status==1){//入学后 将该幼儿咨询、上门、课程数据失效
                List<DoctorPatientTmpDO> list = doctorPatientTmpDao.queryByPatientAndTypeIn(tmpDO.getPatient(),new Integer[]{1,2,4});
                List<String> relationCodes  = list.stream().map(DoctorPatientTmpDO::getRelationCode).collect(Collectors.toList());
                deleteRecord2List(relationCodes);
            }
        }
    }
    /**
     * 更新状态
     * @param relationCode
     */
    public void updateStatus2(Integer status,String[] relationCode) {
        List<DoctorPatientTmpDO> list = new ArrayList<>();
        List<String>relationCodes = new ArrayList<>();
        for (String id : relationCode) {
            DoctorPatientTmpDO tmpDO = doctorPatientTmpDao.findByRelationCode(id);
            if (tmpDO != null) {
                tmpDO.setStatus(status);
                list.add(tmpDO);
                if (status==1){//入学后 将该幼儿咨询、上门、课程数据失效
                    List<DoctorPatientTmpDO> listTmp = doctorPatientTmpDao.queryByPatientAndTypeIn(tmpDO.getPatient(),new Integer[]{1,2,4});
                    List<String> relationCodeTmp  = list.stream().map(DoctorPatientTmpDO::getRelationCode).collect(Collectors.toList());
                    relationCodes.addAll(relationCodeTmp);
                }
            }
        }
        doctorPatientTmpDao.save(list);
        deleteRecord2List(relationCodes);
    }
    /**
     * 删除记录 单条
     * @param relationCode
     */
    public void deleteRecord(String relationCode){
        DoctorPatientTmpDO tmpDO = doctorPatientTmpDao.findByRelationCode(relationCode);
        if (tmpDO!=null){
            tmpDO.setDel(0);
            doctorPatientTmpDao.save(tmpDO);
        }
        doctorPatientTmpDao.save(tmpDO);
    }
    /**
     * 删除记录
     * @param relationCode
     */
    public void deleteRecord2(String[] relationCode){
        List<DoctorPatientTmpDO> list = new ArrayList<>();
        for (String id : relationCode) {
            DoctorPatientTmpDO tmpDO = doctorPatientTmpDao.findByRelationCode(id);
            if (tmpDO!=null){
                tmpDO.setDel(0);
            }
        }
        doctorPatientTmpDao.save(list);
    }
    /**
     * 删除记录
     * @param relationCode
     */
    public void deleteRecord2List(List<String> relationCode){
        List<DoctorPatientTmpDO> list = new ArrayList<>();
        for (String id : relationCode) {
            DoctorPatientTmpDO tmpDO = doctorPatientTmpDao.findByRelationCode(id);
            if (tmpDO!=null){
                tmpDO.setDel(0);
            }
        }
        doctorPatientTmpDao.save(list);
    }
}

+ 10 - 10
svr/svr-base/src/main/resources/application.yml

@ -172,7 +172,7 @@ wlyy:
  url: http://ehr.yihu.com/wlyy/
wechat:
  id: hz_yyyzh_wx
  url: http://hzijk.cityihealth.com/
  url: https://zhyzh.hzxc.gov.cn/
  flag: false
pay:
  flag: false
@ -599,19 +599,19 @@ im:
spring:
  profiles: hzprod
  datasource:
     url: jdbc:mysql://172.26.0.13:3306/base?useUnicode:true&amp;characterEncoding=utf-8&amp;autoReconnect=true&useSSL=false
     username: root
     password: '*ukOOSl&c0!y'
     url: jdbc:mysql://10.18.43.40:3306/base?useUnicode:true&amp;characterEncoding=utf-8&amp;autoReconnect=true&useSSL=false
     username: wlyy
     password: '0XxS3W*!cRj'
  elasticsearch:
    cluster-name: jkzl #集群名 默认elasticsearch
    cluster-nodes: 172.26.0.13:9300 #配置es节点信息,逗号分隔,如果没有指定,则启动ClientNode
    cluster-nodes: 10.18.43.40:9300 #配置es节点信息,逗号分隔,如果没有指定,则启动ClientNode
    client-transport-sniff: false
    jest:
      uris: http://172.26.0.13:9200
      uris: http://10.18.43.40:9200
      connection-timeout: 60000 # Connection timeout in milliseconds.
      multi-threaded: true # Enable connection requests from multiple execution threads.
  activemq:
    broker-url: tcp://172.26.0.12:61616
    broker-url: tcp://10.18.43.41:61616
    user: admin
    password: admin
  redis:
@ -619,7 +619,7 @@ spring:
    port: 6379  # Redis server port.
    password: Kb6wKDQP1W4
fastDFS:
  fastdfs_file_url: http://172.26.0.13:80/
  fastdfs_file_url: http://10.18.43.40:80/
demo:
  flag: true
hospital:
@ -632,7 +632,7 @@ wlyy:
  url: 1
wechat:
  id: hz_yyyzh_wx
  url: http://hzijk.cityihealth.com/
  url: https://zhyzh.hzxc.gov.cn/
  flag: false
pay:
  flag: false
@ -641,4 +641,4 @@ testPattern:
  sign: 0
  remote_inner_url: 1
im:
  im_list_get: http://172.26.0.12:3000/
  im_list_get: http://10.18.43.41:3000/

+ 2 - 2
svr/svr-base/src/main/resources/bootstrap.yml

@ -108,5 +108,5 @@ spring:
  profiles: hzprod
  cloud:
    config:
      uri: ${wlyy-spring.config.uri:http://172.26.0.12:1221}
      label: ${wlyy-spring.config.label:jwdev}
      uri: ${wlyy-spring.config.uri:http://127.0.0.1:1221}
      label: ${wlyy-spring.config.label:master}

+ 5 - 8
svr/svr-cloud-care/pom.xml

@ -30,7 +30,7 @@
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
<!--            <scope>provided</scope>-->
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
@ -203,6 +203,10 @@
            <version>RELEASE</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-websocket</artifactId>
        </dependency>
        <!--   poi xml导入导出工具 end -->
        <!--基础业务组件-->
@ -252,13 +256,6 @@
            <artifactId>es-service</artifactId>
            <version>2.0.0</version>
        </dependency>
        <!--oracle驱动-->
        <dependency>
            <groupId>com.oracle</groupId>
            <artifactId>ojdbc6</artifactId>
            <version>11.2.0.3</version>
        </dependency>
    </dependencies>
    <build>

+ 13 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/config/WebSocketConfig.java

@ -0,0 +1,13 @@
package com.yihu.jw.care.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.socket.server.standard.ServerEndpointExporter;
@Configuration
public class WebSocketConfig {
    @Bean
    public ServerEndpointExporter serverEndpointExporter(){
        return new ServerEndpointExporter();
    }
}

+ 92 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/config/YsConfig.java

@ -0,0 +1,92 @@
package com.yihu.jw.care.config;
/**
 * Created by Bing on 2021/6/1.
 * 萤石摄像头配置
 */
public class YsConfig {
    //文档地址 https://www.yuque.com/u1400669/kb/lmfp6u
    public static final String AppKey="43e44c2071114743925eda34088045f8";
    public static final String Secret="82051725cf0547208f8bc8ae2bff1323";
    public static final String baseUrl = "https://esopen.ys7.com";
    public static final String iotBaseUrl = "https://open.ys7.com";
   //saas平台 https://www.yuque.com/u1400669/kb/wdvi3b#9ZP70
    public static final String saasAssesToken =baseUrl+ "/api/user/open-app/auth/gettoken";
    //开放平台  https://open.ys7.com/doc/zh/book/index/user.html
    public static final String iotAssesToken =baseUrl+ "/api/user/component-open/sso/oauth2/getEZAccessToken";
    //获取通道列表
    public static final String surveillanceWayList =baseUrl+ "/api/resource/open-app/surveillance/camera/list/page";
    //获取通道信息(通道默认为1,如果视频加密需要调用视频解密接口进行解密)
    public static final String surveillanceWay =baseUrl+ "/api/resource/open-app/surveillance/camera/info";
    //设备抓拍
    public static final String deviceCapture =baseUrl +"/api/resource/device/capture";
    //获取设备有效直播地址
    public static final String getDeviceLiveAddress = iotBaseUrl+ "/api/lapp/live/address/limited";
    //设备视频加解密开关
    public static final String deviceEncrypt = baseUrl+ "/api/resource/device/encrypt/switch";
    //跌倒检测功能查询、设置(立即检测!判断是否有跌倒通过推送消息)
    public static final String deviceFailConfig = iotBaseUrl + "/api/route/device/devconfig/keyValue/{0}/{1}/op";
    //云台控制
    public static final String ptzStart = iotBaseUrl +"/api/lapp/device/ptz/start";
    //云台停止
    public static final String ptzStop = iotBaseUrl +"/api/lapp/device/ptz/stop";
    /**
     * 录像相关
     */
    //录像循环覆盖开关(开启后,当内存卡存储满时会覆盖原有录像,不会导致停止录像)
    public static final String coverVideoSwitch = baseUrl + "/seastart/auth/set-vod";
    //获取设备录像存储信息
    public static final String deviceVideoTimeList = iotBaseUrl + "/api/lapp/video/by/time";
    //根据时间获取录像地址//仅rtmp格式
    public static final String deviceVideoUrlByTime = iotBaseUrl + "/api/lapp/v2/live/address/get";
    //录像地址 多格式
    public static final String videoList2 = iotBaseUrl +"/api/lapp/v2/live/address/get";
    //全天录像
    public static final String fullDayVideo = iotBaseUrl +"/api/lapp/device/fullday/record/switch/set";
//    //获取录像accessKey、上传录像地址
//    public static final String videoKey = baseUrl +"/seastart/vod/token";
//
//    //上传录像上传地址通过videoKey接口获取
//    public static final String videoUpload = "https://seastart.ss.bscstorage.com";
//
//    //录像列表
//    public static final String videoList = baseUrl +"/seastart/vod/list";
//
//    //批量获取录像详情
//    public static final String videoDetailList = baseUrl +"/seastart/vod";
//
//    //录像详情
//    public static final String videoDetail = baseUrl +"/seastart/vod/get";
//
    public static final String redisKey = "ysAssesToken";
    public static final String iotRedisKey = "iotYsAssesToken";
    public static final String secretKey = "secretKey"; //设备的解密秘钥  通过iotAssesToken接口获取的
    public static final String msgDataKey = "HZADP68PNSNVZ4UW"; //消息解密密钥
}

+ 3 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/course/CourseSalesOrderRecordDao.java

@ -4,6 +4,8 @@ import com.yihu.jw.entity.care.course.CourseSalesOrderRecordDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
/**
 * Created with IntelliJ IDEA.
 *
@ -14,4 +16,5 @@ import org.springframework.data.repository.PagingAndSortingRepository;
public interface CourseSalesOrderRecordDao extends PagingAndSortingRepository<CourseSalesOrderRecordDO, String>
        , JpaSpecificationExecutor<CourseSalesOrderRecordDO> {
    List<CourseSalesOrderRecordDO> findByStatus(String status);
}

+ 30 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/course/DoctorPatientTmpDao.java

@ -0,0 +1,30 @@
package com.yihu.jw.care.dao.course;
import com.yihu.jw.entity.care.course.DoctorPatientTmpDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
/**
 * Created by Bing on 2021/6/7.
 */
public interface DoctorPatientTmpDao extends PagingAndSortingRepository<DoctorPatientTmpDO,String>,
        JpaSpecificationExecutor<DoctorPatientTmpDO> {
    DoctorPatientTmpDO findByRelationCode(String relationCode);
    @Query(value = "select count(1) from DoctorPatientTmpDO t where t.patient=?1 and t.doctorCode = ?2 and t.type=?3")
    Integer findByPatientAndDoctorCodeAndType(String patient,String doctorCode,Integer type);
    @Query(value = "select count(1) from DoctorPatientTmpDO t where t.patient=?1 and t.orgCode = ?2 and t.type=?3 and t.status=?4 and t.del=1")
    Integer findByPatientAndOrgCodeAndTypeAndStatus(String patient,String orgCode,Integer type,Integer status);
    List<DoctorPatientTmpDO> queryByPatientAndTypeIn(String patient,Integer[] type);
    @Modifying
    @Query(value = "update DoctorPatientTmpDO t set t.del=0 where 1=1")
    void deleteAll();
}

+ 4 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/course/RecruitStudentsRecordDao.java

@ -17,4 +17,8 @@ public interface RecruitStudentsRecordDao extends PagingAndSortingRepository<Rec
        JpaSpecificationExecutor<RecruitStudentsRecordDO> {
    List<RecruitStudentsRecordDO> findByRecruitStudentsIdAndStatus(String recruitStudentsId, String status);
    List<RecruitStudentsRecordDO> findByOrgCodeAndStatus(String orgCode, String status);
    List<RecruitStudentsRecordDO> findByDelAndStatus(Integer del,String status);
}

+ 1 - 1
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/device/DevicePatientHealthIndexDao.java

@ -58,7 +58,7 @@ public interface DevicePatientHealthIndexDao
	@Query(value = "select DATE_FORMAT(a.record_date,'%Y-%m-%d') from wlyy_patient_health_index a where a.user = ?1 and a.type=?2 and a.record_date >= ?3 and a.record_date <= ?4 and a.del = '1' group by DATE_FORMAT(a.record_date,'%Y-%m-%d') order by DATE_FORMAT(a.record_date,'%Y-%m-%d') desc limit ?5 ,?6",nativeQuery = true)
	List<String> findDateList(String patient, int type, Date start, Date end, int currentSize, int pageSize);
	
	@Query(value= " select * from wlyy_patient_health_index where type in (1,2) and record_date BETWEEN ?1 AND ?2  AND user in (select p.code from wlyy.wlyy_patient p INNER JOIN wlyy.wlyy_sign_family s on s.patient = p.code RIGHT JOIN wlyy.wlyy_sign_patient_label_info sp on sp.patient = p.code where  s.status > 0 AND s.admin_team_code = ?3 and (s.doctor = ?4 or s.doctor_health =?4) and sp.status = 1 and sp.label_type = 3 and (sp.label = 1 or sp.label = 2))",nativeQuery = true)
	@Query(value= " select * from wlyy_patient_health_index where type in (1,2) and record_date BETWEEN ?1 AND ?2  AND user in (select p.code from wlyy.wlyy_patient p INNER JOIN wlyy.wlyy_sign_family s on s.patient = p.code RIGHT JOIN wlyy_sign_patient_label_info sp on sp.patient = p.code where  s.status > 0 AND s.admin_team_code = ?3 and (s.doctor = ?4 or s.doctor_health =?4) and sp.status = 1 and sp.label_type = 3 and (sp.label = 1 or sp.label = 2))",nativeQuery = true)
	List<DevicePatientHealthIndex> findByTeamcodeAndRecordDate(Date start, Date end, String teamcode, String doctorcode);
	@Query(value="select * from wlyy_patient_health_index where user = ?1 and type = ?2 ORDER BY record_date desc limit 0 ,5",nativeQuery = true)

+ 1 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/device/PatientDeviceDao.java

@ -58,5 +58,6 @@ public interface PatientDeviceDao extends PagingAndSortingRepository<DevicePatie
    @Query("select a from DevicePatientDevice a where a.user=?1 and a.del=0")
    List<DevicePatientDevice> findAllByUser(String user);
    @Query("select a from DevicePatientDevice a where a.user=?1 and a.categoryCode =?2 and a.del=0")
    List<DevicePatientDevice> findByUserAndCategoryCode(String user,String categoryCode);
}

+ 2 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/doorCoach/BaseDoorCoachOrderDao.java

@ -50,4 +50,6 @@ public interface BaseDoorCoachOrderDao extends PagingAndSortingRepository<BaseDo
    @Query("select o from BaseDoorCoachOrderDO o where o.doctor = ?1 and o.status in (1,2,3,4,5)")
    List<BaseDoorCoachOrderDO> getUnFinishOrderByDoctor(String doctor);
    List<BaseDoorCoachOrderDO> queryByStatusIn(Integer[] status);
}

+ 2 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/lifeCare/LifeCareOrderDao.java

@ -8,4 +8,6 @@ import org.springframework.data.repository.PagingAndSortingRepository;
 * Created by yeshijie on 2021/3/26.
 */
public interface LifeCareOrderDao extends PagingAndSortingRepository<LifeCareOrderDO, String>, JpaSpecificationExecutor<LifeCareOrderDO> {
    boolean existsByPatientAndStatusIn(String patient, Integer[] status);
}

+ 23 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/message/BaseServiceNewsDao.java

@ -0,0 +1,23 @@
package com.yihu.jw.care.dao.message;
import com.yihu.jw.entity.care.device.DevicePatientHealthIndex;
import com.yihu.jw.entity.care.message.BaseServiceNews;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
/**
 * Created with IntelliJ IDEA.
 *
 * @Author: yeshijie
 * @Date: 2021/6/18
 * @Description:
 */
public interface BaseServiceNewsDao extends PagingAndSortingRepository<BaseServiceNews,String>, JpaSpecificationExecutor<BaseServiceNews> {
    @Query("select a from BaseServiceNews a ")
    List<BaseServiceNews> findNews(Pageable pageRequest);
}

+ 5 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/team/BaseTeamDao.java

@ -37,6 +37,11 @@ public interface BaseTeamDao extends PagingAndSortingRepository<BaseTeamDO, Stri
            "AND t.id = m.teamCode AND t.del = '1' AND m.del = '1'")
    List<BaseTeamDO> findDoctorTeams(@Param(value = "doctorCode") String doctorCode);
    @Query("SELECT t FROM BaseTeamMemberDO m, BaseTeamDO t WHERE m.doctorCode =:doctorCode " +
            "AND t.id = m.teamCode  AND t.del = '1' AND m.del = '1' and exists (select doc.id from BaseDoctorDO doc,BaseTeamMemberDO mem " +
            " where mem.teamCode = m.teamCode and doc.id = mem.doctorCode and doc.name like :name and mem.del = '1'  )")
    List<BaseTeamDO> findDoctorTeamsByDoctorName(@Param(value = "doctorCode") String doctorCode,@Param(value = "name") String name);
    @Query("from BaseTeamDO t WHERE t.del = '1'  AND t.orgCode = ?1 ")
    List<BaseTeamDO> findByOrgCode(String orgCode);
 }

+ 26 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/BaseController.java

@ -1,7 +1,10 @@
package com.yihu.jw.care.endpoint;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.jw.entity.base.dict.BaseExceptionDictDO;
import com.yihu.jw.entity.iot.gateway.IdEntity;
import com.yihu.jw.restmodel.exception.dao.BaseExceptionDictDao;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.util.date.DateUtil;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
@ -36,6 +39,9 @@ public class BaseController {
    @Autowired
    protected HttpServletRequest request;
    @Autowired
    protected BaseExceptionDictDao baseExceptionDictDao;
    /**
     * 獲取髮送請求用戶的uid
@ -292,6 +298,26 @@ public class BaseController {
        }
    }
    public String error(int code, String msg,Exception e) {
        try {
            Map<Object, Object> map = new HashMap<Object, Object>();
            ObjectMapper mapper = new ObjectMapper();
            BaseExceptionDictDO baseExceptionDictDO =baseExceptionDictDao.findByExceptionInfo(e.getClass().toString());
            if (baseExceptionDictDO!=null){
                e.printStackTrace();
                map.put("status", Integer.parseInt(baseExceptionDictDO.getCode()));
                map.put("msg", baseExceptionDictDO.getRemindContent());
            }else {
                map.put("status", -10000);
                map.put("msg", e.getMessage());
            }
            return mapper.writeValueAsString(map);
        } catch (Exception e1) {
            e.printStackTrace();
            return null;
        }
    }
    /**
     * 接口处理成功
     *

+ 2 - 4
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/apply/PatientBedApplyEndPoint.java

@ -36,8 +36,7 @@ public class PatientBedApplyEndPoint extends EnvelopRestEndpoint {
            }
            return ObjEnvelop.getSuccess("操作成功", result);
        } catch (Exception e) {
            e.printStackTrace();
            return ObjEnvelop.getError("申请失败" + e.getMessage());
            return failedObjEnvelopException(e);
        }
    }
@ -48,8 +47,7 @@ public class PatientBedApplyEndPoint extends EnvelopRestEndpoint {
        try {
            return ListEnvelop.getSuccess("查询成功", patientBedApplyService.getApplyList(doctor));
        } catch (Exception e) {
            e.printStackTrace();
            return ListEnvelop.getError("查询失败");
            return failedListEnvelopException(e);
        }
    }
}

+ 25 - 30
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/assistance/EmergencyAssistanceEndpoint.java

@ -43,8 +43,7 @@ public class EmergencyAssistanceEndpoint extends EnvelopRestEndpoint {
            }
            return ObjEnvelop.getSuccess("发起成功",result.getJSONObject("resultMsg"));
        }catch (Exception e){
            e.printStackTrace();
            return ObjEnvelop.getError("发起失败"+e.getMessage());
            return failedObjEnvelopException(e);
        }
    }
@ -62,8 +61,7 @@ public class EmergencyAssistanceEndpoint extends EnvelopRestEndpoint {
            }
            return ObjEnvelop.getSuccess("查询成功",result.getJSONObject("resultMsg"));
        }catch (Exception e){
            e.printStackTrace();
            return ObjEnvelop.getError("查询失败"+e.getMessage());
            return failedObjEnvelopException(e);
        }
    }
@ -81,8 +79,7 @@ public class EmergencyAssistanceEndpoint extends EnvelopRestEndpoint {
            }
            return ObjEnvelop.getSuccess("查询成功",result.getJSONObject("resultMsg"));
        }catch (Exception e){
            e.printStackTrace();
            return ObjEnvelop.getError("查询失败"+e.getMessage());
            return failedObjEnvelopException(e);
        }
    }
@ -107,8 +104,7 @@ public class EmergencyAssistanceEndpoint extends EnvelopRestEndpoint {
            }
            return ObjEnvelop.getSuccess("查询成功",result.getJSONObject("resultMsg"));
        }catch (Exception e){
            e.printStackTrace();
            return ObjEnvelop.getError("查询失败"+e.getMessage());
            return failedObjEnvelopException(e);
        }
    }
@ -123,8 +119,7 @@ public class EmergencyAssistanceEndpoint extends EnvelopRestEndpoint {
            }
            return ObjEnvelop.getSuccess("查询成功",result.getJSONObject("resultMsg"));
        }catch (Exception e){
            e.printStackTrace();
            return ObjEnvelop.getError("查询失败"+e.getMessage());
            return failedObjEnvelopException(e);
        }
    }
@ -150,8 +145,7 @@ public class EmergencyAssistanceEndpoint extends EnvelopRestEndpoint {
            }
            return ListEnvelop.getSuccess( "查询成功",assistanceService.getOrderList(patientId,patientName,doctor,status,page,pageSize,"desc"));
        }catch (Exception e){
            e.printStackTrace();
            return ListEnvelop.getError("查询失败"+e.getMessage());
            return failedListEnvelopException(e);
        }
    }
@ -173,8 +167,7 @@ public class EmergencyAssistanceEndpoint extends EnvelopRestEndpoint {
            }
            return ListEnvelop.getSuccess( "查询成功",assistanceService.doctorGetOrderList(patientId,doctor,"1",page,pageSize,"asc"));
        }catch (Exception e){
            e.printStackTrace();
            return ListEnvelop.getError("查询失败"+e.getMessage());
            return failedListEnvelopException(e);
        }
    }
@ -191,8 +184,7 @@ public class EmergencyAssistanceEndpoint extends EnvelopRestEndpoint {
            }
            return ObjEnvelop.getSuccess("取消成功",result.getJSONObject("resultMsg"));
        }catch (Exception e){
            e.printStackTrace();
            return ObjEnvelop.getError("取消失败"+e.getMessage());
            return failedObjEnvelopException(e);
        }
    }
@ -216,8 +208,7 @@ public class EmergencyAssistanceEndpoint extends EnvelopRestEndpoint {
            }
            return ObjEnvelop.getSuccess("保存成功",result.getJSONObject("resultMsg"));
        }catch (Exception e){
            e.printStackTrace();
            return ObjEnvelop.getError("保存失败"+e.getMessage());
            return failedObjEnvelopException(e);
        }
    }
@ -241,8 +232,7 @@ public class EmergencyAssistanceEndpoint extends EnvelopRestEndpoint {
            }
            return ObjEnvelop.getSuccess("定位更新成功",result.getJSONObject("resultMsg"));
        }catch (Exception e){
            e.printStackTrace();
            return ObjEnvelop.getError("定位更新失败"+e.getMessage());
            return failedObjEnvelopException(e);
        }
    }
@ -264,8 +254,7 @@ public class EmergencyAssistanceEndpoint extends EnvelopRestEndpoint {
            }
            return ObjEnvelop.getSuccess("定位更新成功",result.getString("resultMsg"));
        }catch (Exception e){
            e.printStackTrace();
            return ObjEnvelop.getError("定位更新失败"+e.getMessage());
            return failedObjEnvelopException(e);
        }
    }
@ -286,8 +275,7 @@ public class EmergencyAssistanceEndpoint extends EnvelopRestEndpoint {
            }
            return ObjEnvelop.getSuccess("发送成功","");
        }catch (Exception e){
            e.printStackTrace();
            return ObjEnvelop.getError("发送失败"+e.getMessage());
            return failedObjEnvelopException(e);
        }
    }
@ -302,8 +290,7 @@ public class EmergencyAssistanceEndpoint extends EnvelopRestEndpoint {
            return ObjEnvelop.getSuccess("发送成功",assistanceService.test(doctor, orderID));
        }catch (Exception e){
            e.printStackTrace();
            return ObjEnvelop.getError("发送失败"+e.getMessage());
            return failedObjEnvelopException(e);
        }
    }
@ -323,8 +310,7 @@ public class EmergencyAssistanceEndpoint extends EnvelopRestEndpoint {
            return ObjEnvelop.getSuccess("操作成功",result.getString("resultMsg"));
        } catch (Exception e) {
            e.printStackTrace();
            return ObjEnvelop.getError( "操作失败!" + e.getMessage());
            return failedObjEnvelopException(e);
        }
    }
@ -341,8 +327,17 @@ public class EmergencyAssistanceEndpoint extends EnvelopRestEndpoint {
            }
            return ObjEnvelop.getSuccess("修改成功",result.getJSONObject("resultMsg"));
        }catch (Exception e){
            e.printStackTrace();
            return ObjEnvelop.getError("修改失败");
            return failedObjEnvelopException(e);
        }
    }
    @GetMapping(value = "getMonitorUrl")
    @ApiOperation(value = "获取监控录像地址")
    public ObjEnvelop getMonitorUrl(@ApiParam(name="patient")@RequestParam(value = "patient")String patient){
        try {
            return null;
        }catch (Exception e){
            return failedObjEnvelopException(e);
        }
    }
}

+ 1 - 2
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/consult/DoctorConsultController.java

@ -48,8 +48,7 @@ public class DoctorConsultController extends EnvelopRestEndpoint {
                return Envelop.getError( "关闭失败!");
            }
        } catch (Exception e) {
            e.printStackTrace();
            return Envelop.getError( "关闭失败!");
            return failedException(e);
        }
    }
}

+ 17 - 12
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/consult/DoctorConsultEndpoint.java

@ -46,18 +46,23 @@ public class DoctorConsultEndpoint extends EnvelopRestEndpoint {
            @ApiParam(name = "consult", value = "咨询CODE")
            @RequestParam(value = "consult",required = true) String consult,
            @ApiParam(name = "doctorCode", value = "医生COEE")
            @RequestParam(value = "doctorCode",required = true) String doctorCode) throws Exception {
        int resutl = consultService.finish(consult,doctorCode,2);
        BaseDoctorDO baseDoctorDO = baseDoctorDao.findById(doctorCode);
        JSONObject msgObj = new JSONObject();
        msgObj.put("msg",baseDoctorDO.getName()+"结束了咨询");
        msgObj.put("consultcode",consult);
        String jsonStr = "";
            @RequestParam(value = "doctorCode",required = true) String doctorCode) {
        try {
            int resutl = consultService.finish(consult,doctorCode,2);
            BaseDoctorDO baseDoctorDO = baseDoctorDao.findById(doctorCode);
            JSONObject msgObj = new JSONObject();
            msgObj.put("msg",baseDoctorDO.getName()+"结束了咨询");
            msgObj.put("consultcode",consult);
            String jsonStr = "";
        if(1 == resutl){
            jsonStr = "{\"id\":\""+ UUID.randomUUID().toString()+"\",\"sender_id\":\""+doctorCode+"\",\"sender_name\":\"系统\",\"timestamp\":"+System.currentTimeMillis()+",\"content_type\":7,\"content\":"+msgObj.toString()+",\"business_type\":1}";
            if(1 == resutl){
                jsonStr = "{\"id\":\""+ UUID.randomUUID().toString()+"\",\"sender_id\":\""+doctorCode+"\",\"sender_name\":\"系统\",\"timestamp\":"+System.currentTimeMillis()+",\"content_type\":7,\"content\":"+msgObj.toString()+",\"business_type\":1}";
            }
            return success(jsonStr);
        }catch (Exception e){
           return failedException(e);
        }
        return success(jsonStr);
    }
    @GetMapping(value = "getConsultInfoAndPatientInfo")
@ -66,7 +71,7 @@ public class DoctorConsultEndpoint extends EnvelopRestEndpoint {
            @ApiParam(name = "consult", value = "咨询CODE")
            @RequestParam(value = "consult",required = false) String consult,
            @ApiParam(name = "patientCode", value = "居民COEE")
            @RequestParam(value = "patientCode",required = false) String patientCode)throws Exception {
            @RequestParam(value = "patientCode",required = false) String patientCode){
        try {
            return success("请求成功",imService.getConsultInfoAndPatientInfo(consult,patientCode));
        }catch (Exception e){
@ -97,7 +102,7 @@ public class DoctorConsultEndpoint extends EnvelopRestEndpoint {
            @RequestParam(value = "page",required = false) int page,
            @ApiParam(name = "pagesize", value = "分页大小")
            @RequestParam(value = "pagesize",required = false) int pagesize
    )throws Exception{
    ){
        try {
            List<Map<String,Object>>  data = consultService.findConsultRecordByDoctor(doctor, id,type,status, page,pagesize, symptoms,start_time,end_time,name);

+ 0 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/consult/PatientConsultEndpoint.java


Some files were not shown because too many files changed in this diff