Browse Source

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

 Conflicts:
	common/common-entity/sql/sql记录
wsl 2 years ago
parent
commit
b589b255b1

+ 13 - 0
business/base-service/src/main/java/com/yihu/jw/dict/dao/BaseCopywritingDao.java

@ -0,0 +1,13 @@
package com.yihu.jw.dict.dao;
import com.yihu.jw.entity.base.dict.BaseCopywritingDO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
/**
 * Created by yeshijie on 2022/11/28.
 */
public interface BaseCopywritingDao extends JpaRepository<BaseCopywritingDO, String>, JpaSpecificationExecutor<BaseCopywritingDO> {
    BaseCopywritingDO findByModularAndScene(String modular,String scene);
}

+ 76 - 0
business/base-service/src/main/java/com/yihu/jw/dict/service/BaseCopywritingService.java

@ -0,0 +1,76 @@
package com.yihu.jw.dict.service;
import com.yihu.jw.dict.dao.BaseCopywritingDao;
import com.yihu.jw.entity.base.dict.BaseCopywritingDO;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;
import java.util.Date;
/**
 * Created by yeshijie on 2022/11/28.
 */
@Service
public class BaseCopywritingService {
    @Autowired
    private BaseCopywritingDao copywritingDao;
    @Autowired
    private StringRedisTemplate redisTemplate;
    public BaseCopywritingDO create(BaseCopywritingDO copywritingDO){
        copywritingDO.setCreateTime(new Date());
        return copywritingDao.save(copywritingDO);
    }
    public BaseCopywritingDO findByModularAndScene(String modular,String scene){
        return copywritingDao.findByModularAndScene(modular, scene);
    }
    /**
     * 获取文案-缓存
     * @return
     */
    public String findCopywriting(String modular,String scene){
        String key = "copywriting:"+modular+":"+scene;
        String content = redisTemplate.opsForValue().get(key);
        if(StringUtils.isBlank(content)){
            content = findCopywritingNoRedis(modular, scene);
            if(StringUtils.isNotBlank(content)){
                redisTemplate.opsForValue().set(key,content);
            }
        }
        return content;
    }
    /**
     * 获取文案-无缓存
     * @return
     */
    public String findCopywritingNoRedis(String modular,String scene){
        BaseCopywritingDO copywritingDO = copywritingDao.findByModularAndScene(modular, scene);
        if(copywritingDO!=null){
            return copywritingDO.getContent();
        }
        return null;
    }
    /**
     * 把文案设置到缓存
     */
    public String setCopywritingToRedis(BaseCopywritingDO copywritingDO,String modular,String scene){
        String content = null;
        if(copywritingDO==null){
            copywritingDO = copywritingDao.findByModularAndScene(modular, scene);
        }
        if(copywritingDO!=null){
            String key = "copywriting:"+copywritingDO.getModular()+":"+copywritingDO.getScene();
            content = copywritingDO.getContent();
            redisTemplate.opsForValue().set(key,content);
        }
        return content;
    }
}

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

@ -2398,3 +2398,16 @@ CREATE TABLE `base_zhaohui_fire_gas_sec` (
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 COMMENT='朝晖日报-烟感气感预警';
-- 2022-11-28 ysj
CREATE TABLE `base_copywriting` (
  `id` varchar(50) NOT NULL,
  `content` varchar(255)  DEFAULT NULL COMMENT '文案',
  `modular` varchar(10) DEFAULT NULL COMMENT '模块',
  `scene` varchar(50) DEFAULT NULL COMMENT '场景',
  `remark` varchar(255) DEFAULT NULL COMMENT '备注说明',
  `create_time` datetime DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='基础文案表';

+ 0 - 298
common/common-entity/src/main/java/com/yihu/jw/entity/archives/PatientArchivesDO.java

@ -1,298 +0,0 @@
package com.yihu.jw.entity.archives;
import com.yihu.jw.entity.UuidIdentityEntityWithOperator;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.io.Serializable;
import java.util.Date;
/**
 * Created by Trick on 2018/2/7.
 */
@Entity
@Table(name = "wlyy_patient_archives")
public class PatientArchivesDO extends UuidIdentityEntityWithOperator implements Serializable {
    @Column(name = "saas_id")
    private String saasId; //saasid
    @Column(name = "patient_code")
    private String patientCode;//关联居民登录code
    @Column(name = "patient_name")
    private String patientName;//姓名
    @Column(name = "idcard")
    private String idcard;//身份证号
    @Column(name = "birthday")
    private Date birthday;//生日
    @Column(name = "sex")
    private String sex;//int(11) DEFAULT NULL COMMENT '性别,1男,2女
    @Column(name = "mobile")
    private String mobile;//手机号
    @Column(name = "ssc")
    private String ssc;//社保卡号
    @Column(name = "status")
    private String status;//int(11) DEFAULT NULL COMMENT '档案状态:1正常,0注销
    @Column(name = "cancel_resean_type")
    private String cancelReseanType;//注销原因:1死亡,2.重复
    @Column(name = "sick_village")
    private String sickVillage;//居委会代码(字典)
    @Column(name = "sick_village_name")
    private String sickVillageName;//居委会
    @Column(name = "resident_type")
    private String residentType;//常住类型 :1户籍,2非户籍
    @Column(name = "blood")
    private String blood;//血型:A,AB,O,B,N(不详)
    @Column(name = "RH")
    private String RH;//1,阴性;2阳性;0 不详
    @Column(name = "nation_code")
    private String nationCode;//民族code(字典)
    @Column(name = "nation")
    private String nation;//民族名称
    @Column(name = "work_place")
    private String workPlace;//工作地点
    @Column(name = "contact_people")
    private String contactPeople;//联系人
    @Column(name = "contact_mobile")
    private String contactMobile;//联系人电话
    @Column(name = "education_code")
    private String educationCode;//文化程度(字典)
    @Column(name = "education")
    private String education;//文化程度
    @Column(name = "profession_code")
    private String professionCode;//职业(字典)
    @Column(name = "profession")
    private String profession;//职业
    @Column(name = "marriage_code")// ·
    private String marriageCode;//婚姻状况(字典)
    @Column(name = "marriage")
    private String marriage;//婚姻状况
    @Column(name = "payment_code")
    private String paymentCode;//支付方式(字典)
    @Column(name = "payment")
    private String payment;// 支付方式
    public String getPatientCode() {
        return patientCode;
    }
    public void setPatientCode(String patientCode) {
        this.patientCode = patientCode;
    }
    public String getPatientName() {
        return patientName;
    }
    public void setPatientName(String patientName) {
        this.patientName = patientName;
    }
    public String getIdcard() {
        return idcard;
    }
    public void setIdcard(String idcard) {
        this.idcard = idcard;
    }
    public Date getBirthday() {
        return birthday;
    }
    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    public String getMobile() {
        return mobile;
    }
    public void setMobile(String mobile) {
        this.mobile = mobile;
    }
    public String getSsc() {
        return ssc;
    }
    public void setSsc(String ssc) {
        this.ssc = ssc;
    }
    public String getStatus() {
        return status;
    }
    public void setStatus(String status) {
        this.status = status;
    }
    public String getCancelReseanType() {
        return cancelReseanType;
    }
    public void setCancelReseanType(String cancelReseanType) {
        this.cancelReseanType = cancelReseanType;
    }
    public String getSickVillage() {
        return sickVillage;
    }
    public void setSickVillage(String sickVillage) {
        this.sickVillage = sickVillage;
    }
    public String getSickVillageName() {
        return sickVillageName;
    }
    public void setSickVillageName(String sickVillageName) {
        this.sickVillageName = sickVillageName;
    }
    public String getResidentType() {
        return residentType;
    }
    public void setResidentType(String residentType) {
        this.residentType = residentType;
    }
    public String getBlood() {
        return blood;
    }
    public void setBlood(String blood) {
        this.blood = blood;
    }
    public String getRH() {
        return RH;
    }
    public void setRH(String RH) {
        this.RH = RH;
    }
    public String getNationCode() {
        return nationCode;
    }
    public void setNationCode(String nationCode) {
        this.nationCode = nationCode;
    }
    public String getNation() {
        return nation;
    }
    public void setNation(String nation) {
        this.nation = nation;
    }
    public String getWorkPlace() {
        return workPlace;
    }
    public void setWorkPlace(String workPlace) {
        this.workPlace = workPlace;
    }
    public String getContactPeople() {
        return contactPeople;
    }
    public void setContactPeople(String contactPeople) {
        this.contactPeople = contactPeople;
    }
    public String getContactMobile() {
        return contactMobile;
    }
    public void setContactMobile(String contactMobile) {
        this.contactMobile = contactMobile;
    }
    public String getEducationCode() {
        return educationCode;
    }
    public void setEducationCode(String educationCode) {
        this.educationCode = educationCode;
    }
    public String getEducation() {
        return education;
    }
    public void setEducation(String education) {
        this.education = education;
    }
    public String getProfessionCode() {
        return professionCode;
    }
    public void setProfessionCode(String professionCode) {
        this.professionCode = professionCode;
    }
    public String getProfession() {
        return profession;
    }
    public void setProfession(String profession) {
        this.profession = profession;
    }
    public String getMarriageCode() {
        return marriageCode;
    }
    public void setMarriageCode(String marriageCode) {
        this.marriageCode = marriageCode;
    }
    public String getMarriage() {
        return marriage;
    }
    public void setMarriage(String marriage) {
        this.marriage = marriage;
    }
    public String getPaymentCode() {
        return paymentCode;
    }
    public void setPaymentCode(String paymentCode) {
        this.paymentCode = paymentCode;
    }
    public String getPayment() {
        return payment;
    }
    public void setPayment(String payment) {
        this.payment = payment;
    }
    public String getSaasId() {
        return saasId;
    }
    public void setSaasId(String saasId) {
        this.saasId = saasId;
    }
}

+ 0 - 99
common/common-entity/src/main/java/com/yihu/jw/entity/archives/PatientArchivesInfoDO.java

@ -1,99 +0,0 @@
package com.yihu.jw.entity.archives;
import com.yihu.jw.entity.UuidIdentityEntityWithOperator;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.io.Serializable;
import java.util.Date;
/**
 * Created by Trick on 2018/2/7.
 */
@Entity
@Table(name = "wlyy_patient_archives_info")
public class PatientArchivesInfoDO extends UuidIdentityEntityWithOperator implements Serializable {
    @Column(name = "saas_id")
    private String saasId; //saasid
    @Column(name = "archives_code")
    private String archivesCode; //档案code
    @Column(name = "level1")
    private String level1;//1.历史情况,2.既往史,3.家族史,4.生活环境
    @Column(name = "level2")
    private String level2; //子类别
    @Column(name = "key")
    private String key; //字典值,或判断值(有,无)
    @Column(name = "value")
    private String value; //字典名称
    @Column(name = "date")
    private Date date;//关联时间
    @Column(name = "remark")
    private String remark; //备注/其他/描述/详情
    public String getSaasId() {
        return saasId;
    }
    public void setSaasId(String saasId) {
        this.saasId = saasId;
    }
    public String getArchivesCode() {
        return archivesCode;
    }
    public void setArchivesCode(String archivesCode) {
        this.archivesCode = archivesCode;
    }
    public String getLevel1() {
        return level1;
    }
    public void setLevel1(String level1) {
        this.level1 = level1;
    }
    public String getLevel2() {
        return level2;
    }
    public void setLevel2(String level2) {
        this.level2 = level2;
    }
    public String getKey() {
        return key;
    }
    public void setKey(String key) {
        this.key = key;
    }
    public String getValue() {
        return value;
    }
    public void setValue(String value) {
        this.value = value;
    }
    public Date getDate() {
        return date;
    }
    public void setDate(Date date) {
        this.date = date;
    }
    public String getRemark() {
        return remark;
    }
    public void setRemark(String remark) {
        this.remark = remark;
    }
}

+ 56 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/dict/BaseCopywritingDO.java

@ -0,0 +1,56 @@
package com.yihu.jw.entity.base.dict;
import com.yihu.jw.entity.UuidIdentityEntityWithCreateTime;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
 * Created by yeshijie on 2022/11/28.
 */
@Entity
@Table(name = "base_copywriting")
public class BaseCopywritingDO extends UuidIdentityEntityWithCreateTime {
    private String content;//文案
    private String modular;//模块
    private String scene;//场景
    private String remark;//备注说明
    @Column(name = "content")
    public String getContent() {
        return content;
    }
    public void setContent(String content) {
        this.content = content;
    }
    @Column(name = "modular")
    public String getModular() {
        return modular;
    }
    public void setModular(String modular) {
        this.modular = modular;
    }
    @Column(name = "scene")
    public String getScene() {
        return scene;
    }
    public void setScene(String scene) {
        this.scene = scene;
    }
    @Column(name = "remark")
    public String getRemark() {
        return remark;
    }
    public void setRemark(String remark) {
        this.remark = remark;
    }
}

+ 15 - 1
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/dict/WlyyHospitalSysDictEndpoint.java

@ -1,10 +1,11 @@
package com.yihu.jw.base.endpoint.dict;
import com.yihu.jw.dict.service.BaseCopywritingService;
import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
import com.yihu.jw.hospital.dict.service.WlyyHospitalSysDictService;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.rm.base.BaseRequestMapping;
import com.yihu.jw.rm.hospital.BaseHospitalRequestMapping;
@ -23,6 +24,19 @@ public class WlyyHospitalSysDictEndpoint extends EnvelopRestEndpoint {
    private static Logger logger = LoggerFactory.getLogger(WlyyHospitalSysDictEndpoint.class);
    @Autowired
    private WlyyHospitalSysDictService wlyyHospitalSysDictService;
    @Autowired
    private BaseCopywritingService copywritingService;
    @ApiOperation("把文案设置到缓存")
    @GetMapping(value= "open/nologin/setCopywritingToRedis")
    public Envelop setCopywritingToRedis(@ApiParam(name = "modular", value = "name", required = true)
                                         @RequestParam(value = "modular")String modular,
                                         @ApiParam(name = "scene", value = "modelName", required = true)
                                         @RequestParam(value = "scene")String scene){
        return ObjEnvelop.getSuccess("success",copywritingService.setCopywritingToRedis(null,modular,scene));
    }
    @ApiOperation("查询字典")
    @GetMapping(value= BaseHospitalRequestMapping.PatientNoLogin.findDict)
    public MixEnvelop findDict(@ApiParam(name = "name", value = "name", required = false)

+ 29 - 17
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/job/message/DoctorSendUnreadJob.java

@ -1,6 +1,8 @@
package com.yihu.jw.care.job.message;
import com.yihu.jw.care.util.MessageUtil;
import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
import com.yihu.jw.hospital.dict.WlyyHospitalSysDictDao;
import com.yihu.jw.im.util.ImUtil;
import com.yihu.jw.util.common.MobileUtils;
import org.apache.commons.lang3.StringUtils;
@ -12,6 +14,7 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
@ -27,33 +30,42 @@ public class DoctorSendUnreadJob implements Job {
    private JdbcTemplate jdbcTemplate;
    @Autowired
    private MessageUtil messageUtil;
    @Resource
    private WlyyHospitalSysDictDao wlyyHospitalSysDictDao;
    private static Logger logger = LoggerFactory.getLogger(DoctorSendUnreadJob.class);
    @Override
    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        logger.info("DoctorSendUnreadJob start.....");
        String sql = " select id,name,mobile from base_doctor where del=1 and mobile is not null  ";
        List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
        for (Map<String,Object> tmp:list){
            String mobile = tmp.get("mobile").toString();
            String doctorId = tmp.get("id").toString();
            if (StringUtils.isNotBlank(mobile)){
                if (MobileUtils.checkCellphone(mobile)){
                    String doctorName = tmp.get("name").toString();
                    Integer unReadCount = imUtil.SessionsUnreadMessageCountByUserId(doctorId);
                    try {
                        if (unReadCount>0){
                            messageUtil.sendTXYSJson("974597",mobile,doctorName,unReadCount+"");
        try {
            WlyyHospitalSysDictDO dictDO = wlyyHospitalSysDictDao.findById("DoctorSendUnreadJob");
            if(dictDO!=null&&"1".equals(dictDO.getDictCode())){
                logger.info("DoctorSendUnreadJob start.....");
                String sql = " select id,name,mobile from base_doctor where del=1 and mobile is not null  ";
                List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
                for (Map<String,Object> tmp:list){
                    String mobile = tmp.get("mobile").toString();
                    String doctorId = tmp.get("id").toString();
                    if (StringUtils.isNotBlank(mobile)){
                        if (MobileUtils.checkCellphone(mobile)){
                            String doctorName = tmp.get("name").toString();
                            Integer unReadCount = imUtil.SessionsUnreadMessageCountByUserId(doctorId);
                            try {
                                if (unReadCount>0){
                                    messageUtil.sendTXYSJson("974597",mobile,doctorName,unReadCount+"");
                                }
                            }catch (Exception e){
                                e.printStackTrace();
                            }
                        }
                    }catch (Exception e){
                        e.printStackTrace();
                    }
                }
                logger.info("DoctorSendUnreadJob end.....");
            }
        }catch (Exception e){
            e.printStackTrace();
        }
        logger.info("DoctorSendUnreadJob end.....");
    }
}

+ 31 - 29
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/job/message/PatientSendUnreadJob.java

@ -6,8 +6,6 @@ import com.yihu.jw.im.util.ImUtil;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.util.http.HttpClientUtil;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
@ -17,7 +15,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.jdbc.core.JdbcTemplate;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
@ -44,37 +41,42 @@ public class PatientSendUnreadJob implements Job {
    @Override
    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        logger.info("PatientSendUnreadJob start.....");
        String sql = "select p.id,p.name,wc.openId from base_patient p INNER JOIN base_patient_wechat wc " +
                " on p.id = wc.patient_id where p.del=1  and wc.wechat_id = '"+wxId+"' GROUP BY p.id ORDER BY wc.create_time desc  ;  ";
        List<Map<String,Object>> patientList = jdbcTemplate.queryForList(sql);
        for (Map<String,Object>tmp:patientList) {
            try {
                String patientId = tmp.get("id").toString();
                Integer unreadCount = imUtil.SessionsUnreadMessageCountByUserId(patientId);
                String name = tmp.get("name").toString();
                String openId = tmp.get("openId").toString();
                if (StringUtils.isNotBlank(openId)) {
                    sql = "select t2.id from base_patient_family_member t1,base_patient t2 " +
                            " where t2.id in (select family_member from base_patient_family_member where patient = '" + patientId + "' ) " +
                            " and t1.patient = '" + patientId + "' and t1.family_member = t2.id ";
                    List<String> familys = jdbcTemplate.queryForList(sql, String.class);
                    for (String family : familys) {
                        if (patientId.equals(family)) {
                            continue;
                        }
        try {
            logger.info("PatientSendUnreadJob start.....");
            String sql = "select p.id,p.name,wc.openId from base_patient p INNER JOIN base_patient_wechat wc " +
                    " on p.id = wc.patient_id where p.del=1  and wc.wechat_id = '"+wxId+"' GROUP BY p.id ORDER BY wc.create_time desc  ;  ";
            List<Map<String,Object>> patientList = jdbcTemplate.queryForList(sql);
            for (Map<String,Object>tmp:patientList) {
                try {
                    String patientId = tmp.get("id").toString();
                    Integer unreadCount = imUtil.SessionsUnreadMessageCountByUserId(patientId);
                    String name = tmp.get("name").toString();
                    String openId = tmp.get("openId").toString();
                    if (StringUtils.isNotBlank(openId)) {
                        sql = "select t2.id from base_patient_family_member t1,base_patient t2 " +
                                " where t2.id in (select family_member from base_patient_family_member where patient = '" + patientId + "' ) " +
                                " and t1.patient = '" + patientId + "' and t1.family_member = t2.id ";
                        List<String> familys = jdbcTemplate.queryForList(sql, String.class);
                        for (String family : familys) {
                            if (patientId.equals(family)) {
                                continue;
                            }
                        unreadCount += imUtil.SessionsUnreadMessageCountByUserId(family);
                            unreadCount += imUtil.SessionsUnreadMessageCountByUserId(family);
                        }
                    }
                    if (unreadCount > 0) {//发送模板
                        String first = ""+name+"您好,您与您的家庭成员共有"+unreadCount+"条消息未回复,请及时处理";
                        sendPatientUnreadWXTemplate(openId,first,"template_process_feedback","jobfsjmwd");
                    }
                } catch (Exception e) {
                }
                if (unreadCount > 0) {//发送模板
                    String first = ""+name+"您好,您与您的家庭成员共有"+unreadCount+"条消息未回复,请及时处理";
                    sendPatientUnreadWXTemplate(openId,first,"template_process_feedback","jobfsjmwd");
                }
            } catch (Exception e) {
            }
            logger.info("PatientSendUnreadJob end.....");
        }catch (Exception e){
            e.printStackTrace();
        }
        logger.info("PatientSendUnreadJob end.....");
    }
    public void sendPatientUnreadWXTemplate(String openid,String first,String templateName,String scene){