Sfoglia il codice sorgente

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

LAPTOP-KB9HII50\70708 2 anni fa
parent
commit
f85902e50d

+ 2 - 0
business/base-service/src/main/java/com/yihu/jw/dailyReport/dao/BaseDailyReportItemDao.java

@ -6,4 +6,6 @@ import org.springframework.data.repository.PagingAndSortingRepository;
public interface BaseDailyReportItemDao extends PagingAndSortingRepository<BaseDailyReportItemDO,String>,
        JpaSpecificationExecutor<BaseDailyReportItemDO> {
    BaseDailyReportItemDO findByTitleAndDeptAndProjectCode(String title,String dept,String projectCode);
}

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

@ -16,4 +16,7 @@ public interface BaseDailyReportItemMembersDao extends PagingAndSortingRepositor
    @Modifying
    void deleteAllByReportItemId(String reportItemId);
    @Query("select m from BaseDailyReportItemMembersDO m where m.del=1 and m.reportItemId=?1 and m.userId=?2 ")
    BaseDailyReportItemMembersDO findMembers(String itemId,String doctor);
}

+ 179 - 65
business/base-service/src/main/java/com/yihu/jw/dailyReport/service/DailyReportUploadService.java

@ -2,7 +2,6 @@ package com.yihu.jw.dailyReport.service;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.sun.org.apache.bcel.internal.generic.IF_ACMPEQ;
import com.yihu.jw.dailyReport.dao.*;
import com.yihu.jw.doctor.dao.BaseDoctorDao;
import com.yihu.jw.doctor.dao.BaseDoctorHospitalDao;
@ -10,9 +9,6 @@ import com.yihu.jw.doctor.dao.BaseDoctorRoleDao;
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.wx.WxAccessTokenDO;
import com.yihu.jw.entity.base.wx.WxPushLogDO;
import com.yihu.jw.entity.base.wx.WxTemplateConfigDO;
import com.yihu.jw.entity.dailyReport.*;
import com.yihu.jw.entity.healthUpload.BaseDoctorMemberDO;
import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
@ -31,20 +27,12 @@ import com.yihu.jw.wechat.dao.WxTemplateConfigDao;
import com.yihu.jw.wechat.enterprise.EnterpriseService;
import com.yihu.jw.wechat.enterprise.dao.WxEnterpriseUserDao;
import com.yihu.jw.wechat.service.WxAccessTokenService;
import jxl.Workbook;
import jxl.write.*;
import org.apache.commons.collections.map.HashedMap;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.util.WorkbookUtil;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
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.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
@ -368,31 +356,63 @@ public class DailyReportUploadService {
        dailyReportUploadDO.setLeaveHour(leaveHour);
        dailyReportUploadDO.setTotalHour(totalHour);
        dailyReportUploadDO = dailyReportUploadDao.save(dailyReportUploadDO);
        if (doctorHospitalDOS != null && doctorHospitalDOS.size() != 0) {
        }else {
            throw new Exception("您不是部门人员,无法上传日报信息");
        }
        for (BaseDailyReportDetailDO tmp :detailDOList){
            tmp.setReportId(dailyReportUploadDO.getId());
            if (tmp.isReportItemFlag()==true){//新则自建关联项目
                String title = tmp.getReportItemTitle();
                BaseDailyReportItemDO reportItemDO = new BaseDailyReportItemDO();
                reportItemDO.setState(0);
                reportItemDO.setDel(1);
                reportItemDO.setTitle(title);
                reportItemDO.setContent(tmp.getReportContent());
                reportItemDO.setBeginTime(null);
                reportItemDO.setEndTime(null);
                reportItemDO.setCreateTime(new Date());
                reportItemDO.setCreateUser(doctorId);
                reportItemDO.setCreateUserName(doctorDO.getName());
                reportItemDO = reportItemDao.save(reportItemDO);
                BaseDailyReportItemMembersDO membersDOTmp = new BaseDailyReportItemMembersDO();
                membersDOTmp.setReportItemId(reportItemDO.getId());
                membersDOTmp.setUserId(doctorId);
                membersDOTmp.setUserName(doctorDO.getName());
                membersDOTmp.setDel(1);
                reportItemMembersDao.save(membersDOTmp);
                BaseDailyReportItemDO reportItemDO = reportItemDao.findByTitleAndDeptAndProjectCode(title,doctorHospitalDOS.get(0).getDeptCode(),tmp.getProjectCode());
                if (null!=reportItemDO){
                    BaseDailyReportItemMembersDO membersDOTmp = reportItemMembersDao.findMembers(reportItemDO.getId(),doctorId);
                    if (null==membersDOTmp){
                        membersDOTmp = new BaseDailyReportItemMembersDO();
                        membersDOTmp.setReportItemId(reportItemDO.getId());
                        membersDOTmp.setUserId(doctorId);
                        membersDOTmp.setUserName(doctorDO.getName());
                        membersDOTmp.setDel(1);
                        reportItemMembersDao.save(membersDOTmp);
                    }
                }else {
                    reportItemDO = new BaseDailyReportItemDO();
                    reportItemDO.setState(0);
                    reportItemDO.setDel(1);
                    reportItemDO.setProjectCode(tmp.getProjectCode());
                    reportItemDO.setProjectName(tmp.getProjectName());
                    reportItemDO.setTitle(title);
                    reportItemDO.setContent(tmp.getReportContent());
                    reportItemDO.setBeginTime(null);
                    reportItemDO.setEndTime(null);
                    reportItemDO.setCreateTime(new Date());
                    reportItemDO.setCreateUser(doctorId);
                    reportItemDO.setCreateUserName(doctorDO.getName());
                    if (doctorHospitalDOS != null && doctorHospitalDOS.size() != 0) {
                        reportItemDO.setDept(doctorHospitalDOS.get(0).getDeptCode());
                        reportItemDO.setDeptName(doctorHospitalDOS.get(0).getDeptName());
                    }
                    reportItemDO = reportItemDao.save(reportItemDO);
                    BaseDailyReportItemMembersDO membersDOTmp = new BaseDailyReportItemMembersDO();
                    membersDOTmp.setReportItemId(reportItemDO.getId());
                    membersDOTmp.setUserId(doctorId);
                    membersDOTmp.setUserName(doctorDO.getName());
                    membersDOTmp.setDel(1);
                    reportItemMembersDao.save(membersDOTmp);
                }
                tmp.setReportItemId(reportItemDO.getId());
                tmp.setReportItemName(title);
            }
            BaseDailyReportItemDO reportItemDO = reportItemDao.findOne(tmp.getReportItemId());
            if (null!=reportItemDO){
                if (StringUtils.isBlank(reportItemDO.getAcBeginTime())){
                    reportItemDO.setAcBeginTime(DateUtil.getStringDate());
                    reportItemDao.save(reportItemDO);
                }
            }
        }
        if (detailDOList.size()>0){
            reportDetailDao.save(detailDOList);
@ -949,7 +969,7 @@ public class DailyReportUploadService {
        logger.info("deptSql=="+deptSql);
        List<Map<String, Object>> mapList = jdbcTemplate.queryForList(deptSql);
        for (Map<String,Object> deptMap:mapList){
            String day = DateUtil.getTwoDay(endDate, startDate);
            String day = DateUtil.getWorkDays(startDate, endDate)+"";
            Integer doctorTotal = 0;
            Integer total=0;
            Integer yishangbaoTotal=0;
@ -1542,7 +1562,7 @@ public class DailyReportUploadService {
            startDate = DateUtil.getFristDayOfMonth();
            endDate = DateUtil.getLastDayOfMonth();
        }
        String day = DateUtil.getTwoDay(endDate, startDate);
        String day = DateUtil.getWorkDays(startDate, endDate)+"";
        String doctorSql = " select COUNT(1) as 'total' from base_doctor d where d.del=1 and d.identity=0  ";
        Integer total = 0;//总人次
        String sqlCondition = "";
@ -1692,7 +1712,7 @@ public class DailyReportUploadService {
     */
    public JSONObject selectHeaderTotal(String dept, String idType, String status, String state, String startDate, String endDate, String name) {
        JSONObject object = new JSONObject();
        String day = DateUtil.getTwoDay(endDate, startDate);
        String day = DateUtil.getWorkDays(startDate, endDate)+"";
        String doctorSql = " select COUNT(1) as \"total\" from base_doctor d where d.del=1 and d.identity=0 ";
        Integer total = 0;//总人次
@ -1839,7 +1859,7 @@ public class DailyReportUploadService {
     * 新增日报项目
     */
    @Transactional(rollbackFor = Exception.class)
    public BaseDailyReportItemDO newReportItem(String user,String title,String content,String begin_time,String end_time,Integer member_type,String members) throws Exception {
    public BaseDailyReportItemDO newReportItem(String user,String projectCode,String projectName,String title,String content,String begin_time,String end_time,Integer member_type,String members) throws Exception {
        String sql = " select * from base_doctor_role where doctor_code='"+user+"' ";
        List<Map<String,Object>> userRoles = jdbcTemplate.queryForList(sql);
        if (userRoles.size()==0){
@ -1849,9 +1869,22 @@ public class DailyReportUploadService {
        if (null==doctorDO){
            throw new Exception("用户不存在无权操作");
        }
        BaseDailyReportItemDO reportItemDO = new BaseDailyReportItemDO();
        List<BaseDoctorHospitalDO> doctorHospitalDOs = baseDoctorHospitalDao.findByDoctorCode(user);
        if (null !=doctorHospitalDOs&&doctorHospitalDOs.size()!=0){
        }else {
            throw new Exception("您不是部门人员,无法创建");
        }
        BaseDailyReportItemDO reportItemDO = reportItemDao.findByTitleAndDeptAndProjectCode(title,doctorHospitalDOs.get(0).getDeptCode(),projectCode);
        if (reportItemDO!=null){
            throw new Exception("该项目已存在,不可创建");
        }else {
             reportItemDO = new BaseDailyReportItemDO();
        }
        reportItemDO.setState(0);
        reportItemDO.setDel(1);
        reportItemDO.setProjectCode(projectCode);
        reportItemDO.setProjectName(projectName);
        reportItemDO.setTitle(title);
        reportItemDO.setContent(content);
        reportItemDO.setBeginTime(begin_time);
@ -1859,6 +1892,11 @@ public class DailyReportUploadService {
        reportItemDO.setCreateTime(new Date());
        reportItemDO.setCreateUser(user);
        reportItemDO.setCreateUserName(doctorDO.getName());
        if (null !=doctorHospitalDOs&&doctorHospitalDOs.size()!=0){
            reportItemDO.setDept(doctorHospitalDOs.get(0).getDeptCode());
            reportItemDO.setDeptName(doctorHospitalDOs.get(0).getDeptName());
        }
        reportItemDO = reportItemDao.save(reportItemDO);
        List<BaseDailyReportItemMembersDO> membersDOS = new ArrayList<>();
        if (1==member_type){//指定成员
@ -1906,7 +1944,7 @@ public class DailyReportUploadService {
     * 编辑日报项目
     */
    @Transactional(rollbackFor = Exception.class)
    public BaseDailyReportItemDO modifyReportItem(String user,String item_id,String title,String content,Integer state,String begin_time,String end_time,String members) throws Exception {
    public BaseDailyReportItemDO modifyReportItem(String user,String item_id,String projectCode,String projectName,String title,String content,Integer state,String begin_time,String end_time,String members) throws Exception {
        String sql = " select * from base_doctor_role where doctor_code='"+user+"' ";
        List<Map<String,Object>> userRoles = jdbcTemplate.queryForList(sql);
        if (userRoles.size()==0){
@ -1916,6 +1954,12 @@ public class DailyReportUploadService {
        if (null==doctorDO){
            throw new Exception("用户不存在无权操作");
        }
        List<BaseDoctorHospitalDO> doctorHospitalDOs = baseDoctorHospitalDao.findByDoctorCode(user);
        if (null !=doctorHospitalDOs&&doctorHospitalDOs.size()!=0){
        }else {
            throw new Exception("您不是部门人员,无法创建");
        }
        BaseDailyReportItemDO reportItemDO = reportItemDao.findOne(item_id);
        if (null==reportItemDO){
            throw new Exception("日报项目不存在");
@ -1923,8 +1967,16 @@ public class DailyReportUploadService {
        if (1==reportItemDO.getState()){
            throw new Exception("日报项目已完成无法修改");
        }
        sql = " select id from base_daily_report_item where title='"+title+"' and dept='"+doctorHospitalDOs.get(0).getDeptCode()+"' " +
                " and project_code='"+projectCode+"' and id<>'"+item_id+"' ";
        List<String> existList = jdbcTemplate.queryForList(sql,String.class);
        if(existList.size()>0){
            throw new Exception("该项目已存在,修改失败");
        }
        reportItemDO.setState(state);
        reportItemDO.setDel(1);
        reportItemDO.setProjectCode(projectCode);
        reportItemDO.setProjectName(projectName);
        reportItemDO.setTitle(title);
        reportItemDO.setContent(content);
        reportItemDO.setBeginTime(begin_time);
@ -1932,6 +1984,11 @@ public class DailyReportUploadService {
        reportItemDO.setUpdateTime(new Date());
        reportItemDO.setUpdateUser(user);
        reportItemDO.setUpdateUserName(doctorDO.getName());
        if (null !=doctorHospitalDOs&&doctorHospitalDOs.size()!=0){
            reportItemDO.setDept(doctorHospitalDOs.get(0).getDeptCode());
            reportItemDO.setDeptName(doctorHospitalDOs.get(0).getDeptName());
        }
        reportItemDO = reportItemDao.save(reportItemDO);
        reportItemDao.save(reportItemDO);
        List<BaseDailyReportItemMembersDO> membersDOS = new ArrayList<>();
        reportItemMembersDao.deleteAllByReportItemId(reportItemDO.getId());
@ -2097,10 +2154,13 @@ public class DailyReportUploadService {
    /**
     * 员工获取所有日报项目
     */
    public List<BaseDailyReportItemDO> findReportItemList(String user,String title,String content,Integer state,String begin_time,String end_time,String createUser,String createUserName) throws Exception {
    public List<BaseDailyReportItemDO> findReportItemList(String user,String projectCode,String title,String content,Integer state,String begin_time,String end_time,String createUser,String createUserName) throws Exception {
        String sql = "select i.* from base_daily_report_item i INNER JOIN base_daily_report_item_members mem on i.id = mem.report_item_id " +
                "where i.del=1 and mem.del=1 and mem.user_id='"+user+"' " ;
        if (StringUtils.isNotBlank(projectCode)){
            sql += " and i.project_code='"+projectCode+"' ";
        }
        if (StringUtils.isNotBlank(title)){
            sql +=" and i.title like '%"+title+"%' ";
        }
@ -2134,20 +2194,61 @@ public class DailyReportUploadService {
    /**
     * 管理员日报项目统计
     */
    public PageEnvelop statisticReportItemList(String user, String title, String content, Integer state,
                                               String begin_time, String end_time, String createUser,String createUserName, Integer page, Integer size) throws Exception {
    public List<Map<String,Object>> statisticReportProjectList(String user, String projectCode,String startDate, String endDate) throws Exception {
        String sql = " select * from base_doctor_role where doctor_code='"+user+"' ";
        List<Map<String,Object>> userRoles = jdbcTemplate.queryForList(sql);
        if (userRoles.size()==0){
            throw new Exception("您无权限操作");
        }
        String sqlCondition = "  ";
        if (StringUtils.isNotBlank(startDate)){
            sqlCondition += " and up.report_date>='"+startDate+"' ";
        }
        if (StringUtils.isNotBlank(endDate)){
            sqlCondition += " and up.report_date<='"+endDate+"' ";
        }
        if (StringUtils.isNotBlank(projectCode)){
            sqlCondition += " and i.project_code='"+projectCode+"' ";
        }
        String sqlList = "  select dict.dict_code project_code,dict.dict_value projectName,IFNULL( A.completionHour,0) 'completionHour', " +
                " IFNULL(A.doctorTotal,0) 'doctorTotal' from wlyy_hospital_sys_dict dict " +
                " Left JOIN (" +
                " select i.project_code,CAST((sum(IFNULL(de.actual_completion_hour,IFNULL(de.completion_hour,'0')))) as char ) as completionHour, " +
                " count(distinct up.doctor_id) as doctorTotal from base_daily_report_item i LEFT JOIN base_daily_report_detail de on i.id = de.report_item_id " +
                " INNER JOIN base_doctor_daily_report_upload up on up.id = de.report_id  where i.del=1 "+sqlCondition+" GROUP BY i.project_code )A " +
                "on A.project_code = dict.dict_code where dict.dict_name='daily_report_project' ";
        if (StringUtils.isNotBlank(projectCode)){
            sqlList +=" and dict.dict_code='"+projectCode+"' ";
        }
        sqlList += "  order by completionHour desc ";
        return jdbcTemplate.queryForList(sqlList);
    }
    /**
     * 管理员日报项目统计
     */
    public PageEnvelop statisticReportItemList(String user, String projectCode,String title, String content, Integer state,
                                               String startDate, String endDate, String createUser,String createUserName, Integer page, Integer size) throws Exception {
        page = page>0?page-1:0;
        String sql = " select * from base_doctor_role where doctor_code='"+user+"' ";
        List<Map<String,Object>> userRoles = jdbcTemplate.queryForList(sql);
        if (userRoles.size()==0){
            throw new Exception("您无权限操作");
        }
        List<BaseDailyReportItemDO> itemDOS = new ArrayList<>();
        List<Map<String,Object>> itemDOS = new ArrayList<>();
        String sqlCondition = "  ";
        String sqlList = " select i.id,i.title,i.content,i.state,i.begin_time beginTime,i.end_time endTime,i.create_user_name createUserName," +
        String updateTimeSql="";
        if (StringUtils.isNotBlank(startDate)){
            updateTimeSql += " and up.report_date>='"+startDate+"' ";
        }
        if (StringUtils.isNotBlank(endDate)){
            updateTimeSql += " and up.report_date<='"+endDate+"' ";
        }
        String sqlList = " select i.id,CONCAT(i.title,'(',i.dept_name,')') title,i.content,i.state,i.begin_time beginTime,i.end_time endTime,i.create_user_name createUserName," +
                " CAST((sum(IFNULL(de.actual_completion_hour,IFNULL(de.completion_hour,'0')))) as char ) as completionHour,count(distinct up.doctor_id) as doctorTotal " +
                " from base_daily_report_item i  LEFT JOIN base_daily_report_detail de on i.id = de.report_item_id " +
                "  INNER JOIN base_doctor_daily_report_upload up on up.id = de.report_id where i.del=1 ";
                "  LEFT JOIN base_doctor_daily_report_upload up on up.id = de.report_id "+updateTimeSql+" where i.del=1 ";
        String sqlCount = " select count(distinct i.id) from base_daily_report_item i where i.del=1 ";
        if (StringUtils.isNotBlank(title)){
            sqlCondition +=" and i.title like '%"+title+"%' ";
@ -2158,20 +2259,18 @@ public class DailyReportUploadService {
        if (null!=state){
            sqlCondition += " and i.state='"+state+"' ";
        }
        if (StringUtils.isNotBlank(begin_time)){
            sqlCondition += " and i.begin_time>='"+begin_time+"' ";
        }
        if (StringUtils.isNotBlank(end_time)){
            sqlCondition += " and i.end_time<='"+end_time+"' ";
        }
        if (StringUtils.isNotBlank(createUser)){
            sqlCondition += " and i.create_user = '"+createUser+"' ";
        }
        if (StringUtils.isNotBlank(createUserName)){
            sqlCondition += " and i.create_user_name like '%"+createUserName+"%' ";
        }
        if (StringUtils.isNotBlank(projectCode)){
            sqlCondition += " and i.project_code='"+projectCode+"' ";
        }
        sqlList +=sqlCondition+ " group by i.id order by i.create_time,i.id desc limit "+page*size+","+size;
        itemDOS = jdbcTemplate.query(sqlList,new BeanPropertyRowMapper<>(BaseDailyReportItemDO.class));
        itemDOS = jdbcTemplate.queryForList(sqlList);
        Long count = jdbcTemplate.queryForObject(sqlCount+sqlCondition,Long.class);
        return PageEnvelop.getSuccessListWithPage("查询成功",itemDOS,page,size,count);
    }
@ -2183,21 +2282,21 @@ public class DailyReportUploadService {
            throw new Exception("您无权限操作");
        }
        if(1==type){//天
            sql = " select i.id,i.title,i.content,i.state,i.begin_time beginTime,i.end_time endTime,i.create_user_name createUserName, " +
            sql = " select i.id,CONCAT(i.title,'(',i.dept_name,')') title,i.content,i.state,i.begin_time beginTime,i.end_time endTime,i.create_user_name createUserName, " +
                    " CAST((sum(IFNULL(de.actual_completion_hour,IFNULL(de.completion_hour,'0')))) as char ) as completionHour,DATE_FORMAT(de.create_time,'%Y-%m-%d') as 'time', " +
                    " count(distinct up.doctor_id) as doctorTotal from base_daily_report_item i LEFT JOIN base_daily_report_detail de " +
                    "on i.id = de.report_item_id INNER JOIN base_doctor_daily_report_upload up on up.id = de.report_id " +
                    "where 1=1 and i.id='"+item_id+"' " +
                    "group by i.id,DATE_FORMAT(de.create_time,'%Y-%m-%d') order by time asc ";
        }else if (2==type){//按周
            sql = " select i.id,i.title,i.content,i.state,i.begin_time beginTime,i.end_time endTime,i.create_user_name createUserName, " +
            sql = " select i.id,CONCAT(i.title,'(',i.dept_name,')') title,i.content,i.state,i.begin_time beginTime,i.end_time endTime,i.create_user_name createUserName, " +
                    " CAST((sum(IFNULL(de.actual_completion_hour,IFNULL(de.completion_hour,'0')))) as char ) as completionHour,DATE_FORMAT(de.create_time,'%Y-%m-%d') as 'time', " +
                    " count(distinct up.doctor_id) as doctorTotal from base_daily_report_item i LEFT JOIN base_daily_report_detail de " +
                    "on i.id = de.report_item_id INNER JOIN base_doctor_daily_report_upload up on up.id = de.report_id  " +
                    "where 1=1 and i.id='"+item_id+"' " +
                    "group by i.id,DATE_FORMAT(de.create_time,'%Y%v') order by time asc ";
        }else if (3==type){//月
            sql = " select i.id,i.title,i.content,i.state,i.begin_time beginTime,i.end_time endTime,i.create_user_name createUserName, " +
            sql = " select i.id,CONCAT(i.title,'(',i.dept_name,')') title,i.content,i.state,i.begin_time beginTime,i.end_time endTime,i.create_user_name createUserName, " +
                    " CAST((sum(IFNULL(de.actual_completion_hour,IFNULL(de.completion_hour,'0')))) as char ) as completionHour,DATE_FORMAT(de.create_time,'%Y-%m') as 'time', " +
                    " count(distinct up.doctor_id) as doctorTotal from base_daily_report_item i LEFT JOIN base_daily_report_detail de " +
                    "on i.id = de.report_item_id INNER JOIN base_doctor_daily_report_upload up on up.id = de.report_id " +
@ -2216,6 +2315,11 @@ public class DailyReportUploadService {
                tmp.put("avgValue",avgValue);
                Double completionHour = Double.valueOf(tmp.get("completionHour").toString());
                tmp.put("timeRange",getRangeDouble(completionHour,totalHour));
                if(2==type){//获取周的最后一天
                    String time = tmp.get("time").toString();
                    String sunday = DateUtil.getSundayOfThisWeek(DateUtil.strToDate(time));
                    tmp.put("time",sunday);
                }
            }
        }
        return list;
@ -2232,8 +2336,9 @@ public class DailyReportUploadService {
            memberSql = " and up.doctor_id='"+member+"' ";
        }
        String searchTimeFormat = "";
        String uploadTimeFormat = "";
        if(0==type){
            sql = " select i.id,i.title,i.content,i.state,i.begin_time beginTime,i.end_time endTime,i.create_user_name createUserName,up.doctor_id,up.doctor_name doctorName, " +
            sql = " select i.id,CONCAT(i.title,'(',i.dept_name,')') title,i.content,i.state,i.begin_time beginTime,i.end_time endTime,i.create_user_name createUserName,up.doctor_id,up.doctor_name doctorName, " +
                    " CAST((sum(IFNULL(de.actual_completion_hour,IFNULL(de.completion_hour,'0')))) as char ) as completionHour,DATE_FORMAT(de.create_time,'%Y-%m-%d') as 'time'," +
                    " DATE_FORMAT(de.create_time,'%Y-%m-%d') as 'searchTime' " +
                    "from base_daily_report_item i LEFT JOIN base_daily_report_detail de " +
@ -2241,34 +2346,38 @@ public class DailyReportUploadService {
                    "where 1=1 and i.id='"+item_id+"' " +memberSql+
                    "group by i.id,up.doctor_id order by completionHour desc ";
            searchTimeFormat=" DATE_FORMAT(de.create_time,'%Y-%m-%d') ";
            uploadTimeFormat=" DATE_FORMAT(up.report_date,'%Y-%m-%d') ";
        }
        else if(1==type){//天
            sql = " select i.id,i.title,i.content,i.state,i.begin_time beginTime,i.end_time endTime,i.create_user_name createUserName,up.doctor_id,up.doctor_name doctorName, " +
            sql = " select i.id,CONCAT(i.title,'(',i.dept_name,')') title,i.content,i.state,i.begin_time beginTime,i.end_time endTime,i.create_user_name createUserName,up.doctor_id,up.doctor_name doctorName, " +
                    " CAST((sum(IFNULL(de.actual_completion_hour,IFNULL(de.completion_hour,'0')))) as char ) as completionHour,DATE_FORMAT(de.create_time,'%Y-%m-%d') as 'time', " +
                    "DATE_FORMAT(de.create_time,'%Y-%m-%d') as 'searchTime' " +
                    "from base_daily_report_item i LEFT JOIN base_daily_report_detail de " +
                    "on i.id = de.report_item_id INNER JOIN base_doctor_daily_report_upload up on de.report_id = up.id " +
                    "where 1=1 and i.id='"+item_id+"' " +
                    "group by i.id,up.doctor_id,DATE_FORMAT(de.create_time,'%Y-%m-%d') order by time asc ";
                    "group by i.id,up.doctor_id  order by time asc ";
            searchTimeFormat=" DATE_FORMAT(de.create_time,'%Y-%m-%d') ";
            uploadTimeFormat=" DATE_FORMAT(up.report_date,'%Y-%m-%d') ";
        }else if (2==type){//按周
            sql = " select i.id,i.title,i.content,i.state,i.begin_time beginTime,i.end_time endTime,i.create_user_name createUserName,up.doctor_id,up.doctor_name doctorName, " +
            sql = " select i.id,CONCAT(i.title,'(',i.dept_name,')') title,i.content,i.state,i.begin_time beginTime,i.end_time endTime,i.create_user_name createUserName,up.doctor_id,up.doctor_name doctorName, " +
                    " CAST((sum(IFNULL(de.actual_completion_hour,IFNULL(de.completion_hour,'0')))) as char ) as completionHour,DATE_FORMAT(de.create_time,'%Y-%m-%d') as 'time', " +
                    "DATE_FORMAT(de.create_time,'%Y%v') as 'searchTime' " +
                    "from base_daily_report_item i LEFT JOIN base_daily_report_detail de " +
                    "on i.id = de.report_item_id INNER JOIN base_doctor_daily_report_upload up on de.report_id = up.id " +
                    "where 1=1 and i.id='"+item_id+"' " +memberSql+
                    "group by i.id,up.doctor_id,DATE_FORMAT(de.create_time,'%Y%v') order by time asc ";
                    "group by i.id,up.doctor_id  order by time asc ";
            searchTimeFormat=" DATE_FORMAT(de.create_time,'%Y%v') ";
            uploadTimeFormat=" DATE_FORMAT(up.report_date,'%Y-%m-%d') ";
        }else if (3==type){//月
            sql = " select i.id,i.title,i.content,i.state,i.begin_time beginTime,i.end_time endTime,i.create_user_name createUserName,up.doctor_id,up.doctor_name doctorName, " +
            sql = " select i.id,CONCAT(i.title,'(',i.dept_name,')') title,i.content,i.state,i.begin_time beginTime,i.end_time endTime,i.create_user_name createUserName,up.doctor_id,up.doctor_name doctorName, " +
                    " CAST((sum(IFNULL(de.actual_completion_hour,IFNULL(de.completion_hour,'0')))) as char ) as completionHour,DATE_FORMAT(de.create_time,'%Y-%m') as 'time', " +
                    "DATE_FORMAT(de.create_time,'%Y-%m') as 'searchTime' " +
                    "from base_daily_report_item i LEFT JOIN base_daily_report_detail de " +
                    "on i.id = de.report_item_id INNER JOIN base_doctor_daily_report_upload up on de.report_id = up.id " +
                    "where 1=1 and i.id='"+item_id+"' " +memberSql+
                    "group by i.id,up.doctor_id,DATE_FORMAT(de.create_time,'%Y-%m') order by time asc ";
                    "group by i.id,up.doctor_id  order by time asc ";
            searchTimeFormat=" DATE_FORMAT(de.create_time,'%Y-%m') ";
            uploadTimeFormat=" DATE_FORMAT(up.report_date,'%Y-%m') ";
        }else {
            throw new Exception("查询失败,请检查传入参数");
        }
@ -2282,14 +2391,19 @@ public class DailyReportUploadService {
                tmp.put("avgValue",avgValue);
                Double completionHour = Double.valueOf(tmp.get("completionHour").toString());
                tmp.put("timeRange",getRangeDouble(completionHour,totalHour));
                String searchTime =tmp.get("searchTime").toString();
                String doctorId = tmp.get("doctor_id").toString();
                sql = " select up.doctor_name,up.report_date,CAST((sum(IFNULL(de.actual_completion_hour,IFNULL(de.completion_hour,'0')))) as char ) as completionHour " +
                sql = " select up.doctor_name,"+uploadTimeFormat+" as report_date ,CAST((sum(IFNULL(de.actual_completion_hour,IFNULL(de.completion_hour,'0')))) as char ) as completionHour " +
                        " from base_daily_report_detail de  INNER JOIN base_doctor_daily_report_upload up on de.report_id = up.id  " +
                        "where  de.report_item_id='"+item_id+"' and up.doctor_id='"+doctorId+"'  " +
                        "and "+searchTimeFormat+"='"+searchTime+"' " +
                        "GROUP BY up.report_date ORDER BY up.report_date asc ";
                        "where  de.report_item_id='"+item_id+"' and up.doctor_id='"+doctorId+"' " +
                        "GROUP BY "+searchTimeFormat+" ORDER BY report_date asc ";
                List<Map<String,Object>> timeUseList = jdbcTemplate.queryForList(sql);
                if(2==type){//获取周的最后一天
                    for (Map<String,Object>timeUseTmp :timeUseList){
                        String time = timeUseTmp.get("report_date").toString();
                        String sunday = DateUtil.getSundayOfThisWeek(DateUtil.strToDate(time));
                        timeUseTmp.put("report_date",sunday);
                    }
                }
                tmp.put("timeUseList",timeUseList);
            }
@ -2335,7 +2449,7 @@ public class DailyReportUploadService {
            throw new Exception("导出失败,请检查传入参数");
        }
        //项目耗时情况
        sql = " select it.title,it.content,sum(IFNULL(pd.actual_completion_hour,IFNULL(pd.completion_hour,0))) 'completion_hour' ," +
        sql = " select CONCAT(it.title,'(',i.dept_name,')') title,it.content,sum(IFNULL(pd.actual_completion_hour,IFNULL(pd.completion_hour,0))) 'completion_hour' ," +
                " CASE it.state WHEN 1 THEN '已完成' ELSE '未完成' END as 'state',DATE_FORMAT(it.create_time,'%Y-%m-%d %H:%i:%S') create_time,it.create_user_name " +
                "from base_daily_report_item it LEFT JOIN base_daily_report_detail pd  " +
                "on it.id = pd.report_item_id " +

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

@ -2145,4 +2145,14 @@ CREATE TABLE `base_yujing_dict` (
  PRIMARY KEY (`id`),
  KEY `dict_name` (`dict_name`),
  KEY `hospital` (`hospital`)
) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8 COMMENT='预警状态字典';
) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8 COMMENT='预警状态字典';
--2022-08-15
ALTER table base_daily_report_item add COLUMN `project_code` varchar(50) DEFAULT NULL COMMENT '项目code 字典base_daily_report_item';
ALTER table base_daily_report_item add COLUMN `ac_begin_time` varchar(50) DEFAULT NULL COMMENT '项目实际开始时间';
ALTER table base_daily_report_item add COLUMN `dept` varchar(50) DEFAULT NULL COMMENT '部门';
ALTER table base_daily_report_item add COLUMN `dept_name` varchar(50) DEFAULT NULL COMMENT '部门名称';
--2022-08-17
ALTER table base_daily_report_detail add COLUMN `project_code` varchar(50) DEFAULT NULL COMMENT '项目code';
ALTER table base_daily_report_detail add COLUMN `project_name` varchar(50) DEFAULT NULL COMMENT '项目名称';

+ 0 - 13
common/common-entity/src/main/java/com/yihu/jw/entity/base/dict/BaseYujingDict.java

@ -42,11 +42,6 @@ public class BaseYujingDict extends IdEntity {
     */
    private Integer del;
    /**
     * 归属社区code
     */
    private String hospital;
    /**
     * create_time
     */
@ -103,14 +98,6 @@ public class BaseYujingDict extends IdEntity {
        this.del = del;
    }
    @Column(name = "hospital")
    public String getHospital() {
        return hospital;
    }
    public void setHospital(String hospital) {
        this.hospital = hospital;
    }
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    @Column(name = "create_time")

+ 17 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/dailyReport/BaseDailyReportDetailDO.java

@ -36,6 +36,8 @@ public class BaseDailyReportDetailDO extends UuidIdentityEntityWithOperator {
    private boolean reportItemFlag;
    private String reportItemTitle;
    private String projectCode;
    private String projectName;
    public String getReportId() {
        return reportId;
@ -192,4 +194,19 @@ public class BaseDailyReportDetailDO extends UuidIdentityEntityWithOperator {
        this.reportItemTitle = reportItemTitle;
    }
    public String getProjectCode() {
        return projectCode;
    }
    public void setProjectCode(String projectCode) {
        this.projectCode = projectCode;
    }
    public String getProjectName() {
        return projectName;
    }
    public void setProjectName(String projectName) {
        this.projectName = projectName;
    }
}

+ 45 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/dailyReport/BaseDailyReportItemDO.java

@ -39,6 +39,11 @@ public class BaseDailyReportItemDO extends UuidIdentityEntity {
    protected String updateUser;
    protected String updateUserName;
    private String completionUserName;
    private String projectCode;
    private String projectName;
    private String acBeginTime;//项目实际开始时间
    private String dept;
    private String deptName;
    private List<BaseDailyReportItemMembersDO> itemMembersDOList;
@ -183,4 +188,44 @@ public class BaseDailyReportItemDO extends UuidIdentityEntity {
    public void setCompletionUserName(String completionUserName) {
        this.completionUserName = completionUserName;
    }
    public String getProjectCode() {
        return projectCode;
    }
    public void setProjectCode(String projectCode) {
        this.projectCode = projectCode;
    }
    public String getProjectName() {
        return projectName;
    }
    public void setProjectName(String projectName) {
        this.projectName = projectName;
    }
    public String getAcBeginTime() {
        return acBeginTime;
    }
    public void setAcBeginTime(String acBeginTime) {
        this.acBeginTime = acBeginTime;
    }
    public String getDept() {
        return dept;
    }
    public void setDept(String dept) {
        this.dept = dept;
    }
    public String getDeptName() {
        return deptName;
    }
    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }
}

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

@ -1068,6 +1068,37 @@ public class DateUtil {
        return df2.format(c.getTime());
    }
    /**
     * 获取某一时间端内的工作天数
     * @param start
     * @param end
     * @return
     */
    public static long getWorkDays(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 (startCal.get(Calendar.DAY_OF_WEEK) != 7 && startCal.get(Calendar.DAY_OF_WEEK) != 1) {
                day++;
            }
            startCal.add(Calendar.DAY_OF_MONTH, 1);
        }
        return day;
    }
    /**
     * 获取当月第一天
     * @return

+ 12 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/third/platForm/PatientInfoPlatFormEndpoint.java

@ -181,6 +181,18 @@ public class PatientInfoPlatFormEndpoint extends EnvelopRestEndpoint {
        }
    }
    @GetMapping(value = "getPatientDeviceNameList")
    @ApiOperation("获取老人设备 下拉列表")
    public ListEnvelop getPatientDeviceNameList(@ApiParam(name = "patient", value = "居民id", required = true)
                                                @RequestParam(value = "patient", required = true) String patient) {
        try {
            return ListEnvelop.getSuccess("查询成功",patientInfoPlatFormService.patientDeviceNameList(patient));
        } catch (Exception e) {
            e.printStackTrace();
            return failedListEnvelopException2(e);
        }
    }
    @GetMapping(value = "getEmeAndOlderServiceInfo")
    @ApiOperation("大屏获取老人紧急预警、助老服务情况")
    public ObjEnvelop getEmeAndOlderServiceInfo(@ApiParam(name="patient",value = "居民id",required = true)

+ 199 - 24
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/third/PatientInfoPlatFormService.java

@ -733,6 +733,148 @@ public class PatientInfoPlatFormService {
            Map<String,Object> detailInfo =  getDeviceIndexAndOrder(category_code,deviceSN,patient,warnTime);
            tmp.put("detailInfo",detailInfo);
        }
        Map<String,Object> resultMap =  deviceIndexInfo(list);
        list.add(resultMap);
        return list;
    }
    private Map<String, Object> deviceIndexInfo(List<Map<String,Object>> list){
        Map<String, Object> resultMap = new HashMap<>();
        Integer deviceStatus = 0;
        Integer oldIndex = 0;
        List<Map<String, Object>> deviceOnLineList = new ArrayList<>();
        List<Map<String, Object>> oldCheckInfoList = new ArrayList<>();
        Map<String,Object> oldCheckInfoMap = new HashMap<>();
        for (Map<String, Object> map : list) {
            Map<String, Object> deviceOnLineMap = new HashMap<>();
            Integer categoryCode = Integer.parseInt(map.get("category_code").toString());
            String device_name = map.get("device_name").toString();
            Map<String,Object> detailInfo = (Map) map.get("detailInfo");
            String online = detailInfo.get("contact_status").toString().equals("1")?"在线":"离线";
            switch (categoryCode) {
                case 4:
                    deviceOnLineMap.put("deviceName",device_name);
                    if (detailInfo.get("wear_flagName").toString().equals("未佩戴")){
                        deviceStatus +=1;
                        deviceOnLineMap.put("deviceStatusCode",2);
                    }else {
                        deviceOnLineMap.put("deviceStatusCode",0);
                    }
                    deviceOnLineMap.put("deviceStatus",detailInfo.get("wear_flagName").toString());
                    //Map heartRate = detailInfo.get("heartRate").equals("暂无数据?")?(Map) detailInfo.get("heartRate"):new HashMap<>();
                   Map<String,Object> heartRate = !detailInfo.get("heartRate").equals("暂无数据?")?(Map) detailInfo.get("heartRate"): (Map)new HashMap(){{put("value1_status","暂无数据?");put("value1",0);}};
                    Map location = detailInfo.get("location")!=null?(Map) detailInfo.get("location"):new HashMap<>();
                    Map steps = !detailInfo.get("steps").equals(0)?(Map)detailInfo.get("steps"):new HashMap(){{put("steps",0);}};
                    if (!heartRate.get("value1_status").equals("正常")) oldIndex+=1;
                    oldCheckInfoMap.put("heartStatus",heartRate.get("value1_status"));
                    oldCheckInfoMap.put("heart",heartRate.get("value1"));
                    oldCheckInfoMap.put("leaveHome",detailInfo.get("homeRange"));
                    oldCheckInfoMap.put("address",location.get("address"));
                    if (!detailInfo.get("steps_status").equals("暂无数据?")||!steps.get("steps").equals(0)) {
                        oldCheckInfoMap.put("stepsStatus",detailInfo.get("steps_status"));
                        oldCheckInfoMap.put("steps",steps.get("steps"));
                    }
                    break;
                case 12:
                    deviceOnLineMap.put("deviceName",device_name);
                    deviceOnLineMap.put("deviceStatus",online);
                    if (online.equals("离线")){
                        deviceStatus+=1;
                        deviceOnLineMap.put("deviceStatusCode",1);
                    }else {
                        deviceOnLineMap.put("deviceStatusCode",0);
                    }
                    //deviceOnLineMap.put("deviceStatus",detailInfo.get("warnStatus").toString().equals("true")?"正常":"异常");
                    break;
                case 13:
                    if (online.equals("离线")) {
                        deviceStatus+=1;
                        deviceOnLineMap.put("deviceStatusCode",1);
                    }else {
                        deviceOnLineMap.put("deviceStatusCode",0);
                    }
                    deviceOnLineMap.put("deviceName",device_name);
                    deviceOnLineMap.put("deviceStatus",online);
                    if (!detailInfo.get("breath_status").equals("正常"))oldIndex+=1;
                    oldCheckInfoMap.put("breathStatus",detailInfo.get("breath_status"));
                    oldCheckInfoMap.put("breath",detailInfo.get("breath"));
                    oldCheckInfoMap.put("bedStatus",detailInfo.get("bedStatus"));
                    break;
                case 14:
                    deviceOnLineMap.put("deviceName",device_name);
                    deviceOnLineMap.put("deviceStatus",online);
                    if (!detailInfo.get("warnStatus").equals("异常"))oldIndex+=1;
                    oldCheckInfoMap.put("qgValueStatus",detailInfo.get("warnStatus"));
                    oldCheckInfoMap.put("qgValue",detailInfo.get("value"));
                    if (online.equals("离线")){
                        deviceStatus+=1;
                        deviceOnLineMap.put("deviceStatusCode",1);
                    }else {
                        deviceOnLineMap.put("deviceStatusCode",0);
                    }
                    break;
                case 15:
                    deviceOnLineMap.put("deviceName",device_name);
                    deviceOnLineMap.put("deviceStatus",online);
                    if (online.equals("离线")) {
                        deviceStatus+=1;
                        deviceOnLineMap.put("deviceStatusCode",1);
                    }else {
                        deviceOnLineMap.put("deviceStatusCode",0);
                    }
                    if (!detailInfo.get("value1_Status").equals("异常"))oldIndex+=1;
                    oldCheckInfoMap.put("ygValueStatus",detailInfo.get("value1_Status"));
                    oldCheckInfoMap.put("ygValue",detailInfo.get("value"));
                    if (!detailInfo.get("temperature_status").equals("异常"))oldIndex+=1;
                    if (!detailInfo.get("temperature_status").equals("暂无数据?")) {
                        oldCheckInfoMap.put("temperatureStatus",detailInfo.get("temperature_status"));
                        oldCheckInfoMap.put("temperatureValue",detailInfo.get("temperature_value"));
                    }
                    break;
            }
            if (!deviceOnLineMap.isEmpty())deviceOnLineList.add(deviceOnLineMap);
        }
        oldCheckInfoList.add(oldCheckInfoMap);
        String dictSql = "SELECT * from base_yujing_dict where del =1";
        List<BaseYujingDict> dictList = jdbcTemplate.query(dictSql, new BeanPropertyRowMapper<>(BaseYujingDict.class));
        if (deviceStatus>0&&oldIndex>0){
            resultMap.put("synthesisProposal",dict(dictList,"device_index4"));
        }else if (deviceStatus>0&&oldIndex==0){
            resultMap.put("synthesisProposal",dict(dictList,"device_index3"));
        }else if (deviceStatus==0&&oldIndex>0){
            resultMap.put("synthesisProposal",dict(dictList,"device_index2"));
        }else if (deviceStatus==0&&oldIndex==0){
            resultMap.put("synthesisProposal",dict(dictList,"device_index1"));
        }else {
            resultMap.put("synthesisProposal","待分析!");
        }
        resultMap.put("deviceRunInfo",deviceOnLineList);
        resultMap.put("oldCheck",oldCheckInfoList);
        return resultMap;
    }
    public List<Map<String, Object>> patientDeviceNameList(String patient){
        String sql = "SELECT dd.category_code,dd.model,pd.device_name,dd.device_type AS deviceType  FROM dm_device dd " +
                " INNER JOIN wlyy_patient_device pd ON dd.category_code = pd.category_code INNER JOIN wlyy_devices wd ON dd.model = wd.device_model " +
                " AND pd.device_sn = wd.device_code  WHERE 1 = 1 AND pd.del = 0 AND pd.`user` = '"+patient+"' " +
                " GROUP BY dd.category_code ORDER BY dd.device_type DESC,pd.czrq ASC";
        List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
        return list;
    }
@ -848,6 +990,8 @@ public class PatientInfoPlatFormService {
                    //在线状态实时获取
                    if (!response.getBoolean("online")) {//设备在线状态
                        detailInfo.put("contact_status",0);
                        //离线时间
                        detailInfo.put("offlineDate",DateUtil.getHours(new Date(),response.getJSONObject("lastlogin_at").getDate("$date")));
                    } else {
                        detailInfo.put("contact_status",1);
                    }
@ -859,12 +1003,35 @@ public class PatientInfoPlatFormService {
                //手表步数数据
                sql = "select *,CAST(DATE_FORMAT(create_time,'%Y-%m-%d %H:%i:%S') as char) create_time " +
                        " from base_patient_step where 1=1  and device_sn='"+deviceSn+"' ";
                pageSql =bl?" and create_time >= '"+beforeTime+"' and create_time <= '"+afterTime+"' order by create_time desc limit 1 ": " order by create_time desc limit 1 ";
                pageSql =bl?" and create_time >= '"+beforeTime+"' and create_time <= '"+afterTime+"' order by create_time desc limit 2 ": " order by create_time desc limit 2 ";
                sqlResult = jdbcTemplate.queryForList(sql+pageSql);
                if (sqlResult.size()>0) {
                    detailInfo.put("steps",sqlResult.get(0));
                    if (bl&&sqlResult.size()>=2) {
                        Integer steps1 = Integer.parseInt(sqlResult.get(0).get("steps").toString());
                        Integer steps2 = Integer.parseInt(sqlResult.get(1).get("steps").toString());
                        if (steps1>steps2) {
                            dictCode = "yd2";
                        }else{
                            dictCode = "yd3";
                        }
                        detailInfo.put("steps_status",zwsj);
                    }else if (!bl&&sqlResult.size()>=2){
                        Integer steps1 = Integer.parseInt(sqlResult.get(0).get("steps").toString());
                        Integer steps2 = Integer.parseInt(sqlResult.get(1).get("steps").toString());
                        if (steps1>steps2) {
                            dictCode = "yd2";
                        }else{
                            dictCode = "yd1";
                        }
                    }else {
                        dictCode = "ty3";
                    }
                    detailInfo.put("steps_status",dict(dictList,dictCode));
                }else {
                    detailInfo.put("steps","无步数数据");
                    detailInfo.put("steps",0);
                    detailInfo.put("steps_status",zwsj);
                }
                //手表心率数据
                sql = " select *,CAST(DATE_FORMAT(record_date,'%Y-%m-%d %H:%i:%S') as char) record_date,  " +
@ -875,12 +1042,13 @@ public class PatientInfoPlatFormService {
                sqlResult = jdbcTemplate.queryForList(sql+pageSql);
                if (sqlResult.size()>0){
                    Integer xl = Integer.parseInt(sqlResult.get(0).get("value1").toString());
                    if (xl>=50&&xl<=100) {
                        dictCode= "xl1";
                    }else if (xl<50){
                    Integer xlValue1 = Integer.parseInt(dict(dictList,"xlValue1"));
                    Integer xlValue2 = Integer.parseInt(dict(dictList,"xlValue1"));
                    if (xl>=xlValue1&&xl<=xlValue2) {
                        dictCode= "zc1";
                    }else if (xl<xlValue1){
                        dictCode="xl2";
                    }else if (xl>100){
                    }else if (xl>xlValue2){
                        dictCode="xl3";
                    }
                    sqlResult.get(0).put("value1_status",dict(dictList,dictCode));
@ -915,7 +1083,9 @@ public class PatientInfoPlatFormService {
                            }else {
                                detailInfo.put("isAtHome",dict(dictList,"ty4"));
                            }
                            detailInfo.put("homeRange",homeDistance * 1000);
                        }else {
                            detailInfo.put("homeRange",zwsj);
                            detailInfo.put("isAtHome",zwsj);
                        }
                        detailInfo.put("location", tmp);
@ -1014,31 +1184,36 @@ public class PatientInfoPlatFormService {
                                detailInfo.put("contact_status",1);
                            }
                            if (response.getBooleanValue("onbed")) {//当前在床状态
                                detailInfo.put("bedStatus", 1);
                                detailInfo.put("bedStatus", dict(dictList,"yachuang1"));
                                Integer heartRate = response.getInteger("heartrate");
                                Integer breath = response.getInteger("breathrate");
                                Integer xlValue1 = Integer.parseInt(dict(dictList,"xlValue1"));
                                Integer xlValue2 = Integer.parseInt(dict(dictList,"xlValue1"));
                                dictCode = "";
                                if (heartRate > 100) {
                                    dictCode = "xl3";
                                } else if (heartRate < 50) {
                                    dictCode = "xl2";
                                } else if (heartRate >= 50 && heartRate <= 100) {
                                    dictCode = "xl1";
                                    dictCode = "zc1";
                                }
                                detailInfo.put("heartRate", heartRate);
                                detailInfo.put("breath", breath);
                                detailInfo.put("heartRate_status",dict(dictList,dictCode));
                                if (breath > 100) {
                                    dictCode = "xl3";
                                } else if (breath < 50) {
                                    dictCode = "xl2";
                                } else if (breath >= 50 && breath <= 100) {
                                    dictCode = "xl1";
                                Integer hxValue1 = Integer.parseInt(dict(dictList,"hxValue1"));
                                Integer hxValue2 = Integer.parseInt(dict(dictList,"hxValue2"));
                                if (breath > hxValue2) {
                                    dictCode = "hx1";
                                } else if (hxValue1 < 10) {
                                    dictCode = "hx2";
                                } else if (breath >= hxValue1 && breath <= hxValue2) {
                                    dictCode = "zc1";
                                }
                                detailInfo.put("breath_status",dict(dictList,dictCode));
                            } else {
                                detailInfo.put("bedStatus", 0);
                                detailInfo.put("bedStatus", dict(dictList,"yachuang2"));
                                detailInfo.put("heartRate", zwsj);
                                detailInfo.put("breath", zwsj);
                            }
@ -1053,10 +1228,10 @@ public class PatientInfoPlatFormService {
                pageSql =bl?" and o.create_time >= '"+beforeTime+"' and o.create_time <= '"+afterTime+"' ORDER BY create_time desc   limit 1 ": " ORDER BY create_time desc limit 1 ";
                sqlResult = jdbcTemplate.queryForList(sql+pageSql);
                if (sqlResult.size()>0){
                    detailInfo.put("warnStatus",true);
                    detailInfo.put("warnStatus",dict(dictList,"yc1"));
                    detailInfo.put("orderInfo",sqlResult.get(0));
                }else {
                    detailInfo.put("warnStatus",false);
                    detailInfo.put("warnStatus",dict(dictList,"zc1"));
                }
                //获取最新一次燃气浓度
                if(bl){
@ -1080,10 +1255,10 @@ public class PatientInfoPlatFormService {
                sqlResult = jdbcTemplate.queryForList(sql+pageSql);
                if (sqlResult.size()>0){
                    //烟雾浓度
                    detailInfo.put("value1_Status",dict(dictList,"yg1"));
                    detailInfo.put("value1_Status",dict(dictList,"yc1"));
                    detailInfo.put("orderInfo",sqlResult.get(0));
                }else {
                    detailInfo.put("value1_Status",dict(dictList,"yg2"));
                    detailInfo.put("value1_Status",dict(dictList,"zc1"));
                }
                //获取最新一次烟雾浓度
                if(bl){
@ -1107,10 +1282,10 @@ public class PatientInfoPlatFormService {
                sqlResult = jdbcTemplate.queryForList(sql);
                dictCode ="";
                if (sqlResult.size()>0){
                    if (Integer.parseInt(sqlResult.get(0).get("temperature_value").toString())<50) {
                        dictCode = "yg4";
                    if (Integer.parseInt(sqlResult.get(0).get("temperature_value").toString())<Integer.parseInt(dict(dictList,"wdValue1"))) {
                        dictCode = "zc1";
                    }else {
                        dictCode = "yg3";
                        dictCode = "yc1";
                    }
                    detailInfo.putAll(sqlResult.get(0));
                    detailInfo.put("temperature_status",dict(dictList,dictCode));
@ -1166,7 +1341,7 @@ public class PatientInfoPlatFormService {
                        double homeLat = Double.parseDouble(homeLatLon.split(",")[0]);
                        double homeLon = Double.parseDouble(homeLatLon.split(",")[1]);
                        double homeDistance = countDistance.getDistance(homeLat,homeLon,Double.parseDouble(sqlResult.get(0).get("lat").toString()),(Double.parseDouble(sqlResult.get(0).get("lon").toString())));
                        if (homeDistance * 1000 > 50) {
                        if (homeDistance * 1000 > Integer.parseInt(dict(dictList,"ljjjValue1"))) {
                            detailInfo.put("isAtHome","离家");
                        }else {
                            detailInfo.put("isAtHome","居家");

+ 4 - 4
svr/svr-internet-hospital-job/src/main/resources/system.properties

@ -41,11 +41,11 @@ health_upload_weishangbao_remind_job=0 45 8 * * ? *
health_upload_total_remind_job=0 0 9 * * ? *
DailyReportRemindJob=0 50 17 * * ? *
DailyReportRemindJob=0 50 17 ? * 1,2,3,4,5
DailyReportRemindSecondJob=0 0 20 * * ? *
DailyReportRemindSecondJob=0 0 20 ? * 1,2,3,4,5
DailyReportTotalRemindJob=0 0 22 * * ? *
DailyReportTotalRemindJob=0 0 22 ? * 1,2,3,4,5
DailyReportWsbTotalRemindJob=0 0 21 * * ? *
DailyReportWsbTotalRemindJob=0 0 21 ? * 1,2,3,4,5

+ 39 - 9
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/dailyReport/DailyReportUploadPoint.java

@ -497,6 +497,10 @@ public class DailyReportUploadPoint extends EnvelopRestEndpoint {
    @ApiOperation(value = "管理员新增日报项目")
    public ObjEnvelop newReportItem(@ApiParam(name = "user", value = "user")
                                    @RequestParam(value = "user", required = true) String user,
                                    @ApiParam(name = "projectCode", value = "项目Code")
                                    @RequestParam(value = "projectCode", required = true) String projectCode,
                                    @ApiParam(name = "projectName", value = "项目名称")
                                    @RequestParam(value = "projectName", required = true) String projectName,
                                    @ApiParam(name = "title", value = "项目标题")
                                    @RequestParam(value = "title", required = true) String title,
                                    @ApiParam(name = "content", value = "项目内容")
@ -510,7 +514,7 @@ public class DailyReportUploadPoint extends EnvelopRestEndpoint {
                                    @ApiParam(name = "members", value = "成员or部门编码,多个逗号隔开")
                                    @RequestParam(value = "members", required = true) String members) {
        try {
            BaseDailyReportItemDO itemDO = dailyReportUploadService.newReportItem(user,title,content,begin_time,end_time,member_type,members);
            BaseDailyReportItemDO itemDO = dailyReportUploadService.newReportItem(user,projectCode,projectName,title,content,begin_time,end_time,member_type,members);
            return success(itemDO);
        } catch (Exception e) {
            return failedObjEnvelopException(e);
@ -541,6 +545,10 @@ public class DailyReportUploadPoint extends EnvelopRestEndpoint {
    @ApiOperation(value = "管理员修改日报项目")
    public ObjEnvelop modifyReportItem(@ApiParam(name = "user", value = "user")
                                    @RequestParam(value = "user", required = true) String user,
                                    @ApiParam(name = "projectCode", value = "项目Code")
                                    @RequestParam(value = "projectCode", required = true) String projectCode,
                                    @ApiParam(name = "projectName", value = "项目名称")
                                    @RequestParam(value = "projectName", required = true) String projectName,
                                    @ApiParam(name = "item_id", value = "item_id")
                                    @RequestParam(value = "item_id", required = true) String item_id,
                                    @ApiParam(name = "title", value = "项目标题")
@ -556,7 +564,7 @@ public class DailyReportUploadPoint extends EnvelopRestEndpoint {
                                    @ApiParam(name = "members", value = "成员编码,多个逗号隔开")
                                    @RequestParam(value = "members", required = true) String members) {
        try {
            BaseDailyReportItemDO itemDO = dailyReportUploadService.modifyReportItem(user,item_id,title,content,state,begin_time,end_time,members);
            BaseDailyReportItemDO itemDO = dailyReportUploadService.modifyReportItem(user,item_id,projectCode,projectName,title,content,state,begin_time,end_time,members);
            return success(itemDO);
        } catch (Exception e) {
            return failedObjEnvelopException(e);
@ -619,6 +627,8 @@ public class DailyReportUploadPoint extends EnvelopRestEndpoint {
    @ApiOperation(value = "员工获取所有日报项目")
    public ListEnvelop findReportItemList(@ApiParam(name = "user", value = "user")
                                      @RequestParam(value = "user", required = true) String user,
                                      @ApiParam(name = "projectCode", value = "项目Code")
                                      @RequestParam(value = "projectCode", required = false) String projectCode,
                                      @ApiParam(name = "title", value = "事项标题")
                                      @RequestParam(value = "title", required = false) String title,
                                      @ApiParam(name = "content", value = "项目内容")
@ -634,27 +644,47 @@ public class DailyReportUploadPoint extends EnvelopRestEndpoint {
                                      @ApiParam(name = "createUserName", value = "createUserName")
                                      @RequestParam(value = "createUserName", required = false) String createUserName) {
        try {
            List<BaseDailyReportItemDO> list =  dailyReportUploadService.findReportItemList(user,title,content,state,begin_time,end_time,createUser,createUserName);
            List<BaseDailyReportItemDO> list =  dailyReportUploadService.findReportItemList(user,projectCode,title,content,state,begin_time,end_time,createUser,createUserName);
            return ListEnvelop.getSuccess("success",list);
        } catch (Exception e) {
            return failedListEnvelopException(e);
        }
    }
    @GetMapping(value = "statisticReportProjectList")
    @ApiOperation(value = "管理员日报项目统计列表一级")
    public ListEnvelop statisticReportProjectList(@ApiParam(name = "user", value = "user")
                                               @RequestParam(value = "user", required = true) String user,
                                               @ApiParam(name = "projectCode", value = "项目Code")
                                               @RequestParam(value = "projectCode", required = false) String projectCode,
                                               @ApiParam(name = "startDate", value = "startDate")
                                               @RequestParam(value = "startDate", required = false) String startDate,
                                               @ApiParam(name = "endDate", value = "endDate")
                                               @RequestParam(value = "endDate", required = false) String endDate) {
        try {
            return ListEnvelop.getSuccess("success",dailyReportUploadService.statisticReportProjectList(user,projectCode,startDate,endDate));
        } catch (Exception e) {
            return failedListEnvelopException(e);
        }
    }
    @GetMapping(value = "statisticReportItemList")
    @ApiOperation(value = "管理员日报项目统计列表")
    @ApiOperation(value = "管理员日报项目统计列表二级")
    public PageEnvelop statisticReportItemList(@ApiParam(name = "user", value = "user")
                                               @RequestParam(value = "user", required = true) String user,
                                               @ApiParam(name = "projectCode", value = "项目Code")
                                               @RequestParam(value = "projectCode", required = false) String projectCode,
                                               @ApiParam(name = "title", value = "事项标题")
                                               @RequestParam(value = "title", required = false) String title,
                                               @ApiParam(name = "content", value = "项目内容")
                                               @RequestParam(value = "content", required = false) String content,
                                               @ApiParam(name = "state", value = "-1取消,0待办,1已完成")
                                               @RequestParam(value = "state", required = false) Integer state,
                                               @ApiParam(name = "begin_time", value = "begin_time")
                                               @RequestParam(value = "begin_time", required = false) String begin_time,
                                               @ApiParam(name = "end_time", value = "end_time")
                                               @RequestParam(value = "end_time", required = false) String end_time,
                                               @ApiParam(name = "startDate", value = "startDate")
                                               @RequestParam(value = "startDate", required = false) String startDate,
                                               @ApiParam(name = "endDate", value = "endDate")
                                               @RequestParam(value = "endDate", required = false) String endDate,
                                               @ApiParam(name = "createUser", value = "createUser")
                                               @RequestParam(value = "createUser", required = false) String createUser,
                                               @ApiParam(name = "createUserName", value = "createUserName")
@ -664,7 +694,7 @@ public class DailyReportUploadPoint extends EnvelopRestEndpoint {
                                               @ApiParam(name = "size", value = "size")
                                               @RequestParam(value = "size", required = true)Integer size) {
        try {
            return dailyReportUploadService.statisticReportItemList(user,title,content,state,begin_time,end_time,createUser,createUserName,page,size);
            return dailyReportUploadService.statisticReportItemList(user,projectCode,title,content,state,startDate,endDate,createUser,createUserName,page,size);
        } catch (Exception e) {
            return failedPageEnvelopException(e);
        }