LAPTOP-KB9HII50\70708 %!s(int64=2) %!d(string=hai) anos
pai
achega
73fac6e7c1

+ 37 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/care/message/UrgeReminderRecordDO.java

@ -0,0 +1,37 @@
package com.yihu.jw.entity.care.message;
import com.yihu.jw.entity.UuidIdentityEntityWithCreateTime;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
 * 工单催促提醒记录
 * Created by yeshijie on 2022/11/15.
 */
@Entity
@Table(name="base_urge_reminder_record")
public class UrgeReminderRecordDO extends UuidIdentityEntityWithCreateTime {
    private String type;//20紧急呼叫22安防工单
    private String orderId;//工单id
    @Column(name = "type")
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
    @Column(name = "order_id")
    public String getOrderId() {
        return orderId;
    }
    public void setOrderId(String orderId) {
        this.orderId = orderId;
    }
}

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

@ -0,0 +1,13 @@
package com.yihu.jw.care.dao.message;
import com.yihu.jw.entity.care.message.UrgeReminderRecordDO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
/**
 * Created by yeshijie on 2022/11/15.
 */
public interface UrgeReminderRecordDao extends JpaRepository<UrgeReminderRecordDO, String>, JpaSpecificationExecutor<UrgeReminderRecordDO> {
    UrgeReminderRecordDO findByTypeAndOrderId(String type, String orderId);
}

+ 12 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/admin/AdminManageEndpoint.java

@ -3,6 +3,7 @@ package com.yihu.jw.care.endpoint.admin;
import com.yihu.jw.care.service.admin.AdminManageService;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.restmodel.web.PageEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import io.swagger.annotations.Api;
@ -24,6 +25,17 @@ public class AdminManageEndpoint extends EnvelopRestEndpoint {
    @Resource
    private AdminManageService adminManageService;
    @GetMapping(value = "getEmergencyAssistanceNum")
    @ApiOperation(value = "获取紧急救助预警中的工单数")
    public ObjEnvelop getEmergencyAssistanceNum(){
        try {
            return ObjEnvelop.getSuccess("查询成功",adminManageService.getEmergencyAssistanceNum());
        }catch (Exception e){
            e.printStackTrace();
            return ObjEnvelop.getError("查询失败");
        }
    }
    @GetMapping(value = "getOrgList")
    @ApiOperation(value = "获取机构列表")
    public ListEnvelop getOrgList(@ApiParam(name = "type",value = "类型type 2社工 3助老员 4教师") @RequestParam String type){

+ 41 - 22
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/admin/AdminManageService.java

@ -1,6 +1,7 @@
package com.yihu.jw.care.service.admin;
import com.yihu.jw.care.dao.assistance.EmergencyAssistanceDao;
import com.yihu.jw.care.dao.message.UrgeReminderRecordDao;
import com.yihu.jw.care.dao.security.SecurityMonitoringOrderDao;
import com.yihu.jw.care.dao.team.BaseTeamMemberDao;
import com.yihu.jw.care.service.common.PermissionService;
@ -10,6 +11,7 @@ import com.yihu.jw.care.vo.UserVo;
import com.yihu.jw.doctor.dao.BaseDoctorDao;
import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
import com.yihu.jw.entity.care.assistance.EmergencyAssistanceDO;
import com.yihu.jw.entity.care.message.UrgeReminderRecordDO;
import com.yihu.jw.entity.care.securitymonitoring.SecurityMonitoringOrderDO;
import com.yihu.jw.restmodel.web.PageEnvelop;
import com.yihu.jw.util.common.IdCardUtil;
@ -47,35 +49,52 @@ public class AdminManageService {
    private PermissionService permissionService;
    @Resource
    private BaseDoctorDao doctorDao;
    @Resource
    private UrgeReminderRecordDao urgeReminderRecordDao;
    /**
     * 获取紧急救助预警中的工单数
     */
    public Integer getEmergencyAssistanceNum(){
        String sql = "select count(id) from base_emergency_assistance_order where status =1";
        return jdbcTemplate.queryForObject(sql,Integer.class);
    }
    /**
     * 工单催促提醒
     * 20紧急呼叫22安防工单
     */
    public void orderUrgeReminder(String id,String orderType){
        String sender = permissionService.getUID();
        BaseDoctorDO baseDoctorDO = doctorDao.findById(sender);
        String patient;
        String name;
        String teamCode;
        if("20".equals(orderType)){
            EmergencyAssistanceDO orderDO = emergencyAssistanceDao.findOne(id);
            patient = orderDO.getPatient();
            name = orderDO.getPatientName();
            teamCode = orderDO.getTeamCode();
        }else {
            SecurityMonitoringOrderDO orderDO = securityMonitoringOrderDao.findOne(id);
            patient = orderDO.getPatient();
            name = orderDO.getPatientName();
            teamCode = orderDO.getTeamCode();
        }
        List<BaseDoctorDO> doctorDOS = baseTeamMemberDao.findAllMembersByLevel(teamCode,2);
        for (BaseDoctorDO doctorDO:doctorDOS){
            String dingDingBody = doctorDO.getName()+"社工您好,"+name+"老人的紧急预警还未处理,管理员提醒您及时处理,请进入朝晖云照护应用查看。";
            messageUtil.sendDoctorDingdingMessage(doctorDO,null,"text","2",dingDingBody,null,null);
            messageUtil.createToDoWorkReminder(doctorDO.getId(),baseDoctorDO.getId(),baseDoctorDO.getName(),id,orderType);
        synchronized (id.intern()){
            UrgeReminderRecordDO recordDO = urgeReminderRecordDao.findByTypeAndOrderId(orderType,id);
            if(recordDO==null){
                recordDO = new UrgeReminderRecordDO();
                recordDO.setOrderId(id);
                recordDO.setType(orderType);
                urgeReminderRecordDao.save(recordDO);
                String sender = permissionService.getUID();
                BaseDoctorDO baseDoctorDO = doctorDao.findById(sender);
                String patient;
                String name;
                String teamCode;
                if("20".equals(orderType)){
                    EmergencyAssistanceDO orderDO = emergencyAssistanceDao.findOne(id);
                    patient = orderDO.getPatient();
                    name = orderDO.getPatientName();
                    teamCode = orderDO.getTeamCode();
                }else {
                    SecurityMonitoringOrderDO orderDO = securityMonitoringOrderDao.findOne(id);
                    patient = orderDO.getPatient();
                    name = orderDO.getPatientName();
                    teamCode = orderDO.getTeamCode();
                }
                List<BaseDoctorDO> doctorDOS = baseTeamMemberDao.findAllMembersByLevel(teamCode,2);
                for (BaseDoctorDO doctorDO:doctorDOS){
                    String dingDingBody = doctorDO.getName()+"社工您好,"+name+"老人的紧急预警还未处理,管理员提醒您及时处理,请进入朝晖云照护应用查看。";
                    messageUtil.sendDoctorDingdingMessage(doctorDO,null,"text","2",dingDingBody,null,null);
                    messageUtil.createToDoWorkReminder(doctorDO.getId(),baseDoctorDO.getId(),baseDoctorDO.getName(),id,orderType);
                }
            }
        }
    }
    //type   2社工 3助老员 4教师

+ 5 - 3
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/assistance/EmergencyAssistanceService.java

@ -2043,8 +2043,9 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
            if (orderTypes.contains("20")){
                sql += "select '20' as OrderType,ord.id,ord.patient,ord.patient_name patientName,ord.doctor,ord.status,ord.doctor_name," +
                        "'紧急呼叫' as serve_desc,DATE_FORMAT(ord.create_time,'%Y-%m-%d %H:%i:%S') create_time ,case p.sex when 1 then '男' when 2 then '女' else p.sex end as sex," +
                        " TIMESTAMPDIFF(YEAR,p.birthday,now()) as age,ord.order_source orderSource,p.mobile,p.photo,ord.session_id sessionId " +
                        "from base_emergency_assistance_order ord  INNER JOIN base_patient p on ord.patient = p.id  " +
                        " TIMESTAMPDIFF(YEAR,p.birthday,now()) as age,ord.order_source orderSource,p.mobile,p.photo,ord.session_id sessionId,IF(re.id is null,0,1) isReminder " +
                        "from base_emergency_assistance_order ord  INNER JOIN base_patient p on ord.patient = p.id " +
                        " left join base_urge_reminder_record re on re.type='20' and re.order_id=ord.id" +
                        " where 1=1 "+filter +" "+olderFilter.replace("{patient}","p.id");
            }
            if (orderTypes.contains("20")&&orderTypes.contains("22")){
@ -2053,9 +2054,10 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
            if (orderTypes.contains("22")){
                sql += " select  '22' as 'OrderType',ord.id,ord.patient,ord.patient_name patientName,ord.doctor,ord.status,ord.doctor_name," +
                        "ord.serve_desc,DATE_FORMAT(ord.create_time,'%Y-%m-%d %H:%i:%S') create_time ,case p.sex when 1 then '男' when 2 then '女' else p.sex end as sex, " +
                        "TIMESTAMPDIFF(YEAR,p.birthday,now()) as age,ord.order_source orderSource,p.mobile,p.photo,CONCAT(ord.patient,'_22') sessionId  " +
                        "TIMESTAMPDIFF(YEAR,p.birthday,now()) as age,ord.order_source orderSource,p.mobile,p.photo,CONCAT(ord.patient,'_22') sessionId,IF(re.id is null,0,1) isReminder  " +
                        " from base_security_monitoring_order ord " +
                        " INNER JOIN base_patient p on ord.patient = p.id " +
                        " left join base_urge_reminder_record re on re.type='22' and re.order_id=ord.id" +
                        " where 1=1  "+filter +" "+olderFilter.replace("{patient}","p.id");
                if(StringUtils.isNotBlank(svrDesc)){
                    sql += " and ord.serve_desc = '"+svrDesc+"' ";