Преглед изворни кода

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

liubing пре 2 година
родитељ
комит
febbf0433c

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

@ -11740,7 +11740,6 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
                    }
                }
            }
            String result = "作废成功";
            if("xm_zsyy_wx".equalsIgnoreCase(wechatId)){
                /*prescriptionDao.updateCheckStatus(prescriptionId,2,reason,20);*/
                logger.info("作废处方开始" + prescriptionDO.getCheckStatus());
@ -11775,13 +11774,15 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
                        }
                    }
                }
                try {
                    net.sf.json.JSONObject jsonObject = entranceService.BS10112(jsonData.toJSONString(), demoFlag);
                    wlyyHttpLogDO.setResponse(jsonObject.toString());
                    result = jsonObject.getString("@MSG");
                    if(jsonObject.getString("@RESULT").equalsIgnoreCase("-1")){
                        throw new Exception(jsonObject.getString("@MSG"));
                    }
                }catch (Exception e){
                    e.printStackTrace();
                    throw new Exception("作废失败");
                }
                wlyyHttpLogDO.setRequest(jsonData.toJSONString());
                wlyyHttpLogDO.setName("作废处方");
@ -11801,7 +11802,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
            prescriptionDO.setCheckStatus(5);
            prescriptionDO.setCheckReason("已作废");
            prescriptionDao.save(prescriptionDO);
            return result;
            return "已作废";
        }else {
            return "作废失败";
        }

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

@ -0,0 +1,18 @@
package com.yihu.jw.care.dao.message;
import com.yihu.jw.entity.log.ZhaohuifireGasSecEntity;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
/**
 * Created by wsl on 2022/11/28
 */
public interface ZhaohuifireGasSecDao extends PagingAndSortingRepository<ZhaohuifireGasSecEntity, String>, JpaSpecificationExecutor<ZhaohuifireGasSecEntity> {
    List<ZhaohuifireGasSecEntity> findByDailyId(String id);
}

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

@ -239,7 +239,7 @@ public class DoctorMessageEndpoint extends EnvelopRestEndpoint {
                                           @RequestParam(value = "userType", required = false) String userType
    ) {
        try {
            return success("获取成功", 200, patientMessageService.getZhaoHuiRiBaoList(userType,startTime,null,endTime,orgCode));
            return success("获取成功", 200, patientMessageService.getZhaoHuiRiBaoList(userType,startTime,endTime,null,orgCode));
        } catch (Exception e) {
            e.printStackTrace();
            return failedListEnvelopException2(e);
@ -249,13 +249,46 @@ public class DoctorMessageEndpoint extends EnvelopRestEndpoint {
    @GetMapping(value = "/getZHaohuiRiBaoInfo")
    @ApiOperation(value = "获取朝晖日报信息")
    public ObjEnvelop getZHaohuiRiBaoInfo(
                                           @ApiParam(name = "orgId", required = false)
                                           @RequestParam(value = "orgId", required = false) String orgId,
                                           @ApiParam(name = "orgId", required = true)
                                           @RequestParam(value = "orgId", required = true) String orgId,
                                           @ApiParam(name = "dailyId", required = false)
                                           @RequestParam(value = "dailyId", required = false) String dailyId
                                           @RequestParam(value = "dailyId", required = false) String dailyId,
                                           @ApiParam(name = "userType", required = false,value = "3 社工 4管理员")
                                           @RequestParam(value = "userType", required = false) String userType,
                                           @ApiParam(name = "startDate", required = false,value = "开始时间")
                                           @RequestParam(value = "startDate", required = false) String startDate
    ) {
        try {
            return success("获取成功", 200, patientMessageService.getZhaohuiDailyDoctor(dailyId,orgId));
            return success("获取成功", 200, patientMessageService.getZhaohuiDailyDoctor(dailyId,orgId,userType,startDate));
        } catch (Exception e) {
            e.printStackTrace();
            return failedObjEnvelopException2(e);
        }
    }
    @GetMapping(value = "/getDoctorOrgList")
    @ApiOperation(value = "获取机构")
    public ListEnvelop getDoctorOrgList(){
        try {
            return success("获取成功", 200, patientMessageService.getDoctorOrgList());
        } catch (Exception e) {
            e.printStackTrace();
            return failedListEnvelopException2(e);
        }
    }
    @GetMapping(value = "/getAdminZHaohuiRiBaoInfo")
    @ApiOperation(value = "获取管理员朝晖日报信息")
    public ObjEnvelop getAdminZHaohuiRiBaoInfo(
            @ApiParam(name = "id", required = true)
            @RequestParam(value = "id", required = true) String id,
            @ApiParam(name = "startDate", required = false)
            @RequestParam(value = "startDate", required = false) String startDate,
            @ApiParam(name = "endDate", required = false)
            @RequestParam(value = "endDate", required = false) String endDate
    ) {
        try {
            return success("获取成功", 200, patientMessageService.getAdminZhaoHuiRiBaoList(id,startDate,endDate));
        } catch (Exception e) {
            e.printStackTrace();
            return failedObjEnvelopException2(e);

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

@ -344,9 +344,11 @@ public class SecurityMonitoringOrderEndpoint extends EnvelopRestEndpoint {
    @RequestMapping(value = "patientMonitoringInfo2", method = {RequestMethod.POST, RequestMethod.GET})
    @ResponseBody
    public ObjEnvelop patientMonitoringInfo2(@ApiParam(name = "patient", value = "patient")
                                            @RequestParam(value = "patient") String patient) {
                                            @RequestParam(value = "patient") String patient,
                                             @ApiParam(name = "date", value = "date",required = false)
                                             @RequestParam(value = "date",required = false) String date) {
        try {
            return ObjEnvelop.getSuccess( "查询成功", securityMonitoringOrderService.patientMonitoringInfo2(patient));
            return ObjEnvelop.getSuccess( "查询成功", securityMonitoringOrderService.patientMonitoringInfo2(patient,date));
        } catch (Exception e) {
            return failedObjEnvelopException2(e);
        }

+ 151 - 9
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/message/PatientMessageService.java

@ -28,6 +28,7 @@ import com.yihu.jw.patient.dao.BasePatientDao;
import com.yihu.jw.restmodel.ResponseContant;
import com.yihu.jw.restmodel.web.PageEnvelop;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.util.entity.ServiceException;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
@ -39,6 +40,7 @@ import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
 * Created by Bing on 2021/5/19.
@ -85,6 +87,8 @@ public class PatientMessageService {
    private YsDeviceService ysDeviceService;
    @Autowired
    private PadUseTimeDao padUseTimeDao;
    @Autowired
    private ZhaohuifireGasSecDao zhaohuifireGasSecDao;
@ -329,36 +333,71 @@ public class PatientMessageService {
    public String getDoctorOrgId(String id){
        String sql = "select id from base_team where leader_code = '"+id+"' and del = 1 and org_code = 'zdjsylfwyxgszhfgs' ";
        String sql = "SELECT t.id FROM base_team_member m INNER JOIN base_team t ON m.team_code  = t.id WHERE t.del =1 AND t.org_code = 'zdjsylfwyxgszhfgs' AND m.doctor_code = '"+id+"'";
        List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
        return list.get(0).get("id").toString();
    }
    public JSONObject getZhaohuiDailyDoctor(String dailyId, String orgId) {
    public JSONObject getZhaohuiDailyDoctor(String dailyId, String orgId,String userType,String date) {
        JSONObject resultObj = new JSONObject();
        ZhaohuiDailyEntity zhaohuiDailyEntity = zhaohuiDailyDao.findById(Long.parseLong(dailyId));
        String[] data = zhaohuiDailyEntity.getServiceTime().split(",");
        data[0] = "1999-01-01 00:00:00";
        data[1] = "2022-11-29 23:59:59";
        String[] dateS ;
        ZhaohuiDailyEntity zhaohuiDailyEntity = null;
        if (StringUtils.isNotBlank(dailyId)){
            zhaohuiDailyEntity = zhaohuiDailyDao.findById(Long.parseLong(dailyId));
            dateS = zhaohuiDailyEntity.getServiceTime().split(",");
        }else {
            String startDate = date+ " 00:00:00";
            String endDate = date+ " 23:59:59";
            //String startDate = "2022-01-01" + " 00:00:00";
            //String endDate = "2022-11-30" + " 23:59:59";
            String orgDailySql = "select * from base_zhaohui_daily where org_code = '"+orgId+"' and user_type = 3 and  create_time >= '"+startDate+"' and create_time <= '"+endDate+"' ORDER BY create_time DESC";
            List<ZhaohuiDailyEntity> orgDailyList = jdbcTemplate.query(orgDailySql, new BeanPropertyRowMapper<>(ZhaohuiDailyEntity.class));
            dateS = orgDailyList.get(0).getServiceTime().split(",");
            zhaohuiDailyEntity = orgDailyList.get(0);
        }
        //dateS[0] = "2022-01-01 00:00:00";
        //dateS[1] = "2022-11-29 23:59:59";
        if ("4".equals(userType)) {
            String orgSql = "select * from base_team where id = '"+orgId+"' ";
            List<Map<String, Object>> list = jdbcTemplate.queryForList(orgSql);
            zhaohuiDailyEntity.setMessage(zhaohuiDailyEntity.getMessage().replace("您",list.get(0).get("org_name").toString()));
        String sql = "select * from base_zhaohui_daily where org_code='" + orgId + "' and create_time>= '" + data[0] + "' and create_time<='" + data[1] + "' and user_type = 1 ";
            String sql = "SELECT t.org_name orgName,d.photo photo,d.mobile mobile,d.id doctorId,d.`name` doctorName,t.id orgId from base_team t INNER JOIN base_team_member m ON t.id = m.team_code  " +
                    "INNER JOIN base_doctor d ON m.doctor_code = d.id  WHERE t.org_code = 'zdjsylfwyxgszhfgs' AND t.id = '"+orgId+"' ";
            List<Map<String, Object>> doctorList = jdbcTemplate.queryForList(sql);
            resultObj.put("doctorList",doctorList);
        }
        String sql = "select * from base_zhaohui_daily where org_code='" + orgId + "' and create_time>= '" + dateS[0] + "' and create_time<='" + dateS[1] + "' and user_type = 1 ";
        List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
        List<JSONObject> patientBasInfoList = new ArrayList<>();
        if (list.size()>0) {
            long startTime = System.currentTimeMillis();
            for (Map<String, Object> map : list) {
                JSONObject zHaohuiRiBaoInfo = getZHaohuiRiBaoInfo(map.get("patient").toString(), map.get("id").toString());
                sql = "SELECT SUM(a.total) as total FROM (\n" +
                        "SELECT count(o.id) total FROM base_emergency_assistance_order o  WHERE o.patient ='"+map.get("patient").toString()+"' and o.status NOT IN (-1,0) AND o.create_time >='" + data[0] + "' AND o.create_time<='" + data[1] + "' \n" +
                        "SELECT count(o.id) total FROM base_emergency_assistance_order o  WHERE o.patient ='"+map.get("patient").toString()+"' and o.status NOT IN (-1,0) AND o.create_time >='" + dateS[0] + "' AND o.create_time<='" + dateS[1] + "' \n" +
                        "UNION ALL \n" +
                        "SELECT count(o.id) total FROM base_security_monitoring_order o  WHERE o.patient = '"+map.get("patient").toString()+"'  and o.status NOT IN (-1,0) AND o.create_time >='" + data[0] + "' AND o.create_time<='" + data[1] + "' \n" +
                        "SELECT count(o.id) total FROM base_security_monitoring_order o  WHERE o.patient = '"+map.get("patient").toString()+"'  and o.status NOT IN (-1,0) AND o.create_time >='" + dateS[0] + "' AND o.create_time<='" + dateS[1] + "' \n" +
                        ") a";
                Integer emeNum = jdbcTemplate.queryForObject(sql, Integer.class);
                zHaohuiRiBaoInfo.put("redDot",emeNum);
                patientBasInfoList.add(zHaohuiRiBaoInfo);
            }
            long endTime = System.currentTimeMillis();
            System.out.println(endTime - startTime);
        }
        resultObj.put("doctorBaseInfo", zhaohuiDailyEntity);
@ -367,6 +406,11 @@ public class PatientMessageService {
    }
    public List<Map<String, Object>>  getDoctorOrgList(){
        String sql ="select id,org_name from base_team where org_code = 'zdjsylfwyxgszhfgs'";
        return jdbcTemplate.queryForList(sql);
    }
    public JSONObject getZHaohuiRiBaoInfo(String patient, String dailyId){
        JSONObject result = new JSONObject();
@ -437,6 +481,12 @@ public class PatientMessageService {
            emeObject.put("status",0);
        }
        result.put("eme",emeObject);
        //烟感  //气感
        List<ZhaohuifireGasSecEntity> fire = zhaohuifireGasSecDao.findByDailyId(dailyId);
        result.put("fire",fire);
        return result;
    }
@ -468,6 +518,98 @@ public class PatientMessageService {
    }
    public Map<Object, List<Map<String, Object>>>  getAdminZhaoHuiRiBaoList(String id,String startDate,String endDate){
        String adminSql = "select r.name orgName,r.code orgCode from wlyy_role r inner join wlyy_user_role ur on r.code = ur.role where ur.user = '"+id+"' and ur.del = 1  ";
        List<Map<String, Object>> adminList = jdbcTemplate.queryForList(adminSql);
        if (0==adminList.size()) {
            throw new ServiceException("当前用户不是管理员!");
        }
        String orgName = adminList.get(0).get("orgName").toString();
        String orgCode = adminList.get(0).get("orgCode").toString();
        String sql = "select id,SUM(eme_num) emeNum,SUM(service) service ,DATE_FORMAT(create_time,'%Y-%m-%d') as create_time,org_code from base_zhaohui_daily WHERE 1=1 ";
        String sonSql = "";
        if (StringUtils.isNotBlank(startDate)&&StringUtils.isNotBlank(endDate))sonSql+=" and create_time >= '"+startDate+" 00:00:00"+"' and  create_time<= '"+endDate+" 23:59:59"+"' ";
        if ("杭州市拱墅区朝晖街道办事处".equals(orgName)&&"330100".equals(orgCode)) {
            sonSql += "AND user_type = 3 GROUP BY DATE_FORMAT(create_time,'%Y-%m-%d'),org_code";
        }else {
            sonSql += " and org_code ='"+orgCode+"' and user_type = 3 group By create_time";
        }
        System.out.println(startDate+":::::"+endDate);
        System.out.println("sql:-------------------"+sql+sonSql);
        List<Map<String, Object>> resultList = jdbcTemplate.queryForList(sql + sonSql);
        for (Map<String, Object> map : resultList) {
            switch (map.get("org_code").toString()){
                case "8a92aba97a9f6f49017ae4fdbdjysjhyteam":
                    map.put("orgName","大木桥社区");
                    break;
                case "8a92aba97a9f6f49017ae4fdbdmqteam":
                    map.put("orgName","华联社区");
                    break;
                case "8a92aba97a9f6f49017ae4fdbyjqteam":
                    map.put("orgName","应家桥社区");
                    break;
                case "8a92aba97a9f6f49017ae4fdblyhdteam":
                    map.put("orgName","黎园社区");
                    break;
                case "8a92aba97a9f6f49017ae4fdbhydxyteam":
                    map.put("orgName","虹园社区");
                    break;
                case "8a92aba97a9f6f49017ae4fdbhydxyteam2":
                    map.put("orgName","稻香园社区");
                    break;
                case "8a92aba97a9f6f49017ae4fdbtnhlfuteam":
                    map.put("orgName","塘南社区");
                    break;
                case "8a92aba97a9f6f49017ae4fdbygqlfdteam":
                    map.put("orgName","玉公桥社区");
                    break;
                case "8a92aba97a9f6f49017ae4fdbygqlfdteam2":
                    map.put("orgName","老房地社区");
                    break;
                case "8a92aba97b1ad5a8017b1ad73cfe0009team":
                    map.put("orgName","施家花园社区");
                    break;
                case "8a92aba97b1ad5a8017b1ad73d07000ateam":
                    map.put("orgName","河东社区");
                    break;
                case "8a92aba97b1ad5a8017b1ad73d19000cteam":
                    map.put("orgName","大家苑社区");
                    break;
            }
            startDate = map.get("create_time")+" 00:00:00";
            endDate = map.get("create_time")+" 23:59:59";
            String emeSecTotalSql = "SELECT SUM(a.total) FROM (\n" +
                    "SELECT count(id) total FROM base_security_monitoring_order WHERE team_code = '"+map.get("org_code").toString()+"' AND create_time >= '"+startDate+"' AND create_time <='"+endDate+"' AND `status` NOT IN (0,-1) \n" +
                    "UNION ALL\n" +
                    "SELECT count(id) total FROM base_emergency_assistance_order WHERE team_code = '"+map.get("org_code").toString()+"' AND create_time >= '"+startDate+"' AND create_time <='"+endDate+"' AND `status` NOT IN (0,-1) \n" +
                    ") a";
            Integer emeSecTotal = jdbcTemplate.queryForObject(emeSecTotalSql, Integer.class);
            map.put("notEmeSecTotal",emeSecTotal);
        }
        Map<Object, List<Map<String, Object>>> create_time = resultList.stream().collect(Collectors.groupingBy(obj -> obj.get("create_time")));
        //System.out.println(JSON.toJSONString(create_time));
        //JSON.toJSONString(create_time);
        return create_time;
    }
    public void padUseTime(String patient){
        PadUseTimeEntity padUseTimeEntity = new PadUseTimeEntity();
        padUseTimeEntity.setTime(1);

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

@ -65,6 +65,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
/**
 * Created by Bing on 2021/4/6.
@ -1812,7 +1813,20 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
     * 最近 血糖  血压记录
     * 监控
     */
    public JSONObject patientMonitoringInfo2(String patient) {
    public JSONObject patientMonitoringInfo2(String patient,String date) {
        String startDate = "";
        String endDate="";
        boolean flagDate = false;
        if (StringUtils.isNotBlank(date)){
            flagDate = true;
            startDate = date+" 00:00:00";
            endDate = date+" 23:59:59";
        }
        JSONObject result = new JSONObject();
        result.put("atHome", null);// 居家状态
        result.put("location", null);
@ -1829,6 +1843,12 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
                " on dict.code = ord.topic_item COLLATE utf8_unicode_ci and ord.status=" + SecurityMonitoringOrderDO.Status.apply.getType() + " where dict.dict_code='service_item' " +
                "and dict.remark='security' and ord.patient='" + patient + "' GROUP BY dict.code ";
        List<Map<String, Object>> sqlResult = jdbcTemplate.queryForList(sql);
        String dateCreateSql = " ";
        String dateOCreateSql = " ";
        String dateRSql = " ";
        String dateRTSql = " ";
        if (flagDate)dateCreateSql = " and create_time >='"+startDate+"' and create_time<= '"+endDate+"' ";
        if (flagDate)dateOCreateSql = " and o.create_time >='"+startDate+"' and o.create_time<= '"+endDate+"' ";
        for (Map<String, Object> tmp : sqlResult) {
            switch (tmp.get("code").toString()) {
                case "preventGasLeakage":
@ -1860,7 +1880,7 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
                    if (count > 0) {
                        result.put("sleep", true);
                        sql = " select serve_desc from base_security_monitoring_order where topic_item='preventOutOfBed' " +
                                "and patient='" + patient + "' and `status`=1 order by create_time desc limit 1 ";
                                "and patient='" + patient + "' and `status`=1 "+dateCreateSql+" order by create_time desc limit 1 ";
                        List<String> serveDesces = jdbcTemplate.queryForList(sql, String.class);
                        if (serveDesces.size() > 0) {
                            result.put("sleepOrderInfo", serveDesces.get(0));
@ -1874,7 +1894,7 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
                    if (count > 0) {
                        result.put("dailyWater", true);
                        sql = " select serve_desc from base_security_monitoring_order where topic_item='dailyWater' " +
                                "and patient='" + patient + "' and `status`=1 order by create_time desc limit 1 ";
                                "and patient='" + patient + "' and `status`=1 "+dateCreateSql+" order by create_time desc limit 1 ";
                        List<String> serveDesces = jdbcTemplate.queryForList(sql, String.class);
                        if (serveDesces.size() > 0) {
                            result.put("dailyWaterOrderInfo", serveDesces.get(0));
@ -1888,7 +1908,7 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
                    if (count > 0) {
                        result.put("accessControl", true);
                        sql = " select serve_desc from base_security_monitoring_order where topic_item='accessControl' " +
                                "and patient='" + patient + "' and `status`=1 order by create_time desc limit 1 ";
                                "and patient='" + patient + "' and `status`=1 "+dateCreateSql+" order by create_time desc limit 1 ";
                        List<String> serveDesces = jdbcTemplate.queryForList(sql, String.class);
                        if (serveDesces.size() > 0) {
                            result.put("accessControlOrderInfo", serveDesces.get(0));
@ -1902,7 +1922,7 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
                    if (count > 0) {
                        result.put("electricControl", true);
                        sql = " select serve_desc from base_security_monitoring_order where topic_item='electricControl' " +
                                "and patient='" + patient + "' and `status`=1 order by create_time desc limit 1 ";
                                "and patient='" + patient + "' and `status`=1  "+dateCreateSql+" order by create_time desc limit 1 ";
                        List<String> serveDesces = jdbcTemplate.queryForList(sql, String.class);
                        if (serveDesces.size() > 0) {
                            result.put("electricControlOrderInfo", serveDesces.get(0));
@ -1913,17 +1933,23 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
                    break;
            }
        }
        sql = " select count(id) from base_emergency_assistance_order  where patient='" + patient + "' and status=" + EmergencyAssistanceDO.Status.apply.getType();
        sql = " select count(id) from base_emergency_assistance_order  where patient='" + patient + "' "+dateCreateSql+" and  status=" + EmergencyAssistanceDO.Status.apply.getType();
        Integer counnt = jdbcTemplate.queryForObject(sql, Integer.class);
        if (counnt > 0) {
            result.put("emeAssistance", true);
        }
        List<DevicePatientDevice> devices4 = patientDeviceDao.findByUserAndCategoryCode(patient, "4");//手表
        if (flagDate)dateRSql = " and record_date>= '"+startDate+"' and record_date<= '"+endDate+"'";
        if (flagDate)dateRTSql = " and record_time>= '"+startDate+"' and record_time<= '"+endDate+"'";
        //手表佩戴
        result.put("wear_flag","");
        result.put("wear_flagName","");
        result.put("wear_power",0);
        result.put("wear_heart",0);
        result.put("wear_heartS","");
        result.put("wear_steps",0);
        result.put("wear_serveDesc","无");
        result.put("wear_online",0);
        if (devices4.size() > 0) {
            result = patientSignTopicInfo(result, patient, "preventLost", devices4.get(0).getDeviceSn(), true);
@ -1933,15 +1959,190 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
                result.put("wear_flag", response.get("wear_flag"));
                result.put("wear_flagName", 1==response.getInteger("wear_flag")?"未佩戴":"已佩戴");
            }
            if (response.containsKey("remaining_power") && response.get("remaining_power") != null) {
                result.put("wear_power",response.get("remaining_power").toString());
            }
            if (response.getBoolean("online")) {//设备在线状态
                result.put("wear_online",1);
            }
            //心率
            sql = " select value1,device_sn,CAST(DATE_FORMAT(record_date,'%Y-%m-%d %H:%i:%S') as char) record_date from wlyy_patient_health_index " +
                    " where type=5 and device_sn='" + devices4.get(0).getDeviceSn() + "' and del=1  "+dateRSql+"  ORDER BY record_date DESC ";
             sqlResult = jdbcTemplate.queryForList(sql);
            if (sqlResult.size() > 0) {
                Integer num = sqlResult.stream().mapToInt(obj -> Integer.parseInt(obj.get("value1").toString())).sum();
                result.put("wear_heart",(num / sqlResult.size()) + "");
                result.put("wear_heartS",JSONObject.toJSONString(sqlResult));
            }
            //手表步数数据
            sql = "select steps from base_patient_step where 1=1  and device_sn='" + devices4.get(0).getDeviceSn() + "' "+dateCreateSql+" order by create_time desc limit 2 ";
            sqlResult = jdbcTemplate.queryForList(sql);
            if (sqlResult.size() > 0) {
                result.put("wear_steps",sqlResult.get(0).get("steps").toString());
            }
            //检测异常
            sql = "  select '紧急呼叫' serve_desc ,o.create_time " +
                    " from base_emergency_assistance_order o " +
                    " INNER JOIN base_patient p on p.id = o.patient where device_sn='" + devices4.get(0).getDeviceSn() + "' and o.status=1 " +dateOCreateSql+
                    " UNION " +
                    " select o.serve_desc ,o.create_time " +
                    " from base_security_monitoring_order o " +
                    " INNER JOIN base_patient p on p.id = o.patient where device_sn='" + devices4.get(0).getDeviceSn() + "' and o.status=1 " +dateOCreateSql +
                    "  order by create_time desc limit 1 ";
            sqlResult = jdbcTemplate.queryForList(sql);
            if (sqlResult.size() > 0) {
                result.put("wear_serveDesc",sqlResult.get(0).get("serve_desc").toString());
            }
        }
        patientSignTopicInfo(result, patient, "preventFall", null, true);
        result.put("video_serveDesc","无");
        result.put("video_emeStatus",0);
        List<DevicePatientDevice> video = patientDeviceDao.findByUserAndCategoryCode(patient, "12");//视频
        if (video.size()>0){
            sql = " select o.serve_desc,o.id  " +
                    "  from base_security_monitoring_order o " +
                    " INNER JOIN base_patient p on p.id = o.patient where device_sn='"+video.get(0).getDeviceSn()+"' and o.status=1  "+dateOCreateSql+"  and topic_item = 'preventFall' ORDER BY o.create_time desc  limit 1   ";
            sqlResult = jdbcTemplate.queryForList(sql);
            if (sqlResult.size()>0){
                result.put("video_serveDesc",sqlResult.get(0).get("serve_desc").toString());
                result.put("video_emeStatus",1);
            }
        }
        List<DevicePatientDevice> bjqDevice = patientDeviceDao.findByUserAndCategoryCode(patient, "7");//报警器
        result.put("bjq_online",0);
        result.put("bjq_serveDesc","未发出主动报警");
        result.put("bjq_emeStatus",0);
        if (bjqDevice.size()>0){
            sql = "  select o.id,o.create_time from base_emergency_assistance_order o " +
                    " INNER JOIN base_patient p on p.id = o.patient where device_sn='"+bjqDevice.get(0).getDeviceSn()+"' and o.status=1 "+dateOCreateSql+"  ORDER BY create_time desc  limit 1 ";
            List<Map<String, Object>> jjbjqList = jdbcTemplate.queryForList(sql);
            if (jjbjqList.size()>0) {
                result.put("bjq_serveDesc","发出紧急呼叫");
                result.put("bjq_emeStatus",1);
            }
            JSONObject aqgDeviceInfo2 = patientDeviceService.getAqgDeviceInfo2(bjqDevice.get(0).getDeviceSn());
            if (null!=aqgDeviceInfo2){
                //电量
                //在线状态实时获取
                if (aqgDeviceInfo2.getBoolean("online")) {//设备在线状态
                    result.put("bjq_online",1);
                }
            }
        }
        List<DevicePatientDevice> smdDevice = patientDeviceDao.findByUserAndCategoryCode(patient, "13");//睡眠带
        result.put("sleep_online",0);
        result.put("sleep_serveDesc","无");
        result.put("sleep_avgbr",0);
        result.put("sleep_avghr",0);
        result.put("sleep_yestGetUpTime","无");
        result.put("sleep_getUpTime","无");
        if (smdDevice.size()>0) {
            JSONObject sleepDeviceInfo = patientDeviceService.getSleepDeviceInfo(smdDevice.get(0).getDeviceSn());
            if (sleepDeviceInfo.getBooleanValue("success")) {
                JSONArray objs = sleepDeviceInfo.getJSONArray("objs");
                JSONObject response  = objs.getJSONObject(0);
                if (response.getBoolean("online")) {//设备在线状态
                    result.put("sleep_online",1);
                }
            }
            sql = " select o.id,p.id patient,p.name,p.idcard,p.residential_area,'22' OrderType,'1' type,o.serve_address,o.serve_desc,  " +
                    " o.status,DATE_FORMAT(o.create_time,'%Y-%m-%d %H:%i:%S') create_time from base_security_monitoring_order o " +
                    " INNER JOIN base_patient p on p.id = o.patient where device_sn='"+smdDevice.get(0).getDeviceSn()+"' and o.status=1 "+dateOCreateSql+" ORDER BY create_time desc  limit 1 ";
            sqlResult = jdbcTemplate.queryForList(sql);
            if (sqlResult.size()>0) {
                result.put("sleep_serveDesc",sqlResult.get(0).get("serve_desc").toString());
            }
            //起夜次数
            sql = "SELECT count(id) FROM base_sleep_night_record WHERE patient = '"+patient+"' AND device_sn = '"+smdDevice.get(0).getDeviceSn()+"' "+dateCreateSql+"  and `status` = 1";
            Integer getUpNum = jdbcTemplate.queryForObject(sql, Integer.class);
            result.put("sleep_upNum",getUpNum);
            //呼吸心率曲线
            sql = "select avghr,avgbr, DATE_FORMAT(create_time,'%Y-%m-%d %H:%i:%S') as create_time from base_sleep_device where patient = '" + patient + "' and device_sn ='" + smdDevice.get(0).getDeviceSn() + "'  "+dateCreateSql+"  GROUP BY DATE_FORMAT(create_time,'%Y-%m-%d %H:%i:%S') ";
            List<Map<String, Object>> avghrList = jdbcTemplate.queryForList(sql);
            result.put("sleep_avghr_avgbra",JSONObject.toJSONString(avghrList));
            sql = "select avghr,avgbr,bucket from base_sleep_device where patient = '" + patient + "' and device_sn ='" + smdDevice.get(0).getDeviceSn() + "'  "+dateCreateSql+"  order by create_time DESC limit 1";
            List<Map<String, Object>> sleepList = jdbcTemplate.queryForList(sql);
            if (sleepList.size() > 0) {
                //呼吸频率
                result.put("sleep_avgbr",sleepList.get(0).get("avgbr").toString());
                //心率
                result.put("sleep_avghr",sleepList.get(0).get("avghr").toString());
                String[] split = sleepList.get(0).get("bucket").toString().split(",");
                split = split[split.length - 1].replace("]", "").split("-");
                String end = split[split.length - 1].replace("\"", "");
                String start = split[0].replace("\"", "");
                //昨日睡眠时间
                result.put("sleep_yestGetUpTime",start);
                //起床时间
                result.put("sleep_getUpTime",end);
            }
        }
        List<DevicePatientDevice> fireDevice = patientDeviceDao.findByUserAndCategoryCode(patient, "14");//火灾
        result.put("yg_secStatus",0);
        result.put("yg_fireCurve","");
        result.put("yg_online",1);
        if (fireDevice.size()>0) {
            sql = " select count(o.id) as total from base_security_monitoring_order o " +
                    " INNER JOIN base_patient p on p.id = o.patient where device_sn='" + fireDevice.get(0).getDeviceSn() + "' and o.status=1  "+dateOCreateSql+" ORDER BY o.create_time desc    ";
            Integer ygTotal = jdbcTemplate.queryForObject(sql, Integer.class);
            sql = " select value, DATE_FORMAT( record_time, '%H:%i:%S' ) as record_time  from base_device_health_index where device_sn='" + fireDevice.get(0).getDeviceSn() + "' "+dateRTSql+" ORDER BY record_time desc";
            List<Map<String, Object>> ygList = jdbcTemplate.queryForList(sql);
            result.put("yg_secStatus",ygTotal>0?1:0);
            result.put("yg_fireCurve",ygList);
        }
        List<DevicePatientDevice> gasDevice = patientDeviceDao.findByUserAndCategoryCode(patient, "15");//气感
        result.put("qg_secStatus",0);
        result.put("qg_fireCurve","");
        result.put("qg_online",1);
        if (gasDevice.size()>0) {
            sql = " select count(o.id) as total from base_security_monitoring_order o " +
                    " INNER JOIN base_patient p on p.id = o.patient where device_sn='"+gasDevice.get(0).getDeviceSn()+"' and o.status=1 "+dateOCreateSql+" ORDER BY o.create_time desc  limit 1 ";
            Integer qgTotal = jdbcTemplate.queryForObject(sql, Integer.class);
            result.put("qg_secStatus",qgTotal>0?1:0);
            sql = " select value,DATE_FORMAT( record_time, '%H:%i:%S' ) as record_time  from base_device_health_index where device_sn='"+gasDevice.get(0).getDeviceSn()+"' "+dateRTSql+"  ORDER BY record_time desc limit 1 ";
            List<Map<String, Object>> qgList = jdbcTemplate.queryForList(sql);
            result.put("qg_fireCurve",JSON.toJSONString(qgList));
        }
        String healthXYSql ="SELECT value1,value2,value3 FROM wlyy_patient_health_index WHERE `user` = '"+patient+"' AND type = 2  ORDER BY record_date DESC LIMIT 1";
        String healthXYSql ="SELECT value1,value2,value3 FROM wlyy_patient_health_index WHERE `user` = '"+patient+"' AND type = 2 "+dateRSql+" ORDER BY record_date DESC LIMIT 1";
        List<Map<String, Object>> XY = jdbcTemplate.queryForList(healthXYSql);
        String healthXTSql ="SELECT value1,value2,value3,value4 FROM wlyy_patient_health_index WHERE `user` = '"+patient+"' AND type = 1  ORDER BY record_date DESC LIMIT 1";
        String healthXTSql ="SELECT value1,value2,value3,value4 FROM wlyy_patient_health_index WHERE `user` = '"+patient+"' AND type = 1 "+dateRSql+"  ORDER BY record_date DESC LIMIT 1";
        List<Map<String, Object>> XT = jdbcTemplate.queryForList(healthXTSql);
        if (XY.size()!= 0) {
@ -1980,8 +2181,20 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
        }else {
            result.put("xt",null);
        }
        String patientDeviceCategoryCode = deviceService.getPatientDeviceCategoryCode(patient);
        result.put("deviceShowInfo",patientDeviceCategoryCode);
        //String patientDeviceCategoryCode = deviceService.getPatientDeviceCategoryCode(patient);
        if (StringUtils.isNotBlank(patient)){
             sql = "select Distinct category_code from wlyy_patient_device where user='"+patient+"' and category_code in (7,4,12,13,14,15) and del=0 order by category_code asc";
            List<String> categorys = jdbcTemplate.queryForList(sql,String.class);
            if (categorys.size()>0){
                String categoryStr =  categorys.stream().map(String::valueOf).collect(Collectors.joining(","));
                result.put("deviceShowInfo",categoryStr);
            }else {
                result.put("deviceShowInfo",0);
            }
        }
        return result;
    }

+ 1 - 10
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/statistics/DetectionPlatformService.java

@ -20,13 +20,10 @@ import com.yihu.jw.es.util.SaveModel;
import com.yihu.jw.file_upload.FileUploadService;
import com.yihu.jw.org.dao.BaseOrgDao;
import com.yihu.jw.patient.dao.BasePatientDao;
import com.yihu.jw.restmodel.iot.common.UploadVO;
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 org.apache.commons.collections.map.HashedMap;
import org.apache.tomcat.util.http.fileupload.IOUtils;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -36,13 +33,6 @@ import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.FileInputStream;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.text.DecimalFormat;
import java.util.*;
import java.util.stream.Collectors;
@ -801,6 +791,7 @@ public class DetectionPlatformService  {
            }
        };
        String result = ArtemisHttpUtil.doGetArtemis(path, querys,null,null,null);
        System.out.println("-------------"+result);
        if(org.apache.commons.lang.StringUtils.isNotBlank(result)){
            //TODO 他们返回的json格式有问题,去掉错误字符。
            result = result.replace("\\n","").replace("\\","");

+ 7 - 1
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/job/pushRecord/PushZhaohuiRoundJob.java

@ -30,9 +30,15 @@ public class PushZhaohuiRoundJob implements Job {
            System.out.println("====================朝晖日报end==================");
            System.out.println("====================朝晖日报社工start==================");
            zhaohuiDailyService.doctorDaily();
            System.out.println("====================朝晖日报社工end==================");
            System.out.println("====================朝晖日报幼儿start==================");
            zhaohuiDailyService.child();
            System.out.println("====================朝晖日报end==================");
            System.out.println("====================朝晖日报幼儿end==================");
        } catch (Exception e) {
            logger.info("PushZhaohuiRoundJob --ERROR MSG:" + e.getMessage());
            e.printStackTrace();

+ 15 - 10
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/service/message/ZhaohuiDailyService.java

@ -76,7 +76,7 @@ public class ZhaohuiDailyService {
                          //  AND id = '808080eb78d3ce030178edeb4346002b'
    //获取所有老人
    private List<BasePatientDO> olds() {
        String sql = "SELECT * FROM base_patient WHERE archive_type =1 AND sign_status =1  AND del = 1 and id NOT IN (SELECT dict_code FROM wlyy_hospital_sys_dict WHERE `dict_name` = 'jkzl_older')";
        String sql = "SELECT DISTINCT  p.* FROM base_patient p INNER JOIN base_service_package_sign_record r ON p.id = r.patient  WHERE p.id NOT IN (SELECT dict_code FROM wlyy_hospital_sys_dict WHERE `dict_name` = 'jkzl_older') ";
        List<BasePatientDO> query = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(BasePatientDO.class));
        return query;
    }
@ -113,7 +113,9 @@ public class ZhaohuiDailyService {
        String oldId = old.getId();
        String date = DateUtil.getStringDateShort();
        //String stateDate = "2022-01-01" + " 00:00:00";
        String stateDate = date + " 00:00:00";
        //String endDate = "2022-11-30" + " 23:59:59";
        String endDate = date + " 23:59:59";
        Integer deviceTotal = 0;
        String deviceName = "";
@ -132,6 +134,8 @@ public class ZhaohuiDailyService {
        List<Map<String, Object>> orgCodeList = jdbcTemplate.queryForList(orgCodeSql);
        if (orgCodeList.size()>0) {
            zhaohuiDailyEntity.setOrgCode(orgCodeList.get(0).get("orgId").toString());
        }else {
            zhaohuiDailyEntity.setOrgCode("8a92aba97a9f6f49017ae4fdbdjysjhyteam");
        }
@ -187,7 +191,7 @@ public class ZhaohuiDailyService {
        if (padUseTimeList.size()>0) {
            padUseTimeList.get(padUseTimeList.size()-1).get("time");
            zhaohuiDailyEntity.setPadLastTime(padUseTimeList.get(padUseTimeList.size()-1).get("time").toString());
            logger.info("pad最后使用时间:"+padUseTimeList.get(padUseTimeList.size()-1).get("create_time").toString());
           // logger.info("pad最后使用时间:"+padUseTimeList.get(padUseTimeList.size()-1).get("create_time").toString());
            zhaohuiDailyEntity.setPadLastTotalTime(padUseTimeList.get(padUseTimeList.size()-1).get("create_time").toString());
        }else {
            zhaohuiDailyEntity.setPadLastTime("0");
@ -304,10 +308,10 @@ public class ZhaohuiDailyService {
                        zhaohuiDailyWatchEntity.setServeDesc("无");
                    }
                    JSONArray x1Locations = getX1Locations(oldId, stateDate);
                    /*JSONArray x1Locations = getX1Locations(oldId, stateDate);
                    if (null!=x1Locations&&x1Locations.size()>0) {
                        zhaohuiDailyWatchEntity.setLocations(x1Locations.toJSONString());
                    }
                    }*/
                    zhaohuiDailyWatchList.add(zhaohuiDailyWatchEntity);
                    break;
@ -388,12 +392,11 @@ public class ZhaohuiDailyService {
                case 14: //烟感
                    ZhaohuifireGasSecEntity yg = new ZhaohuifireGasSecEntity();
                    sql = " select count(o.id) as total from base_security_monitoring_order o " +
                            " INNER JOIN base_patient p on p.id = o.patient where device_sn='" + deviceSn + "' and o.status=1 and o.create_time >= '" + stateDate + "' and o.create_time <= '" + endDate + "' ORDER BY create_time desc    ";
                            " INNER JOIN base_patient p on p.id = o.patient where device_sn='" + deviceSn + "' and o.status=1 and o.create_time >= '" + stateDate + "' and o.create_time <= '" + endDate + "' ORDER BY o.create_time desc    ";
                    Integer ygTotal = jdbcTemplate.queryForObject(sql, Integer.class);
                    sql = " select value, DATE_FORMAT( record_time, '%H:%i:%S' ) as record_time  from base_device_health_index where device_sn='" + deviceSn + "' and record_time >= '" + stateDate + "' and record_time <= '" + endDate + "' ORDER BY record_time desc";
                    List<Map<String, Object>> ygList = jdbcTemplate.queryForList(sql);
                    JSONArray ygJsonArray = JSONArray.parseArray(ygList.toString());
                    yg.setDailyId(zhaohuiID);
                    yg.setOnline(1);
@ -403,13 +406,13 @@ public class ZhaohuiDailyService {
                    }else {
                        yg.setSecStatus(0);
                    }
                    yg.setFireCurve(ygJsonArray.toJSONString());
                    yg.setFireCurve(JSON.toJSONString(ygList));
                    zhaohuifireGasSecEntityList.add(yg);
                    break;
                case 15: //气感
                    sql = " select count(o.id) as total from base_security_monitoring_order o " +
                            " INNER JOIN base_patient p on p.id = o.patient where device_sn='"+deviceSn+"' and o.status=1 and o.create_time >= '"+stateDate+"' and o.create_time <= '"+endDate+"' ORDER BY create_time desc  limit 1 ";
                            " INNER JOIN base_patient p on p.id = o.patient where device_sn='"+deviceSn+"' and o.status=1 and o.create_time >= '"+stateDate+"' and o.create_time <= '"+endDate+"' ORDER BY o.create_time desc  limit 1 ";
                    Integer qgTotal = jdbcTemplate.queryForObject(sql, Integer.class);
                    ZhaohuifireGasSecEntity qg = new ZhaohuifireGasSecEntity();
@ -423,8 +426,7 @@ public class ZhaohuiDailyService {
                    }
                    sql = " select value,DATE_FORMAT( record_time, '%H:%i:%S' ) as record_time  from base_device_health_index where device_sn='"+deviceSn+"' and record_time >='"+stateDate+"' and record_time <= '"+endDate+"'  ORDER BY record_time desc limit 1 ";
                    List<Map<String, Object>> qgList = jdbcTemplate.queryForList(sql);
                    JSONArray qgJsonArray = JSONArray.parseArray(qgList.toString());
                    qg.setFireCurve(qgJsonArray.toJSONString());
                    qg.setFireCurve(JSON.toJSONString(qgList));
                    zhaohuifireGasSecEntityList.add(qg);
                    break;
            }
@ -512,6 +514,9 @@ public class ZhaohuiDailyService {
        String stateDate = date + " 00:00:00";
        String endDate = date + " 23:59:59";
        //String stateDate = "2022-01-01" + " 00:00:00";
        //String endDate = "2022-11-30" + " 23:59:59";
        List<Map<String, Object>> orgList = jdbcTemplate.queryForList(doctorSql);
        List<ZhaohuiDailyEntity> zhaohuiDailyEntityList = new ArrayList<>();
        for (Map<String, Object> map : orgList) {

+ 1 - 1
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/web/JobController.java

@ -61,7 +61,7 @@ public class JobController extends BaseController {
    @ApiOperation("123")
    public String abc() {
        try {
            zhaohuiDailyService.doctorDaily();
            zhaohuiDailyService.allRound();
            return success("更新成功!");
        } catch (Exception e) {
            error(e);