Bladeren bron

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

 Conflicts:
	common/common-entity/sql/sql记录
wsl 2 jaren geleden
bovenliggende
commit
6c080004bb
20 gewijzigde bestanden met toevoegingen van 860 en 17 verwijderingen
  1. 14 8
      business/base-service/src/main/java/com/yihu/jw/dailyReport/service/DailyReportUploadService.java
  2. 4 0
      business/base-service/src/main/java/com/yihu/jw/hospital/message/dao/SystemMessageDao.java
  3. 0 0
      common/common-entity/sql/2023.sql
  4. 11 0
      common/common-entity/sql记录
  5. 1 1
      common/common-entity/src/main/java/com/yihu/jw/entity/care/assistance/EmergencyAssistanceDO.java
  6. 37 0
      common/common-entity/src/main/java/com/yihu/jw/entity/care/message/UrgeReminderRecordDO.java
  7. 2 1
      common/common-entity/src/main/java/com/yihu/jw/entity/hospital/message/SystemMessageDO.java
  8. 14 1
      common/common-util/src/main/java/com/yihu/jw/util/common/IdCardUtil.java
  9. 31 0
      common/common-util/src/main/java/com/yihu/jw/util/date/DateUtil.java
  10. 1 1
      svr/svr-base/src/main/java/com/yihu/jw/base/service/article/KnowledgeArticleService.java
  11. 13 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/message/UrgeReminderRecordDao.java
  12. 77 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/admin/AdminManageEndpoint.java
  13. 15 1
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/message/DoctorMessageEndpoint.java
  14. 421 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/admin/AdminManageService.java
  15. 10 3
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/assistance/EmergencyAssistanceService.java
  16. 44 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/message/DoctorMessageService.java
  17. 5 1
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/security/SecurityMonitoringOrderService.java
  18. 29 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/util/MessageUtil.java
  19. 39 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/vo/OrgVo.java
  20. 92 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/vo/UserVo.java

+ 14 - 8
business/base-service/src/main/java/com/yihu/jw/dailyReport/service/DailyReportUploadService.java

@ -3693,8 +3693,10 @@ public class DailyReportUploadService {
        }
        Long workDays=0l;
        Long acWorkDays=0l;//用于计算实际工作时长(不包含最后一天)
        if (StringUtils.isNotBlank(startDate)&&StringUtils.isNotBlank(endDate)) {
            workDays = DateUtil.getWorkDays(startDate, endDate);
            acWorkDays = DateUtil.getWorkDaysNotendDay(startDate, endDate);
        }
        String shangchuanSql = " select distinct up.report_date from base_doctor_daily_report_upload up " +
@ -3713,7 +3715,7 @@ public class DailyReportUploadService {
        }
        Double acWorkHours = 0d;
        Long needWorkHours = workDays*members*8;
        Long needWorkHours = acWorkDays*members*8;
        Long urgingTotal=0l;
        String urgingSql = " select count(distinct code) from base_daily_urging_record where create_time>='"+startDate+"' ";
@ -3731,7 +3733,7 @@ public class DailyReportUploadService {
        }
        urgingTotal = jdbcTemplate.queryForObject(urgingSql,Long.class);
        String acWorkHoursSql = " select sum(cast(IFNULL(rd.actual_completion_hour,IFNULL(rd.completion_hour,0)) as decimal(18,2))) 'completion_hour' " +
        String acWorkHoursSql = " select sum(cast(IFNULL(rd.actual_completion_hour,IFNULL(rd.completion_hour,0)) as decimal(18,2)))+SUM(CAST(up.leave_hour as decimal(18,2))) 'completion_hour' " +
                " from base_doctor_daily_report_upload up  " +
                "INNER JOIN base_doctor doc on up.doctor_id = doc.id and doc.del=1 " +
                "Inner JOIN base_doctor_hospital dh on doc.id = dh.doctor_code and dh.del=1 " +
@ -4043,8 +4045,10 @@ public class DailyReportUploadService {
        }
        Long workDays=0l;
        Long acWorkDays=0l;
        if (StringUtils.isNotBlank(startDate)&&StringUtils.isNotBlank(endDate)) {
            workDays = DateUtil.getWorkDays(startDate, endDate);
            acWorkDays = DateUtil.getWorkDaysNotendDay(startDate, endDate);
        }
       /* String shangchuanSql = " select distinct up.report_date from base_doctor_daily_report_upload up " +
@ -4077,7 +4081,7 @@ public class DailyReportUploadService {
        }
        Double acWorkHours = 0d;
        Long needWorkHours = workDays*members*8;
        Long needWorkHours = acWorkDays*members*8;
        Long urgingTotal=0l;
        String urgingSql = " select count(id) from base_daily_urging_record where create_time>='"+startDate+"' and create_time<='"+startDate+"'  ";
@ -4095,7 +4099,7 @@ public class DailyReportUploadService {
        }
        urgingTotal = jdbcTemplate.queryForObject(urgingSql,Long.class);
        String acWorkHoursSql = " select sum(cast(IFNULL(rd.actual_completion_hour,IFNULL(rd.completion_hour,0)) as decimal(18,2))) 'completion_hour' " +
        String acWorkHoursSql = " select sum(cast(IFNULL(rd.actual_completion_hour,IFNULL(rd.completion_hour,0)) as decimal(18,2)))+SUM(CAST(up.leave_hour as decimal(18,2))) 'completion_hour' " +
                " from base_doctor_daily_report_upload up  " +
                "INNER JOIN base_doctor doc on up.doctor_id = doc.id and doc.del=1 " +
                "Inner JOIN base_doctor_hospital dh on doc.id = dh.doctor_code and dh.del=1 " +
@ -4288,8 +4292,10 @@ public class DailyReportUploadService {
            }
            Long workDays=0l;
            Long acWorkDays=0l;//用于计算实际工作时长
            if (StringUtils.isNotBlank(startDate)&&StringUtils.isNotBlank(endDate)) {
                workDays = DateUtil.getWorkDays(startDate, endDate);
                acWorkDays = DateUtil.getWorkDaysNotendDay(startDate, endDate);
            }
            /*String shangchuanSql = " select distinct up.report_date from base_doctor_daily_report_upload up " +
@ -4321,7 +4327,7 @@ public class DailyReportUploadService {
            }
            Double acWorkHours = 0d;
            Long needWorkHours = workDays*members*8;
            Long needWorkHours = acWorkDays*members*8;
            Long urgingTotal=0l;
            String urgingSql = " select count(id) from base_daily_urging_record where create_time>='"+startDate+"' and create_time<='"+startDate+"'  ";
@ -4339,7 +4345,7 @@ public class DailyReportUploadService {
            }
            urgingTotal = jdbcTemplate.queryForObject(urgingSql,Long.class);
            String acWorkHoursSql = " select sum(cast(IFNULL(rd.actual_completion_hour,IFNULL(rd.completion_hour,0)) as decimal(18,2))) 'completion_hour' " +
            String acWorkHoursSql = " select sum(cast(IFNULL(rd.actual_completion_hour,IFNULL(rd.completion_hour,0)) as decimal(18,2)))+SUM(CAST(up.leave_hour as decimal(18,2))) 'completion_hour' " +
                    " from base_doctor_daily_report_upload up  " +
                    "INNER JOIN base_doctor doc on up.doctor_id = doc.id and doc.del=1 " +
                    "Inner JOIN base_doctor_hospital dh on doc.id = dh.doctor_code and dh.del=1 " +
@ -5152,10 +5158,10 @@ public class DailyReportUploadService {
            result.put("unresolvedBugTotal",unresolvedBugTotal);
            sql = " select count(id) 'total','resolve' as 'status' from zt_task " +
                    " where deleted='0' and finishedBy in ('liubing')  " +sqlCondition+
                    " where deleted='0' and finishedBy in ("+str+")  " +sqlCondition+
                    " UNION ALL " +
                    " select count(id) 'total','unresolved' as 'status' from zt_task " +
                    " where deleted='0' and assignedTo in ('liubing') AND `status` in ('wait','doing','pause') "+sqlCondition2;
                    " where deleted='0' and assignedTo in ("+str+") AND `status` in ('wait','doing','pause') "+sqlCondition2;
            params = new HashedMap();
            params.put("sql",sql);
            response = HttpUtils.doGet(url,params);

+ 4 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/message/dao/SystemMessageDao.java

@ -76,4 +76,8 @@ public interface SystemMessageDao extends PagingAndSortingRepository<SystemMessa
    @Modifying
    @Query("update SystemMessageDO m set m.isRead=1 ,m.over=0,m.data=?3 where m.type=?1 and m.relationCode=?2 ")
    void readByTypeAndRelationCode(String type,String relationCode,String data);
    @Modifying
    @Query("update SystemMessageDO s set s.del=0 where s.type=?1 and s.relationCode=?2 ")
    void delMessageByTypeAndRelationCode(String type,String relationCode);
}

+ 0 - 0
common/common-entity/sql/2023.sql


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

@ -2287,6 +2287,17 @@ CREATE TABLE `base_patient_family_pushonoff` (
-- 2022-10-31 ysj
alter table base_patient_wechat add column xopenid varchar(50) default null comment '微信小程序openid';
-- 2022-11-16 ysj
CREATE TABLE `base_urge_reminder_record` (
  `id` varchar(50) NOT NULL,
  `type` varchar(2) DEFAULT NULL,
  `order_id` varchar(50) DEFAULT NULL,
  `create_time` datetime DEFAULT NULL,
  KEY `index1` (`type`,`order_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='工单催促提醒记录';
-- 2022-11-14 wsl

+ 1 - 1
common/common-entity/src/main/java/com/yihu/jw/entity/care/assistance/EmergencyAssistanceDO.java

@ -23,7 +23,7 @@ public class EmergencyAssistanceDO extends UuidIdentityEntityWithOperator {
        ErrorWarning(-2, "已响应"),//误报警
        cancel(-1, "已取消"),
        complete(0, "已完成"),
        apply(1, "申请中");
        apply(1, "预警中");
        private Integer type;
        private String desc;

+ 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;
    }
}

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

@ -23,7 +23,8 @@ public class SystemMessageDO extends UuidIdentityEntity {
     * 体征设备测量系统消息 42
     * 设备离线系统消息 43   推送给家属 社工  助老员
     * 监护确认消息 44
     * 家属紧急预警系统消息 50
     * 工作提醒 45 (对应code 20紧急救助 22安防监护)
     * 家属紧急预警系统消息 50(对应code 20紧急救助 22安防监护)
     * 新生儿在线咨询 850
     * 老人在线咨询 851
     * 老人健康咨询 852

+ 14 - 1
common/common-util/src/main/java/com/yihu/jw/util/common/IdCardUtil.java

@ -239,6 +239,20 @@ public class IdCardUtil {
    public static int getAgeByIdcardOrBirthday(String idcard,Date birthday){
        int age = getAgeForIdcard(idcard);
        if(age<=0&&birthday!=null){
            return getAgeByBirthday(birthday);
        }
        return age;
    }
    public static int getAgeByBirthdayOrIdcard(String idcard,Date birthday){
        int age = getAgeByBirthday(birthday);
        if(age<=0){
            return getAgeForIdcard(idcard);
        }
        return age;
    }
    public static int getAgeByBirthday(Date birthday){
        int age = 0;
        if(birthday!=null){
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(birthday);
            int year = calendar.get(Calendar.YEAR);
@ -250,7 +264,6 @@ public class IdCardUtil {
            if (cal.get(Calendar.MONTH) < (month - 1) || (cal.get(Calendar.MONTH) == (month - 1) && cal.get(Calendar.DATE) < day)) {
                age--;
            }
            return age;
        }
        return age;
    }

+ 31 - 0
common/common-util/src/main/java/com/yihu/jw/util/date/DateUtil.java

@ -1118,6 +1118,37 @@ public class DateUtil {
    }
    /**
     * 获取某一时间端内的工作天数(不包含最后一天)
     * @param start
     * @param end
     * @return
     */
    public static long getWorkDaysNotendDay(String start, String end){
        SimpleDateFormat myFormatter = new SimpleDateFormat(YYYY_MM_DD);
        long day = 0;
        Calendar startCal = Calendar.getInstance();
        Calendar endCal = Calendar.getInstance();
        try {
            startCal.setTime(myFormatter.parse(start));
            endCal.setTime(myFormatter.parse(end));
        } catch (ParseException e) {
            System.out.println("日期格式非法");
            e.printStackTrace();
            return day;
        }
        while (startCal.compareTo(endCal) <0) {
            //工作日+1
            if (!Holiday.isHoliday((startCal.getTime()))){
                day++;
            }
            startCal.add(Calendar.DAY_OF_MONTH, 1);
        }
        return day;
    }
    /**
     * 判断一天是不是工作日
     *

+ 1 - 1
svr/svr-base/src/main/java/com/yihu/jw/base/service/article/KnowledgeArticleService.java

@ -88,7 +88,7 @@ public class KnowledgeArticleService extends BaseJpaService<KnowledgeArticleDict
		String sqlCount = "SELECT count(a.id) from base_news_article a,wlyy_knowledge_article_dict d  " +
				" WHERE a.article_id = d.id ";
		String filter = " ";
		String limit = " limit "+(page-1)*size+","+size;
		String limit = " order by a.sort desc limit "+(page-1)*size+","+size;
		if (StringUtils.isNotBlank(articleName)){
			filter +="and d.title like '%"+articleName+"%'";
		}

+ 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);
}

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

@ -0,0 +1,77 @@
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;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
/**
 *
 * Created by yeshijie on 2022/11/15.
 */
@RestController
@RequestMapping(value = "adminManage")
@Api(value = "管理员-管理端",  tags = {"管理员-管理端"})
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){
        try {
            return ListEnvelop.getSuccess("查询成功",adminManageService.getOrgList(type));
        }catch (Exception e){
            e.printStackTrace();
            return ListEnvelop.getError("查询失败");
        }
    }
    @GetMapping(value = "getUserList")
    @ApiOperation(value = "获取人员列表")
    public PageEnvelop getUserList(@ApiParam(name = "type",value = "类型type 1照护老人 2社工 3助老员 4教师 5幼儿") @RequestParam String type,
                                         @ApiParam(name = "page",value = "页码") @RequestParam Integer page,
                                         @ApiParam(name = "size",value = "每页大小") @RequestParam Integer size,
                                         @ApiParam(name = "name",value = "模糊搜索名字") @RequestParam(name = "name",required = false)String name,
                                   @ApiParam(name = "orgCode",value = "机构id") @RequestParam(name = "orgCode",required = false)String orgCode){
        try {
            return adminManageService.getUserList(type,orgCode,name, page, size);
        }catch (Exception e){
            e.printStackTrace();
            return failedPageEnvelopException2(e);
        }
    }
    @PostMapping(value = "orderUrgeReminder")
    @ApiOperation(value = "工单催促提醒")
    public Envelop orderUrgeReminder(@ApiParam(name = "orderType",value = "类型 20紧急呼叫22安防工单") @RequestParam String orderType,
                                     @ApiParam(name = "id",value = "工单id") @RequestParam String id){
        try {
            adminManageService.orderUrgeReminder(id,orderType);
            return success("提醒成功");
        }catch (Exception e){
            e.printStackTrace();
            return Envelop.getError("提醒失败");
        }
    }
}

+ 15 - 1
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/message/DoctorMessageEndpoint.java

@ -32,7 +32,8 @@ public class DoctorMessageEndpoint extends EnvelopRestEndpoint {
    @GetMapping(value = "messages")
    @ApiOperation("应用消息")
    public ObjEnvelop messages(@ApiParam(name = "type", value = "消息类型 10床位申请,11安全监护,12紧急救助,13体征异常消息,14设备离线通知")
    public ObjEnvelop messages(@ApiParam(name = "type", value = "消息类型 10床位申请,11安全监护,12紧急救助," +
            "13体征异常消息,14设备离线通知,15工作提醒")
                               @RequestParam(value = "type", required = false) String type,
                               @ApiParam(name = "doctor", value = "doctor")
                               @RequestParam(value = "doctor", required = false) String doctor){
@ -127,6 +128,19 @@ public class DoctorMessageEndpoint extends EnvelopRestEndpoint {
        }
    }
    @GetMapping(value = "/getToDoWorkReminder")
    @ApiOperation("获取待办工作提醒")
    public PageEnvelop getToDoWorkReminder(@ApiParam(name="doctor",value = "医生ID,当前查看列表医生",required = true)
                                          @RequestParam(value = "doctor")String doctor,
                                          @RequestParam(value = "page")Integer page,
                                          @RequestParam(value = "pageSize")Integer pageSize){
        try {
            return doctorMessageService.getToDoWorkReminder(doctor,page,pageSize);
        }catch (Exception e){
            return failedPageEnvelopException(e);
        }
    }
    @PostMapping(value = "/updateMessageRead")
    @ApiOperation("已读消息")
    @ObserverRequired

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

@ -0,0 +1,421 @@
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;
import com.yihu.jw.care.util.MessageUtil;
import com.yihu.jw.care.vo.OrgVo;
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;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.utils.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
 * Created by yeshijie on 2022/11/15.
 */
@Service
public class AdminManageService {
    @Autowired
    private JdbcTemplate jdbcTemplate;
    @Resource
    private MessageUtil messageUtil;
    @Resource
    private EmergencyAssistanceDao emergencyAssistanceDao;
    @Resource
    private SecurityMonitoringOrderDao securityMonitoringOrderDao;
    @Resource
    private BaseTeamMemberDao baseTeamMemberDao;
    @Resource
    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){
        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教师
    //2. 社区医院3.  养老机构 4.  托育机构
    public List<Map<String,Object>> getOrgList(String type){
        if("2".equals(type)){
            String sql = "SELECT distinct t.name orgName,t.org_code orgCode" +
                    " from base_team t,base_team_member tm" +
                    "  WHERE  t.id =tm.team_code and t.del=1 and tm.del = '1' ";
            return jdbcTemplate.queryForList(sql);
        }else {
            String filter = "";
            String sqltmp = "SELECT GROUP_CONCAT(dict_code) orgCodes from wlyy_hospital_sys_dict WHERE dict_name = 'jkzl_older' ";
            List<Map<String,Object>> listtmp =  jdbcTemplate.queryForList(sqltmp);
            if(listtmp.size()>0){
                String orgCodes = String.valueOf(listtmp.get(0).get("orgCodes"));
                orgCodes = orgCodes.replaceAll(",","','");
                filter = " and a.id not in ('"+orgCodes+"')";
            }
            //2社工, 3教师,4助老员
            String sql = "select code orgCode,name orgName from base_org a where a.del=1 and a.type="+type +filter;
            return jdbcTemplate.queryForList(sql);
        }
    }
    /**
     * 管理端通讯录
     * type 1照护老人 2社工 3助老员 4教师 5幼儿
     */
    public PageEnvelop getUserList(String type,String orgCode, String name, Integer page, Integer size){
        PageEnvelop envelop = new PageEnvelop();
        String limit = " limit "+(page-1)*size+","+size;
        switch (type){
            case "1":
                envelop = getOlderList(name, limit);
                break;
            case "2":
                envelop = getSocialWorkerList(name,orgCode, limit);
                break;
            case "3":
                envelop = getHelperList(name,orgCode, limit);
                break;
            case "4":
                envelop = getTeacherList(name,orgCode, limit);
                break;
            case "5":
                envelop = getChildList(name, limit);
                break;
        }
        envelop.setPageSize(size);
        envelop.setCurrPage(page);
        return envelop;
    }
    public PageEnvelop getOlderList(String name,String limit){
        String filter = "";
        String sqltmp = "SELECT GROUP_CONCAT(dict_code) orgCodes from wlyy_hospital_sys_dict WHERE dict_name = 'jkzl_older' ";
        List<Map<String,Object>> listtmp =  jdbcTemplate.queryForList(sqltmp);
        if(listtmp.size()>0){
            String orgCodes = String.valueOf(listtmp.get(0).get("orgCodes"));
            orgCodes = orgCodes.replaceAll(",","','");
            filter = " and a.id not in ('"+orgCodes+"')";
        }
        List<Map<String,Object>> list = findOld(name,null,limit,filter);
        Long count = findOldTotal(name,null,filter);
        return PageEnvelop.getSuccessListWithPage("查找成功",list,0,0,count);
    }
    public List<Map<String,Object>> findOld(String name,String residentialArea,String limit,String filter1){
        String sql = "SELECT DISTINCT a.id,a.name,a.photo,a.idcard,CAST(IFNULL(a.birthday,'') AS char ) birthday,a.residential_area residentialArea,a.sex " +
                ",a.ykt_id yktId, case 1 WHEN openid is not null then 1 WHEN a.on_line = '1' then 1 ELSE 0 end as online,IFNULL(sign_status,0) signStatus from base_patient a " +
                " WHERE a.archive_type = 1 and a.del = '1'   ";
        sql+=" and (a.sign_status=1 or (EXISTS (select 1 from wlyy_patient_device pd where pd.user = a.id and pd.del=0))) ";
        if(!StringUtil.isBlank(name)){
            sql+= " and name like '%"+name+"%' ";
        }
        if(!StringUtil.isBlank(residentialArea)){
            sql+= " and residential_area = '"+residentialArea+"' ";
        }
        sql += filter1;
        sql += " GROUP BY a.id,a.name,a.photo,a.idcard,a.birthday,a.residential_area,a.sex,a.ykt_id,online,signStatus ";
        sql += " ORDER BY online desc,a.ykt_id desc,signStatus desc";
        sql += limit;
        List<Map<String,Object>>  list = jdbcTemplate.queryForList(sql);
        for (Map<String,Object> map:list){
            String id = map.get("id")+"";
            String familySql = "select t2.id,t2.name,t2.sex,t2.mobile,t2.idcard,if(t2.openid is null,0,1) online,t2.photo,t1.family_relation " +
                    "from base_patient t2 left JOIN base_patient_family_member t1 on t1.family_member = t2.id " +
                    "where t2.archive_type=3 and t2.del=1 and t1.patient='"+id+"'";
            map.put("family",jdbcTemplate.queryForList(familySql));
        }
        return list;
    }
    public Long findOldTotal(String name,String residentialArea,String filter){
        String sql = "SELECT count(DISTINCT a.id) from base_patient a  WHERE a.archive_type = 1 and a.del = '1' ";
        sql+=" and (a.sign_status=1 or (EXISTS (select 1 from wlyy_patient_device pd where pd.user = a.id and pd.del=0))) ";
        if(!StringUtil.isBlank(name)){
            sql+= " and name like '%"+name+"%' ";
        }
        if(!StringUtil.isBlank(residentialArea)){
            sql+= " and residential_area = '"+residentialArea+"' ";
        }
        sql += filter;
        return jdbcTemplate.queryForObject(sql,Long.class);
    }
    public PageEnvelop getSocialWorkerList(String name,String orgCode,String limit){
        String filter = "";
        if(!StringUtil.isBlank(orgCode)){
            filter = " and t.org_code = '"+orgCode+"'";
        }else {
            String sqltmp = "SELECT GROUP_CONCAT(dict_code) orgCodes from wlyy_hospital_sys_dict WHERE dict_name = 'jkzl_org' ";
            List<Map<String,Object>> listtmp =  jdbcTemplate.queryForList(sqltmp);
            if(listtmp.size()>0){
                String orgCodes = String.valueOf(listtmp.get(0).get("orgCodes"));
                orgCodes = orgCodes.replaceAll(",","','");
                filter = " and t.org_code not in ('"+orgCodes+"')";
            }
        }
        List<OrgVo> list = findSocialWorker(name,limit,filter);
        Long count = findSocialWorkerTotal(name,filter);
        return PageEnvelop.getSuccessListWithPage("查找成功",list,0,0,count);
    }
    public List<OrgVo> findSocialWorker(String name,String limit,String fileter){
        String sql = "SELECT a.id,a.name,a.photo,a.sex,IFNULL(a.on_line,0) online,a.mobile,t.name orgName,t.org_code orgCode" +
                " from base_doctor a,base_team t,base_team_member tm" +
                "  WHERE a.id=tm.doctor_code and a.doctor_level = 2 and t.id =tm.team_code and t.del=1 and a.del = '1' and tm.del = '1' ";
        if(!StringUtil.isBlank(name)){
            sql+= " and a.name like '%"+name+"%' ";
        }
        sql += fileter;
        sql += " ORDER BY online desc";
        sql+=limit;
        List<UserVo> list = jdbcTemplate.query(sql,new BeanPropertyRowMapper<>(UserVo.class));
        Map<String,List<UserVo>> userMap = list.stream().collect(Collectors.groupingBy(UserVo::getOrgCode));
        Map<String,String> orgMap = list.stream().collect(Collectors.toMap(UserVo::getOrgCode, UserVo::getOrgName,(key1 , key2)-> key2 ));
        List<OrgVo> orgVoList = new ArrayList<>();
        for (String key:orgMap.keySet()){
            String orgName = orgMap.get(key);
            OrgVo orgVo = new OrgVo();
            orgVo.setOrgName(orgName);
            orgVo.setOrgCode(key);
            List<UserVo> temList = userMap.get(key);
            orgVo.setUserList(temList);
            orgVoList.add(orgVo);
        }
        return orgVoList;
    }
    public Long findSocialWorkerTotal(String name,String filter){
        String sql = "SELECT count(a.id) from base_doctor a,base_team t,base_team_member tm " +
                "WHERE a.id=tm.doctor_code and a.doctor_level = 2 and t.id =tm.team_code and t.del=1 and a.del = '1' and tm.del = '1'  ";
        if(!StringUtil.isBlank(name)){
            sql+= " and a.name like '%"+name+"%' ";
        }
        sql += filter;
        return jdbcTemplate.queryForObject(sql,Long.class);
    }
    public PageEnvelop getHelperList(String name,String orgCode,String limit){
        String filter = "";
        if(StringUtil.isBlank(orgCode)){
            String sqltmp = "SELECT GROUP_CONCAT(dict_code) orgCodes from wlyy_hospital_sys_dict WHERE dict_name = 'jkzl_org' ";
            List<Map<String,Object>> listtmp =  jdbcTemplate.queryForList(sqltmp);
            if(listtmp.size()>0){
                String orgCodes = String.valueOf(listtmp.get(0).get("orgCodes"));
                orgCodes = orgCodes.replaceAll(",","','");
                filter = " and h.org_code not in ('"+orgCodes+"')";
            }
        }else {
            filter = " and h.org_code ='"+orgCode+"' ";
        }
        List<OrgVo> list = findHelper(name,limit,filter);
        Long count = findHelperTotal(name,filter);
        return PageEnvelop.getSuccessListWithPage("查找成功",list,0,0,count);
    }
    public List<OrgVo> findHelper(String name,String limit,String fileter){
        String sql = "SELECT a.id,a.name,a.photo,a.sex,IFNULL(a.on_line,0) online,a.mobile,h.org_name orgName,h.org_code orgCode from base_doctor a,base_doctor_hospital h" +
                "  WHERE a.id=h.doctor_code and a.doctor_level = 4 and a.del = '1' and h.del = '1' ";
        if(!StringUtil.isBlank(name)){
            sql+= " and a.name like '%"+name+"%' ";
        }
        sql += fileter;
        sql += " ORDER BY online desc";
        sql+=limit;
        List<UserVo> list = jdbcTemplate.query(sql,new BeanPropertyRowMapper<>(UserVo.class));
        Map<String,List<UserVo>> userMap = list.stream().collect(Collectors.groupingBy(UserVo::getOrgCode));
        Map<String,String> orgMap = list.stream().collect(Collectors.toMap(UserVo::getOrgCode, UserVo::getOrgName,(key1 , key2)-> key2 ));
        List<OrgVo> orgVoList = new ArrayList<>();
        for (String key:orgMap.keySet()){
            String orgName = orgMap.get(key);
            OrgVo orgVo = new OrgVo();
            orgVo.setOrgName(orgName);
            orgVo.setOrgCode(key);
            List<UserVo> temList = userMap.get(key);
            orgVo.setUserList(temList);
            orgVoList.add(orgVo);
        }
        return orgVoList;
    }
    public Long findHelperTotal(String name,String filter){
        String sql = "SELECT count(a.id) from base_doctor a,base_doctor_hospital h WHERE  a.id=h.doctor_code and a.doctor_level = 4 and a.del = '1' and h.del = '1'  ";
        if(!StringUtil.isBlank(name)){
            sql+= " and name like '%"+name+"%' ";
        }
        sql += filter;
        return jdbcTemplate.queryForObject(sql,Long.class);
    }
    public PageEnvelop getTeacherList(String name,String orgCode,String limit){
        String filter = "";
        if(StringUtil.isBlank(orgCode)){
            String sqltmp = "SELECT GROUP_CONCAT(dict_code) orgCodes from wlyy_hospital_sys_dict WHERE dict_name = 'jkzl_org' ";
            List<Map<String,Object>> listtmp =  jdbcTemplate.queryForList(sqltmp);
            if(listtmp.size()>0){
                String orgCodes = String.valueOf(listtmp.get(0).get("orgCodes"));
                orgCodes = orgCodes.replaceAll(",","','");
                filter = " and h.org_code not in ('"+orgCodes+"')";
            }
        }else {
            filter = " and h.org_code = '"+orgCode+"' ";
        }
        List<OrgVo> list = findTeacherper(name,limit,filter);
        Long count = findTeacherTotal(name,filter);
        return PageEnvelop.getSuccessListWithPage("查找成功",list,0,0,count);
    }
    public List<OrgVo> findTeacherper(String name,String limit,String fileter){
        String sql = "SELECT a.id,a.name,a.photo,a.sex,IFNULL(a.on_line,0) online,a.mobile,h.org_name orgName,h.org_code orgCode from base_doctor a,base_doctor_hospital h" +
                "  WHERE a.id=h.doctor_code and a.doctor_level = 3 and a.del = '1' and h.del = '1' ";
        if(!StringUtil.isBlank(name)){
            sql+= " and a.name like '%"+name+"%' ";
        }
        sql += fileter;
        sql += " ORDER BY online desc";
        sql+=limit;
        List<UserVo> list = jdbcTemplate.query(sql,new BeanPropertyRowMapper<>(UserVo.class));
        Map<String,List<UserVo>> userMap = list.stream().collect(Collectors.groupingBy(UserVo::getOrgCode));
        Map<String,String> orgMap = list.stream().collect(Collectors.toMap(UserVo::getOrgCode, UserVo::getOrgName,(key1 , key2)-> key2 ));
        List<OrgVo> orgVoList = new ArrayList<>();
        for (String key:orgMap.keySet()){
            String orgName = orgMap.get(key);
            OrgVo orgVo = new OrgVo();
            orgVo.setOrgName(orgName);
            orgVo.setOrgCode(key);
            List<UserVo> temList = userMap.get(key);
            orgVo.setUserList(temList);
            orgVoList.add(orgVo);
        }
        return orgVoList;
    }
    public Long findTeacherTotal(String name,String filter){
        String sql = "SELECT count(a.id) from base_doctor a,base_doctor_hospital h WHERE  a.id=h.doctor_code and a.doctor_level = 3 and a.del = '1' and h.del = '1'  ";
        if(!StringUtil.isBlank(name)){
            sql+= " and name like '%"+name+"%' ";
        }
        sql += filter;
        return jdbcTemplate.queryForObject(sql,Long.class);
    }
    public PageEnvelop getChildList(String name,String limit){
        String filter = "";
        String sqltmp = "SELECT GROUP_CONCAT(dict_code) orgCodes from wlyy_hospital_sys_dict WHERE dict_name = 'jkzl_child' ";
        List<Map<String,Object>> listtmp =  jdbcTemplate.queryForList(sqltmp);
        if(listtmp.size()>0){
            String orgCodes = String.valueOf(listtmp.get(0).get("orgCodes"));
            orgCodes = orgCodes.replaceAll(",","','");
            filter = " and id not in ('"+orgCodes+"')";
        }
        List<Map<String,Object>> list = findChild(name,null,limit,filter);
        Long count = findChildTotal(name,null,filter);
        return PageEnvelop.getSuccessListWithPage("查找成功",list,0,0,count);
    }
    public List<Map<String,Object>> findChild(String name,String residentialArea,String limit,String filter1){
        String sql = "SELECT id,name,photo,mobile,idcard,sex,birthday  from base_patient WHERE archive_type = 2 and del = '1' ";
        if(!StringUtil.isBlank(name)){
            sql+= " and name like '%"+name+"%' ";
        }
        if(!StringUtil.isBlank(residentialArea)){
            sql+= " and residential_area = '"+residentialArea+"' ";
        }
        sql += filter1;
        sql += " order by id desc";
        sql+=limit;
        List<Map<String,Object>>  list = jdbcTemplate.queryForList(sql);
        for (Map<String,Object> map:list){
            String paientId = map.get("id").toString();
            String idcardNo = map.get("idcard") + "";
            if(map.get("birthday")!=null){
                Date birthday = DateUtil.strToDate(map.get("birthday").toString());
                Integer age = IdCardUtil.getAgeByIdcardOrBirthday(idcardNo,birthday);
                map.put("age",age);
            }else {
                Integer age = IdCardUtil.getAgeForIdcard(idcardNo);
                map.put("age",age);
            }
        }
        return list;
    }
    public Long findChildTotal(String name,String residentialArea,String filter){
        String sql = "SELECT count(id) from base_patient WHERE archive_type = 2 and del = '1' ";
        if(!StringUtil.isBlank(name)){
            sql+= " and name like '%"+name+"%' ";
        }
        if(!StringUtil.isBlank(residentialArea)){
            sql+= " and residential_area = '"+residentialArea+"' ";
        }
        sql += filter;
        return jdbcTemplate.queryForObject(sql,Long.class);
    }
}

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

@ -944,6 +944,8 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
        logTypeDO.setContent("已取消");
        logTypeDO.setType(6);
        logDao.save(logTypeDO);
        systemMessageDao.delMessageByTypeAndRelationCode("45",orderId);//删除医生工作提醒消息
        return result;
    }
@ -1065,6 +1067,8 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
        imUtill.sendPcManageMessageToPc("cloudCare_pcManage",message.toString());
        emergencyAssistanceDao.save(assistanceDO);
        systemMessageDao.delMessageByTypeAndRelationCode("45",orderId);//删除医生工作提醒消息
        return getOrderDetail(orderId,null);
    }
@ -1322,6 +1326,7 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
            return result;
        }
        emergencyAssistanceDao.save(assistanceDO);
        systemMessageDao.delMessageByTypeAndRelationCode("45",orderId);//删除医生工作提醒消息
        //工单完成 给pc管理端推送完成信息
        JSONObject message = new JSONObject();
@ -2038,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")){
@ -2048,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+"' ";

+ 44 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/message/DoctorMessageService.java

@ -26,6 +26,7 @@ import com.yihu.jw.restmodel.ResponseContant;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.restmodel.web.PageEnvelop;
import com.yihu.jw.util.common.IdCardUtil;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.util.entity.EntityUtils;
import org.apache.commons.lang3.StringUtils;
@ -178,6 +179,13 @@ public class DoctorMessageService {
            tmpObj = jdbcTemplate.queryForMap(sql);
            result.put("deviceLost",tmpObj);
        }
        if (typeNull||type.equals("15")){//工作提醒
            String sql = " select count(1) as 'all',type,DATE_FORMAT(create_time,'%Y-%m-%d %H:%i:%S') create_time from base_system_message " +
                    " where type='45' and del=1 and receiver='"+doctor+"' order by create_time desc ";
            Map<String,Object> tmpObj = new HashMap<>();
            tmpObj = jdbcTemplate.queryForMap(sql);
            result.put("toDoWorkReminder",tmpObj);
        }
        return result;
    }
@ -362,6 +370,42 @@ public class DoctorMessageService {
        return maps;
    }
    public PageEnvelop<Map<String,Object>> getToDoWorkReminder(String doctor,Integer page,Integer pageSize){
        page = page>0?page-1:0;
        String sql = " select mess.id,p.id patientCode,p.name,p.idcard,p.birthday,p.sex,p.photo,residential_area,p.mobile,mess.relation_code relationCode, " +
                " '紧急呼叫' as serve_desc,DATE_FORMAT(ord.create_time,'%Y-%m-%d %H:%i:%S') create_time,ord.`status`,mess.`code` orderType " +
                "  from base_system_message mess INNER JOIN base_emergency_assistance_order ord on mess.relation_code = ord.id " +
                " INNER JOIN base_patient p on p.id = ord.patient " +
                " where mess.del=1 and mess.type=45 and mess.code=20 and mess.receiver='"+doctor+"'  " +
                "union ALL " +
                "select mess.id,p.id patientCode,p.name,p.idcard,p.birthday,p.sex,p.photo,residential_area,p.mobile,mess.relation_code relationCode, " +
                "ord.serve_desc as serve_desc,DATE_FORMAT(ord.create_time,'%Y-%m-%d %H:%i:%S') create_time,ord.`status`, " +
                " mess.`code` orderType  " +
                " from base_system_message mess INNER JOIN base_security_monitoring_order ord on mess.relation_code = ord.id " +
                " INNER JOIN base_patient p on p.id = ord.patient " +
                " where mess.del=1 and mess.type=45 and mess.code=22 and mess.receiver='"+doctor+"' " +
                "ORDER BY create_time desc,id desc limit "+page*pageSize+","+pageSize;
        List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
        String sqlCount = " select count(mess.id) total " +
                "  from base_system_message mess INNER JOIN base_emergency_assistance_order ord on mess.relation_code = ord.id " +
                " INNER JOIN base_patient p on p.id = ord.patient " +
                " where mess.del=1 and mess.type=45 and mess.code=20 and mess.receiver='"+doctor+"'  " +
                "union ALL " +
                "select count(mess.id) total " +
                " from base_system_message mess INNER JOIN base_security_monitoring_order ord on mess.relation_code = ord.id " +
                " INNER JOIN base_patient p on p.id = ord.patient " +
                " where mess.del=1 and mess.type=45 and mess.code=22 and mess.receiver='"+doctor+"' " ;
        List<Map<String,Object>> totalList = jdbcTemplate.queryForList(sqlCount);
        Long total = totalList.stream().mapToLong(e->Long.valueOf(e.get("total").toString())).sum();
        for (Map<String,Object>tmp:list){
            String idcard = null==tmp.get("idcard")?"":tmp.get("idcard").toString();
            String birthday = null==tmp.get("birthday")?"":tmp.get("birthday").toString();
            Integer age = IdCardUtil.getAgeByIdcardOrBirthday(idcard,DateUtil.strToDate(birthday));
            tmp.put("age",age);
        }
        return PageEnvelop.getSuccessListWithPage("查询成功",list,page,pageSize,total);
    }
    public Integer todoworkTotal(String doctor){
        Integer total=0;
        BaseDoctorDO  doctorDO = baseDoctorDao.findById(doctor);

+ 5 - 1
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/security/SecurityMonitoringOrderService.java

@ -653,6 +653,8 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
            return result;
        }
        securityMonitoringOrderDao.save(orderDO);
        systemMessageDao.delMessageByTypeAndRelationCode("45",orderId);//删除医生工作提醒消息
        //完成工单向pc管理端发送消息
        JSONObject message = new JSONObject();
@ -1210,6 +1212,7 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
        orderDO.setCancelReason(reason);
        orderDO.setStatus(SecurityMonitoringOrderDO.Status.cancel.getType());
        this.save(orderDO);
        systemMessageDao.delMessageByTypeAndRelationCode("45",orderId);//删除医生工作提醒消息
        if (type == SecurityMonitoringOrderDO.CancelType.patient.getType()) {                   //居民取消,消息列表也应该不显示
            messageUtil.updateSecurityMonitoringOrderMessage(orderDO, new String[]{"602", "603"}, "patientCancel");
@ -1402,6 +1405,7 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
        one.setStatus(SecurityMonitoringOrderDO.Status.complete.getType());//已完成
        one.setConclusionStatus(2);
        securityMonitoringOrderDao.save(one);
        systemMessageDao.delMessageByTypeAndRelationCode("45",orderId);//删除医生工作提醒消息
        List<BaseEmergencyWarnLogDO> byOrderIdByType = logDao.findByOrderIdByType(orderId);
        if (byOrderIdByType.size()==0){
@ -1496,7 +1500,7 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
        one.setStatus(0);
        one.setUpdateTime(new Date());
        securityMonitoringOrderDao.save(one);
        systemMessageDao.delMessageByTypeAndRelationCode("45",orderId);//删除医生工作提醒消息
        return getSecurityOrderDetail(orderId, null);
    }

+ 29 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/util/MessageUtil.java

@ -530,4 +530,33 @@ public class MessageUtil {
        }
    }
    /**
     * 创建医生工作提醒
     * @param doctor
     * @param sender
     * @param senderName
     * @param relationCode 紧急救助/安防工单id
     * @param code 20紧急救助 22安防工单
     */
    public void createToDoWorkReminder(String doctor,String sender,String senderName,String relationCode,String code){
        BaseDoctorDO doctorDO = baseDoctorDao.findById(doctor);
        if (null!=doctorDO){
            SystemMessageDO messageDO = new SystemMessageDO();
            messageDO.setTitle("医生工作提醒");
            messageDO.setType("45");
            messageDO.setSender(sender);
            messageDO.setSenderName(senderName);
            messageDO.setRelationCode(relationCode);
            messageDO.setReceiver(doctorDO.getId());
            messageDO.setReceiverName(doctorDO.getName());
            messageDO.setOver("");
            messageDO.setData("");
            messageDO.setDel("1");
            messageDO.setCreateTime(new Date());
            messageDO.setCode(code);
            systemMessageDao.save(messageDO);
        }
        //todo 向社工浙政钉发送消息
    }
}

+ 39 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/vo/OrgVo.java

@ -0,0 +1,39 @@
package com.yihu.jw.care.vo;
import java.io.Serializable;
import java.util.List;
/**
 * Created by yeshijie on 2022/11/15.
 */
public class OrgVo implements Serializable {
    private String orgCode;
    private String orgName;
    private List<UserVo> userList;
    public String getOrgCode() {
        return orgCode;
    }
    public void setOrgCode(String orgCode) {
        this.orgCode = orgCode;
    }
    public String getOrgName() {
        return orgName;
    }
    public void setOrgName(String orgName) {
        this.orgName = orgName;
    }
    public List<UserVo> getUserList() {
        return userList;
    }
    public void setUserList(List<UserVo> userList) {
        this.userList = userList;
    }
}

+ 92 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/vo/UserVo.java

@ -0,0 +1,92 @@
package com.yihu.jw.care.vo;
import java.io.Serializable;
/**
 * Created by yeshijie on 2022/11/15.
 */
public class UserVo implements Serializable {
    private String id;
    private String name;
    private String photo;
    private String sex;
    private String mobile;
    private String idcard;
    private String online;
    private String orgCode;
    private String orgName;
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPhoto() {
        return photo;
    }
    public void setPhoto(String photo) {
        this.photo = photo;
    }
    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 getIdcard() {
        return idcard;
    }
    public void setIdcard(String idcard) {
        this.idcard = idcard;
    }
    public String getOnline() {
        return online;
    }
    public void setOnline(String online) {
        this.online = online;
    }
    public String getOrgCode() {
        return orgCode;
    }
    public void setOrgCode(String orgCode) {
        this.orgCode = orgCode;
    }
    public String getOrgName() {
        return orgName;
    }
    public void setOrgName(String orgName) {
        this.orgName = orgName;
    }
}