Selaa lähdekoodia

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

wangzhinan 1 vuosi sitten
vanhempi
commit
b295d2eb01
31 muutettua tiedostoa jossa 299 lisäystä ja 133 poistoa
  1. 10 5
      business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/DsyyPrescriptionService.java
  2. 2 1
      business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/useragent/BaseUserAgent.java
  3. 13 1
      business/base-service/src/main/java/com/yihu/jw/hospital/survey/service/SurveyService.java
  4. 4 1
      business/base-service/src/main/java/com/yihu/jw/knowledge/service/BaseKnowledgeQuestionService.java
  5. 25 5
      business/es-service/src/main/java/com/yihu/jw/es/service/StatisticsEsService.java
  6. 23 4
      business/im-service/src/main/java/com/yihu/jw/im/service/ImService.java
  7. 5 1
      business/im-service/src/main/java/com/yihu/jw/im/service/RobotService.java
  8. 2 0
      common/common-entity/src/db/2024.sql
  9. 20 1
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/hospital/statistics/ScreenQvo.java
  10. 5 0
      common/common-util/src/main/java/com/yihu/jw/util/date/DateTimeUtil.java
  11. 4 1
      common/common-util/src/main/java/com/yihu/jw/util/date/DateUtil.java
  12. 1 1
      gateway/ag-basic/src/main/java/com/yihu/jw/gateway/filter/BasicZuulFilter.java
  13. 4 4
      server/svr-authentication/src/main/java/com/yihu/jw/security/model/OauthKeypairDO.java
  14. 0 6
      server/svr-authentication/src/main/java/com/yihu/jw/security/oauth2/provider/endpoint/WlyyLoginEndpoint.java
  15. 1 1
      server/svr-authentication/src/main/resources/bootstrap.yml
  16. 2 2
      starter/elasticsearch-starter/src/main/java/com/yihu/jw/elasticsearch/ElasticSearch7Pool.java
  17. 6 7
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/article/ArticleEndpoint.java
  18. 1 0
      svr/svr-internet-hospital-job/src/main/java/com/yihu/jw/job/im/ImOnlineGuidanceJob.java
  19. 12 6
      svr/svr-internet-hospital-job/src/main/java/com/yihu/jw/service/im/ImJobService.java
  20. 10 0
      svr/svr-internet-hospital-job/src/main/java/com/yihu/jw/web/quota/JobController.java
  21. 6 8
      svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/article/ArticleEndpoint.java
  22. 0 3
      svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/consult/PatientConsultEndpoint.java
  23. 3 1
      svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/knowledge/BaseKnowledgeQuestionController.java
  24. 44 20
      svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/statistics/EsStatisticsEndpoint.java
  25. 8 4
      svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/survey/SurveyEndpoint.java
  26. 5 0
      svr/svr-statistics-hlw/src/main/java/com/yihu/jw/statistics/config/DataSourceConfig.java
  27. 11 9
      svr/svr-statistics-hlw/src/main/java/com/yihu/jw/statistics/etl/extract/ExtractHelper.java
  28. 41 20
      svr/svr-statistics-hlw/src/main/java/com/yihu/jw/statistics/util/hibernate/HibenateUtils.java
  29. 7 9
      svr/svr-visit-behind/src/main/java/com/yihu/jw/hospital/module/health/controller/DeviceController.java
  30. 23 8
      svr/svr-visit-behind/src/main/java/com/yihu/jw/hospital/module/health/service/DeviceService.java
  31. 1 4
      svr/svr-visit-behind/src/main/java/com/yihu/jw/hospital/module/rehabilitation/service/SynchronizePatientService.java

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

@ -34,6 +34,7 @@ import com.yihu.jw.restmodel.hospital.prescription.WlyyPrescriptionInfoVO;
import com.yihu.jw.restmodel.hospital.prescription.WlyyPrescriptionVO;
import com.yihu.jw.util.common.IdCardUtil;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.util.entity.ServiceException;
import com.yihu.jw.util.http.HttpClientUtil;
import com.yihu.jw.util.network.HttpResponse;
import com.yihu.jw.util.network.HttpUtils;
@ -46,10 +47,10 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.*;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
@Service
@Transactional
@ -732,7 +733,11 @@ public class DsyyPrescriptionService extends BaseJpaService<WlyyPrescriptionDO,
        JSONObject rs = JSON.parseObject(content);
        Integer status = rs.getInteger("status");
        if (status==200){
            object = rs.getJSONObject("obj");
            if(rs.get("obj") instanceof JSONObject){
                object = rs.getJSONObject("obj");
            }else {
                throw new ServiceException(rs.getString("obj"));
            }
        }
        return object;
    }

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

@ -32,7 +32,8 @@ public class BaseUserAgent {
            return json.getString("uid");
        } catch (Exception e) {
            return e.getMessage();
            e.printStackTrace();
            return "";
        }
    }

+ 13 - 1
business/base-service/src/main/java/com/yihu/jw/hospital/survey/service/SurveyService.java

@ -894,7 +894,7 @@ public class SurveyService extends BaseJpaService<WlyySurveyQuestionDO, SurveyQu
     * @param
     * @return
     */
    public MixEnvelop findAnswerList(String tempId,String patient,String patientName,String title,Integer page,Integer size){
    public MixEnvelop findAnswerList(String tempId,String patient,String patientName,String title,Integer page,Integer size,String startTime,String endTime){
        String totalSql ="SELECT " +
                " COUNT(1) AS \"total\"" +
@ -913,6 +913,12 @@ public class SurveyService extends BaseJpaService<WlyySurveyQuestionDO, SurveyQu
        if(StringUtils.isNotBlank(patientName)){
            totalSql += " AND t.patient_name like  '%"+patientName+"%' ";
        }
        if(StringUtils.isNotBlank(startTime)){
            totalSql += " AND t.create_time >=  '"+startTime+" 00:00:00' ";
        }
        if(StringUtils.isNotBlank(endTime)){
            totalSql += " AND t.create_time <=  '"+endTime+" 23:59:59' ";
        }
        List<Map<String, Object>> rstotal = jdbcTemplate.queryForList(totalSql);
        Long count = 0L;
@ -951,6 +957,12 @@ public class SurveyService extends BaseJpaService<WlyySurveyQuestionDO, SurveyQu
        if(StringUtils.isNotBlank(tempId)){
            sql += " AND t.survey_temp_code = '"+tempId+"' ";
        }
        if(StringUtils.isNotBlank(startTime)){
            sql += " AND t.create_time >=  '"+startTime+" 00:00:00' ";
        }
        if(StringUtils.isNotBlank(endTime)){
            sql += " AND t.create_time <=  '"+endTime+" 23:59:59' ";
        }
        sql += " ORDER BY t.create_time DESC " ;
        if ("xm_ykyy_wx".equals(wxId)) {

+ 4 - 1
business/base-service/src/main/java/com/yihu/jw/knowledge/service/BaseKnowledgeQuestionService.java

@ -104,7 +104,7 @@ public class BaseKnowledgeQuestionService extends BaseJpaService<BaseKnowledgeQu
     * @param type
     * @param status
     */
    public MixEnvelop selectQuestionList(String name,String type,String status,Integer page,Integer size){
    public MixEnvelop selectQuestionList(String name,String type,String status,Integer page,Integer size,String sceneCode){
        String orderBy = " and del = 1 order by sort asc,create_time desc  ";
        String condition = " ";
        String sql = "SELECT\n" +
@ -132,6 +132,9 @@ public class BaseKnowledgeQuestionService extends BaseJpaService<BaseKnowledgeQu
        if (StringUtils.isNoneBlank(status)){
            condition +=" and status ='"+status+"' ";
        }
        if (StringUtils.isNoneBlank(sceneCode)){
            condition +=" and scene_code like '%"+sceneCode+"%' ";
        }
        List<Map<String, Object>> list = hibenateUtils.createSQLQuery(sql+condition+orderBy, page, size);
        String sqlCount ="select COUNT(1) as total from base_knowledge_question where 1=1 ";
        List<Map<String, Object>> rstotal = hibenateUtils.createSQLQuery(sqlCount+condition+orderBy);

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 25 - 5
business/es-service/src/main/java/com/yihu/jw/es/service/StatisticsEsService.java


+ 23 - 4
business/im-service/src/main/java/com/yihu/jw/im/service/ImService.java

@ -24,6 +24,7 @@ import com.yihu.jw.entity.hospital.message.BaseUserMessageDO;
import com.yihu.jw.entity.hospital.message.SystemMessageDO;
import com.yihu.jw.entity.hospital.prescription.WlyyConsultAdvice;
import com.yihu.jw.entity.hospital.prescription.WlyyOutpatientDO;
import com.yihu.jw.entity.knowledge.BaseSystemDialogSetting;
import com.yihu.jw.entity.order.BusinessOrderDO;
import com.yihu.jw.evaluate.score.dao.BaseEvaluateDao;
import com.yihu.jw.evaluate.score.dao.BaseEvaluateScoreDao;
@ -45,6 +46,7 @@ import com.yihu.jw.im.dao.ConsultTeamDoctorDao;
import com.yihu.jw.im.dao.ConsultTeamLogDao;
import com.yihu.jw.im.util.ImUtil;
import com.yihu.jw.im.util.ImageCompress;
import com.yihu.jw.knowledge.dao.BaseSystemDialogSettingDao;
import com.yihu.jw.order.dao.BusinessOrderDao;
import com.yihu.jw.patient.dao.BasePatientDao;
import com.yihu.jw.rehabilitation.ServiceItemPlanDao;
@ -110,7 +112,8 @@ public class ImService {
    @Autowired
    private HospitalWaitingRoomDao hospitalWaitingRoomDao;
    @Autowired
    private BaseSystemDialogSettingDao dialogSettingDao;
    @Autowired
    public ImUtil imUtil;
@ -3223,10 +3226,10 @@ public class ImService {
                sender_name = dictDO.getDictValue();
            }
            if(imUtil.sessionIsExist(session_id26)){
                imUtil.sendImMsg(sender_id, sender_name, session_id26, "51", json.toJSONString(), "2", null);
                imUtil.sendImMsg(sender_id, sender_name, session_id26, "51", json.toJSONString(), "1", null);
            }
            if(imUtil.sessionIsExist(session_id27)){
                imUtil.sendImMsg(sender_id, sender_name, session_id27, "51", json.toJSONString(), "2", null);
                imUtil.sendImMsg(sender_id, sender_name, session_id27, "51", json.toJSONString(), "1", null);
            }
        }catch (Exception e){
@ -4134,9 +4137,21 @@ public class ImService {
        return imUtil.sendMessage(doctor, patientCode, "2", msg.toString());
    }
    public boolean guidanceFinishConsult(String sessionId, String participants) {
        boolean flag = false;
        //发送导诊结束消息
        String systemType = "1";
        if (sessionId.endsWith("_26")){
            systemType = "2";
        }else if (sessionId.endsWith("_27")){
            systemType = "3";
        }
        BaseSystemDialogSetting endSetting =  dialogSettingDao.findBySystemTypeAndFunctionType(systemType,"5",1);
        if(endSetting!=null){
            String content = endSetting.getContent();
            BaseDoctorDO doctorDO = baseDoctorDao.findByIdAndDel(participants);
            imUtil.sendImMsg(participants, doctorDO.getName(), sessionId, "1", content, "1", null);
        }
        //踢出会员成员
        imUtil.deleteParticipants(sessionId, participants);
        //修改session状态
@ -4224,11 +4239,13 @@ public class ImService {
                "bop.status as \"payStatus1\" ," +
                "op.patient_cancel_value as \"patientCancelValue\" ," +
                "op.plan_doctor as \"planDoctor\" ," +
                "oh.id as \"hospitalizationId\"," +
                "op.patient_cancel_remark as \"patient_cancel_remark\"  " +
                "FROM wlyy_outpatient op LEFT JOIN wlyy_consult a  ON a.relation_code = op.id \n" +
                " LEFT join base_business_order_pay bop on bop.relation_code = op.id" +
                " LEFT join wlyy_consult_team b on a.id = b.consult" +
                " LEFT JOIN base_patient d on op.patient = d.id " +
                " LEFT JOIN wlyy_outpatient_hospitalization oh on op.id= oh.outpatient_id " +
                " WHERE 1=1 ";
        if (status == 1) {
            sql += " and op.status = 0 and op.pay_status =1 ";
@ -4300,6 +4317,8 @@ public class ImService {
                sql += " AND op.outpatient_type = 2";
            } else if (type.equalsIgnoreCase("28")) {
                sql += " AND op.outpatient_type = 4";
            } else if(type.equalsIgnoreCase("29")){
                sql += " AND op.outpatient_type = 1 and  oh.id is not null ";
            }else {
                sql += " AND op.type in (1,2,3) ";
            }

+ 5 - 1
business/im-service/src/main/java/com/yihu/jw/im/service/RobotService.java

@ -117,7 +117,7 @@ public class RobotService {
        map = null;
    }
    //智能导致助手回复
    //智能导诊助手回复
    public Map<String,JSONObject> robotReply(String session_id,String type,String content){
        Map<String,JSONObject> map = new HashMap<>();
        try {
@ -396,6 +396,10 @@ public class RobotService {
                    }
                }
            }
            if(sessionStatus==1){
                //结束的会话开启
                imUtil.updateSessionStatus(session_id,"0");
            }
        }catch (Exception e){
            e.printStackTrace();
        }

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 2 - 0
common/common-entity/src/db/2024.sql


+ 20 - 1
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/hospital/statistics/ScreenQvo.java

@ -32,10 +32,29 @@ public class ScreenQvo {
    private int pageSize;
    private String pageSwitch;//1是0否  分页开关
    private String type;//类型
    private String idcard;
    private String ssc;//社保卡号
    private String time;//时间(一周,一月,半年)
    private String idcard;
    private String name;
    private String mobile;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getMobile() {
        return mobile;
    }
    public void setMobile(String mobile) {
        this.mobile = mobile;
    }
    public String getTime() {
        return time;
    }

+ 5 - 0
common/common-util/src/main/java/com/yihu/jw/util/date/DateTimeUtil.java

@ -46,6 +46,11 @@ public class DateTimeUtil {
    }
    public static Date strToDate(String date,DateTimeFormatter dateTimeFormatter){
        if(date.length()==10){
            LocalDate localDate = LocalDate.parse(date,dateTimeFormatter);
            Instant instant = localDate.atStartOfDay(DateUtil.zone).toInstant();
            return Date.from(instant);
        }
        LocalDateTime localDateTime = LocalDateTime.parse(date,dateTimeFormatter);
        return DateUtil.localTimeToDate(localDateTime);
    }

+ 4 - 1
common/common-util/src/main/java/com/yihu/jw/util/date/DateUtil.java

@ -199,6 +199,9 @@ public class DateUtil {
        if (StringUtils.isEmpty(strDate)) {
            return null;
        }
        if(strDate.length()<=10&&format.length()>10){
            format = format.substring(0,strDate.length());
        }
        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(format);
        LocalDate localDate = LocalDate.parse(strDate,dateTimeFormatter);
        return Date.from(localDate.atStartOfDay(zone).toInstant());
@ -862,7 +865,7 @@ public class DateUtil {
     *  字符串转时间
     */
    public static Date stringToDate(String str, String eg) {
        return strToDate(str,eg);
        return strToDate(str);
    }
    public static int getNowMonth(){

+ 1 - 1
gateway/ag-basic/src/main/java/com/yihu/jw/gateway/filter/BasicZuulFilter.java

@ -433,7 +433,7 @@ public class BasicZuulFilter extends ZuulFilter {
            logger.info("sqlValidate===:"+flag);
            return flag;
        }else {
            return true;
            return false;
        }
    }

+ 4 - 4
server/svr-authentication/src/main/java/com/yihu/jw/security/model/OauthKeypairDO.java

@ -1,7 +1,5 @@
package com.yihu.jw.security.model;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.*;
/**
@ -16,8 +14,10 @@ public class OauthKeypairDO {
    private byte[] keyPair;
    @Id
    @GeneratedValue(generator = "generator")
    @GenericGenerator(name = "generator", strategy = "identity")
//    @GeneratedValue(generator = "generator")
//    @GenericGenerator(name = "generator", strategy = "identity")
//    @Column(name = "id", unique = true, nullable = false)
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id", unique = true, nullable = false)
    public Integer getId() {
        return id;

+ 0 - 6
server/svr-authentication/src/main/java/com/yihu/jw/security/oauth2/provider/endpoint/WlyyLoginEndpoint.java

@ -336,8 +336,6 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
        //图形验证码验证
        String key = parameters.get("key");
        String text = parameters.get("text");
        System.out.println("key==>" + key);
        System.out.println("text==>" + text);
        if (org.apache.commons.lang3.StringUtils.isNotBlank(key) && org.apache.commons.lang3.StringUtils.isNotBlank(text)) {
            if (!verifyCaptcha(key, text)) {
                System.out.println("");
@ -352,13 +350,9 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
        logger.info(username);
        if (StringUtils.isEmpty(username) && StringUtils.isEmpty(flag)) {
            System.out.println("flag==>" + flag);
            System.out.println("username==>" + username);
            System.out.println("flag或者username为空");
            throw new InvalidRequestException("username");
        }
        String client_id = parameters.get("client_id");
        System.out.println("client_id==>" + client_id);
        if (StringUtils.isEmpty(client_id)) {
            throw new InvalidRequestException("client_id");
        }

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

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

+ 2 - 2
starter/elasticsearch-starter/src/main/java/com/yihu/jw/elasticsearch/ElasticSearch7Pool.java

@ -69,6 +69,7 @@ public class ElasticSearch7Pool {
        //设置密码
        final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
        credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(userName, password));
        System.out.println("hosts==>" + JSON.toJSONString(hosts) + "  userName==>" + userName + " password==>" + password);
        //设置超时
        RestClientBuilder builder = RestClient.builder(httpHosts).setRequestConfigCallback(new RestClientBuilder.RequestConfigCallback() {
            @Override
@ -94,8 +95,7 @@ public class ElasticSearch7Pool {
    public ResultSet restHighLevelClientStream(String sql) throws Exception {
//        Connection connection = DriverManager.getConnection("jdbc:es://http://172.26.0.55:9200","elastic","elastic");
//        Connection connection = DriverManager.getConnection("jdbc:es://http://172.26.0.168:9200/","elastic","elastic");
        System.out.println("连接地址==>hosts:"+hosts);
        System.out.println("es账号密码==>userName:"+userName+"   -------------  password:"+password);
        System.out.println("连接地址==>hosts:" + hosts + " es账号密码==>userName:" + userName + "   -------------  password:" + password);
        Connection connection = DriverManager.getConnection("jdbc:es://" + hosts, userName, password);
        Statement statement = connection.createStatement();
        ResultSet resultSet = statement.executeQuery(sql);

+ 6 - 7
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/article/ArticleEndpoint.java

@ -201,14 +201,13 @@ public class ArticleEndpoint extends EnvelopRestEndpoint {
			@RequestParam(value = "pageSize", required = true,defaultValue = "10")Integer pageSize)throws Exception{
		try {
			List<KnowledgeCategoryDO> list  = knowledgeCategoryService.search(fields,filters,sorts,page,pageSize);
			List<KnowledgeCategoryDO> result = new ArrayList<>();
			for(KnowledgeCategoryDO knowledgeCategoryDO:list){
				if(knowledgeCategoryDO.getDel() == 1){
					result.add(knowledgeCategoryDO);
				}
			if(StringUtils.isNotBlank(filters)){
				filters += ";del=1";
			}else {
				filters = "del=1";
			}
			return success(result);
			List<KnowledgeCategoryDO> list  = knowledgeCategoryService.search(fields,filters,sorts,page,pageSize);
			return success(list);
		}catch (Exception e){
			return failedListEnvelopException(e);
		}

+ 1 - 0
svr/svr-internet-hospital-job/src/main/java/com/yihu/jw/job/im/ImOnlineGuidanceJob.java

@ -26,6 +26,7 @@ public class ImOnlineGuidanceJob implements Job {
            logger.info("onlineGuidance job start...");
            imJobService.onlineGuidance("18");
            imJobService.onlineGuidance("26");
            imJobService.onlineGuidance("27");
            logger.info("onlineGuidance job end.");
        }catch (Exception e){
            e.printStackTrace();

+ 12 - 6
svr/svr-internet-hospital-job/src/main/java/com/yihu/jw/service/im/ImJobService.java

@ -39,8 +39,14 @@ public class ImJobService {
     */
    public void onlineGuidance(String type){
        //查找配置
        String systemType = "1";
        if ("26".equals(type)){
            systemType = "2";
        }else if("27".equals(type)){
            systemType = "3";
        }
        WlyyHospitalSysDictDO dictDO = robotService.getSender();
        BaseSystemDialogSetting customerSetting =  dialogSettingDao.findBySystemTypeAndFunctionType("1","3",1);
        BaseSystemDialogSetting customerSetting =  dialogSettingDao.findBySystemTypeAndFunctionType(systemType,"3",1);
        if(customerSetting!=null){
            String content = customerSetting.getContent();
            String time = timeTransfor(customerSetting.getTime(),customerSetting.getTimeUnit());
@ -57,13 +63,13 @@ public class ImJobService {
                }
            }
        }
        BaseSystemDialogSetting userSetting =  dialogSettingDao.findBySystemTypeAndFunctionType("1","4",1);
        BaseSystemDialogSetting userSetting =  dialogSettingDao.findBySystemTypeAndFunctionType(systemType,"4",1);
        if(userSetting!=null){
            String content = userSetting.getContent();
            String time = timeTransfor(customerSetting.getTime(),customerSetting.getTimeUnit());
            String time = timeTransfor(userSetting.getTime(),userSetting.getTimeUnit());
            //查找未结束的在线导诊
            String sql = "SELECT s.id from "+imDbName+".sessions s,"+imDbName+".doctors d  WHERE  " +
                    "s.type='"+type+"' and s.`status`='0' and s.last_message_time<='"+time+"' and s.last_sender_id=d.id ";
                    "s.type='"+type+"' and s.`status`='0' and s.last_message_time<='"+time+"' and s.last_sender_id=d.id and s.last_sender_id !='customer'";
            List<Map<String,Object>> sessionList = jdbcTemplate.queryForList(sql);
            for (Map<String,Object> map:sessionList){
                String sessionId = map.get("id")+"";
@ -75,10 +81,10 @@ public class ImJobService {
            }
        }
        BaseSystemDialogSetting endSetting =  dialogSettingDao.findBySystemTypeAndFunctionType("1","6",1);
        BaseSystemDialogSetting endSetting =  dialogSettingDao.findBySystemTypeAndFunctionType(systemType,"6",1);
        if(endSetting!=null){
            String content = endSetting.getContent();
            String time = timeTransfor(customerSetting.getTime(),customerSetting.getTimeUnit());
            String time = timeTransfor(endSetting.getTime(),endSetting.getTimeUnit());
            //查找未结束的在线导诊
            String sql = "SELECT s.id from im.sessions s  WHERE  " +
                    "s.type='"+type+"' and s.`status`='0' and s.last_message_time<='"+time+"'  ";

+ 10 - 0
svr/svr-internet-hospital-job/src/main/java/com/yihu/jw/web/quota/JobController.java

@ -14,6 +14,7 @@ import com.yihu.jw.job.dailyReport.DailyReportRemindJob;
import com.yihu.jw.job.dailyReport.DailyReportRemindSecondJob;
import com.yihu.jw.job.dailyReport.DailyReportTotalRemindJob;
import com.yihu.jw.job.dailyReport.DailyReportWsbTotalRemindJob;
import com.yihu.jw.job.im.ImOnlineGuidanceJob;
import com.yihu.jw.job.yk.YKYYDataUploadJob;
import com.yihu.jw.job.ykyy.UnCheckPrescriptionJob;
import com.yihu.jw.job.ykyy.UnSettledHISPrescriptionJob;
@ -370,6 +371,15 @@ public class JobController extends BaseController {
                        logger.info("DailyReportWsbTotalRemindJob  job exist");
                    }
                    break;
                case "im_online_guidance_job":
                    if (!quartzHelper.isExistJob("im_online_guidance_job")) {
                        String trigger = SystemConf.getInstance().getSystemProperties().getProperty("im_online_guidance_job");
                        quartzHelper.addJob(ImOnlineGuidanceJob.class, trigger, "im_online_guidance_job", new HashMap<>());
                        logger.info("im_online_guidance_job success");
                    } else {
                        logger.info("im_online_guidance_job exist");
                    }
                    break;
                default :
            }
            return success("启动成功!");

+ 6 - 8
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/article/ArticleEndpoint.java

@ -220,16 +220,14 @@ public class ArticleEndpoint extends EnvelopRestEndpoint {
			@RequestParam(value = "page", required = true,defaultValue = "1")Integer page,
			@ApiParam(name = "pageSize", value = "每页分页大小", required = true, defaultValue = "10")
			@RequestParam(value = "pageSize", required = true,defaultValue = "10")Integer pageSize)throws Exception{
		try {
			List<KnowledgeCategoryDO> list  = knowledgeCategoryService.search(fields,filters,sorts,page,pageSize);
			List<KnowledgeCategoryDO> result = new ArrayList<>();
			for(KnowledgeCategoryDO knowledgeCategoryDO:list){
				if(knowledgeCategoryDO.getDel() == 1){
					result.add(knowledgeCategoryDO);
				}
			if(org.apache.commons.lang3.StringUtils.isNotBlank(filters)){
				filters += ";del=1";
			}else {
				filters = "del=1";
			}
			return success(result);
			List<KnowledgeCategoryDO> list  = knowledgeCategoryService.search(fields,filters,sorts,page,pageSize);
			return success(list);
		}catch (Exception e){
			return failedListEnvelopException(e);
		}

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

@ -885,9 +885,6 @@ public class PatientConsultEndpoint extends EnvelopRestEndpoint {
            @RequestParam(value = "type", required = false) String type
    ) {
        try {
            if(imUtil.sessionIsExist(session_id)){
                return Envelop.getSuccess("success");
            }
            Map<String, JSONObject> map = robotService.robotReply(session_id, type, null);
            imService.getPatientGuaidenceConsult(sender_id, session_id, type);
            robotService.sendReplyMap(map);

+ 3 - 1
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/knowledge/BaseKnowledgeQuestionController.java

@ -59,13 +59,15 @@ public class BaseKnowledgeQuestionController extends EnvelopRestEndpoint {
                                  @RequestParam(value = "type", required = false)String type,
                                  @ApiParam(name = "status", value = "1开启0关闭", required = false)
                                  @RequestParam(value = "status", required = false)String status,
                                  @ApiParam(name = "sceneCode", value = "使用场景编码", required = false)
                                  @RequestParam(value = "sceneCode", required = false)String sceneCode,
                                  @ApiParam(name = "page", value = "页码", required = false)
                                  @RequestParam(value = "page", required = false)Integer page,
                                  @ApiParam(name = "size", value = "大小", required = false)
                                  @RequestParam(value = "size", required = false)Integer size){
        try {
            return success(questionService.selectQuestionList(name,type,status,page,size));
            return success(questionService.selectQuestionList(name,type,status,page,size,sceneCode));
        }catch (Exception e){
            return failedException(e);
        }

+ 44 - 20
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/statistics/EsStatisticsEndpoint.java

@ -1747,26 +1747,16 @@ class EsStatisticsEndpoint extends EnvelopRestEndpoint {
    @GetMapping(value = BaseHospitalRequestMapping.DodtorIM.records2)
    @ApiOperation(value = "医生咨询记录查询")
    public Envelop records2(
            @ApiParam(name = "doctor", value = "医生id")
            @RequestParam(value = "doctor", required = false) String doctor,
            @ApiParam(name = "title", value = "咨询标题关键字")
            @RequestParam(value = "title", required = false) String title,
            @ApiParam(name = "patient", value = "患者id")
            @RequestParam(value = "patient", required = false) String patient,
            @ApiParam(name = "id", value = "咨询ID")
            @RequestParam(value = "id", required = false) String id,
            @ApiParam(name = "type", value = "咨询类型")
            @RequestParam(value = "type", required = true) String type,
            @ApiParam(name = "status", value = "咨询状态:0全部,1候诊中,2就诊中,3结束")
            @RequestParam(value = "status", required = true) Integer status,
            @ApiParam(name = "start_time", value = "开始时间 YYYY-MM-DD HH:MM:SS")
            @RequestParam(value = "start_time", required = false) String start_time,
            @ApiParam(name = "end_time", value = "结束时间 YYYY-MM-DD HH:MM:SS")
            @RequestParam(value = "end_time", required = false) String end_time,
            @ApiParam(name = "page", value = "第几页")
            @RequestParam(value = "page", required = false) int page,
            @ApiParam(name = "pagesize", value = "分页大小")
            @RequestParam(value = "pagesize", required = false) int pagesize
            @ApiParam(name = "doctor", value = "医生id") @RequestParam(value = "doctor", required = false) String doctor,
            @ApiParam(name = "title", value = "咨询标题关键字") @RequestParam(value = "title", required = false) String title,
            @ApiParam(name = "patient", value = "患者id") @RequestParam(value = "patient", required = false) String patient,
            @ApiParam(name = "id", value = "咨询ID") @RequestParam(value = "id", required = false) String id,
            @ApiParam(name = "type", value = "咨询类型") @RequestParam(value = "type", required = true) String type,
            @ApiParam(name = "status", value = "咨询状态:0全部,1候诊中,2就诊中,3结束") @RequestParam(value = "status", required = true) Integer status,
            @ApiParam(name = "start_time", value = "开始时间 YYYY-MM-DD HH:MM:SS") @RequestParam(value = "start_time", required = false) String start_time,
            @ApiParam(name = "end_time", value = "结束时间 YYYY-MM-DD HH:MM:SS") @RequestParam(value = "end_time", required = false) String end_time,
            @ApiParam(name = "page", value = "第几页") @RequestParam(value = "page", required = false) int page,
            @ApiParam(name = "pagesize", value = "分页大小") @RequestParam(value = "pagesize", required = false) int pagesize
    ) throws Exception {
        try {
            List<Map<String, Object>> data = imService.findConsultRecordByDoctorNew(doctor, id, type, status, page, pagesize, title, start_time, end_time, patient);
@ -1801,4 +1791,38 @@ class EsStatisticsEndpoint extends EnvelopRestEndpoint {
    }
    /**
     * 获取i健康的医生信息登录大屏
     */
    @GetMapping(value = "/getDoctorInfoByIjk")
    @ApiOperation(value = "获取i健康的医生信息登录大屏")
    public Envelop getDoctorInfoByIjk(@RequestParam(required = true) String strJson) {
        try {
            System.out.println("调用==>获取i健康的医生信息登录大屏---参数==>" + strJson);
            ScreenQvo qvo = JSON.parseObject(strJson, ScreenQvo.class);
            JSONObject result = statisticsEsService.getDoctorInfoByIjk(qvo);
            return success(result);
        } catch (Exception e) {
            e.printStackTrace();
            return failed("系统繁忙");
        }
    }
    /**
     * 获取三院大屏跳转i健康大屏的地址
     */
    @GetMapping(value = "/getScreamAddress")
    @ApiOperation(value = "获取三院大屏跳转i健康大屏的地址")
    public Envelop getScreamAddress() {
        try {
            System.out.println("调用==>获取三院大屏跳转i健康大屏的地址");
            Map<String, Object> result = statisticsEsService.getScreamAddress();
            return success(result);
        } catch (Exception e) {
            e.printStackTrace();
            return failed("系统繁忙");
        }
    }
}

+ 8 - 4
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/survey/SurveyEndpoint.java

@ -308,19 +308,23 @@ public class SurveyEndpoint extends EnvelopRestEndpoint {
    @ApiOperation(value = "统计-综合查询问题答案")
    public MixEnvelop findAnswerList(@ApiParam(name = "tempId", value = "模板id")
                                     @RequestParam(value = "tempId",required = false) String tempId,
                                     @ApiParam(name = "patient", value = "标题")
                                     @ApiParam(name = "patient", value = "居民id")
                                     @RequestParam(value = "patient",required = false) String patient,
                                     @ApiParam(name = "patientName", value = "患者名字")
                                         @RequestParam(value = "patientName",required = false) String patientName,
                                     @RequestParam(value = "patientName",required = false) String patientName,
                                     @ApiParam(name = "title", value = "标题")
                                     @RequestParam(value = "title",required = false) String title,
                                     @ApiParam(name = "startTime", value = "开始时间")
                                     @RequestParam(value = "startTime",required = false) String startTime,
                                     @ApiParam(name = "endTime", value = "结束时间")
                                     @RequestParam(value = "endTime",required = false) String endTime,
                                     @ApiParam(name = "page", value = "第几页,1开始")
                                     @RequestParam(value = "page",required = true)Integer page,
                                     @ApiParam(name = "size", value = "每页大小")
                                     @RequestParam(value = "size",required = true)Integer size)throws Exception {
                                     @RequestParam(value = "size",required = true)Integer size){
        try {
            return surveyService.findAnswerList(tempId,patient,patientName,title,page,size);
            return surveyService.findAnswerList(tempId,patient,patientName,title,page,size,startTime,endTime);
        }catch (Exception e) {
            return failedMixEnvelopException(e);
        }

+ 5 - 0
svr/svr-statistics-hlw/src/main/java/com/yihu/jw/statistics/config/DataSourceConfig.java

@ -75,6 +75,7 @@ public class DataSourceConfig {
    @Bean(name = "primaryReadWrite")
    @Primary//主库 默认不写名字用这个
    public DataSource primaryReadWriteDataSource(StatFilter statFilter) throws SQLException {
        System.out.println("主数据库配置==>"+primaryReadWriteUrl+"  账号==>"+primaryReadWriteUsername+"  密码==>"+primaryReadWritePassword);
        DruidDataSource datasource = new DruidDataSource();
        datasource.setUrl(primaryReadWriteUrl);
        datasource.setUsername(primaryReadWriteUsername);
@ -117,6 +118,8 @@ public class DataSourceConfig {
    @Bean(name = "primaryRead")
    public DataSource primaryReadDataSource(StatFilter statFilter) throws SQLException {
        System.out.println("从数据库配置==>"+primaryReadUrl+"  账号==>"+pprimaryReadUsername+"  密码==>"+primaryReadPassword);
        DruidDataSource datasource = new DruidDataSource();
        datasource.setUrl(primaryReadUrl);
        datasource.setUsername(pprimaryReadUsername);
@ -159,6 +162,8 @@ public class DataSourceConfig {
    @Bean(name = "imData")
    public DataSource imDataSource(StatFilter statFilter) throws SQLException {
        System.out.println("imData数据库配置==>"+imUrl+"  账号==>"+imUsername+"  密码==>"+imPassword);
        DruidDataSource datasource = new DruidDataSource();
        datasource.setUrl(imUrl);
        datasource.setUsername(imUsername);

+ 11 - 9
svr/svr-statistics-hlw/src/main/java/com/yihu/jw/statistics/etl/extract/ExtractHelper.java

@ -54,43 +54,45 @@ public class ExtractHelper {
                timeSql = wlyyJobConfigVO.getSqlDay();
            }
            //如果为null 初始化
            if(StringUtils.isEmpty(timeSql)){
                timeSql="";
            if (StringUtils.isEmpty(timeSql)) {
                timeSql = "";
            }
            //设置时间
            String sql = initSql(wlyyJobConfigVO.getSql() + "  " + timeSql, year);
            String sqlCount = initSql(wlyyJobConfigVO.getSqlCount() + "  " + timeSql, year);
            logger.info(" sql: " + sql);
            logger.info(" sqlCount: " + sqlCount);
            Map<String,Object> params = new HashedMap();
            Map<String, Object> params = new HashedMap();
            params.put("startTime", startTime);
            params.put("endTime", endTime);
            /*params.put("startTime", DateUtil.strToDate(startTime,"yyyy-MM-dd HH:mm:ss"));
            params.put("endTime", DateUtil.strToDate(endTime,"yyyy-MM-dd HH:mm:ss"));*/
            //如果是数据库从数据库抽取
            if (StringUtils.isEmpty(wlyyJobConfigVO.getExtractType())||"1".equals(wlyyJobConfigVO.getExtractType())){
            if (StringUtils.isEmpty(wlyyJobConfigVO.getExtractType()) || "1".equals(wlyyJobConfigVO.getExtractType())) {
                //抽取数据库
                System.out.println("抽取数据库sql==>" + sql);
                return SpringUtil.getBean(DBExtract.class).extractByPage(
                        DataModel.class,
                        sql,
                        sqlCount,
                        true,
                        jdbcTemplate,params);
            }else if("2".equals(wlyyJobConfigVO.getExtractType())){
                        jdbcTemplate, params);
            } else if ("2".equals(wlyyJobConfigVO.getExtractType())) {
                //抽取ES
               return SpringUtil.getBean(ESExtract.class).extract(wlyyJobConfigVO);
                return SpringUtil.getBean(ESExtract.class).extract(wlyyJobConfigVO);
            }
        } catch (Exception e) {
            System.out.println("报错了");
            logger.error("extract error:" + e.getMessage());
            logger.error("quotaVO str:" + wlyyJobConfigVO.toString());
            e.printStackTrace();
        }
        return null;
    }
    public String initSql(String sql, String year) {
        return sql.replace("[year]", year).replace("[im]",imDatabaseName);
        return sql.replace("[year]", year).replace("[im]", imDatabaseName);
    }
}

+ 41 - 20
svr/svr-statistics-hlw/src/main/java/com/yihu/jw/statistics/util/hibernate/HibenateUtils.java

@ -1,5 +1,6 @@
package com.yihu.jw.statistics.util.hibernate;
import com.alibaba.fastjson.JSON;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.transform.Transformers;
@ -45,7 +46,7 @@ public class HibenateUtils {
        SQLQuery query = session.createSQLQuery(sql);
        query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
        if(page!=null&&size!=null){
        if (page != null && size != null) {
            query.setFirstResult((page - 1) * size);
            query.setMaxResults(size);
        }
@ -58,6 +59,7 @@ public class HibenateUtils {
     * sql为原生sql语句,查询,Oracle不区分大小写,返回值需要驼峰命名,字段别名需要加 双引号
     * 目前只支持通用的聚合函数,特有的聚合函数不支持
     * 无分页
     *
     * @param sql
     * @return
     */
@ -73,10 +75,11 @@ public class HibenateUtils {
     * 创建SQL查询,根据配置,获取数据库方言
     * sql为原生sql语句,查询,Oracle不区分大小写,返回值需要驼峰命名,字段别名需要加 双引号
     * 目前只支持通用的聚合函数,特有的聚合函数不支持
     *
     * @param sql
     * @param params 动态占位符入参,例如 like:name
     * @param page 第几页,1开始
     * @param size 每页记录数
     * @param page   第几页,1开始
     * @param size   每页记录数
     * @return
     */
    public List<Map<String, Object>> createSQLQuery(String sql, Map<String, Object> params, Integer page, Integer size) {
@ -87,7 +90,7 @@ public class HibenateUtils {
        //设置查询参数
        setSqlQueryByMap(query, params);
        if(page!=null&&size!=null){
        if (page != null && size != null) {
            query.setFirstResult((page - 1) * size);
            query.setMaxResults(size);
        }
@ -99,12 +102,26 @@ public class HibenateUtils {
     * 创建SQL查询,根据配置,获取数据库方言
     * sql为原生sql语句,查询,Oracle不区分大小写,返回值需要驼峰命名,字段别名需要加 双引号
     * 目前只支持通用的聚合函数,特有的聚合函数不支持
     *
     * @param sql
     * @param params 动态占位符入参,例如 like:name
     * @return
     */
    public List<Map<String, Object>> createSQLQuery(String sql, Map<String, Object> params) {
        Map<String, Object> entityProperties = entityManager.getProperties();
        Session session = (Session) entityManager.getDelegate();
        Map<String, Object> sessionProperties = session.getProperties();
//        System.out.println("----------------------------------------");
//        System.out.println("打印entityProperties");
//        for (Map.Entry<String, Object> entry : entityProperties.entrySet()) {
//            System.out.println(entry.getKey() + "   值==>" + JSON.toJSONString(entry.getValue()));
//        }
//        System.out.println("打印sessionProperties");
//        for (Map.Entry<String, Object> entry : sessionProperties.entrySet()) {
//            System.out.println(entry.getKey() + "   值==>" + JSON.toJSONString(entry.getValue()));
//        }
//        System.out.println("----------------------------------------");
        SQLQuery query = session.createSQLQuery(sql);
        query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
@ -117,6 +134,7 @@ public class HibenateUtils {
    /**
     * 设置查询参数
     *
     * @param sqlQuery
     * @param params
     * @return
@ -139,17 +157,18 @@ public class HibenateUtils {
    /**
     * 聚合函数类型装换
     *
     * @param obj
     * @return
     */
    public Long objTransformLong(Object obj){
    public Long objTransformLong(Object obj) {
        //Oracle count(1) 聚合函数类型装换
        if(obj instanceof BigDecimal){
        if (obj instanceof BigDecimal) {
            return ((BigDecimal) obj).longValue();
        //Mysql count(1) 聚合函数类型装换
        }else if(obj instanceof BigInteger){
            return ((BigInteger)obj).longValue();
        }else{
            //Mysql count(1) 聚合函数类型装换
        } else if (obj instanceof BigInteger) {
            return ((BigInteger) obj).longValue();
        } else {
            return 0L;
        }
    }
@ -157,6 +176,7 @@ public class HibenateUtils {
    /**
     * map - T
     *
     * @param map
     * @param clazz
     * @param <T>
@ -196,7 +216,8 @@ public class HibenateUtils {
    }
    /**
     *  List<Map> -- List<T>
     * List<Map> -- List<T>
     *
     * @param list
     * @param clazz
     * @param <T>
@ -204,7 +225,7 @@ public class HibenateUtils {
     * @throws Exception
     */
    public static <T> List<T> castMapToBean(List<Map<String, Object>> list, Class<T> clazz) throws Exception {
        if(list == null || list.size()==0) {
        if (list == null || list.size() == 0) {
            return null;
        }
        List<T> tList = new ArrayList<T>();
@ -212,23 +233,23 @@ public class HibenateUtils {
        Field[] fields = clazz.getDeclaredFields();
        T t;
        for(Map<String, Object> map : list) {
        for (Map<String, Object> map : list) {
            // 每次都先初始化一遍,然后再设置值
            t = clazz.newInstance();
            for(Field field : fields) {
            for (Field field : fields) {
                // 把序列化的字段去除掉
                if(!"serialVersionUID".equals(field.getName())){
                if (!"serialVersionUID".equals(field.getName())) {
                    // 由于Field都是私有属性,所有需要允许修改
                    field.setAccessible(true);
                    Object value = map.get(field.getName());
                    if (value!=null){
                        if("java.math.BigDecimal".equals(value.getClass().getName())){
                            value=Double.parseDouble(value.toString());
                    if (value != null) {
                        if ("java.math.BigDecimal".equals(value.getClass().getName())) {
                            value = Double.parseDouble(value.toString());
                        }
                        if(value.getClass().getName().equals("java.lang.Integer") && field.getName().equals("slaveKey1")){
                        if (value.getClass().getName().equals("java.lang.Integer") && field.getName().equals("slaveKey1")) {
                            value = value.toString();
                        }
                        if(field.getName().equals("slaveKey2")){
                        if (field.getName().equals("slaveKey2")) {
                            value = value.toString();
                        }
                    }

+ 7 - 9
svr/svr-visit-behind/src/main/java/com/yihu/jw/hospital/module/health/controller/DeviceController.java

@ -16,18 +16,18 @@ 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.util.excel.poi.ExcelUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import jxl.Workbook;
import jxl.write.*;
import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;
@ -126,12 +126,10 @@ public class DeviceController extends BaseController {
    //导入设备报表
    @PostMapping(value = "importData")
    public Envelop importData(HttpServletRequest request) {
    public Envelop importData(@ApiParam(value = "文件", required = true)
                              @RequestParam(value = "file", required = true) MultipartFile file) {
        try {
            request.setCharacterEncoding("UTF-8");
            InputStream inputStream = request.getInputStream();
            Workbook workbook = Workbook.getWorkbook(inputStream);
            Workbook workbook = ExcelUtils.getWorkBook(file);
            deviceService.importData(workbook);
            return Envelop.getSuccess("操作成功");
        } catch (Exception e) {
@ -177,7 +175,7 @@ public class DeviceController extends BaseController {
        }
    }
    public void write(OutputStream os, List ls) throws Exception{
        write(Workbook.createWorkbook(os), ls);
        write(jxl.Workbook.createWorkbook(os), ls);
    }
    //添加单元格内容
    public void addCell(WritableSheet ws, int row, int column, String data) throws WriteException {

+ 23 - 8
svr/svr-visit-behind/src/main/java/com/yihu/jw/hospital/module/health/service/DeviceService.java

@ -10,15 +10,16 @@ import com.yihu.jw.entity.care.device.DeviceCategory;
import com.yihu.jw.entity.care.device.DeviceDetail;
import com.yihu.jw.hospital.utils.ExcelData;
import com.yihu.jw.hospital.utils.QrcodeUtil;
import com.yihu.jw.hospital.utils.ReadExcelUtil;
import com.yihu.jw.restmodel.iot.device.DeviceHealthIndexVO;
import com.yihu.jw.restmodel.iot.device.WlyyPatientDeviceVO;
import com.yihu.jw.restmodel.web.PageEnvelop;
import com.yihu.jw.util.date.DateTimeUtil;
import com.yihu.jw.util.date.DateUtil;
import jxl.Sheet;
import jxl.Workbook;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.jpa.domain.Specification;
@ -71,17 +72,16 @@ public class DeviceService {
	private QrcodeUtil qrcodeUtil;
	public boolean importData(Workbook workbook) {
		Sheet[] sheets = workbook.getSheets();
		Sheet sheet = sheets[0];
		int rows = ReadExcelUtil.getRightRows(sheet);
		Sheet sheet = workbook.getSheetAt(0);
		int rows = sheet.getLastRowNum()+1;
		List<DeviceDetail> deviceList = new ArrayList<>();
		for (int row = 1; row < rows; row++) {  //索引从0开始,第一行为标题
			Row sheetRow = sheet.getRow(row);
			DeviceDetail device = new DeviceDetail();
			Map<Integer, ExcelData> mapping = mappingDevice(device);
			int finalRow = row;
			mapping.forEach((index, excelData) -> {
				String value = sheet.getCell(index, finalRow).getContents().trim();
				String value = (getExcelValue(sheetRow.getCell(index, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK))+"").trim();
				excelData.transform(value);
			});
			device.setIsGrant(0);
@ -98,6 +98,21 @@ public class DeviceService {
		return true;
	}
	public static Object getExcelValue(Cell xssfCell) {
		if(xssfCell==null){
			return null;
		}else if (xssfCell.getCellType() == xssfCell.CELL_TYPE_BOOLEAN) {
			// 返回布尔类型的值
			return xssfCell.getBooleanCellValue();
		} else if (xssfCell.getCellType() == xssfCell.CELL_TYPE_NUMERIC) {
			// 返回数值类型的值
			return (int)xssfCell.getNumericCellValue();
		} else {
			// 返回字符串类型的值
			return xssfCell.getStringCellValue();
		}
	}
	private Map<Integer, ExcelData> mappingDevice(DeviceDetail device) {
		Map<Integer, ExcelData> dataMap = new HashMap<>();
		//设备名称

+ 1 - 4
svr/svr-visit-behind/src/main/java/com/yihu/jw/hospital/module/rehabilitation/service/SynchronizePatientService.java

@ -38,10 +38,7 @@ import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Base64;
import java.util.Date;
import java.util.List;
import java.util.*;
/**
 * Created by liub on 2020/9/29.