Browse Source

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

yeshijie 6 years ago
parent
commit
a7b5cc5052
19 changed files with 1383 additions and 48 deletions
  1. 302 0
      common/common-entity/src/main/java/com/yihu/jw/entity/base/message/BaseMessageDO.java
  2. 61 0
      common/common-entity/src/main/java/com/yihu/jw/entity/base/message/BaseMessageTypeDO.java
  3. 11 0
      common/common-entity/src/main/java/com/yihu/jw/entity/specialist/SpecialistEvaluateScoreDO.java
  4. 14 0
      common/common-request-mapping/src/main/java/com/yihu/jw/rm/base/BaseRequestMapping.java
  5. 2 0
      common/common-request-mapping/src/main/java/com/yihu/jw/rm/specialist/SpecialistMapping.java
  6. 64 0
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/base/message/BaseMessageTypeVO.java
  7. 287 0
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/base/message/BaseMessageVO.java
  8. 6 4
      sql/init.sql
  9. 21 0
      svr/svr-base/src/main/java/com/yihu/jw/base/dao/message/BaseMessageDao.java
  10. 21 0
      svr/svr-base/src/main/java/com/yihu/jw/base/dao/message/BaseMessageTypeDao.java
  11. 104 0
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/message/BaseMessageEndpoint.java
  12. 104 0
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/message/BaseMessageTypeEndpoint.java
  13. 24 0
      svr/svr-base/src/main/java/com/yihu/jw/base/service/message/BaseMessageService.java
  14. 22 0
      svr/svr-base/src/main/java/com/yihu/jw/base/service/message/BaseMessageTypeService.java
  15. 20 0
      svr/svr-wlyy-specialist/src/main/java/com/yihu/jw/controller/SpecialistEvaluateController.java
  16. 19 0
      svr/svr-wlyy-specialist/src/main/java/com/yihu/jw/controller/rehabilitation/RehabilitationManageController.java
  17. 218 3
      svr/svr-wlyy-specialist/src/main/java/com/yihu/jw/service/SpecialistEvaluateService.java
  18. 43 32
      svr/svr-wlyy-specialist/src/main/java/com/yihu/jw/service/SpecialistHospitalServiceItemService.java
  19. 40 9
      svr/svr-wlyy-specialist/src/main/java/com/yihu/jw/service/rehabilitation/RehabilitationManageService.java

File diff suppressed because it is too large
+ 302 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/message/BaseMessageDO.java


File diff suppressed because it is too large
+ 61 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/message/BaseMessageTypeDO.java


+ 11 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/specialist/SpecialistEvaluateScoreDO.java

@ -33,6 +33,8 @@ public class SpecialistEvaluateScoreDO extends UuidIdentityEntityWithOperator im
    @Column(name = "score")
    private Double score;//评论得分
    @Column(name = "patient")
    private String patient;//居民code
    @Column(name = "saas_id")
    public String getSaasId() {
@ -78,4 +80,13 @@ public class SpecialistEvaluateScoreDO extends UuidIdentityEntityWithOperator im
    public void setScore(Double score) {
        this.score = score;
    }
    @Column(name = "patient")
    public String getPatient() {
        return patient;
    }
    public void setPatient(String patient) {
        this.patient = patient;
    }
}

+ 14 - 0
common/common-request-mapping/src/main/java/com/yihu/jw/rm/base/BaseRequestMapping.java

@ -391,6 +391,20 @@ public class BaseRequestMapping {
        public static final String PREFIX  = "/appVersion";
    }
    /**
     * 基础消息
     */
    public static class BaseMessage extends Basic {
        public static final String PREFIX  = "/baseMessage";
    }
    /**
     * 基础消息类型
     */
    public static class BaseMessageType extends Basic {
        public static final String PREFIX  = "/baseMessageType";
    }
    /**
     * 基于MQ的消息推送
     */

+ 2 - 0
common/common-request-mapping/src/main/java/com/yihu/jw/rm/specialist/SpecialistMapping.java

@ -86,6 +86,7 @@ public class SpecialistMapping {
        public static final String planSchedule = "/planSchedule";
        public static final String planListByPatient = "/planListByPatient";
        public static final String patientCount = "/patientCount";
        public static final String selectByIds = "/selectByIds";
    }
    public static class serviceItem{
@ -106,5 +107,6 @@ public class SpecialistMapping {
        public static final String selectByHospital1 = "/selectByHospital1";
        public static final String importData1 = "/importData1";
        public static final String importData2 = "/importData2";
        public static final String selectByDoctor = "/selectByDoctor";
    }
}

File diff suppressed because it is too large
+ 64 - 0
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/base/message/BaseMessageTypeVO.java


File diff suppressed because it is too large
+ 287 - 0
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/base/message/BaseMessageVO.java


File diff suppressed because it is too large
+ 6 - 4
sql/init.sql


+ 21 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/dao/message/BaseMessageDao.java

@ -0,0 +1,21 @@
package com.yihu.jw.base.dao.message;
import com.yihu.jw.entity.base.message.BaseMessageDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * 
 * 消息表 数据库访问层
 * 
 * @version 
 * <pre>
 * Author	Version		Date		Changes
 * litaohong 	1.0  		2018年09月14日 	Created
 *
 * </pre>
 * @since 1.
 */
public interface BaseMessageDao extends PagingAndSortingRepository<BaseMessageDO, Integer>, JpaSpecificationExecutor<BaseMessageDO>  {
}

+ 21 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/dao/message/BaseMessageTypeDao.java

@ -0,0 +1,21 @@
package com.yihu.jw.base.dao.message;
import com.yihu.jw.entity.base.message.BaseMessageTypeDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * 
 * 消息类型字典 数据库访问层
 * 
 * @version 
 * <pre>
 * Author	Version		Date		Changes
 * litaohong 	1.0  		2018年09月14日 	Created
 *
 * </pre>
 * @since 1.
 */
public interface BaseMessageTypeDao extends PagingAndSortingRepository<BaseMessageTypeDO, Integer>, JpaSpecificationExecutor<BaseMessageTypeDO>  {
}

+ 104 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/message/BaseMessageEndpoint.java

@ -0,0 +1,104 @@
package com.yihu.jw.base.endpoint.message;
import com.yihu.jw.base.service.message.BaseMessageService;
import com.yihu.jw.entity.base.message.BaseMessageDO;
import com.yihu.jw.restmodel.base.message.BaseMessageVO;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.restmodel.web.PageEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.rm.base.BaseRequestMapping;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
*
* 消息表控制器
*
* @version
* <pre>
 * Author	Version		Date		Changes
 * litaohong 	1.0  		2018年09月14日 	Created
 *
 * </pre>
* @since 1.
*/
@RestController
@RequestMapping(value = BaseRequestMapping.BaseMessage.PREFIX)
@Api(value = "消息表管理", description = "消息表管理服务接口", tags = {"wlyy基础服务 - 消息表管理服务接口"})
public class BaseMessageEndpoint extends EnvelopRestEndpoint {
@Autowired
private BaseMessageService baseMessageService;
@PostMapping(value = BaseRequestMapping.BaseMessage.CREATE, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
@ApiOperation(value = "创建")
public ObjEnvelop<BaseMessageVO> create (
    @ApiParam(name = "json_data", value = "Json数据", required = true)
    @RequestBody String jsonData) throws Exception {
    BaseMessageDO baseMessage = toEntity(jsonData, BaseMessageDO.class);
    baseMessage = baseMessageService.save(baseMessage);
    return success(baseMessage, BaseMessageVO.class);
    }
    @PostMapping(value = BaseRequestMapping.BaseMessage.DELETE)
    @ApiOperation(value = "删除")
    public Envelop delete(
    @ApiParam(name = "ids", value = "id串,中间用,分隔", required = true)
    @RequestParam(value = "ids") String ids) {
    baseMessageService.delete(ids.split(","));
    return success("删除成功");
    }
    @PostMapping(value = BaseRequestMapping.BaseMessage.UPDATE, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @ApiOperation(value = "更新")
    public ObjEnvelop<BaseMessageVO> update (
        @ApiParam(name = "json_data", value = "Json数据", required = true)
        @RequestBody String jsonData) throws Exception {
        BaseMessageDO baseMessage = toEntity(jsonData, BaseMessageDO.class);
        if (null == baseMessage.getId()) {
        return failed("ID不能为空", ObjEnvelop.class);
        }
        baseMessage = baseMessageService.save(baseMessage);
        return success(baseMessage, BaseMessageVO.class);
        }
        @GetMapping(value = BaseRequestMapping.BaseMessage.PAGE)
        @ApiOperation(value = "获取分页")
        public PageEnvelop<BaseMessageVO> page (
            @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,
            @ApiParam(name = "page", value = "分页大小", required = true, defaultValue = "1")
            @RequestParam(value = "page") int page,
            @ApiParam(name = "size", value = "页码", required = true, defaultValue = "15")
            @RequestParam(value = "size") int size) throws Exception {
            List<BaseMessageDO> baseMessages = baseMessageService.search(fields, filters, sorts, page, size);
                int count = (int)baseMessageService.getCount(filters);
                return success(baseMessages, count, page, size, BaseMessageVO.class);
         }
         @GetMapping(value = BaseRequestMapping.BaseMessage.LIST)
         @ApiOperation(value = "获取列表")
         public ListEnvelop<BaseMessageVO> 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<BaseMessageDO> baseMessages = baseMessageService.search(fields, filters, sorts);
                  return success(baseMessages, BaseMessageVO.class);
         }
 }

+ 104 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/message/BaseMessageTypeEndpoint.java

@ -0,0 +1,104 @@
package com.yihu.jw.base.endpoint.message;
import com.yihu.jw.base.service.message.BaseMessageTypeService;
import com.yihu.jw.entity.base.message.BaseMessageTypeDO;
import com.yihu.jw.restmodel.base.message.BaseMessageTypeVO;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.restmodel.web.PageEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.rm.base.BaseRequestMapping;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
*
* 消息类型字典控制器
*
* @version
* <pre>
 * Author	Version		Date		Changes
 * litaohong 	1.0  		2018年09月14日 	Created
 *
 * </pre>
* @since 1.
*/
@RestController
@RequestMapping(value = BaseRequestMapping.BaseMessageType.PREFIX)
@Api(value = "消息类型字典管理", description = "消息类型字典管理服务接口", tags = {"wlyy基础服务 - 消息类型字典管理服务接口"})
public class BaseMessageTypeEndpoint extends EnvelopRestEndpoint {
@Autowired
private BaseMessageTypeService baseMessageTypeService;
@PostMapping(value = BaseRequestMapping.BaseMessageType.CREATE, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
@ApiOperation(value = "创建")
public ObjEnvelop<BaseMessageTypeVO> create (
    @ApiParam(name = "json_data", value = "Json数据", required = true)
    @RequestBody String jsonData) throws Exception {
    BaseMessageTypeDO baseMessageType = toEntity(jsonData, BaseMessageTypeDO.class);
    baseMessageType = baseMessageTypeService.save(baseMessageType);
    return success(baseMessageType, BaseMessageTypeVO.class);
    }
    @PostMapping(value = BaseRequestMapping.BaseMessageType.DELETE)
    @ApiOperation(value = "删除")
    public Envelop delete(
    @ApiParam(name = "ids", value = "id串,中间用,分隔", required = true)
    @RequestParam(value = "ids") String ids) {
    baseMessageTypeService.delete(ids.split(","));
    return success("删除成功");
    }
    @PostMapping(value = BaseRequestMapping.BaseMessageType.UPDATE, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @ApiOperation(value = "更新")
    public ObjEnvelop<BaseMessageTypeVO> update (
        @ApiParam(name = "json_data", value = "Json数据", required = true)
        @RequestBody String jsonData) throws Exception {
        BaseMessageTypeDO baseMessageType = toEntity(jsonData, BaseMessageTypeDO.class);
        if (null == baseMessageType.getId()) {
        return failed("ID不能为空", ObjEnvelop.class);
        }
        baseMessageType = baseMessageTypeService.save(baseMessageType);
        return success(baseMessageType, BaseMessageTypeVO.class);
        }
        @GetMapping(value = BaseRequestMapping.BaseMessageType.PAGE)
        @ApiOperation(value = "获取分页")
        public PageEnvelop<BaseMessageTypeVO> page (
            @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,
            @ApiParam(name = "page", value = "分页大小", required = true, defaultValue = "1")
            @RequestParam(value = "page") int page,
            @ApiParam(name = "size", value = "页码", required = true, defaultValue = "15")
            @RequestParam(value = "size") int size) throws Exception {
            List<BaseMessageTypeDO> baseMessageTypes = baseMessageTypeService.search(fields, filters, sorts, page, size);
                int count = (int)baseMessageTypeService.getCount(filters);
                return success(baseMessageTypes, count, page, size, BaseMessageTypeVO.class);
         }
         @GetMapping(value = BaseRequestMapping.BaseMessageType.LIST)
         @ApiOperation(value = "获取列表")
         public ListEnvelop<BaseMessageTypeVO> 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<BaseMessageTypeDO> baseMessageTypes = baseMessageTypeService.search(fields, filters, sorts);
                  return success(baseMessageTypes, BaseMessageTypeVO.class);
         }
 }

+ 24 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/message/BaseMessageService.java

@ -0,0 +1,24 @@
package com.yihu.jw.base.service.message;
import com.yihu.jw.base.dao.message.BaseMessageDao;
import com.yihu.jw.entity.base.message.BaseMessageDO;
import com.yihu.mysql.query.BaseJpaService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
 * 
 * 消息表服务service
 * 
 * @version 
 * <pre>
 * Author	Version		Date		Changes
 * litaohong    1.0  2018年09月14日 Created
 *
 * </pre>
 * @since 1.
 */
@Service
public class BaseMessageService extends BaseJpaService<BaseMessageDO, BaseMessageDao> {
}

+ 22 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/message/BaseMessageTypeService.java

@ -0,0 +1,22 @@
package com.yihu.jw.base.service.message;
import com.yihu.jw.base.dao.message.BaseMessageTypeDao;
import com.yihu.jw.entity.base.message.BaseMessageTypeDO;
import com.yihu.mysql.query.BaseJpaService;
import org.springframework.stereotype.Service;
/**
 * 
 * 消息类型字典服务service
 * 
 * @version 
 * <pre>
 * Author	Version		Date		Changes
 * litaohong    1.0  2018年09月14日 Created
 *
 * </pre>
 * @since 1.
 */
@Service
public class BaseMessageTypeService extends BaseJpaService<BaseMessageTypeDO, BaseMessageTypeDao> {
}

+ 20 - 0
svr/svr-wlyy-specialist/src/main/java/com/yihu/jw/controller/SpecialistEvaluateController.java

@ -104,4 +104,24 @@ public class SpecialistEvaluateController extends EnvelopRestEndpoint {
            return MixEnvelop.getError(e.getMessage());
        }
    }
    /**
     * 医生获取评分
     *
     * @param doctor
     * @return
     */
    @PostMapping(value = SpecialistMapping.serviceItem.selectByDoctor)
    @ApiOperation(value = "医生获取评分")
    public MixEnvelop<JSONObject,JSONObject> selectByDoctor(@ApiParam(name = "doctor", value = "评价")
                                                    @RequestParam(value = "doctor")String doctor){
        try {
            return specialistEvaluateService.selectByDoctor(doctor);
        }catch (Exception e){
            e.printStackTrace();
            tracer.getCurrentSpan().logEvent(e.getMessage());
            return MixEnvelop.getError(e.getMessage());
        }
    }
}

+ 19 - 0
svr/svr-wlyy-specialist/src/main/java/com/yihu/jw/controller/rehabilitation/RehabilitationManageController.java

@ -372,4 +372,23 @@ public class RehabilitationManageController {
            return ObjEnvelop.getError(e.getMessage());
        }
    }
    /**
     * 查询康复服务项目
     * @param ids
     * @return
     */
    @PostMapping(value = SpecialistMapping.rehabilitation.selectByIds)
    @ApiOperation(value = "查询康复服务项目")
    public ObjEnvelop selectByIds( @ApiParam(name = "ids",value = "康复服务套餐明细表ids")
            @RequestParam(value = "ids",required = true)String ids){
        try {
            return rehabilitationManageService.selectByIds(ids);
        }catch (Exception e){
            e.printStackTrace();
            tracer.getCurrentSpan().logEvent(e.getMessage());
            return ObjEnvelop.getError(e.getMessage());
        }
    }
}

+ 218 - 3
svr/svr-wlyy-specialist/src/main/java/com/yihu/jw/service/SpecialistEvaluateService.java

@ -21,9 +21,7 @@ import org.springframework.stereotype.Service;
import javax.transaction.Transactional;
import java.io.IOException;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.*;
/**
 * @author wangzhinan
@ -96,6 +94,7 @@ public class SpecialistEvaluateService extends EnvelopRestEndpoint {
            for (SpecialistEvaluateLabelDO specialistEvaluateLabelDO:specialistEvaluateLabelDOS){
                specialistEvaluateLabelDO.setSaasId("dev");
                specialistEvaluateLabelDO.setEvaluateType(1);
                specialistEvaluateLabelDO.setPatient(patientCode);
                specialistEvaluateLabelDao.save(specialistEvaluateLabelDO);
            }
        }
@ -195,5 +194,221 @@ public class SpecialistEvaluateService extends EnvelopRestEndpoint {
        return envelop;
    }
    public MixEnvelop<JSONObject,JSONObject> selectByDoctor(String doctor){
        MixEnvelop<JSONObject,JSONObject> envelop = new MixEnvelop<>();
        JSONObject object = new JSONObject();
        String sql = "select AVG(score) AS total from wlyy_specialist_evaluate_score where doctor = '"+doctor+"'";
        String sql1 = "select AVG(score) AS total from wlyy_specialist_evaluate where doctor = '"+doctor+"' AND evaluate_type = 1";
        String sql2 =  "select AVG(score) AS total from wlyy_specialist_evaluate where doctor = '"+doctor+"' AND evaluate_type = 2";
        String sql3 =  "select AVG(score) AS total from wlyy_specialist_evaluate where doctor = '"+doctor+"' AND evaluate_type = 3";
        String sql4 = "select * from wlyy_specialist_evaluate where doctor = '"+doctor+"'";
        List<Map<String,Object>> rstotal = jdbcTemplate.queryForList(sql);
        Double totalScore = 0.0;
        if(rstotal!=null&&rstotal.size()>0){
            Object object1 = rstotal.get(0).get("total");
            if (object1!=null){
                totalScore = Double.parseDouble(object1.toString());
            }
        }
        List<Map<String,Object>> rstotal1 = jdbcTemplate.queryForList(sql1);
        Double totalScore1 = 0.0;
        if(rstotal1!=null&&rstotal1.size()>0){
            Object object1 = rstotal1.get(0).get("total");
            if (object1!=null){
                totalScore1 = Double.parseDouble(object1.toString());
            }
        }
        List<Map<String,Object>> rstotal2 = jdbcTemplate.queryForList(sql2);
        Double totalScore2 = 0.0;
        if(rstotal2!=null&&rstotal2.size()>0){
            Object object1 = rstotal2.get(0).get("total");
            if (object1!=null){
                totalScore2 = Double.parseDouble(object1.toString());
            }
        }
        List<Map<String,Object>> rstotal3 = jdbcTemplate.queryForList(sql3);
        Double totalScore3 = 0.0;
        if(rstotal3!=null&&rstotal3.size()>0){
            Object object1 = rstotal3.get(0).get("total");
            if (object1!=null){
                totalScore3 = Double.parseDouble(object1.toString());
            }
        }
        String sql5 = "select * from wlyy_specialist_evaluate WHERE doctor = '"+doctor+"'";
        String sql6 = "select * from wlyy_specialist_evaluate WHERE doctor IN (select doctor from wlyy_specialist_evaluate_score where score > 71 and doctor = '"+doctor+"')";
        String sql7 = "select * from wlyy_specialist_evaluate WHERE doctor IN (select doctor from wlyy_specialist_evaluate_score where score > 41 and score < 71 and doctor = '"+doctor+"')";
        String sql8 = "select * from wlyy_specialist_evaluate WHERE doctor IN (select doctor from wlyy_specialist_evaluate_score where score < 41 and doctor = '"+doctor+"')";
        List<SpecialistEvaluateDO> specialistEvaluateDOS = jdbcTemplate.query(sql5,new BeanPropertyRowMapper(SpecialistEvaluateDO.class));
        List<SpecialistEvaluateDO> specialistEvaluateDOS1 = jdbcTemplate.query(sql5,new BeanPropertyRowMapper(SpecialistEvaluateDO.class));
        List<SpecialistEvaluateDO> specialistEvaluateDOS3 = jdbcTemplate.query(sql6,new BeanPropertyRowMapper(SpecialistEvaluateDO.class));
        List<SpecialistEvaluateDO> specialistEvaluateDOS4 = jdbcTemplate.query(sql6,new BeanPropertyRowMapper(SpecialistEvaluateDO.class));
        List<SpecialistEvaluateDO> specialistEvaluateDOS5 = jdbcTemplate.query(sql7,new BeanPropertyRowMapper(SpecialistEvaluateDO.class));
        List<SpecialistEvaluateDO> specialistEvaluateDOS6 = jdbcTemplate.query(sql7,new BeanPropertyRowMapper(SpecialistEvaluateDO.class));
        List<SpecialistEvaluateDO> specialistEvaluateDOS7 = jdbcTemplate.query(sql8,new BeanPropertyRowMapper(SpecialistEvaluateDO.class));
        List<SpecialistEvaluateDO> specialistEvaluateDOS8 = jdbcTemplate.query(sql8,new BeanPropertyRowMapper(SpecialistEvaluateDO.class));
        JSONArray array = new JSONArray();
        JSONArray array3 = new JSONArray();
        JSONArray array4 = new JSONArray();
        JSONArray array5 = new JSONArray();
        JSONObject object2 = new JSONObject();
        JSONObject object3 = new JSONObject();
        JSONObject object4 = new JSONObject();
        JSONObject object5 = new JSONObject();
        //全部
        for (int i=0;i<specialistEvaluateDOS.size();i++){
            JSONArray array1 = new JSONArray();
            JSONObject object1 = new JSONObject();
            boolean isTrue = false;
            SpecialistEvaluateDO specialistEvaluateDO = specialistEvaluateDOS.get(i);
            Set<String> set = new HashSet<>();
            Set<Double> scoreSet = new HashSet<>();
            for (int j=0;j<specialistEvaluateDOS1.size();j++){
                SpecialistEvaluateDO specialistEvaluateDO1 = specialistEvaluateDOS1.get(j);
                JSONObject jsonObject = new JSONObject();
                if (specialistEvaluateDO.getRelationCode().equals(specialistEvaluateDO1.getRelationCode())&&specialistEvaluateDO.getPatient().equals(specialistEvaluateDO1.getPatient())&&specialistEvaluateDO.getDoctor().equals(specialistEvaluateDO1.getDoctor())){
                    String scoreSql = "select * from wlyy_specialist_evaluate_score where relation_code = '"+specialistEvaluateDO1.getRelationCode()+"' and patient = '"+specialistEvaluateDO1.getPatient()+"'";
                    List<SpecialistEvaluateScoreDO> specialistEvaluateScoreDOS =jdbcTemplate.query(scoreSql,new BeanPropertyRowMapper(SpecialistEvaluateScoreDO.class));
                    if (specialistEvaluateScoreDOS != null && specialistEvaluateScoreDOS.size()!=0){
                        scoreSet.add(specialistEvaluateScoreDOS.get(0).getScore());
                    }
                    set.add(specialistEvaluateDO1.getPatient());
                    array1.add(specialistEvaluateDO1);
                }
            }
            object1.put("patient",set);
            for (Double value:scoreSet){
                if (value>71){
                    object1.put("flag","好评");
                }else if (value>41&&value<71){
                    object1.put("flag","中评");
                }else if (value<41){
                    object1.put("flag","差评");
                }
            }
            object1.put("score",scoreSet);
            object1.put("evaluate",array1);
            if (array1.size() !=0&&array1 != null){
                specialistEvaluateDOS1.removeAll(array1);
                array.add(object1);
            }
        }
        //好评
        for (int i=0;i<specialistEvaluateDOS3.size();i++){
            JSONArray array1 = new JSONArray();
            JSONObject object1 = new JSONObject();
            boolean isTrue = false;
            SpecialistEvaluateDO specialistEvaluateDO = specialistEvaluateDOS3.get(i);
            Set<String> set = new HashSet<>();
            Set<Double> scoreSet = new HashSet<>();
            for (int j=0;j<specialistEvaluateDOS4.size();j++){
                SpecialistEvaluateDO specialistEvaluateDO1 = specialistEvaluateDOS4.get(j);
                JSONObject jsonObject = new JSONObject();
                if (specialistEvaluateDO.getRelationCode().equals(specialistEvaluateDO1.getRelationCode())&&specialistEvaluateDO.getPatient().equals(specialistEvaluateDO1.getPatient())&&specialistEvaluateDO.getDoctor().equals(specialistEvaluateDO1.getDoctor())){
                    String scoreSql = "select * from wlyy_specialist_evaluate_score where relation_code = '"+specialistEvaluateDO1.getRelationCode()+"' and patient = '"+specialistEvaluateDO1.getPatient()+"'";
                    List<SpecialistEvaluateScoreDO> specialistEvaluateScoreDOS =jdbcTemplate.query(scoreSql,new BeanPropertyRowMapper(SpecialistEvaluateScoreDO.class));
                    if (specialistEvaluateScoreDOS != null && specialistEvaluateScoreDOS.size()!=0){
                        scoreSet.add(specialistEvaluateScoreDOS.get(0).getScore());
                    }
                    set.add(specialistEvaluateDO1.getPatient());
                    array1.add(specialistEvaluateDO1);
                }
            }
            object1.put("patient",set);
            object1.put("flag","好评");
            object1.put("score",scoreSet);
            object1.put("evaluate",array1);
            if (array1.size() !=0&&array1 != null){
                specialistEvaluateDOS4.removeAll(array1);
                array3.add(object1);
            }
        }
        //中评
        for (int i=0;i<specialistEvaluateDOS5.size();i++){
            JSONArray array1 = new JSONArray();
            JSONObject object1 = new JSONObject();
            boolean isTrue = false;
            SpecialistEvaluateDO specialistEvaluateDO = specialistEvaluateDOS5.get(i);
            Set<String> set = new HashSet<>();
            Set<Double> scoreSet = new HashSet<>();
            for (int j=0;j<specialistEvaluateDOS6.size();j++){
                SpecialistEvaluateDO specialistEvaluateDO1 = specialistEvaluateDOS6.get(j);
                JSONObject jsonObject = new JSONObject();
                if (specialistEvaluateDO.getRelationCode().equals(specialistEvaluateDO1.getRelationCode())&&specialistEvaluateDO.getPatient().equals(specialistEvaluateDO1.getPatient())&&specialistEvaluateDO.getDoctor().equals(specialistEvaluateDO1.getDoctor())){
                    String scoreSql = "select * from wlyy_specialist_evaluate_score where relation_code = '"+specialistEvaluateDO1.getRelationCode()+"' and patient = '"+specialistEvaluateDO1.getPatient()+"'";
                    List<SpecialistEvaluateScoreDO> specialistEvaluateScoreDOS =jdbcTemplate.query(scoreSql,new BeanPropertyRowMapper(SpecialistEvaluateScoreDO.class));
                    if (specialistEvaluateScoreDOS != null && specialistEvaluateScoreDOS.size()!=0){
                        scoreSet.add(specialistEvaluateScoreDOS.get(0).getScore());
                    }
                    set.add(specialistEvaluateDO1.getPatient());
                    array1.add(specialistEvaluateDO1);
                }
            }
            object1.put("patient",set);
            object1.put("flag","中评");
            object1.put("score",scoreSet);
            object1.put("evaluate",array1);
            if (array1.size() !=0&&array1 != null){
                specialistEvaluateDOS6.removeAll(array1);
                array4.add(object1);
            }
        }
        //差评
        for (int i=0;i<specialistEvaluateDOS7.size();i++){
            JSONArray array1 = new JSONArray();
            JSONObject object1 = new JSONObject();
            boolean isTrue = false;
            SpecialistEvaluateDO specialistEvaluateDO = specialistEvaluateDOS7.get(i);
            Set<String> set = new HashSet<>();
            Set<Double> scoreSet = new HashSet<>();
            for (int j=0;j<specialistEvaluateDOS8.size();j++){
                SpecialistEvaluateDO specialistEvaluateDO1 = specialistEvaluateDOS8.get(j);
                JSONObject jsonObject = new JSONObject();
                if (specialistEvaluateDO.getRelationCode().equals(specialistEvaluateDO1.getRelationCode())&&specialistEvaluateDO.getPatient().equals(specialistEvaluateDO1.getPatient())&&specialistEvaluateDO.getDoctor().equals(specialistEvaluateDO1.getDoctor())){
                    String scoreSql = "select * from wlyy_specialist_evaluate_score where relation_code = '"+specialistEvaluateDO1.getRelationCode()+"' and patient = '"+specialistEvaluateDO1.getPatient()+"'";
                    List<SpecialistEvaluateScoreDO> specialistEvaluateScoreDOS =jdbcTemplate.query(scoreSql,new BeanPropertyRowMapper(SpecialistEvaluateScoreDO.class));
                    if (specialistEvaluateScoreDOS != null && specialistEvaluateScoreDOS.size()!=0){
                        scoreSet.add(specialistEvaluateScoreDOS.get(0).getScore());
                    }
                    set.add(specialistEvaluateDO1.getPatient());
                    array1.add(specialistEvaluateDO1);
                }
            }
            object1.put("patient",set);
            object1.put("flag","差评");
            object1.put("score",scoreSet);
            object1.put("evaluate",array1);
            if (array1.size() !=0&&array1 != null){
                specialistEvaluateDOS8.removeAll(array1);
                array5.add(object1);
            }
        }
        String lableSql = "select * from wlyy_specialist_evaluate_label where doctor ='"+doctor+"' AND flag IN (2,3)";
        List<SpecialistEvaluateLabelDO> specialistEvaluateLabelDOS = jdbcTemplate.query(lableSql,new BeanPropertyRowMapper(SpecialistEvaluateLabelDO.class));
        Set<String> labelSet = new HashSet<>();
        for (SpecialistEvaluateLabelDO specialistEvaluateLabelDO:specialistEvaluateLabelDOS){
            labelSet.add(specialistEvaluateLabelDO.getContent());
        }
        object2.put("evaluate",array);
        object2.put("total",array.size());
        object3.put("evaluate",array3);
        object3.put("total",array3.size());
        object4.put("evaluate",array4);
        object4.put("total",array4.size());
        object5.put("evaluate",array5);
        object5.put("total",array5.size());
        object.put("label",labelSet);
        object.put("totalScore",totalScore);
        object.put("1",totalScore1);//1、服务效率,
        object.put("2",totalScore2);// 2、服务态度,
        object.put("3",totalScore3);// 3、专业程度
        object.put("4",object2);//全部
        object.put("5",object3);//好评
        object.put("6",object4);//中评
        object.put("7",object5);//差评
        envelop.setObj(object);
        return envelop;
    }
}

+ 43 - 32
svr/svr-wlyy-specialist/src/main/java/com/yihu/jw/service/SpecialistHospitalServiceItemService.java

@ -119,48 +119,59 @@ public class SpecialistHospitalServiceItemService extends EnvelopRestEndpoint {
            List<HospitalServiceItemDO> hospitalServiceItemDOS = jdbcTemplate.query(sql,new BeanPropertyRowMapper(HospitalServiceItemDO.class));
            String sql1 = "select * from wlyy_hospital_service_item where 1=1 AND status = 1 AND imediate=1 AND hospital = '"+docHospital+"' "+sqlUtil;
            List<HospitalServiceItemDO> hospitalServiceItemDOList = jdbcTemplate.query(sql1,new BeanPropertyRowMapper(HospitalServiceItemDO.class));
            for (HospitalServiceItemDO hospitalServiceItemDO:hospitalServiceItemDOList){
                boolean flag = false;
                for (HospitalServiceItemDO hospitalServiceItemDO1 :hospitalServiceItemDOS){
                    boolean isTrue = false;
                    if (hospitalServiceItemDOS1 != null && hospitalServiceItemDOS1.size() != 0){
                        for (HospitalServiceItemDO hospitalServiceItemDO2:hospitalServiceItemDOS1){
                            if (hospitalServiceItemDO1.getServiceItemId().equals(hospitalServiceItemDO2.getServiceItemId())){
                                isTrue = true;
            if (hospitalServiceItemDOList != null && hospitalServiceItemDOList.size()!=0){
                for (HospitalServiceItemDO hospitalServiceItemDO:hospitalServiceItemDOList){
                    boolean flag = false;
                    for (HospitalServiceItemDO hospitalServiceItemDO1 :hospitalServiceItemDOS){
                        boolean isTrue = false;
                        if (hospitalServiceItemDOS1 != null && hospitalServiceItemDOS1.size() != 0){
                            for (HospitalServiceItemDO hospitalServiceItemDO2:hospitalServiceItemDOS1){
                                if (hospitalServiceItemDO1.getServiceItemId().equals(hospitalServiceItemDO2.getServiceItemId())){
                                    if (hospitalServiceItemDO.getServiceItemId().equals(hospitalServiceItemDO1.getServiceItemId())){
                                        hospitalServiceItemDO2.setFlag(3);
                                    }
                                    isTrue = true;
                                }
                            }
                        }
                    }
                    if (hospitalServiceItemDO.getServiceItemId().equals(hospitalServiceItemDO1.getServiceItemId())){
                        if (isTrue==false){
                            hospitalServiceItemDO1.setFlag(3);
                            hospitalServiceItemDOS1.add(hospitalServiceItemDO1);
                            flag = true;
                            break;
                        }
                    }else{
                        if (isTrue == false){
                            hospitalServiceItemDO1.setFlag(1);
                            hospitalServiceItemDOS1.add(hospitalServiceItemDO1);
                        if (hospitalServiceItemDO.getServiceItemId().equals(hospitalServiceItemDO1.getServiceItemId())){
                            if (isTrue==false){
                                hospitalServiceItemDO1.setFlag(3);
                                hospitalServiceItemDOS1.add(hospitalServiceItemDO1);
                                flag = true;
                            }
                        }else{
                            if (isTrue == false){
                                hospitalServiceItemDO1.setFlag(1);
                                hospitalServiceItemDOS1.add(hospitalServiceItemDO1);
                            }
                        }
                    }
                }
                if (flag==false){
                    boolean isTrue1 = false;
                    if (hospitalServiceItemDOS1 != null && hospitalServiceItemDOS1.size() != 0){
                        for (HospitalServiceItemDO hospitalServiceItemDO2:hospitalServiceItemDOS1){
                            if (hospitalServiceItemDO.getServiceItemId().equals(hospitalServiceItemDO2.getServiceItemId())){
                                isTrue1 = true;
                    if (flag==false){
                        boolean isTrue1 = false;
                        if (hospitalServiceItemDOS1 != null && hospitalServiceItemDOS1.size() != 0){
                            for (HospitalServiceItemDO hospitalServiceItemDO2:hospitalServiceItemDOS1){
                                if (hospitalServiceItemDO.getServiceItemId().equals(hospitalServiceItemDO2.getServiceItemId())){
                                    isTrue1 = true;
                                }
                            }
                        }
                    }
                    if (isTrue1 == false){
                        hospitalServiceItemDO.setFlag(2);
                        hospitalServiceItemDOS1.add(hospitalServiceItemDO);
                        if (isTrue1 == false){
                            hospitalServiceItemDO.setFlag(2);
                            hospitalServiceItemDOS1.add(hospitalServiceItemDO);
                        }
                    }
                }
            }else {
                String sql3 = "select * from wlyy_hospital_service_item where 1=1 AND status = 1 AND imediate=1 AND hospital = '"+hospital+"'"+sqlUtil;
                List<HospitalServiceItemDO> hospitalServiceItemDOList1 = jdbcTemplate.query(sql3,new BeanPropertyRowMapper(HospitalServiceItemDO.class));
                for (HospitalServiceItemDO hospitalServiceItemDO:hospitalServiceItemDOList1){
                    hospitalServiceItemDO.setFlag(1);
                    hospitalServiceItemDOS1.add(hospitalServiceItemDO);
                }
            }
        }
        for (HospitalServiceItemDO hospitalServiceItemDO:hospitalServiceItemDOS1){
            SpecialistServiceItemDO specialistServiceItemDO = specialistServiceItemDao.findOne(hospitalServiceItemDO.getServiceItemId());
            hospitalServiceItemDO.setSpecialistServiceItemDO(specialistServiceItemDO);

+ 40 - 9
svr/svr-wlyy-specialist/src/main/java/com/yihu/jw/service/rehabilitation/RehabilitationManageService.java

@ -11,7 +11,6 @@ import com.yihu.jw.entity.specialist.rehabilitation.PatientRehabilitationPlanDO;
import com.yihu.jw.entity.specialist.rehabilitation.RehabilitationDetailDO;
import com.yihu.jw.entity.specialist.rehabilitation.RehabilitationOperateRecordsDO;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.rm.specialist.SpecialistMapping;
@ -20,11 +19,8 @@ import com.yihu.jw.util.date.DateUtil;
import org.apache.commons.collections.map.HashedMap;
import org.apache.commons.lang3.StringUtils;
import org.json.JSONArray;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
@ -132,10 +128,12 @@ public class RehabilitationManageService {
                resultMap.put("id",one.get("id"));
                resultMap.put("status",one.get("status"));//康复计划状态
                //健康情况
                String healthyConditionSql =" select  label_name from "+basedb+".wlyy_sign_patient_label_info where status=1 and patient='"+one.get("patient")+"' and label_type=8";
                String healthyConditionSql =" select  label_name,label from "+basedb+".wlyy_sign_patient_label_info where status=1 and patient='"+one.get("patient")+"' and label_type=8";
                List<Map<String,Object>> healthyConditionList = jdbcTemplate.queryForList(healthyConditionSql);
                String healthyCondition = healthyConditionList.size()>0?healthyConditionList.get(0).get("label_name")+"":"";
                String healthyConditionType = healthyConditionList.size()>0?healthyConditionList.get(0).get("label")+"":"";
                resultMap.put("healthyCondition",healthyCondition);
                resultMap.put("healthyConditionType",healthyConditionType);
                //安排类型
                String planTypeName = null;
                Integer planTypeTemp = (Integer)one.get("plan_type");
@ -190,6 +188,12 @@ public class RehabilitationManageService {
            Map<String,Object> resultMap = new HashMap<>();
            Integer isOperator = 0;
            resultMap.put("patientCode",patientCode);//居民code
            String healthyConditionSql =" select  label_name,label from "+basedb+".wlyy_sign_patient_label_info where status=1 and patient='"+patientCode+"' and label_type=8";
            List<Map<String,Object>> healthyConditionList = jdbcTemplate.queryForList(healthyConditionSql);
            String healthyCondition = healthyConditionList.size()>0?healthyConditionList.get(0).get("label_name")+"":"";
            String healthyConditionType = healthyConditionList.size()>0?healthyConditionList.get(0).get("label")+"":"";
            resultMap.put("healthyCondition",healthyCondition);
            resultMap.put("healthyConditionType",healthyConditionType);
            //专科医生
            String specialistRelationSql = "select r.*,t.name as teamName,h.name as specialistHospitalName from wlyy_specialist.wlyy_specialist_patient_relation r left join "+basedb+".wlyy_admin_team t on r.team_code=t.id left join "+basedb+".dm_hospital h on t.org_code=h.code where r.sign_status ='1' and r.status in('0','1') and r.patient='"+patientCode+"' and r.doctor='"+doctorCode+"'";
            List<Map<String,Object>> specialistRelationList = jdbcTemplate.queryForList(specialistRelationSql);
@ -711,6 +715,8 @@ public class RehabilitationManageService {
                case 2:planTypeName="(转)社区医院" ;break;
                case 3:planTypeName="(转)转家庭病床" ;break;
            }
            map.put("createUser",one.getCreateUser());
            map.put("createUserName",one.getCreateUserName());
            map.put("planId",one.getId());
            map.put("planTypeName",planTypeName);
            String statusName = "";
@ -808,8 +814,10 @@ public class RehabilitationManageService {
        Map<String,Object> resultMap = new HashMap<>();
        //近期康复相关记录
//        String currentTime = DateUtil.getStringDate();
        String planDetailSql = " select d.*,i.content,i.title from wlyy_specialist.wlyy_rehabilitation_plan_detail d LEFT JOIN wlyy_hospital_service_item h on d.hospital_service_item_id=h.id" +
                " LEFT JOIN wlyy_service_item i on i.id=h.service_item_id LEFT JOIN wlyy_specialist.wlyy_patient_rehabilitation_plan p on d.plan_id=p.id where d.status=1 and p.patient='"+patientCode+"' ";
        String planDetailSql = " select d.*,i.content,i.title,s.complete_time from wlyy_specialist.wlyy_rehabilitation_plan_detail d LEFT JOIN wlyy_hospital_service_item h on d.hospital_service_item_id=h.id" +
                " LEFT JOIN wlyy_service_item i on i.id=h.service_item_id LEFT JOIN wlyy_specialist.wlyy_patient_rehabilitation_plan p on d.plan_id=p.id" +
                " left join wlyy_rehabilitation_operate_records s on s.rehabilitation_detail_id=d.id " +
                " where d.status=1 and p.patient='"+patientCode+"' ";
        if(StringUtils.isNotEmpty(startTime)){
            planDetailSql += "  and d.execute_Time>='"+startTime+"' ";
        }
@ -821,11 +829,11 @@ public class RehabilitationManageService {
//        if(planDetailsCount!=null&&planDetailsCount.size()>0){
//            count = planDetailsCount.size();
//        }
        planDetailSql += " ORDER BY d.execute_time DESC LIMIT "+(page-1)*pageSize+","+pageSize;
        planDetailSql += " ORDER BY s.complete_time DESC LIMIT "+(page-1)*pageSize+","+pageSize;
        List<Map<String,Object>> planDetails = jdbcTemplate.queryForList(planDetailSql);
        List<Map<String,Object>> planDetailList = new ArrayList<>();
        for(Map<String,Object> one:planDetails){
            Date executeTimeDate = (Date)one.get("execute_time");
            Date executeTimeDate = (Date)one.get("complete_time");
            String executeTime = DateUtil.dateToStr(executeTimeDate,"yyyy/MM/dd HH:mm");
            String content = one.get("content")+"";
            String title = one.get("title")+"";
@ -839,6 +847,9 @@ public class RehabilitationManageService {
            String id = one.get("id").toString();
            Map<String,Object> map = new HashMap<>();
            map.put("id",id);//id
//            List<RehabilitationOperateRecordsDO> rehabilitationOperateRecords = rehabilitationOperateRecordsDao.findByRehabilitationDetailId(id);
//            Date completeTime = rehabilitationOperateRecords!=null&&rehabilitationOperateRecords.size()>0?rehabilitationOperateRecords.get(0).getCompleteTime():null;
//            String completeTimeStr =  completeTime!=null?DateUtil.dateToStr(completeTime,"yyyy/MM/dd HH:mm"):"";
            map.put("executeTime",executeTime);//执行时间
            map.put("title",title);//项目标题
            map.put("content",content);//项目内容
@ -1164,4 +1175,24 @@ public class RehabilitationManageService {
        }
        return ObjEnvelop.getSuccess(SpecialistMapping.api_success,list);
    }
    /**
     * 根据ids获取数据
     *
     * @param ids
     * @return
     */
    public ObjEnvelop selectByIds(String ids){
        ObjEnvelop envelop = new ObjEnvelop();
        List idList = Arrays.asList(ids.split(","));
        StringBuffer buffer = new StringBuffer();
        for (int i =0;i<idList.size();i++){
            buffer.append("'"+idList.get(i)+"'").append(",");
        }
        buffer.deleteCharAt(buffer.length()-1);
        String sql = "select * from wlyy_rehabilitation_plan_detail where id in("+buffer+")";
        List<RehabilitationDetailDO> rehabilitationDetailDOS = jdbcTemplate.query(sql,new BeanPropertyRowMapper(RehabilitationDetailDO.class));
        envelop.setObj(rehabilitationDetailDOS);
        return envelop;
    }
}