Trick il y a 5 ans
Parent
commit
d125f6a497
23 fichiers modifiés avec 761 ajouts et 374 suppressions
  1. 2 1
      business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/PrescriptionService.java
  2. 1 1
      business/base-service/src/main/java/com/yihu/jw/org/dao/BaseOrgDao.java
  3. 4 0
      business/im-service/src/main/java/com/yihu/jw/im/dao/ConsultDao.java
  4. 16 0
      business/im-service/src/main/java/com/yihu/jw/im/service/ImService.java
  5. 3 0
      common/common-request-mapping/src/main/java/com/yihu/jw/rm/hospital/BaseHospitalRequestMapping.java
  6. 0 4
      common/common-util/pom.xml
  7. 11 4
      server/svr-authentication/src/main/java/com/yihu/jw/security/core/userdetails/jdbc/WlyyUserDetailsService.java
  8. 3 3
      server/svr-authentication/src/main/resources/application.yml
  9. 1 1
      server/svr-authentication/src/main/resources/bootstrap.yml
  10. 3 2
      svr/svr-healthy-house/src/main/java/com/yihu/jw/healthyhouse/controller/dfs/FastDFSController.java
  11. 1 1
      svr/svr-internet-hospital-entrance/src/main/java/com/yihu/jw/entrance/config/bean/BeanConfig.java
  12. 4 5
      svr/svr-internet-hospital-entrance/src/main/java/com/yihu/jw/entrance/dao/WlyyPatientExpressageAddrDao.java
  13. 8 0
      svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/consult/PatientConsultEndpoint.java
  14. 209 0
      svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/expressage/ExpressageEndpoint.java
  15. 107 0
      svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/expressage/WlyyPatientExpressageAddrEndpoint.java
  16. 4 3
      svr/svr-internet-hospital-entrance/src/main/java/com/yihu/jw/entrance/service/WlyyPatientExpressageAddrService.java
  17. 1 1
      svr/svr-internet-hospital/src/main/resources/bootstrap.yml
  18. 4 0
      svr/svr-iot/pom.xml
  19. 345 344
      svr/svr-iot/src/main/java/com/yihu/iot/controller/analyzer/IotAnalyzerController.java
  20. 28 3
      svr/svr-iot/src/main/java/com/yihu/iot/service/analyzer/IotAnalyzerService.java
  21. 1 0
      svr/svr-iot/src/main/java/com/yihu/iot/service/analyzer/WlyyIotDDao.java
  22. 4 0
      svr/svr-iot/src/main/java/com/yihu/iot/service/analyzer/WlyyIotMDao.java
  23. 1 1
      svr/svr-wlyy-specialist/src/main/resources/bootstrap.yml

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

@ -109,6 +109,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
    private WlyyHttpLogDao wlyyHttpLogDao;
    @Autowired
    private WlyyDoctorClinicRoomDao wlyyDoctorClinicRoomDao;
    
    @Value("${demo.flag}")
    private boolean demoFlag;
@ -1721,5 +1722,5 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
        
        return  list;
    }
    
}

+ 1 - 1
business/base-service/src/main/java/com/yihu/jw/org/dao/BaseOrgDao.java

@ -19,7 +19,7 @@ import java.util.Map;
 * litaohong 	1.0  		2018年08月31日 	Created
 *
 * </pre>
 * @since 1
 * @since
 */
public interface BaseOrgDao extends PagingAndSortingRepository<BaseOrgDO, String>, JpaSpecificationExecutor<BaseOrgDO>  {

+ 4 - 0
business/im-service/src/main/java/com/yihu/jw/im/dao/ConsultDao.java

@ -4,11 +4,15 @@ import com.yihu.jw.entity.base.im.ConsultDo;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * 咨询表DAO类
 * @author huangwenjie
 */
public interface ConsultDao extends PagingAndSortingRepository<ConsultDo, String>, JpaSpecificationExecutor<ConsultDo> {
	
//	@Query("from ConsultDo a where a.relationCode = ?1")
//	ConsultDo findByRelationCode(String outpatientid);
//	// 查询患者咨询记录
//	Page<Object> findByPatient(String patient, String title, String id, PageRequest pageRequest);

+ 16 - 0
business/im-service/src/main/java/com/yihu/jw/im/service/ImService.java

@ -1032,4 +1032,20 @@ public class ImService {
		result.put("consultDo",consultDo);
		return result;
	}
	
	
	/**
	 * 根据复诊记录获取咨询CODE
	 * @param outpatientid
	 * @return
	 */
	public String getConsultCodeByOutpatientId(String outpatientid) {
		String totalSql = "SELECT id FROM wlyy_consult WHERE relation_code='"+outpatientid+"'";
		List<Map<String, Object>> rstotal = jdbcTemplate.queryForList(totalSql);
		String id = "";
		if (rstotal != null && rstotal.size() > 0) {
			id = rstotal.get(0).get("id").toString();
		}
		return id;
	}
}

+ 3 - 0
common/common-request-mapping/src/main/java/com/yihu/jw/rm/hospital/BaseHospitalRequestMapping.java

@ -278,6 +278,9 @@ public class BaseHospitalRequestMapping {
    
        //根据咨询CODE获取session_id
        public static final String getTopic = "/getTopic";
        
        //根据复诊记录ID获取咨询CODE
        public static final String getConsultCodeByOutpatientId = "/getConsultCodeByOutpatientId";
        
    }

+ 0 - 4
common/common-util/pom.xml

@ -82,10 +82,6 @@
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>

+ 11 - 4
server/svr-authentication/src/main/java/com/yihu/jw/security/core/userdetails/jdbc/WlyyUserDetailsService.java

@ -156,7 +156,16 @@ public class WlyyUserDetailsService extends JdbcDaoSupport implements UserDetail
                params.add(new BasicNameValuePair("clientSecret", clientDetails.getClientSecret()));
                params.add(new BasicNameValuePair("code", username));
                params.add(new BasicNameValuePair("openid", getOpenid()));
                String res = HttpClientKit.post(iHealthUserInfoUrl, params, "UTF-8");
                String res = null;
                try{
                    res = HttpClientKit.post(iHealthUserInfoUrl, params, "UTF-8");
                }catch (Exception e){
                    logger.error("远程请求i健康用户信息异常败:" + e.getMessage());
                    return users;
                }
                if(null == res){
                    return users;
                }
                JSONObject patient = JSONObject.parseObject(res);
                if(patient.getInteger("status") == -1){
                    logger.error("去i健康查询用户信息失败:" + patient.getString("error"));
@ -411,9 +420,7 @@ public class WlyyUserDetailsService extends JdbcDaoSupport implements UserDetail
            redisTemplate.opsForValue().set(key, "/**");
            redisTemplate.expire(key, token.getExpiresIn(), TimeUnit.SECONDS);
        } else if ("2".equals(loginType)) {//2.为医生账号
            String key = "wlyy2:auth:token:" + token.getValue();
            redisTemplate.opsForValue().set(key, "/**");
            redisTemplate.expire(key, token.getExpiresIn(), TimeUnit.SECONDS);
        } else if ("3".equals(loginType) || "4".equals(loginType)) { //3.患者账号
            String key = "wlyy2:auth:token:" + token.getValue();
            redisTemplate.opsForValue().set(key, "/**");

+ 3 - 3
server/svr-authentication/src/main/resources/application.yml

@ -37,7 +37,7 @@ spring:
# i健康用户信息接口,开放出来给互联网医院登录同步用户信息用
iHealth:
  user-info-uri: http://http://ehr.yihu.com/wlyy/patient/userInfo
  user-info-uri: http://ehr.yihu.com/wlyy/iHealth/userInfo
---
spring:
  profiles: jwtest
@ -50,7 +50,7 @@ spring:
    port: 6379 # Redis server port.
## i健康用户信息接口,开放出来给互联网医院登录同步用户信息用
iHealth:
  user-info-uri: http://http://ehr.yihu.com/wlyy/patient/userInfo
  user-info-uri: http://ehr.yihu.com/wlyy/iHealth/userInfo
---
spring:
  profiles: jwprod
@ -62,4 +62,4 @@ spring:
    host: 172.19.103.88 # Redis server host.
    port: 6379 # Redis server port.
iHealth:
  user-info-uri: http://http://ehr.yihu.com/wlyy/patient/userInfo
  user-info-uri: http://ehr.yihu.com/wlyy/iHealth/userInfo

+ 1 - 1
server/svr-authentication/src/main/resources/bootstrap.yml

@ -1,6 +1,6 @@
spring:
  application:
    name: svr-authentication
    name: svr-authentication-lyx
  cloud:
    config:
      failFast: true

+ 3 - 2
svr/svr-healthy-house/src/main/java/com/yihu/jw/healthyhouse/controller/dfs/FastDFSController.java

@ -3,7 +3,6 @@ package com.yihu.jw.healthyhouse.controller.dfs;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.yihu.fastdfs.FastDFSUtil;
import com.yihu.fastdfs.config.FastDFSConfig;
import com.yihu.jw.healthyhouse.model.dfs.FileResource;
import com.yihu.jw.healthyhouse.service.dfs.FileResourceService;
import com.yihu.jw.restmodel.web.Envelop;
@ -22,7 +21,9 @@ import org.springframework.web.multipart.MultipartFile;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.util.*;
import java.util.Base64;
import java.util.List;
import java.util.Map;
/**
 *文件服务

+ 1 - 1
svr/svr-internet-hospital-entrance/src/main/java/com/yihu/jw/entrance/config/bean/BeanConfig.java

@ -1,4 +1,4 @@
package com.yihu.jw.entrance.config.bean;
package com.yihu.jw.hospital.config;
import com.yihu.jw.hospital.prescription.service.PrescriptionExpressageService;
import org.springframework.beans.factory.annotation.Value;

+ 4 - 5
svr/svr-internet-hospital-entrance/src/main/java/com/yihu/jw/entrance/dao/WlyyPatientExpressageAddrDao.java

@ -1,10 +1,9 @@
package com.yihu.jw.entrance.dao;
package com.yihu.jw.hospital.dao.consult;
import com.yihu.jw.entity.hospital.prescription.WlyyPatientExpressageAddrDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
import com.yihu.jw.entity.hospital.prescription.WlyyPatientExpressageAddrDO;
import java.util.List;
/**
@ -21,9 +20,9 @@ import java.util.List;
 */
public interface WlyyPatientExpressageAddrDao extends PagingAndSortingRepository<WlyyPatientExpressageAddrDO, String>, JpaSpecificationExecutor<WlyyPatientExpressageAddrDO>  {
    boolean existsByPatientAndIsDefault(String patient,Integer isDefault);
    boolean existsByPatientAndIsDefault(String patient, Integer isDefault);
    List<WlyyPatientExpressageAddrDO> queryByPatientAndIsDefault(String patient,Integer isDefault);
    List<WlyyPatientExpressageAddrDO> queryByPatientAndIsDefault(String patient, Integer isDefault);
    List<WlyyPatientExpressageAddrDO> queryByPatient(String patient);
}

+ 8 - 0
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/consult/PatientConsultEndpoint.java

@ -268,5 +268,13 @@ public class PatientConsultEndpoint extends EnvelopRestEndpoint {
			@RequestParam(value = "consult",required = false) String consult)throws Exception {
		return success("请求成功",imService.getTopic(consult));
	}
	
	@GetMapping(value = BaseHospitalRequestMapping.PatientIM.getConsultCodeByOutpatientId)
	@ApiOperation(value = "根据复诊记录ID获取咨询CODE", notes = "根据复诊记录ID获取咨询CODE")
	public Envelop getConsultCodeByOutpatientId(
			@ApiParam(name = "outpatientid", value = "复诊ID")
			@RequestParam(value = "outpatientid",required = true) String outpatientid)throws Exception {
		return success("请求成功",imService.getConsultCodeByOutpatientId(outpatientid));
	}
}

+ 209 - 0
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/expressage/ExpressageEndpoint.java

@ -0,0 +1,209 @@
package com.yihu.jw.hospital.endpoint.expressage;
import com.yihu.jw.entity.hospital.prescription.WlyyExpressagePriceDO;
import com.yihu.jw.entity.hospital.prescription.WlyyPrescriptionExpressageDO;
import com.yihu.jw.hospital.prescription.dao.OutpatientDao;
import com.yihu.jw.hospital.prescription.service.PrescriptionExpressageService;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.rm.hospital.BaseHospitalRequestMapping;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.net.URLDecoder;
import java.util.List;
@RestController
@RequestMapping(value = BaseHospitalRequestMapping.Expressage.PREFIX)
@Api(value = "门诊处方快递物流管理器", description = "门诊处方快递物流管理器", tags = {"wlyy基础服务 - 门诊处方快递物流管理服务接口"})
public class ExpressageEndpoint extends EnvelopRestEndpoint {
    private static Logger logger = LoggerFactory.getLogger(ExpressageEndpoint.class);
    @Autowired
    private PrescriptionExpressageService sfexpressService;
    @Autowired
    private OutpatientDao outpatientDao;
    private String successxml = "<Response service='RoutePushService'><Head>OK</Head></Response>";
    private String failedxml = "<Response service='RoutePushService'><Head>ERR</Head><ERROR code='-1'>系统发生数据错误或运行时异常</ERROR></Response>";
    @RequestMapping(value="/routepushservice",method = RequestMethod.POST)
    @ApiOperation("接受顺丰推送过来的路由信息")
    public Envelop SFRoutePushService (
            @ApiParam(name="content", value="入参报文") @RequestParam(value = "content",required = true) String content){
        try {
            content = URLDecoder.decode(content,"utf-8");
            logger.info("顺丰路由信息推送,xml="+content);
            sfexpressService.SFRoutePushService(content);
            return success(successxml);
        }catch (Exception e){
            logger.error("接收顺丰路由信息推送失败,入参xml:"+content);
            //日志文件中记录异常信息
            //返回接口异常信息处理结果
            return failed(failedxml);
        }
    }
    @RequestMapping(value="/sfrouteserviceSearch",method = RequestMethod.GET)
    @ApiOperation("通过门诊编号查询顺丰物流派送记录")
    public Envelop SFRouteServiceSearch(@ApiParam(name="outpatientId", value="门诊编号") @RequestParam(value = "outpatientId",required = true) String outpatientId){
        try {
            List<WlyyPrescriptionExpressageDO> expressageDOList = sfexpressService.findByField("outpatientId",outpatientId);
            if(CollectionUtils.isEmpty(expressageDOList)){
                return failed("当前门诊没有物流信息!");
            }
            WlyyPrescriptionExpressageDO sfexpress_obj = expressageDOList.get(0);
            String result  = sfexpressService.getRoutInfosSearch(sfexpress_obj);
            return success(result);
        }catch (Exception e){
            //返回接口异常信息处理结果
            return failed( "查询失败,"+e.getMessage());
        }
    }
    @RequestMapping(value = "/getsfexpressprice", method = RequestMethod.GET)
    @ApiOperation("根据收寄地址获取快递费用")
    public Envelop SFExpressPrice(
//            @ApiParam(name = "j_city", value = "寄方地址(城市),默认为厦门", defaultValue = "厦门")
//            @RequestParam(value = "j_city", required = false) String j_city,
            @ApiParam(name = "d_province", value = "收方地址(省份)")
            @RequestParam(value = "d_province", required = false) String d_province,
            @ApiParam(name = "d_city", value = "收方地址(城市)")
            @RequestParam(value = "d_city", required = false) String d_city){
        try {
            WlyyExpressagePriceDO expreprice = sfexpressService.getSFExpressPrice(d_province,d_city);
            return success(expreprice);
        }catch (Exception e){
            //返回接口异常信息处理结果
            return failed("获取快递费用,"+e.getMessage());
        }
    }
    @RequestMapping(value = "/sforderfilterservice", method = RequestMethod.GET)
    @ApiOperation("查询派送地址是否属于顺丰的派送范围")
    public Envelop SFOrderFilterService(
            @ApiParam(name = "d_address", value = "派送地址", defaultValue = "福建省厦门市思明区软件园二期望海路55号")
            @RequestParam(value = "d_address", required = true) String d_address){
        try {
            boolean result = sfexpressService.getSFOrderFilterService(d_address);
            if(result){
                return success("地址可派送!");
            }else{
                return failed("地址不可派送!");
            }
        }catch (Exception e){
            return failed("异常:"+e.getMessage());
        }
    }
    @RequestMapping(value="/sforderservice",method = RequestMethod.POST)
    @ApiOperation("向顺丰快递下订单")
    public Envelop SFOrderService(
            @ApiParam(name="outpatientId", value="门诊编号") @RequestParam(value = "outpatientId",required = true) String outpatientId){
        try {
            List<WlyyPrescriptionExpressageDO> expressageDOList = sfexpressService.findByField("outpatientId",outpatientId);
            if(CollectionUtils.isEmpty(expressageDOList)){
                return failed("顺丰快递下单失败,未找到该处方的派送地址!");
            }else{
                WlyyPrescriptionExpressageDO sfexpress_obj = expressageDOList.get(0);
                //如果该处方的快递单号已生成,则说明已经下单成功,不需要重复下单,直接返回成功
                if(StringUtils.isNotBlank(sfexpress_obj.getMailno())){
                    return success("顺丰快递下单成功!");
                }else{
                    //如果该处方的快递单号未生成,则继续下单
                    //由于下单前已经判断过是否派送,这里不再重复判断----huangwenjie-2017.08.04
                    //先判断地址是否可派送boolean delivery = sfexpressService.getSFOrderFilterService(sfexpress_obj.getProvinceName()+sfexpress_obj.getCityName()+sfexpress_obj.getTownName()+sfexpress_obj.getAddress());
                    //根据业务订单号判断是否已经下单成功
                    boolean go_on = sfexpressService.sfOrderSearchService(sfexpress_obj);
                    //如果该业务订单号未下单成功过,则重新下单
                    if(go_on){
                        //请求顺丰接口下单,成功下单后,返回快递单号
                        sfexpress_obj = sfexpressService.postSFOrderService(sfexpress_obj);
                        //保存快递单号和增加处方物流记录为配送
                        sfexpressService.updatePrescriptionExpressage(sfexpress_obj);
                    }
                    return success("顺丰快递下单成功!");
                }
            }
        }catch (Exception e){
            //返回接口异常信息处理结果
            return failed(e.getMessage());
        }
    }
    @RequestMapping(value="/sfgetorderinfoservice",method = RequestMethod.GET)
    @ApiOperation("通过门诊编号查询顺丰快递单信息(不包含物流记录)")
    public Envelop SFGetOrderInfo(
            @ApiParam(name="outpatientId", value="门诊编号") @RequestParam(value = "outpatientId",required = true) String outpatientId){
        try {
            List<WlyyPrescriptionExpressageDO> expressageDOList = sfexpressService.findByField("outpaitentId",outpatientId);
            if(CollectionUtils.isEmpty(expressageDOList)){
                return failed( "查询失败,");
            }
            WlyyPrescriptionExpressageDO sfexpress_obj = expressageDOList.get(0);
            return success(sfexpress_obj);
        }catch (Exception e) {
            return failed("查询失败," + e.getMessage());
        }
    }
    @RequestMapping(value="/sfordersearchservice",method = RequestMethod.GET)
    @ApiOperation("通过门诊编号查询顺丰快递是否下单成功")
    public Envelop SFOrderSearchService(
            @ApiParam(name="outpatientId", value="门诊编号") @RequestParam(value = "outpatientId",required = true) String outpatientId){
        List<WlyyPrescriptionExpressageDO> expressageDOList = sfexpressService.findByField("outpaitentId",outpatientId);
        if(CollectionUtils.isEmpty(expressageDOList)){
            return failed( "查询失败,");
        }
        try {
            WlyyPrescriptionExpressageDO sfexpress_obj = expressageDOList.get(0);
            boolean go_on = sfexpressService.sfOrderSearchServiceJustSearch(sfexpress_obj);
            return success(go_on);
        }catch (Exception e) {
            return failed("查询失败," + e.getMessage());
        }
    }
    @RequestMapping(value="/sforderConfirm",method = RequestMethod.GET)
    @ApiOperation("通过快递单号取消快递")
    public Envelop sforderConfirm(
            @ApiParam(name="mailno", value="快递单号") @RequestParam(value = "mailno",required = true) String mailno){
        List<WlyyPrescriptionExpressageDO> expressageDOList = sfexpressService.findByField("mailno",mailno);
        if(CollectionUtils.isEmpty(expressageDOList)){
            return failed( "当前快递单号的门诊不存在,");
        }
        try {
            WlyyPrescriptionExpressageDO sfexpress_obj = expressageDOList.get(0);
            String result = sfexpressService.postOrderConfirmService(sfexpress_obj);
            return success(result);
        }catch (Exception e) {
            return failed("异常," + e.getMessage());
        }
    }
}

+ 107 - 0
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/expressage/WlyyPatientExpressageAddrEndpoint.java

@ -0,0 +1,107 @@
package com.yihu.jw.hospital.endpoint.expressage;
import com.yihu.jw.entity.hospital.prescription.WlyyPatientExpressageAddrDO;
import com.yihu.jw.hospital.service.consult.WlyyPatientExpressageAddrService;
import com.yihu.jw.restmodel.hospital.prescription.WlyyPatientExpressageAddrVO;
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.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.rm.hospital.BaseHospitalRequestMapping;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
 * 居民收获地址控制器
 *
 * @version <pre>
 * Author	Version		Date		Changes
 * Administrator 	1.0  		2019年06月12日 	Created
 *
 * </pre>
 * @since 1.
 */
@RestController
@RequestMapping(value = BaseHospitalRequestMapping.WlyyPatientExpressageAddr.PREFIX)
@Api(value = "居民收获地址管理", description = "居民收获地址管理服务接口", tags = {"wlyy基础服务 - 居民收获地址管理服务接口"})
public class WlyyPatientExpressageAddrEndpoint extends EnvelopRestEndpoint {
    @Autowired
    private WlyyPatientExpressageAddrService wlyyPatientExpressageAddrService;
    @PostMapping(value = BaseHospitalRequestMapping.WlyyPatientExpressageAddr.CREATE)
    @ApiOperation(value = "创建")
    public Envelop create(
            @ApiParam(name = "jsonData", value = "Json数据", required = true)
            @RequestParam String jsonData) throws Exception {
        StringBuilder log = new StringBuilder();
        WlyyPatientExpressageAddrDO addrDO = wlyyPatientExpressageAddrService.createAddr(jsonData, log);
        if (!StringUtils.isEmpty(log.toString())) {
            return failed(log.toString());
        }
        return success(addrDO);
    }
    @PostMapping(value = BaseHospitalRequestMapping.WlyyPatientExpressageAddr.DELETE)
    @ApiOperation(value = "删除")
    public Envelop delete(
            @ApiParam(name = "ids", value = "id串,中间用,分隔", required = true)
            @RequestParam(value = "ids") String ids) {
        wlyyPatientExpressageAddrService.delete(ids.split(","));
        return success("删除成功");
    }
    @PostMapping(value = BaseHospitalRequestMapping.WlyyPatientExpressageAddr.setDefault)
    @ApiOperation(value = "将地址设置为默认")
    public Envelop setAddrDefault(
            @ApiParam(name = "patient", value = "居民code", required = true) @RequestParam(value = "patient") String patient,
            @ApiParam(name = "addrId", value = "当前地址id", required = true) @RequestParam(value = "addrId") String addrId) {
        StringBuilder error = null;
        wlyyPatientExpressageAddrService.setAddrDefault(patient, addrId, error);
        if (null != error && !StringUtils.isEmpty(error.toString())) {
            return failed("设置默认地址失败:" + error.toString());
        }
        return success("设置默认地址成功");
    }
    @PostMapping(value = BaseHospitalRequestMapping.WlyyPatientExpressageAddr.hasDefault)
    @ApiOperation(value = "判断当前居民是否已经存在默认地址")
    public Envelop setAddrDefault(
            @ApiParam(name = "patient", value = "居民code", required = true) @RequestParam(value = "patient") String patient) {
        boolean result = wlyyPatientExpressageAddrService.hasDefault(patient);
        return success(result);
    }
    @PostMapping(value = BaseHospitalRequestMapping.WlyyPatientExpressageAddr.UPDATE)
    @ApiOperation(value = "更新")
    public ObjEnvelop<WlyyPatientExpressageAddrVO> update(
            @ApiParam(name = "jsonData", value = "Json数据", required = true)
            @RequestParam String jsonData) throws Exception {
        WlyyPatientExpressageAddrDO wlyyPatientExpressageAddr = toEntity(jsonData, WlyyPatientExpressageAddrDO.class);
        if (null == wlyyPatientExpressageAddr.getId()) {
            return failed("ID不能为空", ObjEnvelop.class);
        }
        wlyyPatientExpressageAddr = wlyyPatientExpressageAddrService.save(wlyyPatientExpressageAddr);
        return success(wlyyPatientExpressageAddr, WlyyPatientExpressageAddrVO.class);
    }
    @GetMapping(value = BaseHospitalRequestMapping.WlyyPatientExpressageAddr.LIST)
    @ApiOperation(value = "获取列表")
    public ListEnvelop<WlyyPatientExpressageAddrVO> list(
            @ApiParam(name = "fields", value = "返回的字段,为空返回全部字段")
            @RequestParam(value = "fields", required = false) String fields,
            @ApiParam(name = "filters", value = "过滤器,为空检索所有条件")
            @RequestParam(value = "filters", required = false) String filters,
            @ApiParam(name = "sorts", value = "排序,规则参见说明文档")
            @RequestParam(value = "sorts", required = false) String sorts) throws Exception {
        List<WlyyPatientExpressageAddrDO> wlyyPatientExpressageAddrs = wlyyPatientExpressageAddrService.search(fields, filters, sorts);
        return success(wlyyPatientExpressageAddrs, WlyyPatientExpressageAddrVO.class);
    }
}

+ 4 - 3
svr/svr-internet-hospital-entrance/src/main/java/com/yihu/jw/entrance/service/WlyyPatientExpressageAddrService.java

@ -1,6 +1,7 @@
package com.yihu.jw.entrance.service;
package com.yihu.jw.hospital.service.consult;
import com.yihu.jw.entrance.dao.WlyyPatientExpressageAddrDao;
import com.yihu.jw.entity.hospital.prescription.WlyyPatientExpressageAddrDO;
import com.yihu.jw.hospital.dao.consult.WlyyPatientExpressageAddrDao;
import com.yihu.jw.utils.EntityUtils;
import com.yihu.mysql.query.BaseJpaService;
import org.apache.commons.lang3.StringUtils;
@ -8,8 +9,8 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.yihu.jw.entity.hospital.prescription.WlyyPatientExpressageAddrDO;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**

+ 1 - 1
svr/svr-internet-hospital/src/main/resources/bootstrap.yml

@ -1,6 +1,6 @@
spring:
  application:
    name: svr-internet-hospital-hwj
    name: svr-internet-hospital-lyx
  cloud:
    config:
      failFast: true

+ 4 - 0
svr/svr-iot/pom.xml

@ -104,6 +104,10 @@
            <artifactId>elasticsearch-starter</artifactId>
            <version>2.0.0</version>
        </dependency>
        <dependency>
            <groupId>com.yihu</groupId>
            <artifactId>fastdfs-starter</artifactId>
        </dependency>
    </dependencies>
    <build>

+ 345 - 344
svr/svr-iot/src/main/java/com/yihu/iot/controller/analyzer/IotAnalyzerController.java

@ -15,20 +15,18 @@ import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
/**
 * @author cws on 2018/1/16.
 */
@RestController
@RequestMapping("svr-iot/analyze" )
@RequestMapping("svr-iot/analyze")
@Api(tags = "设备数据解析入库", description = "基于不同厂商的设备的采集数据,进行解析适配,并入库。")
public class IotAnalyzerController extends EnvelopRestEndpoint {
@ -43,75 +41,76 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
    /**
     * 基于奕拓小屋上传的体征数据,进行解析入库  V1.0 版本
     *
     * @param jsonData
     * @return
     */
    @PostMapping(value = "/yitouxiaowuBK" ,consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @PostMapping(value = "/yitouxiaowuBK", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @ApiOperation(value = "奕拓体征数据解析入库", notes = "奕拓体征数据解析入库")
    public String updateDeviceDataTest(
            @ApiParam(name = "json_data", value = "Json数据", required = true)
            @RequestBody String jsonData){
            @RequestBody String jsonData) {
        Envelop envelop = new Envelop();
        String str = "";
        String strResult = "";
        //1. 基础数据初始化
        String accessToken  = "yitouxiaowu";  // 奕拓小屋
        String accessToken = "yitouxiaowu";  // 奕拓小屋
        try {
            //JSON数据解析
            Map dataDetail = objectMapper.readValue(jsonData, HashMap.class);
            // 用户信息
            LinkedHashMap memberMap = (LinkedHashMap)dataDetail.get("Member");
            LinkedHashMap memberMap = (LinkedHashMap) dataDetail.get("Member");
            // 身高体重
            LinkedHashMap heightMap = (LinkedHashMap)dataDetail.get("Height");
            LinkedHashMap heightMap = (LinkedHashMap) dataDetail.get("Height");
            // 人体成分(脂肪)Fat
            LinkedHashMap fatMap = (LinkedHashMap)dataDetail.get("Fat");
            LinkedHashMap fatMap = (LinkedHashMap) dataDetail.get("Fat");
            // 人体成分(脂肪)Fat
            LinkedHashMap minFatMap = (LinkedHashMap)dataDetail.get("MinFat");
            LinkedHashMap minFatMap = (LinkedHashMap) dataDetail.get("MinFat");
            // 血压
            LinkedHashMap bloodPressureMap = (LinkedHashMap)dataDetail.get("BloodPressure");
            LinkedHashMap bloodPressureMap = (LinkedHashMap) dataDetail.get("BloodPressure");
            // 血氧
            LinkedHashMap boMap = (LinkedHashMap)dataDetail.get("Bo");
            LinkedHashMap boMap = (LinkedHashMap) dataDetail.get("Bo");
            // 单导心电
            LinkedHashMap ecgMap = (LinkedHashMap)dataDetail.get("Ecg");
            LinkedHashMap ecgMap = (LinkedHashMap) dataDetail.get("Ecg");
            // 12导心电
            LinkedHashMap peecgMap = (LinkedHashMap)dataDetail.get("PEEcg");
            LinkedHashMap peecgMap = (LinkedHashMap) dataDetail.get("PEEcg");
            // 体温
            LinkedHashMap temperatureMap = (LinkedHashMap)dataDetail.get("Temperature");
            LinkedHashMap temperatureMap = (LinkedHashMap) dataDetail.get("Temperature");
            // 腰臀比
            LinkedHashMap whrMap = (LinkedHashMap)dataDetail.get("Whr");
            LinkedHashMap whrMap = (LinkedHashMap) dataDetail.get("Whr");
            // 血糖
            LinkedHashMap bloodSugarMap = (LinkedHashMap)dataDetail.get("BloodSugar");
            LinkedHashMap bloodSugarMap = (LinkedHashMap) dataDetail.get("BloodSugar");
            // 血尿酸
            LinkedHashMap uaMap = (LinkedHashMap)dataDetail.get("Ua");
            LinkedHashMap uaMap = (LinkedHashMap) dataDetail.get("Ua");
            // 总胆固醇
            LinkedHashMap cholMap = (LinkedHashMap)dataDetail.get("Chol");
            LinkedHashMap cholMap = (LinkedHashMap) dataDetail.get("Chol");
            // 血脂
            LinkedHashMap bloodFatMap = (LinkedHashMap)dataDetail.get("BloodFat");
            LinkedHashMap bloodFatMap = (LinkedHashMap) dataDetail.get("BloodFat");
            // 心血管功能
            LinkedHashMap cardiovascularMap = (LinkedHashMap)dataDetail.get("Cardiovascular");
            LinkedHashMap cardiovascularMap = (LinkedHashMap) dataDetail.get("Cardiovascular");
            // 骨密度
            LinkedHashMap bmdMap = (LinkedHashMap)dataDetail.get("BMD");
            LinkedHashMap bmdMap = (LinkedHashMap) dataDetail.get("BMD");
            // 酒精浓度
            LinkedHashMap alcoholMap = (LinkedHashMap)dataDetail.get("Alcohol");
            LinkedHashMap alcoholMap = (LinkedHashMap) dataDetail.get("Alcohol");
            // 肺活量
            LinkedHashMap lungMap = (LinkedHashMap)dataDetail.get("Lung");
            LinkedHashMap lungMap = (LinkedHashMap) dataDetail.get("Lung");
            // 血红蛋白
            LinkedHashMap hbMap = (LinkedHashMap)dataDetail.get("Hb");
            LinkedHashMap hbMap = (LinkedHashMap) dataDetail.get("Hb");
            // 尿液分析
            LinkedHashMap urinalysisMap = (LinkedHashMap)dataDetail.get("Urinalysis");
            LinkedHashMap urinalysisMap = (LinkedHashMap) dataDetail.get("Urinalysis");
            //0 - 设备基本信息:设备码、设备所属、测试医生、时间、类别等
            JSONObject data = new JSONObject();
            data.put("MachineId",dataDetail.get("MachineId") == null? "":dataDetail.get("MachineId").toString());
            data.put("UnitNo",dataDetail.get("UnitNo") == null? "":dataDetail.get("UnitNo").toString());
            data.put("UnitName",dataDetail.get("UnitName") == null? "":dataDetail.get("UnitName").toString());
            data.put("DoctorId",dataDetail.get("DoctorId") == null? "":dataDetail.get("DoctorId").toString());
            data.put("DoctorName",dataDetail.get("DoctorName") == null? "":dataDetail.get("DoctorName").toString());
            data.put("RecordNo",dataDetail.get("RecordNo") == null? "":dataDetail.get("RecordNo").toString());
            data.put("Measure_time",dataDetail.get("MeasureTime") == null? "":dataDetail.get("MeasureTime").toString());
            data.put("DeviceType",dataDetail.get("DeviceType") == null? "":dataDetail.get("DeviceType").toString());
            data.put("MacAddr",dataDetail.get("MacAddr") == null? "":dataDetail.get("MacAddr").toString());
            data.put("MachineId", dataDetail.get("MachineId") == null ? "" : dataDetail.get("MachineId").toString());
            data.put("UnitNo", dataDetail.get("UnitNo") == null ? "" : dataDetail.get("UnitNo").toString());
            data.put("UnitName", dataDetail.get("UnitName") == null ? "" : dataDetail.get("UnitName").toString());
            data.put("DoctorId", dataDetail.get("DoctorId") == null ? "" : dataDetail.get("DoctorId").toString());
            data.put("DoctorName", dataDetail.get("DoctorName") == null ? "" : dataDetail.get("DoctorName").toString());
            data.put("RecordNo", dataDetail.get("RecordNo") == null ? "" : dataDetail.get("RecordNo").toString());
            data.put("Measure_time", dataDetail.get("MeasureTime") == null ? "" : dataDetail.get("MeasureTime").toString());
            data.put("DeviceType", dataDetail.get("DeviceType") == null ? "" : dataDetail.get("DeviceType").toString());
            data.put("MacAddr", dataDetail.get("MacAddr") == null ? "" : dataDetail.get("MacAddr").toString());
            //用于标识入到I健康的数据库的时间
            data.put("createDate", DateUtil.getStringDate().toString());
@ -127,7 +126,7 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
            JSONObject params = new JSONObject();
            params.put("access_token", accessToken);
            params.put("sn", sn);
            params.put("ext_code","未知");
            params.put("ext_code", "未知");
            params.put("device_name", deviceName);
            params.put("device_model", deviceModel);
            params.put("idcard", idCard);
@ -136,18 +135,18 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
            //2 - 身高体重
            if (heightMap != null) {
                data.put("height", heightMap.get("Height") == null ? "" : heightMap.get("Height").toString());
                data.put("height_name","身高");
                data.put("height_name", "身高");
                data.put("height_unit", "cm");
                data.put("weight", heightMap.get("Weight") == null ? "" : heightMap.get("Weight").toString());
                data.put("weight_name","体重");
                data.put("weight_name", "体重");
                data.put("weight_unit", "kg");
                data.put("bmi",heightMap.get("BMI") == null? "": heightMap.get("BMI").toString());
                data.put("bmi_unit"," ");
                data.put("bmi", heightMap.get("BMI") == null ? "" : heightMap.get("BMI").toString());
                data.put("bmi_unit", " ");
                data.put("IdealWeight", heightMap.get("IdealWeight") == null ? "" : heightMap.get("IdealWeight").toString());
                data.put("weight_name","理想体重");
                data.put("weight_name", "理想体重");
                data.put("weight_unit", "kg");
                data.put("heightResult", heightMap.get("Result") == null ? "" : heightMap.get("Result").toString());
                data.put("heightResult_name","结论:-1、消瘦,0、正常,1、超重,2、肥胖");
                data.put("heightResult_name", "结论:-1、消瘦,0、正常,1、超重,2、肥胖");
            }
            //3 - 人体成分(脂肪)FAT
@ -182,64 +181,64 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
                data.put("Result", fatMap.get("Result") == null ? "" : fatMap.get("Result").toString());
                //单位
                data.put("FatRate_name","%");
                data.put("Fat_name","kg");
                data.put("ExceptFat_name","kg");
                data.put("WaterRate_name","%");
                data.put("Water_name","kg");
                data.put("Minerals_name","kg");
                data.put("Protein_name","kg");
                data.put("Fic_name","kg");
                data.put("Foc_name","kg");
                data.put("Muscle_name","kg");
                data.put("FatAdjust_name","kg");
                data.put("WeightAdjust_name","kg");
                data.put("MuscleAdjust_name","kg");
                data.put("BasicMetabolism_name","kcal");
                data.put("Viscera_name","");
                data.put("Bmc_name","kg");
                data.put("MuscleRate_name","%");
                data.put("QuganMuscle_name","kg");
                data.put("QuganFat_name","kg");
                data.put("ZuotuiMuscle_name","kg");
                data.put("ZuobiMuscle_name","kg");
                data.put("YoubiMuscle_name","kg");
                data.put("YoutuiMuscle_name","kg");
                data.put("ZuobiFat_name","kg");
                data.put("ZuotuiFat_name","kg");
                data.put("YoubiFat_name","kg");
                data.put("YoutuiFat_name","kg");
                data.put("Result_name","");
                data.put("FatRate_name", "%");
                data.put("Fat_name", "kg");
                data.put("ExceptFat_name", "kg");
                data.put("WaterRate_name", "%");
                data.put("Water_name", "kg");
                data.put("Minerals_name", "kg");
                data.put("Protein_name", "kg");
                data.put("Fic_name", "kg");
                data.put("Foc_name", "kg");
                data.put("Muscle_name", "kg");
                data.put("FatAdjust_name", "kg");
                data.put("WeightAdjust_name", "kg");
                data.put("MuscleAdjust_name", "kg");
                data.put("BasicMetabolism_name", "kcal");
                data.put("Viscera_name", "");
                data.put("Bmc_name", "kg");
                data.put("MuscleRate_name", "%");
                data.put("QuganMuscle_name", "kg");
                data.put("QuganFat_name", "kg");
                data.put("ZuotuiMuscle_name", "kg");
                data.put("ZuobiMuscle_name", "kg");
                data.put("YoubiMuscle_name", "kg");
                data.put("YoutuiMuscle_name", "kg");
                data.put("ZuobiFat_name", "kg");
                data.put("ZuotuiFat_name", "kg");
                data.put("YoubiFat_name", "kg");
                data.put("YoutuiFat_name", "kg");
                data.put("Result_name", "");
                //说明
                data.put("FatRate_name","体脂占比");
                data.put("Fat_name","体脂肪量");
                data.put("ExceptFat_name","非脂肪量");
                data.put("WaterRate_name","体水占比");
                data.put("Water_name","水含量");
                data.put("Minerals_name","矿物质");
                data.put("Protein_name","蛋白质含量");
                data.put("Fic_name","细胞内液");
                data.put("Foc_name","细胞外液");
                data.put("Muscle_name","肌肉量");
                data.put("FatAdjust_name","脂肪调节");
                data.put("WeightAdjust_name","体重调节");
                data.put("MuscleAdjust_name","肌肉调节");
                data.put("BasicMetabolism_name","基础代谢");
                data.put("Viscera_name","内脏脂肪等级");
                data.put("Bmc_name","骨骼量");
                data.put("MuscleRate_name","肌肉率");
                data.put("QuganMuscle_name","躯干肌肉量");
                data.put("QuganFat_name","躯干脂肪量");
                data.put("ZuotuiMuscle_name","左腿肌肉量");
                data.put("ZuobiMuscle_name","左臂肌肉量");
                data.put("YoubiMuscle_name","右臂肌肉量");
                data.put("YoutuiMuscle_name","右腿肌肉量");
                data.put("ZuobiFat_name","左臂脂肪量");
                data.put("ZuotuiFat_name","左腿脂肪量");
                data.put("YoubiFat_name","右臂脂肪量");
                data.put("YoutuiFat_name","右腿脂肪量");
                data.put("Result_name","结论:-1、稍瘦,0、标准,1、超重,2、肥胖");
                data.put("FatRate_name", "体脂占比");
                data.put("Fat_name", "体脂肪量");
                data.put("ExceptFat_name", "非脂肪量");
                data.put("WaterRate_name", "体水占比");
                data.put("Water_name", "水含量");
                data.put("Minerals_name", "矿物质");
                data.put("Protein_name", "蛋白质含量");
                data.put("Fic_name", "细胞内液");
                data.put("Foc_name", "细胞外液");
                data.put("Muscle_name", "肌肉量");
                data.put("FatAdjust_name", "脂肪调节");
                data.put("WeightAdjust_name", "体重调节");
                data.put("MuscleAdjust_name", "肌肉调节");
                data.put("BasicMetabolism_name", "基础代谢");
                data.put("Viscera_name", "内脏脂肪等级");
                data.put("Bmc_name", "骨骼量");
                data.put("MuscleRate_name", "肌肉率");
                data.put("QuganMuscle_name", "躯干肌肉量");
                data.put("QuganFat_name", "躯干脂肪量");
                data.put("ZuotuiMuscle_name", "左腿肌肉量");
                data.put("ZuobiMuscle_name", "左臂肌肉量");
                data.put("YoubiMuscle_name", "右臂肌肉量");
                data.put("YoutuiMuscle_name", "右腿肌肉量");
                data.put("ZuobiFat_name", "左臂脂肪量");
                data.put("ZuotuiFat_name", "左腿脂肪量");
                data.put("YoubiFat_name", "右臂脂肪量");
                data.put("YoutuiFat_name", "右腿脂肪量");
                data.put("Result_name", "结论:-1、稍瘦,0、标准,1、超重,2、肥胖");
            }
            //4 - 人体成分(脂肪)minFatMap
@ -253,23 +252,23 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
                data.put("Shape", minFatMap.get("Shape") == null ? "" : minFatMap.get("Shape").toString());
                data.put("Result", minFatMap.get("Result") == null ? "" : minFatMap.get("Result").toString());
                data.put("Height_name","cm");
                data.put("Weight_name","kg");
                data.put("FatRate_name","%");
                data.put("BasicMetabolism_name","");
                data.put("Bmi_name","");
                data.put("Physique_name","");
                data.put("Shape_name","");
                data.put("Result_unit","");
                data.put("Height_name","身高");
                data.put("Weight_name","体重");
                data.put("FatRate_name","体脂肪率");
                data.put("BasicMetabolism_name","基础代谢");
                data.put("Bmi_name","BMI");
                data.put("Physique_name","体质指数:1、偏低,2、标准,3、偏高,4、高");
                data.put("Shape_name","体型:1、消瘦,2、标准,3、隐藏性肥胖,4、肌肉型肥胖/健壮,5、肥胖");
                data.put("Result_name","结论:-1、消瘦,0、正常,1、超重,2、肥胖");
                data.put("Height_name", "cm");
                data.put("Weight_name", "kg");
                data.put("FatRate_name", "%");
                data.put("BasicMetabolism_name", "");
                data.put("Bmi_name", "");
                data.put("Physique_name", "");
                data.put("Shape_name", "");
                data.put("Result_unit", "");
                data.put("Height_name", "身高");
                data.put("Weight_name", "体重");
                data.put("FatRate_name", "体脂肪率");
                data.put("BasicMetabolism_name", "基础代谢");
                data.put("Bmi_name", "BMI");
                data.put("Physique_name", "体质指数:1、偏低,2、标准,3、偏高,4、高");
                data.put("Shape_name", "体型:1、消瘦,2、标准,3、隐藏性肥胖,4、肌肉型肥胖/健壮,5、肥胖");
                data.put("Result_name", "结论:-1、消瘦,0、正常,1、超重,2、肥胖");
            }
@ -280,15 +279,15 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
                data.put("Pulse", bloodPressureMap.get("Pulse") == null ? "" : bloodPressureMap.get("Pulse").toString());
                data.put("Result", bloodPressureMap.get("Result") == null ? "" : bloodPressureMap.get("Result").toString());
                data.put("HighPressure_unit","mmHg");
                data.put("LowPressure_unit","mmHg");
                data.put("Pulse_unit","次/分");
                data.put("Result_unit","");
                data.put("HighPressure_unit", "mmHg");
                data.put("LowPressure_unit", "mmHg");
                data.put("Pulse_unit", "次/分");
                data.put("Result_unit", "");
                data.put("HighPressure_name","(收缩压)高压");
                data.put("LowPressure_name","(舒张压)低压");
                data.put("Pulse_name","脉搏");
                data.put("Result_name","结论:-1、低压,0、正常,1、正常高压 2、轻度高压 3、中度高压 4、重度高压");
                data.put("HighPressure_name", "(收缩压)高压");
                data.put("LowPressure_name", "(舒张压)低压");
                data.put("Pulse_name", "脉搏");
                data.put("Result_name", "结论:-1、低压,0、正常,1、正常高压 2、轻度高压 3、中度高压 4、重度高压");
            }
            // 血氧
            if (boMap != null) {
@ -301,23 +300,23 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
                data.put("EndTime", boMap.get("EndTime") == null ? "" : boMap.get("EndTime").toString());
                data.put("SecondCount", boMap.get("SecondCount") == null ? "" : boMap.get("SecondCount").toString());
                data.put("Oxygen_unit","%");
                data.put("OxygenList_unit","");
                data.put("Bpm_unit","");
                data.put("BpmList_unit","");
                data.put("Result_unit","");
                data.put("StartTime_unit","");
                data.put("EndTime_unit","");
                data.put("SecondCount_unit","");
                data.put("Oxygen_name","血氧值");
                data.put("OxygenList_name","血氧列表值");
                data.put("Bpm_name","脉率值");
                data.put("BpmList_name","脉率列表值");
                data.put("Result_name","结论:-1、低血氧,0、正常血氧");
                data.put("StartTime_name","开始时间");
                data.put("EndTime_name","结束时间");
                data.put("SecondCount_name","总测量秒数");
                data.put("Oxygen_unit", "%");
                data.put("OxygenList_unit", "");
                data.put("Bpm_unit", "");
                data.put("BpmList_unit", "");
                data.put("Result_unit", "");
                data.put("StartTime_unit", "");
                data.put("EndTime_unit", "");
                data.put("SecondCount_unit", "");
                data.put("Oxygen_name", "血氧值");
                data.put("OxygenList_name", "血氧列表值");
                data.put("Bpm_name", "脉率值");
                data.put("BpmList_name", "脉率列表值");
                data.put("Result_name", "结论:-1、低血氧,0、正常血氧");
                data.put("StartTime_name", "开始时间");
                data.put("EndTime_name", "结束时间");
                data.put("SecondCount_name", "总测量秒数");
            }
@ -329,22 +328,22 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
                data.put("Result", ecgMap.get("Result") == null ? "" : ecgMap.get("Result").toString());
                data.put("Analysis", ecgMap.get("Analysis") == null ? "" : ecgMap.get("Analysis").toString());
                data.put("Hr_unit","次/分");
                data.put("EcgData_unit","");
                data.put("nGain_unit","");
                data.put("Result_unit","(废除)");
                data.put("Analysis_unit","");
                data.put("Hr_unit", "次/分");
                data.put("EcgData_unit", "");
                data.put("nGain_unit", "");
                data.put("Result_unit", "(废除)");
                data.put("Analysis_unit", "");
                data.put("Hr_name","心率值");
                data.put("EcgData_name","心电图数据");
                data.put("nGain_name","增益");
                data.put("Result_name","  ");
                data.put("Analysis_name","结论:5025 对照说明详见附1");
                data.put("Hr_name", "心率值");
                data.put("EcgData_name", "心电图数据");
                data.put("nGain_name", "增益");
                data.put("Result_name", "  ");
                data.put("Analysis_name", "结论:5025 对照说明详见附1");
            }
            // 12导心电
           if (peecgMap != null) {
            if (peecgMap != null) {
                data.put("Hr", peecgMap.get("Hr") == null ? "" : peecgMap.get("Hr").toString());
                data.put("PAxis", peecgMap.get("PAxis") == null ? "" : peecgMap.get("PAxis").toString());
                data.put("QRSAxis", peecgMap.get("QRSAxis") == null ? "" : peecgMap.get("QRSAxis").toString());
@ -367,32 +366,32 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
                    data.put("filepath",resPath);
                }*/
                data.put("Hr_unit","次/分");
                data.put("PAxis_unit","");
                data.put("QRSAxis_unit","");
                data.put("TAxis_unit","");
                data.put("PR_unit","ms");
                data.put("QRS_unit","ms");
                data.put("QT_unit","ms");
                data.put("QTc_unit","ms");
                data.put("RV5_unit","mV");
                data.put("SV1_unit","mV");
                data.put("EcgData_unit","");
                data.put("Result_unit","");
                data.put("Hr_name","心率值");
                data.put("PAxis_name","P轴");
                data.put("QRSAxis_name","QRS轴");
                data.put("TAxis_name","T轴");
                data.put("PR_name","PR 间期");
                data.put("QRS_name","QRS 时限");
                data.put("QT_name","QT 间期");
                data.put("QTc_name","QTc 间期");
                data.put("RV5_name","RV5 幅度");
                data.put("SV1_name","SV1 幅度");
                data.put("EcgData_name","心电图数据");
                data.put("EcgImg_name","心电波形图图片");
                data.put("Result_name","心电结论");
                data.put("Hr_unit", "次/分");
                data.put("PAxis_unit", "");
                data.put("QRSAxis_unit", "");
                data.put("TAxis_unit", "");
                data.put("PR_unit", "ms");
                data.put("QRS_unit", "ms");
                data.put("QT_unit", "ms");
                data.put("QTc_unit", "ms");
                data.put("RV5_unit", "mV");
                data.put("SV1_unit", "mV");
                data.put("EcgData_unit", "");
                data.put("Result_unit", "");
                data.put("Hr_name", "心率值");
                data.put("PAxis_name", "P轴");
                data.put("QRSAxis_name", "QRS轴");
                data.put("TAxis_name", "T轴");
                data.put("PR_name", "PR 间期");
                data.put("QRS_name", "QRS 时限");
                data.put("QT_name", "QT 间期");
                data.put("QTc_name", "QTc 间期");
                data.put("RV5_name", "RV5 幅度");
                data.put("SV1_name", "SV1 幅度");
                data.put("EcgData_name", "心电图数据");
                data.put("EcgImg_name", "心电波形图图片");
                data.put("Result_name", "心电结论");
            }
@ -401,11 +400,11 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
                data.put("Temperature", temperatureMap.get("Temperature") == null ? "" : temperatureMap.get("Temperature").toString());
                data.put("Result", temperatureMap.get("Result") == null ? "" : temperatureMap.get("Result").toString());
                data.put("Temperature_unit","℃");
                data.put("Result_unit","");
                data.put("Temperature_unit", "℃");
                data.put("Result_unit", "");
                data.put("Temperature_name","体温值");
                data.put("Result_name","结论:-1、低温,0、正常,1、高温");
                data.put("Temperature_name", "体温值");
                data.put("Result_name", "结论:-1、低温,0、正常,1、高温");
            }
@ -416,15 +415,15 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
                data.put("Whr", whrMap.get("Whr") == null ? "" : whrMap.get("Whr").toString());
                data.put("Result", whrMap.get("Result") == null ? "" : whrMap.get("Result").toString());
                data.put("Waistline_unit","cm");
                data.put("Hipline_unit","cm");
                data.put("Whr_unit","%");
                data.put("Result_unit","");
                data.put("Waistline_unit", "cm");
                data.put("Hipline_unit", "cm");
                data.put("Whr_unit", "%");
                data.put("Result_unit", "");
                data.put("Waistline_name","腰围");
                data.put("Hipline_name","臀围");
                data.put("Whr_name","腰臀比");
                data.put("Result_name","结论: 0:正常,1:上身肥胖,2:下身肥胖");
                data.put("Waistline_name", "腰围");
                data.put("Hipline_name", "臀围");
                data.put("Whr_name", "腰臀比");
                data.put("Result_name", "结论: 0:正常,1:上身肥胖,2:下身肥胖");
            }
            // 血糖
            if (bloodSugarMap != null) {
@ -433,23 +432,23 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
                data.put("Result", bloodSugarMap.get("Result") == null ? "" : bloodSugarMap.get("Result").toString());
                data.put("BloodSugar_name","血糖值");
                data.put("BloodsugarType_name","血糖类型:1、餐前血糖,2、餐后血糖,3、随机血糖");
                data.put("Result_name","结论:-1、低血糖,0、正常,1、偏高 2、高");
                data.put("BloodSugar_name", "血糖值");
                data.put("BloodsugarType_name", "血糖类型:1、餐前血糖,2、餐后血糖,3、随机血糖");
                data.put("Result_name", "结论:-1、低血糖,0、正常,1、偏高 2、高");
                data.put("BloodSugar_unit","mmol/L");
                data.put("BloodsugarType_unit","");
                data.put("Result_unit","");
                data.put("BloodSugar_unit", "mmol/L");
                data.put("BloodsugarType_unit", "");
                data.put("Result_unit", "");
            }
            // 血尿酸
            if (uaMap != null) {
                data.put("Ua", uaMap.get("Ua") == null ? "" : uaMap.get("Ua").toString());
                data.put("Result", uaMap.get("Result") == null ? "" : uaMap.get("Result").toString());
                data.put("Ua_unit","mmol/L");
                data.put("Result_unit","");
                data.put("Ua_name","尿酸值");
                data.put("Result_name","结论:-1、低,0、正常,1、高");
                data.put("Ua_unit", "mmol/L");
                data.put("Result_unit", "");
                data.put("Ua_name", "尿酸值");
                data.put("Result_name", "结论:-1、低,0、正常,1、高");
            }
            // 总胆固醇
@ -457,11 +456,11 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
                data.put("Chol", cholMap.get("Chol") == null ? "" : cholMap.get("Chol").toString());
                data.put("Result", cholMap.get("Result") == null ? "" : cholMap.get("Result").toString());
                data.put("Chol_unit","mmol/L");
                data.put("Result_unit","");
                data.put("Chol_unit", "mmol/L");
                data.put("Result_unit", "");
                data.put("Chol_name","总胆固醇值");
                data.put("Result_name","结论:-1、低,0、正常,1、高  2、过高");
                data.put("Chol_name", "总胆固醇值");
                data.put("Result_name", "结论:-1、低,0、正常,1、高  2、过高");
            }
            // 血脂
@ -473,19 +472,19 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
                data.put("CalcLdl", bloodFatMap.get("CalcLdl") == null ? "" : bloodFatMap.get("CalcLdl").toString());
                data.put("Result", bloodFatMap.get("Result") == null ? "" : bloodFatMap.get("Result").toString());
                data.put("TChol_unit","mmol/L");
                data.put("HdlChol_unit","mmol/L");
                data.put("Trig_unit","mmol/L");
                data.put("TcHdl_unit","");
                data.put("CalcLdl_unit","mmol/L");
                data.put("Result_unit","");
                data.put("TChol_unit", "mmol/L");
                data.put("HdlChol_unit", "mmol/L");
                data.put("Trig_unit", "mmol/L");
                data.put("TcHdl_unit", "");
                data.put("CalcLdl_unit", "mmol/L");
                data.put("Result_unit", "");
                data.put("TChol_name","总胆固醇");
                data.put("HdlChol_name","高密度蛋白");
                data.put("Trig_name","甘油三酯");
                data.put("TcHdl_name","血脂比值");
                data.put("CalcLdl_name","低密度蛋白");
                data.put("Result_name","结论:-1、低,0、正常,1、高");
                data.put("TChol_name", "总胆固醇");
                data.put("HdlChol_name", "高密度蛋白");
                data.put("Trig_name", "甘油三酯");
                data.put("TcHdl_name", "血脂比值");
                data.put("CalcLdl_name", "低密度蛋白");
                data.put("Result_name", "结论:-1、低,0、正常,1、高");
            }
            // 心血管功能
@ -503,31 +502,31 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
                data.put("PAWP", cardiovascularMap.get("PAWP") == null ? "" : cardiovascularMap.get("PAWP").toString());
                data.put("N", cardiovascularMap.get("N") == null ? "" : cardiovascularMap.get("N").toString());
                data.put("HeartFunction1_name","心脏功能");
                data.put("VascularCondition1_name","心血管状况");
                data.put("HeartFunction2_name","心脏功能-简化数据");
                data.put("VascularCondition2_name","心血管状况-简化数据");
                data.put("Result_name","诊断结果");
                data.put("SV_name","SV");
                data.put("CO_name","CO");
                data.put("HOV_name","HOV");
                data.put("CMBV_name","CMBV");
                data.put("TPR_name","TPR");
                data.put("PAWP_name","PAWP");
                data.put("N_name","N");
                data.put("HeartFunction1_unit","");
                data.put("VascularCondition1_unit","");
                data.put("HeartFunction2_unit","");
                data.put("VascularCondition2_unit","");
                data.put("Result_unit","");
                data.put("SV_unit","");
                data.put("CO_unit","");
                data.put("HOV_unit","");
                data.put("CMBV_unit","");
                data.put("TPR_unit","");
                data.put("PAWP_unit","");
                data.put("N_unit","");
                data.put("HeartFunction1_name", "心脏功能");
                data.put("VascularCondition1_name", "心血管状况");
                data.put("HeartFunction2_name", "心脏功能-简化数据");
                data.put("VascularCondition2_name", "心血管状况-简化数据");
                data.put("Result_name", "诊断结果");
                data.put("SV_name", "SV");
                data.put("CO_name", "CO");
                data.put("HOV_name", "HOV");
                data.put("CMBV_name", "CMBV");
                data.put("TPR_name", "TPR");
                data.put("PAWP_name", "PAWP");
                data.put("N_name", "N");
                data.put("HeartFunction1_unit", "");
                data.put("VascularCondition1_unit", "");
                data.put("HeartFunction2_unit", "");
                data.put("VascularCondition2_unit", "");
                data.put("Result_unit", "");
                data.put("SV_unit", "");
                data.put("CO_unit", "");
                data.put("HOV_unit", "");
                data.put("CMBV_unit", "");
                data.put("TPR_unit", "");
                data.put("PAWP_unit", "");
                data.put("N_unit", "");
            }
            // 骨密度
@ -545,31 +544,31 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
                data.put("PAB", bmdMap.get("PAB") == null ? "" : bmdMap.get("PAB").toString());
                data.put("Result", bmdMap.get("Result") == null ? "" : bmdMap.get("Result").toString());
                data.put("TSCORE_unit","");
                data.put("ZSCORE_unit","");
                data.put("OI_unit","");
                data.put("BQI_unit","");
                data.put("SOS_unit","(m/s)");
                data.put("YOUNG_ADULT_unit","");
                data.put("AGE_MATCHED_unit","");
                data.put("BUA_unit","");
                data.put("EOA_unit","");
                data.put("RRF_unit","");
                data.put("PAB_unit","");
                data.put("Result_unit","");
                data.put("TSCORE_name","T值,受试者的数值与年轻健康成人的骨密度平均值的标准差");
                data.put("ZSCORE_name","Z值,受试者的数值与同年龄人群骨密度的平均值的标准差");
                data.put("OI_name","骨质指数,数值越大表示骨密度越高");
                data.put("BQI_name","骨质指数,数值越大表示骨密度越高");
                data.put("SOS_name","超声声速");
                data.put("YOUNG_ADULT_name","成人百分比");
                data.put("AGE_MATCHED_name","年龄百分比");
                data.put("BUA_name","BUA");
                data.put("EOA_name","预期发生骨质疏松的年龄");
                data.put("RRF_name","相对骨折风险");
                data.put("PAB_name","骨骼的生理年龄");
                data.put("Result_name","诊断结果:-2、骨强度不足,-1、骨质疏松,0、正常");
                data.put("TSCORE_unit", "");
                data.put("ZSCORE_unit", "");
                data.put("OI_unit", "");
                data.put("BQI_unit", "");
                data.put("SOS_unit", "(m/s)");
                data.put("YOUNG_ADULT_unit", "");
                data.put("AGE_MATCHED_unit", "");
                data.put("BUA_unit", "");
                data.put("EOA_unit", "");
                data.put("RRF_unit", "");
                data.put("PAB_unit", "");
                data.put("Result_unit", "");
                data.put("TSCORE_name", "T值,受试者的数值与年轻健康成人的骨密度平均值的标准差");
                data.put("ZSCORE_name", "Z值,受试者的数值与同年龄人群骨密度的平均值的标准差");
                data.put("OI_name", "骨质指数,数值越大表示骨密度越高");
                data.put("BQI_name", "骨质指数,数值越大表示骨密度越高");
                data.put("SOS_name", "超声声速");
                data.put("YOUNG_ADULT_name", "成人百分比");
                data.put("AGE_MATCHED_name", "年龄百分比");
                data.put("BUA_name", "BUA");
                data.put("EOA_name", "预期发生骨质疏松的年龄");
                data.put("RRF_name", "相对骨折风险");
                data.put("PAB_name", "骨骼的生理年龄");
                data.put("Result_name", "诊断结果:-2、骨强度不足,-1、骨质疏松,0、正常");
            }
            // 酒精浓度
@ -580,17 +579,17 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
                data.put("errcode", alcoholMap.get("errcode") == null ? "" : alcoholMap.get("errcode").toString());
                data.put("errinfo", alcoholMap.get("errinfo") == null ? "" : alcoholMap.get("errinfo").toString());
                data.put("Alcohol_name","酒精浓度值(单位 mg/100ml)");
                data.put("Result_name","0:正常 1:饮酒 2:醉酒");
                data.put("AlcoholImg_name","(双佳服务器上传的是图片地址,其它是图片二进制)Base64字符串");
                data.put("errcode_name","(-10:未找到图片 ,-11: 上传异常,-12 服务器返回空值;其它服务器返回)错误代码");
                data.put("errinfo_name","错误信息");
                data.put("Alcohol_name", "酒精浓度值(单位 mg/100ml)");
                data.put("Result_name", "0:正常 1:饮酒 2:醉酒");
                data.put("AlcoholImg_name", "(双佳服务器上传的是图片地址,其它是图片二进制)Base64字符串");
                data.put("errcode_name", "(-10:未找到图片 ,-11: 上传异常,-12 服务器返回空值;其它服务器返回)错误代码");
                data.put("errinfo_name", "错误信息");
                data.put("Alcohol_unit","");
                data.put("Result_unit","");
                data.put("AlcoholImg_unit","");
                data.put("errcode_unit","");
                data.put("errinfo_unit","");
                data.put("Alcohol_unit", "");
                data.put("Result_unit", "");
                data.put("AlcoholImg_unit", "");
                data.put("errcode_unit", "");
                data.put("errinfo_unit", "");
            }
            // 肺活量
@ -604,23 +603,23 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
                data.put("FEF2575", lungMap.get("FEF2575") == null ? "" : lungMap.get("FEF2575").toString());
                data.put("Result", lungMap.get("Result") == null ? "" : lungMap.get("Result").toString());
                data.put("Lung_unit","");
                data.put("FVC_unit","");
                data.put("FEV1_unit","");
                data.put("PEF_unit","");
                data.put("FEF25_unit","");
                data.put("FEF75_unit","");
                data.put("FEF2575_unit","");
                data.put("Result_unit","");
                data.put("Lung_name","单位 ml");
                data.put("FVC_name","用力肺活量");
                data.put("FEV1_name","用力呼气1秒量");
                data.put("PEF_name","呼气峰值流速");
                data.put("FEF25_name","25% 肺活量时的用力呼气流速");
                data.put("FEF75_name","75% 肺活量时的用力呼气流速");
                data.put("FEF2575_name","25% 肺活量到75%肺活量之间的平均呼气流速");
                data.put("Result_name","结果(暂无)");
                data.put("Lung_unit", "");
                data.put("FVC_unit", "");
                data.put("FEV1_unit", "");
                data.put("PEF_unit", "");
                data.put("FEF25_unit", "");
                data.put("FEF75_unit", "");
                data.put("FEF2575_unit", "");
                data.put("Result_unit", "");
                data.put("Lung_name", "单位 ml");
                data.put("FVC_name", "用力肺活量");
                data.put("FEV1_name", "用力呼气1秒量");
                data.put("PEF_name", "呼气峰值流速");
                data.put("FEF25_name", "25% 肺活量时的用力呼气流速");
                data.put("FEF75_name", "75% 肺活量时的用力呼气流速");
                data.put("FEF2575_name", "25% 肺活量到75%肺活量之间的平均呼气流速");
                data.put("Result_name", "结果(暂无)");
            }
            // 血红蛋白
@ -629,13 +628,13 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
                data.put("Hct", hbMap.get("Hct") == null ? "" : hbMap.get("Hct").toString());
                data.put("Result", hbMap.get("Result") == null ? "" : hbMap.get("Result").toString());
                data.put("Hb_unit","mmol/L");
                data.put("Hct_unit","%");
                data.put("Result_unit","");
                data.put("Hb_unit", "mmol/L");
                data.put("Hct_unit", "%");
                data.put("Result_unit", "");
                data.put("Hb_name","血红蛋白值");
                data.put("Hct_name","红细胞比容");
                data.put("Result_name","诊断结果:-1、血红蛋白偏低,0、正常,1血红蛋白偏高");
                data.put("Hb_name", "血红蛋白值");
                data.put("Hct_name", "红细胞比容");
                data.put("Result_name", "诊断结果:-1、血红蛋白偏低,0、正常,1血红蛋白偏高");
            }
            // 尿液分析
@ -656,66 +655,66 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
                data.put("UCA", urinalysisMap.get("UCA") == null ? "" : urinalysisMap.get("UCA").toString());
                data.put("Result", urinalysisMap.get("Result") == null ? "" : urinalysisMap.get("Result").toString());
                data.put("URO_unit","");
                data.put("BLD_unit","");
                data.put("BIL_unit","");
                data.put("KET_unit","");
                data.put("LEU_unit","");
                data.put("GLU_unit","");
                data.put("PRO_unit","");
                data.put("PH_unit","");
                data.put("NIT_unit","");
                data.put("SG_unit","");
                data.put("VC_unit","");
                data.put("MAL_unit","");
                data.put("CR_unit","");
                data.put("UCA_unit","");
                data.put("Result_unit","");
                data.put("URO_name","尿胆原");
                data.put("BLD_name","潜血");
                data.put("BIL_name","胆红素");
                data.put("KET_name","酮体");
                data.put("LEU_name","白细胞");
                data.put("GLU_name","葡萄糖");
                data.put("PRO_name","蛋白质");
                data.put("PH_name","酸碱度");
                data.put("NIT_name","亚硝酸盐");
                data.put("SG_name","比重");
                data.put("VC_name","维生素");
                data.put("MAL_name","微白蛋白");
                data.put("CR_name","肌酐");
                data.put("UCA_name","钙离子");
                data.put("Result_name","结果");
                data.put("URO_unit", "");
                data.put("BLD_unit", "");
                data.put("BIL_unit", "");
                data.put("KET_unit", "");
                data.put("LEU_unit", "");
                data.put("GLU_unit", "");
                data.put("PRO_unit", "");
                data.put("PH_unit", "");
                data.put("NIT_unit", "");
                data.put("SG_unit", "");
                data.put("VC_unit", "");
                data.put("MAL_unit", "");
                data.put("CR_unit", "");
                data.put("UCA_unit", "");
                data.put("Result_unit", "");
                data.put("URO_name", "尿胆原");
                data.put("BLD_name", "潜血");
                data.put("BIL_name", "胆红素");
                data.put("KET_name", "酮体");
                data.put("LEU_name", "白细胞");
                data.put("GLU_name", "葡萄糖");
                data.put("PRO_name", "蛋白质");
                data.put("PH_name", "酸碱度");
                data.put("NIT_name", "亚硝酸盐");
                data.put("SG_name", "比重");
                data.put("VC_name", "维生素");
                data.put("MAL_name", "微白蛋白");
                data.put("CR_name", "肌酐");
                data.put("UCA_name", "钙离子");
                data.put("Result_name", "结果");
            }
            data.put("hbalc","");
            data.put("hbalc_unit","");
            data.put("left_eye","");
            data.put("left_eye_unit","");
            data.put("right_eye","");
            data.put("right_eye_unit","");
            data.put("hbalc", "");
            data.put("hbalc_unit", "");
            data.put("left_eye", "");
            data.put("left_eye_unit", "");
            data.put("right_eye", "");
            data.put("right_eye_unit", "");
            jsonArray.add(data);
            params.put("data", jsonArray);
            str = dataInputService.inputBodySignsData(params.toString());
            JSONObject result = JSONObject.parseObject(str);
            if (StringUtils.endsWithIgnoreCase(ConstantUtils.FAIL,result.getString("response"))) {
            if (StringUtils.endsWithIgnoreCase(ConstantUtils.FAIL, result.getString("response"))) {
                Map res = new HashMap();
                res.put("success", "false");
                res.put("message", result.getString("msg"));
                strResult = objectMapper.writeValueAsString(res);
                return strResult;
            }else{
            } else {
                Map res = new HashMap();
                res.put("success", "true");
                res.put("message", "体征信息上传成功。");
                JSONArray ridRes = new JSONArray();
                ridRes = (JSONArray)result.get("rid");
                ridRes = (JSONArray) result.get("rid");
                String rid = ridRes.get(0).toString();
                res.put("rid", rid);
@ -731,22 +730,24 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
    /**
     * 基于奕拓小屋上传的体征数据,进行解析入库  V2.0 版本
     *
     * @param jsonData
     * @return
     */
    @PostMapping(value = "/yitouxiaowu" ,consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @PostMapping(value = "/yitouxiaowu", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @ApiOperation(value = "奕拓体征数据解析入库", notes = "奕拓体征数据解析入库")
    public Envelop updateDeviceData(
            @ApiParam(name = "json_data", value = "Json数据", required = true)
            @RequestBody String jsonData)throws Exception {
            @RequestBody String jsonData) throws Exception {
        boolean res = iotAnalyzerService.analyzerMapM(jsonData);
        if(res){
        if (res) {
            return success("体征数据上传成功");
        }else {
        } else {
            return failed("体征数据上传失败");
        }
    }
}

+ 28 - 3
svr/svr-iot/src/main/java/com/yihu/iot/service/analyzer/IotAnalyzerService.java

@ -1,15 +1,19 @@
package com.yihu.iot.service.analyzer;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.jw.util.excel.ExcelUtil;
import com.yihu.mysql.query.BaseJpaService;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import javax.annotation.PostConstruct;
import java.util.*;
/**
 * @author cws on 2019/6/16
@ -18,15 +22,34 @@ import java.util.Map;
public class IotAnalyzerService extends BaseJpaService<WlyyIotD, WlyyIotDDao> {
    private Logger logger = LoggerFactory.getLogger(IotAnalyzerService.class);
    private Map<String,Object> codeNameMap = new HashMap<>();
    @Autowired
    private WlyyIotDDao wlyyIotDDao;
    @Autowired
    private WlyyIotMDao wlyyIotMDao;
    @Autowired
    private WlyyIotTzDictDao wlyyIotTzDictDao;
    @Autowired
    ObjectMapper objectMapper;
    @PostConstruct
    public void init() {
        if (codeNameMap.isEmpty()) {
            Iterable<WlyyIotTzDict> iterable = wlyyIotTzDictDao.findAll();
            iterable.forEach(
                    oneElement -> {
                        codeNameMap.put(oneElement.getCode(), oneElement.getName());
                    }
            );
        }
    }
    /**
     * 针对上传的体数据进行基础数据的解析,进行主表数据的存储
     * @param jsonData
@ -129,4 +152,6 @@ public class IotAnalyzerService extends BaseJpaService<WlyyIotD, WlyyIotDDao> {
            return null;
        }
    }
}

+ 1 - 0
svr/svr-iot/src/main/java/com/yihu/iot/service/analyzer/WlyyIotDDao.java

@ -11,4 +11,5 @@ import java.util.Map;
public interface WlyyIotDDao extends PagingAndSortingRepository<WlyyIotD, Integer>, JpaSpecificationExecutor<WlyyIotD>  {
    List<WlyyIotD> queryByMidAndType(String mid,String type);
}

+ 4 - 0
svr/svr-iot/src/main/java/com/yihu/iot/service/analyzer/WlyyIotMDao.java

@ -3,6 +3,10 @@ package com.yihu.iot.service.analyzer;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
public interface WlyyIotMDao extends PagingAndSortingRepository<WlyyIotM, Integer>, JpaSpecificationExecutor<WlyyIotM>  {
    List<WlyyIotM> queryByIdCardNo(String idcard);
}

+ 1 - 1
svr/svr-wlyy-specialist/src/main/resources/bootstrap.yml

@ -1,6 +1,6 @@
spring:
  application:
    name: svr-wlyy-specialist
    name: svr-wlyy-specialist-lyx
  cloud:
    config:
      failFast: true