Ver código fonte

Merge branch 'dev' of liubing/wlyy2.0 into dev

liubing 3 anos atrás
pai
commit
9cd29382a1
23 arquivos alterados com 1064 adições e 47 exclusões
  1. 33 16
      business/es-service/src/main/java/com/yihu/jw/es/util/ElasticsearchUtil.java
  2. 48 1
      common/common-entity/sql记录
  3. 1 1
      common/common-entity/src/main/java/com/yihu/jw/entity/care/assistance/EmergencyAssistanceDO.java
  4. 3 3
      common/common-entity/src/main/java/com/yihu/jw/entity/care/birthday/BirthDayWishesToPatient.java
  5. 169 0
      common/common-entity/src/main/java/com/yihu/jw/entity/care/birthday/BirthdayWishesNotPush.java
  6. 13 0
      common/common-entity/src/main/java/com/yihu/jw/entity/care/prescription/BaseCarePrescriptionDO.java
  7. 10 1
      common/common-entity/src/main/java/com/yihu/jw/entity/care/securitymonitoring/SecurityMonitoringOrderDO.java
  8. 294 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/doctor/admin/AdminInfoEndpoint.java
  9. 2 2
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/statistics/DetectionPlatformEndpoint.java
  10. 1 1
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/statistics/OpenStatisticsEndpoint.java
  11. 16 3
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/birthday/BirthdayWishesService.java
  12. 2 1
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/prescription/BaseCarePrescriptionService.java
  13. 2 2
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/security/SecurityMonitoringOrderService.java
  14. 12 6
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/statistics/DetectionPlatformService.java
  15. 154 7
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/statistics/StatisticsService.java
  16. 1 1
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/statistics/WlyygcStatisticsService.java
  17. 14 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/util/CommonUtil.java
  18. 12 0
      svr/svr-cloud-job/src/main/java/com/yihu/jw/care/dao/birthday/BirthdayWishesNotPushDao.java
  19. 10 0
      svr/svr-cloud-job/src/main/java/com/yihu/jw/care/event/ApplicationEvent.java
  20. 35 0
      svr/svr-cloud-job/src/main/java/com/yihu/jw/care/job/birthday/BirthdayWishesNotPushJob.java
  21. 80 0
      svr/svr-cloud-job/src/main/java/com/yihu/jw/care/service/BirthdayReminderService.java
  22. 3 1
      svr/svr-cloud-job/src/main/resources/system.properties
  23. 149 1
      svr/svr-statistics-es/src/main/java/com/yihu/wlyy/statistics/etl/compute/ComputeHelper.java

+ 33 - 16
business/es-service/src/main/java/com/yihu/jw/es/util/ElasticsearchUtil.java

@ -760,6 +760,18 @@ public class ElasticsearchUtil {
     */
    public List findDateQuotaLevel1(String startDate, String endDate, String area, int level, String index, String timeLevel, String slaveKey1, String interval, String lowLevel) throws Exception {
        //时间格式转换  yyyy-MM-dd转成 2017-07-17T00:00:00+0800
        String areaLevel="6";
        if (!index.contains(",")){
            String sqlArea = " select area_level from wlyy_job_config_new where id="+index;
            List<String> areaLevels = jdbcTemplate.queryForList(sqlArea,String.class);
            if (areaLevels.size()>0){
                areaLevel = areaLevels.get(0);
            }
        }
        if (StringUtils.isBlank(areaLevel)){
            areaLevel="6";
        }
        //时间格式转换  yyyy-MM-dd转成 2017-07-17T00:00:00+0800
        if (StringUtils.isNotEmpty(startDate)) {
            if (startDate.length() > 10) {
@ -831,7 +843,7 @@ public class ElasticsearchUtil {
//        sql.append(" quotaCode='" + index + "'  ");
        sql.append(" quotaCode in(" + index + ")  ");
        sql.append(" and timeLevel='" + timeLevel + "'  ");
        sql.append(" and areaLevel='6'");
        sql.append(" and areaLevel='"+areaLevel+"'");
        if (StringUtils.isNotEmpty(startDate)) {
            sql.append(" and quotaDate>='" + startDate + "'");
        }
@ -1174,15 +1186,18 @@ public class ElasticsearchUtil {
        if (StringUtils.isNotEmpty(lowLevel)) {
            low_level = lowLevel;
        }
        String[] groupKeys = groupKey.split(",");
        String[] groupKeys = StringUtils.isBlank(groupKey)?new String[]{}:groupKey.split(",");
        StringBuffer selectKeys = new StringBuffer();
        StringBuffer groupStr = new StringBuffer();
        int i=1;
        for (String slaveKeyTmp:slaveKeys){
            selectKeys.append(" slaveKey").append(i).append(" as slaveKey").append(i).append(",slaveKey").append(i).append("Name as slaveKey").append(i).append("Name, ");
            i++;
        if (null!=slaveKeys){
            for (String slaveKeyTmp:slaveKeys){
                selectKeys.append(" slaveKey").append(i).append(" as slaveKey").append(i).append(",slaveKey").append(i).append("Name as slaveKey").append(i).append("Name, ");
                i++;
            }
        }
        for (String groupKeyTmp:groupKeys){
            groupStr.append(",slaveKey"+groupKeyTmp+",slaveKey"+groupKeyTmp+"Name");
        }
@ -1233,17 +1248,19 @@ public class ElasticsearchUtil {
        }
        i=1;
        for (String slaveKeyTmp:slaveKeys){
            if (StringUtils.isNotBlank(slaveKeyTmp)){
                String[] str = slaveKeyTmp.split(",");
                StringBuffer buffer = new StringBuffer();
                for (int j=0;j<str.length;j++){
                    buffer.append("'"+str[j]+"',");
        if (null!=slaveKeys){
            for (String slaveKeyTmp:slaveKeys){
                if (StringUtils.isNotBlank(slaveKeyTmp)){
                    String[] str = slaveKeyTmp.split(",");
                    StringBuffer buffer = new StringBuffer();
                    for (int j=0;j<str.length;j++){
                        buffer.append("'"+str[j]+"',");
                    }
                    buffer.deleteCharAt(buffer.length()-1);
                    sql.append(" and slaveKey").append(i).append(" in (" + buffer + ")");
                }
                buffer.deleteCharAt(buffer.length()-1);
                sql.append(" and slaveKey").append(i).append(" in (" + buffer + ")");
                i++;
            }
            i++;
        }
        //根据时间维度分组
@ -1995,8 +2012,8 @@ public class ElasticsearchUtil {
    /**
     * 多维度指标查询 可控制key与group
     */
    public  List<SaveModel> findDateQuotaLevelList(String startDate, String endDate, String area, int level, String index, String timelevel,String groupKey,String ...slaveKeys) throws Exception {
        List list = findDateQuotaLevels(startDate, endDate, area, level, index, timelevel,null, null,groupKey,slaveKeys);
    public  List<SaveModel> findDateQuotaLevelList(String startDate, String endDate, String area, int level, String index, String timelevel,String interval, String lowLevel,String groupKey,String ...slaveKeys) throws Exception {
        List list = findDateQuotaLevels(startDate, endDate, area, level, index, timelevel,interval, lowLevel,groupKey,slaveKeys);
        return list;
    }

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

@ -1696,4 +1696,51 @@ ALTER table base_visit add COLUMN `health` VARCHAR(500) DEFAULT NULL COMMENT '
ALTER table base_visit add COLUMN `life_consult` VARCHAR(500) DEFAULT NULL COMMENT '生活咨询';
-- 2022-03-14 ysj
ALTER TABLE base_login_log ADD token varchar(50) COMMENT '登录token 做权限验证用' ;
ALTER TABLE base_login_log ADD token varchar(50) COMMENT '登录token 做权限验证用' ;
-- 2022-03-21 lb
ALTER TABLE birthday_wishes_to_patient MODIFY COLUMN admin_team_code VARCHAR(50) DEFAULT NULL COMMENT '医生所在团队';
-- CREATE TABLE `base_older_num` (
--   `id` int(11) NOT NULL AUTO_INCREMENT,
--   `type` varchar(2) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '类别 1是省 2是市  3是区 4机构',
--   `code` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '所属代码(市为 330100 区为 330101 )',
--   `name` varchar(200) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '所属代码名称',
--   `year` int(10) DEFAULT NULL COMMENT '年份',
--   `lsqs_num` int(10) DEFAULT '0' COMMENT '60-79岁人数',
--   `bss_num` int(10) DEFAULT '0' COMMENT '80-89岁人数',
--   `jss_num` int(10) DEFAULT '0' COMMENT '90-99岁人数',
--   `ybs_num` int(10) DEFAULT '0' COMMENT '100岁以上',
--   `gg_num` int(10) DEFAULT NULL COMMENT '孤寡老人数',
--   `dj_num` int(10) DEFAULT NULL COMMENT '独居老人数',
--   `kc_num` int(10) DEFAULT NULL COMMENT '空巢老数',
--   PRIMARY KEY (`id`)
-- ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='老人概况表'; -- 已执行
-- CREATE TABLE `birthday_wishes_not_push` (
-- 	`id` INT ( 11 ) NOT NULL AUTO_INCREMENT,
-- 	`patient_code` VARCHAR ( 50 ) DEFAULT NULL COMMENT '患者标识',
-- 	`patient_name` VARCHAR ( 50 ) DEFAULT NULL COMMENT '患者名称',
-- 	`doctor_code` VARCHAR ( 50 ) DEFAULT NULL COMMENT '发送人code',
-- 	`doctor_name` VARCHAR ( 50 ) DEFAULT NULL COMMENT '发送人名称',
-- 	`admin_team_code` VARCHAR ( 50 ) DEFAULT NULL COMMENT '医生所在',
-- 	`admin_team_name` VARCHAR ( 50 ) DEFAULT NULL COMMENT '行政团队名称',
-- 	`hospital` VARCHAR ( 50 ) DEFAULT NULL COMMENT '所属机构',
-- 	`hospital_name` VARCHAR ( 50 ) DEFAULT NULL COMMENT '所属机构名称',
-- 	`town` VARCHAR ( 50 ) DEFAULT NULL COMMENT '所属区划',
-- 	`town_name` VARCHAR ( 50 ) DEFAULT NULL COMMENT '所属区划名称',
-- 	`city` VARCHAR ( 50 ) DEFAULT NULL COMMENT '所属市',
-- 	`city_name` VARCHAR ( 50 ) DEFAULT NULL COMMENT '所属市名称',
-- 	`province` VARCHAR ( 50 ) DEFAULT NULL COMMENT '所属市',
-- 	`province_name` VARCHAR ( 50 ) DEFAULT NULL COMMENT '所属市名称',
-- 	`create_time` VARCHAR ( 20 ) DEFAULT NULL COMMENT '创建时间',
-- 	PRIMARY KEY ( `id` ),
-- 	KEY `index_pd` ( `patient_code`, `doctor_code` ) USING BTREE,
-- KEY `index_time` ( `create_time` ) USING BTREE
-- ) ENGINE = INNODB AUTO_INCREMENT = 111 DEFAULT CHARSET = utf8mb4 COMMENT = '生日祝福未发送记录'; -- 已执行
-- 2022-03-22 lb
-- ALTER table base_care_prescription add column `deal_time` datetime DEFAULT NULL COMMENT '处置时间'; -- 已执行
-- update base_care_prescription set deal_time = create_time where `status`=2; -- 已执行
-- alter table base_security_monitoring_order add column `team_code` varchar(100) DEFAULT NULL COMMENT '服务团队'; -- 已执行

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

@ -20,7 +20,7 @@ public class EmergencyAssistanceDO extends UuidIdentityEntityWithOperator {
     */
    public enum Status {
        ErrorWarning(-2, "误报警"),
        ErrorWarning(-2, "已响应"),//误报警
        cancel(-1, "已取消"),
        complete(0, "已完成"),
        apply(1, "申请中");

+ 3 - 3
common/common-entity/src/main/java/com/yihu/jw/entity/care/birthday/BirthDayWishesToPatient.java

@ -30,7 +30,7 @@ public class BirthDayWishesToPatient extends IdEntity {
    //备注:从发送人的信息中获取(doctor表获取)
    private String sendPic;   // 发送人头像(ES)
    private String sendSex;   // 发送人性别(ES)
    private Long adminTeamCode;// 行政团队(ES)
    private String adminTeamCode;// 行政团队(ES)
    private String adminTeamName;// 行政团队(ES)
    private String hospital; // 所属机构(ES)
    private String hospitalName; // 所属机构(ES)
@ -119,11 +119,11 @@ public class BirthDayWishesToPatient extends IdEntity {
        this.sendSex = sendSex;
    }
    public Long getAdminTeamCode() {
    public String getAdminTeamCode() {
        return adminTeamCode;
    }
    public void setAdminTeamCode(Long adminTeamCode) {
    public void setAdminTeamCode(String adminTeamCode) {
        this.adminTeamCode = adminTeamCode;
    }

+ 169 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/care/birthday/BirthdayWishesNotPush.java

@ -0,0 +1,169 @@
package com.yihu.jw.entity.care.birthday;
import com.yihu.jw.entity.IdEntity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
/**
 * 生日未祝福推送记录表
 *
 */
@Entity
@Table(name = "birthday_wishes_not_push")
@SequenceGenerator(name="id_generated", sequenceName="seq_birthday_wishes_not_push")
public class BirthdayWishesNotPush extends IdEntity {
    private String patientCode; //
    private String patientName; //
    private String doctorCode; //
    private String doctorName; //
    private String adminTeamCode; //
    private String adminTeamName; //
    private String hospital; //
    private String hospitalName; //
    private String town; //
    private String townName; //
    private String city; //
    private String cityName; //
    private String province; //
    private String provinceName; //
    private String createTime; //
    @Column(name = "patient_code")
    public String getPatientCode() {
        return patientCode;
    }
    public void setPatientCode(String patientCode) {
        this.patientCode = patientCode;
    }
    @Column(name = "patient_name")
    public String getPatientName() {
        return patientName;
    }
    public void setPatientName(String patientName) {
        this.patientName = patientName;
    }
    @Column(name = "doctor_code")
    public String getDoctorCode() {
        return doctorCode;
    }
    public void setDoctorCode(String doctorCode) {
        this.doctorCode = doctorCode;
    }
    @Column(name = "doctor_name")
    public String getDoctorName() {
        return doctorName;
    }
    public void setDoctorName(String doctorName) {
        this.doctorName = doctorName;
    }
    @Column(name = "admin_team_code")
    public String getAdminTeamCode() {
        return adminTeamCode;
    }
    public void setAdminTeamCode(String adminTeamCode) {
        this.adminTeamCode = adminTeamCode;
    }
    @Column(name = "admin_team_name")
    public String getAdminTeamName() {
        return adminTeamName;
    }
    public void setAdminTeamName(String adminTeamName) {
        this.adminTeamName = adminTeamName;
    }
    @Column(name = "hospital")
    public String getHospital() {
        return hospital;
    }
    public void setHospital(String hospital) {
        this.hospital = hospital;
    }
    @Column(name = "hospital_name")
    public String getHospitalName() {
        return hospitalName;
    }
    public void setHospitalName(String hospitalName) {
        this.hospitalName = hospitalName;
    }
    @Column(name = "town")
    public String getTown() {
        return town;
    }
    public void setTown(String town) {
        this.town = town;
    }
    @Column(name = "town_name")
    public String getTownName() {
        return townName;
    }
    public void setTownName(String townName) {
        this.townName = townName;
    }
    @Column(name = "city")
    public String getCity() {
        return city;
    }
    public void setCity(String city) {
        this.city = city;
    }
    @Column(name = "city_name")
    public String getCityName() {
        return cityName;
    }
    public void setCityName(String cityName) {
        this.cityName = cityName;
    }
    @Column(name = "province")
    public String getProvince() {
        return province;
    }
    public void setProvince(String province) {
        this.province = province;
    }
    @Column(name = "province_name")
    public String getProvinceName() {
        return provinceName;
    }
    public void setProvinceName(String provinceName) {
        this.provinceName = provinceName;
    }
    @Column(name = "create_time")
    public String getCreateTime() {
        return createTime;
    }
    public void setCreateTime(String createTime) {
        this.createTime = createTime;
    }
}

+ 13 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/care/prescription/BaseCarePrescriptionDO.java

@ -1,11 +1,13 @@
package com.yihu.jw.entity.care.prescription;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yihu.jw.entity.UuidIdentityEntityWithCreateTime;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.util.Date;
/**
 * Created by yeshijie on 2021/10/11.
@ -23,6 +25,7 @@ public class BaseCarePrescriptionDO extends UuidIdentityEntityWithCreateTime {
    private String applyContent;//申请内容
    private String dealImgs;//处理附件
    private String dealContent;//处理内容
    private Date dealTime;//处理时间
    private String sex;
    private String age;
@ -110,6 +113,16 @@ public class BaseCarePrescriptionDO extends UuidIdentityEntityWithCreateTime {
        this.dealContent = dealContent;
    }
    @Column(name = "deal_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    public Date getDealTime() {
        return dealTime;
    }
    public void setDealTime(Date dealTime) {
        this.dealTime = dealTime;
    }
    @Transient
    public String getSex() {
        return sex;

+ 10 - 1
common/common-entity/src/main/java/com/yihu/jw/entity/care/securitymonitoring/SecurityMonitoringOrderDO.java

@ -24,7 +24,7 @@ public class SecurityMonitoringOrderDO extends UuidIdentityEntityWithOperator {
     */
    public enum Status {
        ErrorWarning(-2, "误报警"),
        ErrorWarning(-2, "已响应"),
        cancel(-1, "已取消"),
        complete(0, "已完成"),
        apply(1, "申请中");
@ -324,6 +324,7 @@ public class SecurityMonitoringOrderDO extends UuidIdentityEntityWithOperator {
    private String sceneImg;//现场照片
    private String deviceSn;//设备sn  设备触发是才有该字段值
    private String warnInfo;//触发工单时信息如 烟雾心率等
    private String teamCode;//服务团队
    /**
     * 医生确认医生结束服务时间
@ -745,4 +746,12 @@ public class SecurityMonitoringOrderDO extends UuidIdentityEntityWithOperator {
    public void setWarnInfo(String warnInfo) {
        this.warnInfo = warnInfo;
    }
    public String getTeamCode() {
        return teamCode;
    }
    public void setTeamCode(String teamCode) {
        this.teamCode = teamCode;
    }
}

+ 294 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/doctor/admin/AdminInfoEndpoint.java

@ -0,0 +1,294 @@
package com.yihu.jw.care.endpoint.doctor.admin;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.care.service.common.PermissionService;
import com.yihu.jw.care.service.statistics.DetectionPlatformService;
import com.yihu.jw.care.service.statistics.StatisticsService;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.restmodel.web.PageEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
 * Created by Bing on 2022/3/21.
 * APP管理员部分
 */
@RestController
@RequestMapping("admin" )
@Api(tags = "管理员部分", description = "管理员部分")
public class AdminInfoEndpoint extends EnvelopRestEndpoint {
    @Autowired
    private PermissionService permissionService;
    @Autowired
    private StatisticsService statisticsService;
    @Autowired
    private DetectionPlatformService platformService;
    @GetMapping(value = "getOlderOverview")
    @ApiOperation("获取老人概况")
    public ObjEnvelop getOlderOverview(@ApiParam(name = "currentUserRole", value = "登录角色")
                                       @RequestParam(value = "currentUserRole", required = false) String currentUserRole,
                                       @ApiParam(name = "currentUserRoleLevel", value = "登录角色等级(1省2市3区4社区、机构)")
                                       @RequestParam(value = "currentUserRoleLevel", required = false)String currentUserRoleLevel){
        try {
            JSONObject param = new JSONObject();
            String doctorId =  permissionService.getUID();
            param.put("doctorId",doctorId);
            if(permissionService.noPermission(0,param)){
                return ObjEnvelop.getError("该操作没有权限");
            }
            return ObjEnvelop.getSuccess("查询成功",statisticsService.getOlderOverview(currentUserRole,currentUserRoleLevel));
        }catch (Exception e){
            return failedObjEnvelopException2(e);
        }
    }
    @GetMapping(value = "statisticsTotalAmount")
    @ApiOperation(value = "统计总数")
    public ObjEnvelop statisticsTotalAmount(
            @RequestParam(required = true) String endDate,
            @RequestParam(required = true) String area,
            @RequestParam(required = true) int level,
            @RequestParam(required = true) String index,
            @ApiParam(name="type",value="类型:1本周,2本月",defaultValue = "")@RequestParam(required = false) String type) {
        try {
            JSONObject param = new JSONObject();
            String doctorId =  permissionService.getUID();
            param.put("doctorId",doctorId);
            if(permissionService.noPermission(0,param)){
                return ObjEnvelop.getError("该操作没有权限");
            }
            JSONObject result = statisticsService.statisticsTotalAmount(endDate, area, level, index, type);
            return success(result);
        } catch (Exception e) {
            return failedObjEnvelopException2(e);
        }
    }
    @GetMapping(value = "patientAnalysis")
    @ApiOperation(value = "居民分析")
    public ObjEnvelop patientAnalysis(
            @RequestParam(required = true) String endDate,
            @RequestParam(required = true) String area,
            @RequestParam(required = true) int level,
            @ApiParam(name="index",value="42幼儿,37老人",defaultValue = "")@RequestParam(required = true) String index) {
        try {
            JSONObject param = new JSONObject();
            String doctorId =  permissionService.getUID();
            param.put("doctorId",doctorId);
            if(permissionService.noPermission(0,param)){
                return ObjEnvelop.getError("该操作没有权限");
            }
            JSONObject result = statisticsService.patientAnalysis(endDate, area, level, index);
            return success(result);
        } catch (Exception e) {
            return failedObjEnvelopException2(e);
        }
    }
    @GetMapping(value = "deviceAndService")
    @ApiOperation(value = "获取安防设备种类、安防服务、预警类型 数量")
    public ObjEnvelop deviceAndService() {
        try {
            JSONObject param = new JSONObject();
            String doctorId =  permissionService.getUID();
            param.put("doctorId",doctorId);
            if(permissionService.noPermission(0,param)){
                return ObjEnvelop.getError("该操作没有权限");
            }
            return success("查询成功", 200, platformService.deviceAndService());
        } catch (Exception e) {
            return failedObjEnvelopException(e);
        }
    }
    @GetMapping(value = "addLine")
    @ApiOperation(value = "通用折线图")
    public ListEnvelop addLine(
            @RequestParam(required = true) String startDate,
            @RequestParam(required = true) String endDate,
            @RequestParam(required = true) String area,
            @RequestParam(required = true) int level,
            @RequestParam(required = true) String index,
            @RequestParam(required = false) String timeLevel,
            @RequestParam(required = false) String interval,
            @RequestParam(required = false) String lowLevel) {
        try {
            JSONObject param = new JSONObject();
            String doctorId =  permissionService.getUID();
            param.put("doctorId",doctorId);
            if(permissionService.noPermission(0,param)){
                return ListEnvelop.getError("该操作没有权限");
            }
            JSONArray result = statisticsService.addLine(startDate,endDate, area, level, index, timeLevel,interval,lowLevel);
            return success(result);
        } catch (Exception e) {
            return failedListEnvelopException2(e);
        }
    }
    @GetMapping(value = "getServiceSituation")
    @ApiOperation(value = "设备库存、使用、总备案、照护类型设备数量")
    public ObjEnvelop getServiceSituation() {
        try {
            JSONObject param = new JSONObject();
            String doctorId =  permissionService.getUID();
            param.put("doctorId",doctorId);
            if(permissionService.noPermission(0,param)){
                return ObjEnvelop.getError("该操作没有权限");
            }
            return success("查询成功", 200, platformService.getServiceSituation());
        } catch (Exception e) {
            return failedObjEnvelopException(e);
        }
    }
    @GetMapping(value = "getDeviceCompany")
    @ApiOperation(value = "设备物联率、失联率")
    public ObjEnvelop getDeviceCompany() {
        try {
            JSONObject param = new JSONObject();
            String doctorId =  permissionService.getUID();
            param.put("doctorId",doctorId);
            if(permissionService.noPermission(0,param)){
                return ObjEnvelop.getError("该操作没有权限");
            }
            JSONObject o = platformService.getDeviceComapny();
            return success(o);
        } catch (Exception e) {
            return failedObjEnvelopException(e);
        }
    }
    @GetMapping(value = "statisticsEmeWarnServer")
    @ApiOperation(value = "紧急预警事件饼图、预警数量")
    public ObjEnvelop statisticsOrderServer(@RequestParam(required = true) String endDate,
                                            @RequestParam(required = true) String area,
                                            @RequestParam(required = true) int level) {
        try {
            JSONObject param = new JSONObject();
            String doctorId =  permissionService.getUID();
            param.put("doctorId",doctorId);
            if(permissionService.noPermission(0,param)){
                return ObjEnvelop.getError("该操作没有权限");
            }
            JSONObject result = statisticsService.adminStatisticsEmeWarnServer(endDate,area,level);
            return success(result);
        } catch (Exception e) {
            return failedObjEnvelopException2(e);
        }
    }
    @GetMapping(value = "statisticsEmeWarnList")
    @ApiOperation(value = "紧急预警响应率")
    public ObjEnvelop statisticsEmeWarnList(@RequestParam(required = true) String endDate,
                                            @RequestParam(required = true) String area,
                                            @RequestParam(required = true) int level) {
        try {
            JSONObject param = new JSONObject();
            String doctorId =  permissionService.getUID();
            param.put("doctorId",doctorId);
            if(permissionService.noPermission(0,param)){
                return ObjEnvelop.getError("该操作没有权限");
            }
            JSONObject result = statisticsService.statisticsEmeWarnList(endDate,area,level);
            return success(result);
        } catch (Exception e) {
            return failedObjEnvelopException2(e);
        }
    }
    @GetMapping(value = "statisticsNotWishesList")
    @ApiOperation(value = "人文关怀祝福未发送率")
    public ObjEnvelop statisticsNotWishesList(@RequestParam(required = true) String endDate,
                                              @RequestParam(required = true) String area,
                                              @RequestParam(required = true) int level) {
        try {
            JSONObject param = new JSONObject();
            String doctorId =  permissionService.getUID();
            param.put("doctorId",doctorId);
            if(permissionService.noPermission(0,param)){
                return ObjEnvelop.getError("该操作没有权限");
            }
            JSONObject result = statisticsService.statisticsNotWishesList(endDate,area,level);
            return success(result);
        } catch (Exception e) {
            return failedObjEnvelopException2(e);
        }
    }
    /******设备保修**********/
    @GetMapping(value = "getDeviceRepairList")
    @ApiOperation(value = "获取设备保修列表")
    public PageEnvelop getDeviceRepairList(@ApiParam(name="name",value = "姓名/身份证",required = false)
                                           @RequestParam(value = "name",required = false) String name,
                                           @ApiParam(name="status",value = "保修状态0保修中 1已完成",required = false)
                                           @RequestParam(value = "status",required = false) String status,
                                           @ApiParam(name="page",value = "页码",required = true)
                                           @RequestParam(value = "page",required = true,defaultValue = "1") Integer page,
                                           @ApiParam(name="size",value = "分页大小",required = true)
                                           @RequestParam(value = "size",required = true,defaultValue = "15") Integer size) {
        try {
            page = page>0?page-1:0;
            JSONObject param = new JSONObject();
            String doctorId =  permissionService.getUID();
            param.put("doctorId",doctorId);
            if(permissionService.noPermission(0,param)){
                return PageEnvelop.getError("该操作没有权限");
            }
            //todo
            return PageEnvelop.getSuccessListWithPage(null,null,page,size,null);
        } catch (Exception e) {
            return failedPageEnvelopException2(e);
        }
    }
    @GetMapping(value = "getDeviceRepairDetail")
    @ApiOperation(value = "获取设备报修工单详细信息")
    public ObjEnvelop getDeviceRepairDetail(@ApiParam(name="orderId",value = "保修工单号",required = true)
                                       @RequestParam(value = "orderId",required = true) String orderId) {
        try {
            JSONObject param = new JSONObject();
            String doctorId =  permissionService.getUID();
            param.put("doctorId",doctorId);
            if(permissionService.noPermission(0,param)){
                return ObjEnvelop.getError("该操作没有权限");
            }
            //todo
            return ObjEnvelop.getSuccess("获取成功",null);
        } catch (Exception e) {
            return failedObjEnvelopException2(e);
        }
    }
    @PostMapping(value = "dealDeviceRepair")
    @ApiOperation(value = "处理设备报修工单")
    public Envelop dealDeviceRepair(@ApiParam(name="orderId",value = "保修工单号",required = true)
                                    @RequestParam(value = "orderId",required = true) String orderId,
                                    @ApiParam(name="dealContent",value = "报修反馈",required = true)
                                    @RequestParam(value = "dealContent",required = true) String dealContent) {
        try {
            JSONObject param = new JSONObject();
            String doctorId =  permissionService.getUID();
            param.put("doctorId",doctorId);
            if(permissionService.noPermission(0,param)){
                return Envelop.getError("该操作没有权限");
            }
            //todo
            return Envelop.getSuccess("填写成功");
        } catch (Exception e) {
            return failedObjEnvelopException2(e);
        }
    }
}

+ 2 - 2
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/statistics/DetectionPlatformEndpoint.java

@ -71,7 +71,7 @@ public class DetectionPlatformEndpoint extends EnvelopRestEndpoint {
    }
    @GetMapping(value = "getDeviceCompany")
    @ApiOperation(value = "设备入驻")
    @ApiOperation(value = "设备物联率、失联率")
    public ObjEnvelop getDeviceCompany() {
        try {
            JSONObject o = platformService.getDeviceComapny();
@ -277,7 +277,7 @@ public class DetectionPlatformEndpoint extends EnvelopRestEndpoint {
    }
    @GetMapping(value = "getServiceSituation")
    @ApiOperation(value = "物联网检测大屏,服务情况")
    @ApiOperation(value = "物联网检测大屏,设备库存、使用、总备案、照护类型设备数量")
    public ObjEnvelop getServiceSituation() {
        try {
            return success("查询成功", 200, platformService.getServiceSituation());

+ 1 - 1
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/statistics/OpenStatisticsEndpoint.java

@ -114,7 +114,7 @@ public class OpenStatisticsEndpoint extends EnvelopRestEndpoint {
    @GetMapping(value = "curveTotal")
    @ApiOperation(value = "曲线图")
    public ObjEnvelop curveTotal(@RequestParam(required = true) String day,
                                 @ApiParam(name = "type", value = "39-老人-生活照料-服务工单数 44-老人-生活照料-代预约 3-幼儿活动报名 41-紧急呼叫  43-老人安放监护 2-公艺课程播放  1-活动浏览次数 28-新生儿-在线咨询总数 32-新生儿-在线咨询总数  35-新生儿-上门辅导-服务工单数")
                                 @ApiParam(name = "type", value = "39-老人-生活照料-服务工单数 44-老人-生活照料-代预约 3-幼儿活动报名 41-紧急呼叫  43-老人安放监护 2-公艺课程播放  1-活动浏览次数 28-新生儿-在线咨询总数 32-老人在线咨询未回复数  35-新生儿-上门辅导-服务工单数")
                                 @RequestParam(required = true) String type,
                                 @RequestParam(required = true) String area,
                                 @RequestParam(required = true) int level,

+ 16 - 3
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/birthday/BirthdayWishesService.java

@ -2,16 +2,21 @@ package com.yihu.jw.care.service.birthday;
import com.yihu.jw.care.dao.birthday.BirthDayWishesToPatientDao;
import com.yihu.jw.care.dao.birthday.BirthdayWishesTemplateDao;
import com.yihu.jw.care.dao.team.BaseTeamDao;
import com.yihu.jw.care.service.common.PermissionService;
import com.yihu.jw.doctor.dao.BaseDoctorDao;
import com.yihu.jw.doctor.dao.BaseDoctorHospitalDao;
import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
import com.yihu.jw.entity.base.doctor.BaseDoctorHospitalDO;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.base.team.BaseTeamDO;
import com.yihu.jw.entity.base.team.BaseTeamMemberDO;
import com.yihu.jw.entity.care.birthday.BirthDayWishesToPatient;
import com.yihu.jw.entity.care.birthday.BirthdayWishesTemplate;
import com.yihu.jw.patient.dao.BasePatientDao;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.team.BaseDoctorTeamDao;
import com.yihu.jw.team.BaseDoctorTeamMemberDao;
import com.yihu.jw.util.common.IdCardUtil;
import com.yihu.jw.util.date.DateUtil;
import org.apache.commons.lang.StringUtils;
@ -53,6 +58,10 @@ public class BirthdayWishesService {
    private RedisTemplate redisTemplate;
    @Autowired
    private PermissionService permissionService;
    @Autowired
    private BaseDoctorTeamMemberDao teamMemberDao;
    @Autowired
    private BaseTeamDao baseTeamDao;
//    /**
//     * 发送到mq
@ -358,7 +367,7 @@ public class BirthdayWishesService {
            }
        }
        whereSql += "and DATE_FORMAT(ph.create_time,'%Y%m%d')<= CONCAT('"+year+"',(CASE LENGTH(p.idcard) WHEN 18 THEN SUBSTR(p.idcard, 11, 4) WHEN 15 THEN SUBSTR(p.idcard, 9, 4) END)) ";
        whereSql += "and DATE_FORMAT(sr.create_time,'%Y%m%d')<= CONCAT('"+year+"',(CASE LENGTH(p.idcard) WHEN 18 THEN SUBSTR(p.idcard, 11, 4) WHEN 15 THEN SUBSTR(p.idcard, 9, 4) END)) ";
        sql = sql + whereSql + " ) order by birthday limit "+(page-1)*pageSize + "," + pageSize;
        sqlCount = sqlCount + whereSql+")";
@ -455,6 +464,8 @@ public class BirthdayWishesService {
        Set<String> openidSet = new HashSet<>();
        BaseDoctorDO doctor = doctorDao.findById(doctorCode);
        //医生团队
        List<BaseTeamDO> teamDOS = baseTeamDao.findDoctorTeams(doctorCode);
        String sql = " select * from ( select p.id as patient,p.name,we.openid from base_patient p Left join  base_patient_wechat we on p.id = we.patient_id where p.id in ( "+p+") " +
                "  order by we.create_time desc )A group by A.patient  ";
@ -488,12 +499,14 @@ public class BirthdayWishesService {
            //存储发送人信息
            es.setSendPic(doctor.getPhoto());
            es.setSendSex(doctor.getSex()+"");
//            es.setAdminTeamName(patientInfo.get("teamName") + "");
//            es.setAdminTeamCode(Long.valueOf(patientInfo.get("admin_team_code")+""));
            if (hospitalDOs.size()>0){
                es.setHospital(hospitalDOs.get(0).getOrgCode());
                es.setHospitalName(hospitalDOs.get(0).getOrgName());
            }
            if (teamDOS.size()>0){
                es.setAdminTeamCode(teamDOS.get(0).getId());
                es.setAdminTeamName(teamDOS.get(0).getName());
            }
            es.setTown(doctor.getTownCode());
            es.setTownName(doctor.getTownName());

+ 2 - 1
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/prescription/BaseCarePrescriptionService.java

@ -20,6 +20,7 @@ import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
@ -214,7 +215,7 @@ public class BaseCarePrescriptionService {
        prescriptionDO.setDealImgs(dealImgs);
        prescriptionDO.setStatus(2);
        prescriptionDO.setDoctor(doctor);
        prescriptionDO.setDealTime(new Date());
        BaseDoctorDO doctorDO = doctorDao.findById(doctor);
        prescriptionDO.setDoctorName(doctorDO.getName());

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

@ -246,7 +246,7 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
            result.put(ResponseContant.resultMsg, failMsg);
            return result;
        }
        orderDO.setTeamCode(mapTmp.get("team_code").toString());
        orderDO.setCreateTime(new Date());
        //判断创建预警服务类型,发起类型(1本人发起 2家人待预约 3医生代预约)
        orderDO.setType(1);//发起类型
@ -2582,7 +2582,7 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
                        if (null != patientDO) {
                            if (StringUtils.isNotBlank(patientDO.getLatLon())) {
                                String[] latLon = patientDO.getLatLon().toString().split(",");
                                if (StringUtils.isNotBlank(patientDO.getHomeLatLon())) {
                                if (StringUtils.isNotBlank(patientDO.getHomeLatLon())&&latLon.length==2) {
                                    String homeLatLon = patientDO.getHomeLatLon();
                                    double homeLat = Double.parseDouble(homeLatLon.split(",")[0]);
                                    double homeLon = Double.parseDouble(homeLatLon.split(",")[1]);

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

@ -170,12 +170,12 @@ public class DetectionPlatformService  {
        Long securityAllCount = (Long) securityList.get(0).get("allCount");
        Long healthAllCount = (Long) healthList.get(0).get("allCount");
        object.put("lawOfIOT",getRange( (securityIsUser.intValue() + healthIsUser.intValue() ),( securityAllCount.intValue() + healthAllCount.intValue()  ) ));//物联率 发放了就算物联
        object.put("isUseAllIot",(securityIsUser.intValue() + healthIsUser.intValue()));//已发放设备
        object.put("allIot",securityAllCount.intValue() + healthAllCount.intValue());//总设备
        object.put("isUseAllIot",(securityIsUser.intValue() + healthIsUser.intValue()));//已发放设备 失联分母、物联分子
        object.put("allIot",securityAllCount.intValue() + healthAllCount.intValue());//总设备 物联分母
        String unUseSql = "SELECT DISTINCT wd.device_code FROM wlyy_devices wd INNER JOIN wlyy_patient_device pd on wd.device_code =pd.device_sn and pd.user "+filter+"  WHERE contact_status = 0";//contact_status = 0   失联
        List<Map<String , Object>> unUseList = jdbcTemplate.queryForList(unUseSql);
        int unUseCount = unUseList.size();
        object.put("unUseCount",unUseCount);//设备失联数量
        object.put("unUseCount",unUseCount);//设备失联数量 失联分子
        object.put("lostLaw",getRange(unUseCount,(securityIsUser.intValue() + healthIsUser.intValue())));//设备失联率    失联设备/已发放设备
        return object;
    }
@ -527,12 +527,18 @@ public class DetectionPlatformService  {
    public JSONObject deviceAndService(){
        JSONObject object = new JSONObject();
        String device = "SELECT COUNT(1) FROM dm_device GROUP BY category_code";
        List<Map<String , Object>> mapList = jdbcTemplate.queryForList(device);
        object.put("deviceType",mapList.size());
        //安防设备数量
        String device = "SELECT COUNT(1) FROM dm_device where device_type=1";
        Integer deviceCount = jdbcTemplate.queryForObject(device,Integer.class);
        object.put("deviceType",deviceCount);
        //安防服务类型
        String service = "SELECT COUNT(1) FROM base_system_dict_entry WHERE remark = 'security'";
        Integer serviceCount = jdbcTemplate.queryForObject(service,Integer.class);
        object.put("serviceCount",serviceCount);
        //安防服务预警类型数量
        service = "SELECT count(1) from wlyy_hospital_sys_dict WHERE dict_name = 'security_server_dict'";
        Integer securityServerCount = jdbcTemplate.queryForObject(service,Integer.class);
        object.put("securityServerCount",securityServerCount);
        return object;
    }

+ 154 - 7
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/statistics/StatisticsService.java

@ -171,7 +171,7 @@ public class StatisticsService {
        }
        //activity-3 幼儿活动报名-总数
        sql = " select count(id) as total from base_child_activity_registration ";
        sql = " select count(id) as total from base_child_activity_registration and org.code not in (SELECT dict_code from wlyy_hospital_sys_dict WHERE dict_name = 'jkzl_org') ";
        Integer count = jdbcTemplate.queryForObject(sql, Integer.class);
        res.put("activity_3", count);
        return res;
@ -194,7 +194,8 @@ public class StatisticsService {
        /*---------sql----------*/
        // 3 幼儿活动
        if ("3".equals(type)) {
            sqlbuff.append("SELECT count(id) amount,DATE_FORMAT(create_time,'%Y-%m-%d') as `range` FROM base_child_activity_registration WHERE DATE_SUB(CURDATE(), INTERVAL " + day + " DAY) <= date(create_time) GROUP BY DATE_FORMAT(create_time,'%Y-%m-%d') ORDER BY create_time");
            sqlbuff.append("SELECT count(id) amount,DATE_FORMAT(create_time,'%Y-%m-%d') as `range` FROM base_child_activity_registration WHERE DATE_SUB(CURDATE(), INTERVAL " + day + " DAY) <= date(create_time) " +
                    " and org.code not in (SELECT dict_code from wlyy_hospital_sys_dict WHERE dict_name = 'jkzl_org') GROUP BY DATE_FORMAT(create_time,'%Y-%m-%d') ORDER BY create_time");
            listMaps = jdbcTemplate.queryForList(String.valueOf(sqlbuff));
            res.put("count", listMaps);
        }
@ -315,7 +316,7 @@ public class StatisticsService {
            }
            /*幼儿活动报名 总数*/
            String sqlActivity = " select count(id) as total from base_child_activity_registration ";
            String sqlActivity = " select count(id) as total from base_child_activity_registration where org.code not in (SELECT dict_code from wlyy_hospital_sys_dict WHERE dict_name = 'jkzl_org') ";
            Integer count = jdbcTemplate.queryForObject(sqlActivity, Integer.class);
            res.put("activity_3", count);
        }
@ -793,7 +794,7 @@ public class StatisticsService {
     *
     * @param endDate
     * @param area
     * @param level   2 市  3区  4医院 5、科室 6医生
     * @param level   2 市  3区  4医院 5、团队 6医生
     * @param index
     * @param type
     * @return
@ -973,6 +974,35 @@ public class StatisticsService {
            arrTmp.put("patientLabelList", labelArr);
            res.put("patientLabelStatistic", arrTmp);
            //能力评估 从签约时服务标签取
            res.put("levelList", capacityAssessment(null, null, null));
            //居民健康标签
            list = elasticsearchUtil.findDateAllQuotaLevel1(endDate, endDate, area, level, "56", SaveModel.timeLevel_DDL, null, null, "2");
            labelArr = new JSONArray();
            total = 0l;
            for (int i = 0; i < list.size(); i++) {
                SaveModel saveModel = list.get(i);
                JSONObject json = new JSONObject();
                if (saveModel.getResult2().longValue() == 0 && StringUtils.isBlank(saveModel.getSlaveKey1())) {
                    continue;
                }
                if ("0".equals(saveModel.getSlaveKey1())) {//去除60岁以下老人
                    continue;
                }
                json.put("num", saveModel.getResult2().longValue());
                json.put("code", saveModel.getSlaveKey1());
                json.put("name", saveModel.getSlaveKey1Name());
                total += saveModel.getResult2().longValue();
                labelArr.add(json);
            }
            arrTmp = new JSONObject();
            arrTmp.put("patientLabelTotal", total);
            arrTmp.put("patientLabelList", labelArr);
            res.put("olderLabelStatistic", arrTmp);
            //年龄分布 50
//            ageList = elasticsearchUtil.findDateAllQuotaLevel1(endDate, endDate, area, level, "50", SaveModel.timeLevel_DDL,null,null,"2");
            List<SaveModel> ageList = elasticsearchUtil.findDateAllQuotaLevel1(endDate, endDate, area, level, "50", SaveModel.timeLevel_DDL, null, null, "2");
@ -1266,7 +1296,12 @@ public class StatisticsService {
            JSONArray jsonArray = new JSONArray();
            long total = 0l;
            //总量
            List<SaveModel> list = elasticsearchUtil.findDateAllQuotaLevel1(endDate, endDate, defalutArea, level, ind, SaveModel.timeLevel_DDL, null, null, areaLevel);
            List<SaveModel> list = new ArrayList<>();
            if (ind.equals("46")){
                list = elasticsearchUtil.findDateQuotaLevel2ByKeyGroup(DateUtil.getStringDateShort(), DateUtil.getStringDateShort(), defalutArea, 2, "46", SaveModel.timeLevel_DDL, null, "-2,0,1", null, null, "4", "1");
            }else {
                elasticsearchUtil.findDateAllQuotaLevel1(endDate, endDate, defalutArea, level, ind, SaveModel.timeLevel_DDL, null, null, areaLevel);
            }
            for (int i = 0; i < list.size(); i++) {
                SaveModel saveModel = list.get(i);
                JSONObject json = new JSONObject();
@ -1357,7 +1392,7 @@ public class StatisticsService {
            //周/月 增量
            String start = statisticsUtilService.calStart(endDate, type);
            List<SaveModel> saveModelAdds = elasticsearchUtil.findDateQuotaLevelList(start, endDate, area, level, "46", SaveModel.timeLevel_ZL, "3", null, null, null);
            List<SaveModel> saveModelAdds = elasticsearchUtil.findDateQuotaLevelList(start, endDate, area, level, "46", SaveModel.timeLevel_ZL, null,null,"3", null, null, null);
            for (SaveModel saveModelTmp : saveModelAdds) {
                JSONObject json = new JSONObject();
                SaveModel saveMode2 = elasticsearchUtil.findOneDateQuotaLevels(endDate, endDate, area, level, "46", SaveModel.timeLevel_DDL, "3", null, null, saveModelTmp.getSlaveKey3());
@ -1926,5 +1961,117 @@ public class StatisticsService {
        return res;
    }
    //新生儿上门辅导 类型
    //老人整体概况
    public Map<String,Object> getOlderOverview(String currentUserRole,String  currentUserRoleLevel){
        String year = DateUtil.getNowYear()+"";
        String sql = " select * from base_older_num where type='"+currentUserRoleLevel+"' and code='"+currentUserRole+"' and year='"+year+"' ";
        List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
        if (list.size()>0){
            return list.get(0);
        }
        return  null;
    }
    /**
     * 紧急预警事件饼图、预警数量
     * @return
     * @throws Exception
     */
    public JSONObject adminStatisticsEmeWarnServer(String endDate,String area ,int level ) throws Exception {
        JSONObject res = new JSONObject();
        JSONArray jsonArray = new JSONArray();
        //总量
        List<SaveModel> list = elasticsearchUtil.findDateQuotaLevel2ByKeyGroup(endDate, endDate, area, level, "46", SaveModel.timeLevel_DDL, null, "-2,0,1", null, null, "4", "1");
        for (int i = 0; i < list.size(); i++) {
            SaveModel saveModel = list.get(i);
            JSONObject json = new JSONObject();
            if (saveModel.getResult2().longValue() == 0 && StringUtils.isBlank(saveModel.getSlaveKey1())) {
                continue;
            }
            if ("0".equals(saveModel.getSlaveKey1())) {
                continue;
            }
            json.put("num", saveModel.getResult2().longValue());
            json.put("code", saveModel.getSlaveKey1());
            json.put("name", saveModel.getSlaveKey1Name());
            jsonArray.add(json);
        }
        //紧急呼叫
        SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel1(endDate, endDate, area, level, "68", SaveModel.timeLevel_DDL, "-2,0,1");
        JSONObject json = new JSONObject();
        json.put("num", saveModel.getResult2().longValue());
        json.put("code", "jjhj");
        json.put("name", "紧急呼叫");
        jsonArray.add(json);
        jsonArray.sort(Comparator.comparing(obj -> ((JSONObject) obj).getLongValue("num")).reversed());
        res.put("orderServerArray", jsonArray);
        //预警总数 未处理数量
        saveModel = elasticsearchUtil.findOneDateQuotaLevel1(endDate, area, level, "67", SaveModel.timeLevel_DDL,"-2,0,1");
        res.put("emeWarnTotal", saveModel.getResult2().longValue());
        saveModel = elasticsearchUtil.findOneDateQuotaLevel1(endDate, area, level, "67", SaveModel.timeLevel_DDL,"1");
        res.put("emeWarnNotDeal", saveModel.getResult2().longValue());
        return res;
    }
    /**
     * 紧急预警紧急预警响应率
     * @return
     * @throws Exception
     */
    public JSONObject statisticsEmeWarnList(String endDate,String area ,int level ) throws Exception {
        JSONObject res = new JSONObject();
        JSONArray jsonArray = new JSONArray();
        //总量
        List<SaveModel> list = elasticsearchUtil.findDateQuotaLevelList(endDate, endDate, area, level, "67", SaveModel.timeLevel_DDL,null,"5", null, "-2,0,1");
        for (int i = 0; i < list.size(); i++) {
            SaveModel saveModel = list.get(i);
            JSONObject json = new JSONObject();
            json.put("emeWarnTotal", saveModel.getResult2().longValue());
            json.put("dept", saveModel.getDept());
            json.put("deptName", saveModel.getDeptName());
            //已响应数量
            SaveModel saveModel2 = elasticsearchUtil.findOneDateQuotaLevel1(endDate, saveModel.getDept(), 5, "67", SaveModel.timeLevel_DDL,"-2,0");
            json.put("emeWarnDealt", saveModel2.getResult2().longValue());
            json.put("emeWarnDealtLaw", commonUtil.getRangeDouble(saveModel2.getResult2().intValue(),saveModel.getResult2().intValue()));
            jsonArray.add(json);
        }
        jsonArray.sort(Comparator.comparing(obj -> ((JSONObject) obj).getDouble("emeWarnDealtLaw")).reversed());
        res.put("orderServerArray", jsonArray);
        return res;
    }
    /**
     * 人文关怀祝福未发送率
     * @return
     * @throws Exception
     */
    public JSONObject statisticsNotWishesList(String endDate,String area ,int level ) throws Exception {
        JSONObject res = new JSONObject();
        JSONArray jsonArray = new JSONArray();
        //总量
        List<SaveModel> list = elasticsearchUtil.findDateQuotaLevelList(endDate, endDate, area, level, "60", SaveModel.timeLevel_DDL,null,"5", null, null);
        for (int i = 0; i < list.size(); i++) {
            SaveModel saveModel = list.get(i);
            JSONObject json = new JSONObject();
            json.put("dept", saveModel.getDept());
            json.put("deptName", saveModel.getDeptName());
            SaveModel saveModel2 = elasticsearchUtil.findOneDateQuotaLevel0(endDate, saveModel.getDept(), 5, "61", SaveModel.timeLevel_DDL);
            json.put("birthDayTotal", saveModel2.getResult2().longValue()+saveModel.getResult2().longValue());
            json.put("notWishesTotal", saveModel2.getResult2().longValue());
            json.put("notWishesLaw", commonUtil.getRangeDouble(saveModel2.getResult2().intValue(),(saveModel2.getResult2().intValue()+saveModel.getResult2().intValue())));
            jsonArray.add(json);
        }
        res.put("wishesArray", jsonArray);
        jsonArray.sort(Comparator.comparing(obj -> ((JSONObject) obj).getDouble("notWishesLaw")).reversed());
        //祝福人次
        SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel0(endDate, area, level, "60", SaveModel.timeLevel_DDL);
        res.put("wishesTotal", saveModel.getResult2().longValue());
        //祝福人数
        saveModel = elasticsearchUtil.findOneDateQuotaLevel0(endDate, area, level, "69", SaveModel.timeLevel_DDL);
        res.put("wishesPeople", saveModel.getResult2().longValue());
        return res;
    }
}

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

@ -202,7 +202,7 @@ public class WlyygcStatisticsService {
        }
        Map<String,String> statusMap = new HashMap<>();
        statusMap.put("-1","已取消");
        statusMap.put("-2","误报警");
        statusMap.put("-2","已响应");
        statusMap.put("0","已完成");
        statusMap.put("1","申请中");
        String sql = "SELECT * from ( " +

+ 14 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/util/CommonUtil.java

@ -221,4 +221,18 @@ public class CommonUtil {
        return filesize + "%";
    }
    public double getRangeDouble(Integer first, Integer second) {
        if (second == 0 && first > 0) {
            //如果分母为0 分子不为0 返回100%
            return 100;
        } else if (second == 0 && first == 0) {
            //如果分母为0 分子为0 返回0%
            return 0;
        }
        double result =  (first * 100.0) / second;
        DecimalFormat df = new DecimalFormat("0.00");//格式化小数,不足的补0
        String filesize = df.format(result);
        return Double.parseDouble(filesize);
    }
}

+ 12 - 0
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/dao/birthday/BirthdayWishesNotPushDao.java

@ -0,0 +1,12 @@
package com.yihu.jw.care.dao.birthday;
import com.yihu.jw.entity.care.birthday.BirthdayWishesNotPush;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * Created by Bing on 2021/7/16.
 */
public interface BirthdayWishesNotPushDao extends PagingAndSortingRepository<BirthdayWishesNotPush,Long>,
        JpaSpecificationExecutor<BirthdayWishesNotPush> {
}

+ 10 - 0
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/event/ApplicationEvent.java

@ -2,6 +2,7 @@ package com.yihu.jw.care.event;
import com.yihu.jw.care.job.BirthdayReminderJob;
import com.yihu.jw.care.job.QuartzHelper;
import com.yihu.jw.care.job.birthday.BirthdayWishesNotPushJob;
import com.yihu.jw.care.job.consult.FinishConsultJob;
import com.yihu.jw.care.job.data.SaveDataPushJob;
import com.yihu.jw.care.job.device.DeviceLostAssociationJob;
@ -173,6 +174,15 @@ public class ApplicationEvent implements ApplicationListener<ContextRefreshedEve
                logger.info("BLOOD_PRESSURE_GLUCOSE_NOT_MEASURED success");
            }
            //#生日祝福未发生记录
            if (!quartzHelper.isExistJob("BIRTHDAY_WISHES_NOT_PUSH_JOB")){
                String trigger = SystemConf.getInstance().getSystemProperties().getProperty("BIRTHDAY_WISHES_NOT_PUSH_JOB");
                quartzHelper.addJob(BirthdayWishesNotPushJob.class, trigger, "BIRTHDAY_WISHES_NOT_PUSH_JOB", new HashMap<String, Object>());
                logger.info("BIRTHDAY_WISHES_NOT_PUSH_JOB success");
            }else {
                logger.info("BIRTHDAY_WISHES_NOT_PUSH_JOB success");
            }
        } catch (Exception e) {
            logger.info(" job start failed");
        }

+ 35 - 0
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/job/birthday/BirthdayWishesNotPushJob.java

@ -0,0 +1,35 @@
package com.yihu.jw.care.job.birthday;
import com.yihu.jw.care.service.BirthdayReminderService;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.context.support.SpringBeanAutowiringSupport;
/**
 * 生日祝福未推送记录
 *
 */
public class BirthdayWishesNotPushJob implements Job {
    private static Logger logger = LoggerFactory.getLogger(BirthdayWishesNotPushJob.class);
    @Autowired
    private BirthdayReminderService birthdayReminderService;
    @Override
    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext(this);
        logger.info("BIRTHDAY_WISHES_NOT_PUSH_JOB start.....");
        //未发送生日祝福列表
        try {
            birthdayReminderService.notPushPatient();
            logger.info("BIRTHDAY_WISHES_NOT_PUSH_JOB end.....");
        } catch (Exception e) {
            e.printStackTrace();
            logger.error("BIRTHDAY_WISHES_NOT_PUSH_JOB error....."+e.getMessage());
        }
    }
}

+ 80 - 0
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/service/BirthdayReminderService.java

@ -1,11 +1,21 @@
package com.yihu.jw.care.service;
import com.yihu.jw.care.dao.birthday.BirthdayWishesNotPushDao;
import com.yihu.jw.care.util.MessageUtil;
import com.yihu.jw.doctor.dao.BaseDoctorDao;
import com.yihu.jw.entity.base.org.BaseOrgDO;
import com.yihu.jw.entity.care.birthday.BirthdayWishesNotPush;
import com.yihu.jw.org.dao.BaseOrgDao;
import com.yihu.jw.team.BaseDoctorTeamDao;
import com.yihu.jw.team.BaseDoctorTeamMemberDao;
import com.yihu.jw.util.date.DateUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
@ -24,6 +34,11 @@ public class BirthdayReminderService {
    private JdbcTemplate jdbcTemplate;
    @Autowired
    private MessageUtil messageUtil;
    @Autowired
    private BirthdayWishesNotPushDao birthdayWishesNotPushDao;
    @Autowired
    private BaseOrgDao baseOrgDao;
    public void sendMessage(){
        Date currentTime = new Date();
@ -67,4 +82,69 @@ public class BirthdayReminderService {
        }
    }
    public void notPushPatient(){
        String year = DateUtil.getNowYear()+"";
        Date currentTime = DateUtil.getPreDays(new Date(), -1);
        SimpleDateFormat format = new SimpleDateFormat("MMdd");
        String dateString = format.format(currentTime);
        String yesterday = DateUtil.dateToStr(currentTime,DateUtil.YYYY_MM_DD);
        //获取昨日生日居民
        String sql = " SELECT Distinct p.id patient,p.idcard,p.mobile,p.name,p.sex,p.id,p.photo,r.team_code,pack.org_code,pack.org_name, " +
                "CASE LENGTH(p.idcard) WHEN 18 THEN SUBSTR(p.idcard, 11, 4) WHEN 15 THEN SUBSTR(p.idcard, 9, 4) END birthday" +
                " from wlyy_archive a,base_patient p ,base_service_package_sign_record sr,base_service_package_record r,base_service_package pack " +
                " WHERE  a.patient = p.id and a.sign_status = 1 and p.del=1 " +
                "and sr.id = r.sign_id and sr.patient = a.patient and  r.service_package_id = pack.id " +
                "and sr.status=1 " +
                "AND CASE LENGTH(p.idcard) WHEN 18 THEN SUBSTR(p.idcard, 11, 4) WHEN 15 THEN SUBSTR(p.idcard, 9, 4) END = '"+dateString+"' " +
                "and DATE_FORMAT(sr.create_time,'%Y%m%d')<= CONCAT('"+year+"',(CASE LENGTH(p.idcard) WHEN 18 THEN SUBSTR(p.idcard, 11, 4) WHEN 15 THEN SUBSTR(p.idcard, 9, 4) END)) ";
        List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
        //获取已推送居民数量
        sql = "select DISTINCT patient_code from birthday_wishes_to_patient where create_time >='"+yesterday+" 00:00:00' and create_time<='"+yesterday+" 23:59:59' ";
        List<String> sendPatients = jdbcTemplate.queryForList(sql,String.class);
        System.out.println(DateUtil.dateToStrShort(currentTime) + "生日居民有:" + list.size() + "个,推送的居民有:" + sendPatients.size() + "个!");
        List<BirthdayWishesNotPush> notPushes = new ArrayList<>();
        for (Map<String,Object> map:list){
            String patient = map.get("patient") +"";
            if(sendPatients== null || !sendPatients.contains(patient)){
                BirthdayWishesNotPush birthdayWishesNotPush = new BirthdayWishesNotPush();
                birthdayWishesNotPush.setPatientCode(patient);
                birthdayWishesNotPush.setPatientName(map.get("name") + "");
                sql = " select doc.id as doctorCode,doc.name as doctorName,te.name as teamName from base_team te LEFT JOIN base_doctor doc on te.leader_code = doc.id " +
                        " where te.id='"+map.get("team_code") + ""+"' ";
                List<Map<String,Object>> docs = jdbcTemplate.queryForList(sql);
                if (docs.size()>0){
                    if (null!=docs.get(0).get("doctorCode")&& StringUtils.isNotBlank(docs.get(0).get("doctorCode").toString())){
                        birthdayWishesNotPush.setDoctorCode(docs.get(0).get("doctorCode")+"");
                        birthdayWishesNotPush.setDoctorName(docs.get(0).get("doctorName")+"");
                    }
                    birthdayWishesNotPush.setAdminTeamCode(map.get("team_code") + "");
                    birthdayWishesNotPush.setAdminTeamName(docs.get(0).get("teamName")+"");
                }
                birthdayWishesNotPush.setHospital(map.get("org_code") + "");
                birthdayWishesNotPush.setHospitalName(map.get("org_name") + "");
                BaseOrgDO orgDO = baseOrgDao.findByCode(map.get("org_code") + "");
                if (null!=orgDO){
                    birthdayWishesNotPush.setTown(orgDO.getTownCode());
                    birthdayWishesNotPush.setTownName(orgDO.getTownName());
                }
                birthdayWishesNotPush.setCity("330100");
                birthdayWishesNotPush.setCityName("杭州市");
                birthdayWishesNotPush.setProvince("330000");
                birthdayWishesNotPush.setProvinceName("浙江省");
                birthdayWishesNotPush.setCreateTime(yesterday+" 23:00:00");
                notPushes.add(birthdayWishesNotPush);
            }
        }
        if (notPushes.size()>0){
            birthdayWishesNotPushDao.save(notPushes);
        }
    }
}

+ 3 - 1
svr/svr-cloud-job/src/main/resources/system.properties

@ -27,4 +27,6 @@ GET_SIMS_VOICE_FLOW_DAY_JOB= 0 50 1 * * ?
#\u5B9A\u65F6\u67E5\u8BE2\u79FB\u52A8\u7269\u8054\u5361\u8BED\u97F3\uFF0C\u6D41\u91CF\u4F7F\u7528\u4FE1\u606F--\u6708
GET_SIMS_VOICE_FLOW_MONTH_JOB= 0 15 2 * * ?
#\u6BCF\u5929\u65E9\u4E0A10\u70B9\u53D1\u9001\u8840\u538B(1\u5929)\u8840\u7CD6(7\u5929)\u672A\u6D4B\u91CF\u901A\u77E5
BLOOD_PRESSURE_GLUCOSE_NOT_MEASURED= 0 0 10 * * ?
BLOOD_PRESSURE_GLUCOSE_NOT_MEASURED= 0 0 10 * * ?
#\u751F\u65E5\u795D\u798F\u672A\u53D1\u751F\u8BB0\u5F55
BIRTHDAY_WISHES_NOT_PUSH_JOB= 0 0 3 * * ?

+ 149 - 1
svr/svr-statistics-es/src/main/java/com/yihu/wlyy/statistics/etl/compute/ComputeHelper.java

@ -58,8 +58,14 @@ public class ComputeHelper {
                    List<BaseOrgDO> orgDOs = findAllOrg(orgType);
                    savemodels = initAndSetResultOrg(orgDOs, dimensionQuotas, computeMap, wlyyJobCongId, endTime, timeLevel);
                    break;
                default:
                case "5": //医养科室字段实际存储为团队
                    //得到全部团队
                    List<Map<String,Object>> teams = findAllTeam(orgType);
                    //初始化map并且设置统计出来的数目
                    savemodels = initAndSetResultTeam(teams, dimensionQuotas, computeMap, wlyyJobCongId, endTime, timeLevel);
                    break;
                default:
                    //得到全部医生
                    List<BaseDoctorDO> doctors = findAllDoctor(orgType);
                    //初始化map并且设置统计出来的数目
                    savemodels = initAndSetResult(doctors, dimensionQuotas, computeMap, wlyyJobCongId, endTime, timeLevel);
@ -90,6 +96,9 @@ public class ComputeHelper {
                case "4":
                    key = getOrgKey(one, dimensionQuotas.size());
                    break;
                case "5":
                    key = getTeamKey(one, dimensionQuotas.size());
                    break;
                default:
                    key = getKey(one, dimensionQuotas.size());
                    break;
@ -157,6 +166,24 @@ public class ComputeHelper {
        }
    }
    private String getTeamKey(DataModel one, int size) {
        try {
            if (size > 0) {
                StringBuffer str = new StringBuffer(one.getDept());
                for (int i = 1; i <= size; i++) {
                    String invokeKey = (String) DataModel.class.getMethod("getSlaveKey" + i).invoke(one);
                    str.append("-" + invokeKey);
                }
                return str.toString();
            } else {
                return one.getDept();
            }
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
    private String getCityKey(DataModel one, int size) {
        try {
             StringBuffer str = new StringBuffer("330100");
@ -193,6 +220,34 @@ public class ComputeHelper {
        return orgDOs;
    }
    /**
     * 得到全部医生
     *
     * @return
     */
    private List<Map<String,Object>> findAllTeam(String orgType) {
        String sql = " SELECT " +
                " bt.id AS code, " +
                " bt.name, " +
                " bt.org_code, " +
                " bt.org_name, " +
                " o.town_code, " +
                " o.town_name  " +
                " FROM " +
                " base_team bt, " +
                " base_org o  " +
                " WHERE " +
                " bt.org_code = o.CODE  " +
                " AND bt.del = 1  " +
                " AND o.del = 1  " +
                " AND o.CODE NOT IN ( 'fxty', 'lxyl' ) ";
        if(StringUtils.isNotBlank(orgType)){
            sql += " and o.type = '"+orgType+"'";
        }
        List<Map<String,Object>> teams = jdbcTemplate.queryForList(sql);
        return teams;
    }
    /**
     * 得到全部医生
     *
@ -224,6 +279,99 @@ public class ComputeHelper {
        return doctorDOS;
    }
    /**
     * 初始化map
     */
    private List<SaveModel> initAndSetResultTeam(List<Map<String,Object>> teams, List<BaseDimensionQuota> dimensionQuotas, Map<String, List<DataModel>> countMap, String wlyyJobCongId, String endTime, String timeLevel) throws Exception {
        List<SaveModel> returnList = new ArrayList<>();
        Map<String, SaveModel> lastMaps = new HashMap<>();
        //初始化医生的数据
        for (int i = 0; i < teams.size(); i++) {
            Map<String,Object> teamDO = teams.get(i);
            //排除测试机构
            SaveModel saveModel = new SaveModel();
            saveModel.setCity("330100");
            saveModel.setCityName("杭州市");
            saveModel.setTown(teamDO.get("town_code").toString());
            saveModel.setTownName(teamDO.get("town_name").toString());
            saveModel.setHospital(teamDO.get("org_code").toString());
            saveModel.setHospitalName(teamDO.get("org_name").toString());
            saveModel.setDept(teamDO.get("code").toString());
            String deptName = teamDO.get("name").toString();
            deptName = deptName.replace("团队","社区");
            if(!deptName.contains("社区")){
                deptName = deptName+"社区";
            }
            saveModel.setDeptName(deptName);
            saveModel.setQuotaCode(wlyyJobCongId);
            saveModel.setCreateTime(new Date());
            saveModel.setTimeLevel(timeLevel);
            saveModel.setAreaLevel("5");//团队
            saveModel.setQuotaDate(DateUtil.strToDate(endTime, "yyyy-MM-dd"));
            lastMaps.put(teamDO.get("code").toString(), saveModel);
        }
        //根据维度初始化数据
        for (int i = 0; i < dimensionQuotas.size(); i++) {
            Map<String, SaveModel> mapTemp = new HashMap<>();
            BaseDimensionQuota dimensionQuota = dimensionQuotas.get(i);
            List<Map<String, Object>> listMap = jdbcTemplate.queryForList(dimensionQuota.getDictSql());
            for (Map.Entry<String, SaveModel> oneSaveModel : lastMaps.entrySet()) {
                for (int j = 0; j < listMap.size(); j++) {
                    SaveModel saveModelTemp = new SaveModel();
                    Map<String, Object> dictModel = listMap.get(j);
                    BeanUtils.copyProperties(oneSaveModel.getValue(), saveModelTemp);
                    SaveModel.class.getMethod("setSlaveKey" + (i + 1) + "Name", String.class).invoke(saveModelTemp, dictModel.get("name"));
                    SaveModel.class.getMethod("setSlaveKey" + (i + 1), String.class).invoke(saveModelTemp, dictModel.get("code"));
                    //根据维度生成新的key
                    StringBuffer strKey = new StringBuffer(oneSaveModel.getKey() + "-" + dictModel.get("code"));
                    mapTemp.put(strKey.toString(), saveModelTemp);
                }
            }
            //如果字典长度是0 抛出异常
            if (listMap.size() == 0) {
                throw new Exception("dict size:0,sql:" + dimensionQuota.getDictSql());
            }
            lastMaps = mapTemp;
        }
        //设置值
        for (Map.Entry<String, SaveModel> one : lastMaps.entrySet()) {
            if (countMap.containsKey(one.getKey())) {
                List<DataModel> dataModels = countMap.get(one.getKey());
                Double result1 = 0.0;
                Double result2 = 0.0;
                for (int j = 0; j < dataModels.size(); j++) {
                    DataModel dataModel = dataModels.get(j);
                    Double num = 0.0;
                    if (dataModel.getNum()!=null){
                        num=dataModel.getNum();
                    }else {
                        num=1.0;
                    }
                    result1 += num;
                    result2++;
                }
                SaveModel saveModel = one.getValue();
                saveModel.setResult1(result1);
                saveModel.setResult2(result2);
                if(dataModels.size()>0&& StringUtils.isNotEmpty(dataModels.get(0).getSlaveKey1())&&!StringUtils.isNotEmpty(saveModel.getSlaveKey1())){
                    saveModel.setSlaveKey1(dataModels.get(0).getSlaveKey1());
                }
                if(dataModels.size()>0&& StringUtils.isNotEmpty(dataModels.get(0).getSlaveKey2())&&!StringUtils.isNotEmpty(saveModel.getSlaveKey2())){
                    saveModel.setSlaveKey2(dataModels.get(0).getSlaveKey2());
                }
                returnList.add(saveModel);
            } else {
                returnList.add(one.getValue());
            }
        }
        return returnList;
    }
    /**
     * 初始化map
     */