diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IHosptialOpinionsDao.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IHosptialOpinionsDao.java new file mode 100644 index 0000000..7b7c711 --- /dev/null +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IHosptialOpinionsDao.java @@ -0,0 +1,21 @@ +package com.lyms.platform.biz.dal; + +import com.lyms.platform.common.dao.operator.MongoQuery; +import com.lyms.platform.pojo.HosptialHighRisk; +import com.lyms.platform.pojo.HosptialOpinions; + +import java.util.List; + +public interface IHosptialOpinionsDao { + + public List queryHosptialOpinions(MongoQuery query); + + public int queryHosptialOpinionsCount(MongoQuery query); + + public HosptialOpinions addHosptialOpinions(HosptialOpinions obj); + + HosptialOpinions getOneHosptialOpinionsById(String id); + + void updateHosptialOpinions(HosptialOpinions obj, String id); + +} \ No newline at end of file diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/HosptialOpinionsDaoImpl.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/HosptialOpinionsDaoImpl.java new file mode 100644 index 0000000..6574f7c --- /dev/null +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/HosptialOpinionsDaoImpl.java @@ -0,0 +1,46 @@ +package com.lyms.platform.biz.dal.impl; + +import com.lyms.platform.biz.dal.IHosptialHightRiskDao; +import com.lyms.platform.biz.dal.IHosptialOpinionsDao; +import com.lyms.platform.common.dao.BaseMongoDAOImpl; +import com.lyms.platform.common.dao.operator.MongoCondition; +import com.lyms.platform.common.dao.operator.MongoOper; +import com.lyms.platform.common.dao.operator.MongoQuery; +import com.lyms.platform.common.dao.operator.Page; +import com.lyms.platform.pojo.HosptialHighRisk; +import com.lyms.platform.pojo.HosptialOpinions; +import org.springframework.stereotype.Repository; + +import java.util.Collection; +import java.util.List; + +@Repository("hosptialOpinionsDao") +public class HosptialOpinionsDaoImpl extends BaseMongoDAOImpl implements IHosptialOpinionsDao { + + @Override + public List queryHosptialOpinions(MongoQuery query) { + return find(query.convertToMongoQuery()); + } + + @Override + public int queryHosptialOpinionsCount(MongoQuery query) { + return (int) count(query.convertToMongoQuery()); + } + + @Override + public HosptialOpinions addHosptialOpinions(HosptialOpinions obj) { + return save(obj); + } + + @Override + public HosptialOpinions getOneHosptialOpinionsById(String id) { + return findById(id); + } + + @Override + public void updateHosptialOpinions(HosptialOpinions obj, String id) { + update(new MongoQuery(new MongoCondition("id", id, MongoOper.IS)).convertToMongoQuery(), obj); + } + + +} \ No newline at end of file diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/HosptialOpinionsService.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/HosptialOpinionsService.java new file mode 100644 index 0000000..bdd705e --- /dev/null +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/HosptialOpinionsService.java @@ -0,0 +1,62 @@ +package com.lyms.platform.biz.service; + +import com.google.common.cache.CacheLoader; +import com.google.common.cache.LoadingCache; +import com.lyms.platform.biz.dal.IHosptialOpinionsDao; +import com.lyms.platform.common.dao.operator.MongoQuery; +import com.lyms.platform.common.utils.CacheHelper; +import com.lyms.platform.pojo.HosptialHighRisk; +import com.lyms.platform.pojo.HosptialOpinions; +import com.lyms.platform.query.HosptialHighRiskQuery; +import com.lyms.platform.query.HosptialOpinionsQuery; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Sort; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class HosptialOpinionsService implements InitializingBean { + + @Autowired + private IHosptialOpinionsDao hosptialOpinionsDao; + private LoadingCache cached=null; + @Override + public void afterPropertiesSet() throws Exception { + //cache size 为400 缓存3分钟 + cached = CacheHelper.cached(new CacheLoader() { + @Override + public HosptialOpinions load(String key) throws Exception { + return hosptialOpinionsDao.getOneHosptialOpinionsById(key); + } + },400,3); + } + + public List queryHosptialHighRisk(HosptialOpinionsQuery hosptialOpinionsQuery) { + MongoQuery query = hosptialOpinionsQuery.convertToQuery(); + if (StringUtils.isNotEmpty(hosptialOpinionsQuery.getNeed())) { + hosptialOpinionsQuery.mysqlBuild(hosptialOpinionsDao.queryHosptialOpinionsCount(hosptialOpinionsQuery.convertToQuery())); + query.start(hosptialOpinionsQuery.getOffset()).end(hosptialOpinionsQuery.getLimit()); + } + return hosptialOpinionsDao.queryHosptialOpinions(query.addOrder(Sort.Direction.DESC, "createDate").addOrder(Sort.Direction.DESC, "weight")); + } + + public void addHosptialOpinions(HosptialOpinions obj) { + hosptialOpinionsDao.addHosptialOpinions(obj); + } + + public HosptialOpinions getOneHosptialOpinionsById(String id) { + try{ + return cached.get(id); + }catch (Exception e){ + } + return hosptialOpinionsDao.getOneHosptialOpinionsById(id); + } + + public void updateHosptialOpinions(HosptialOpinions obj) { + obj.setModifiedDate(System.currentTimeMillis()); + hosptialOpinionsDao.updateHosptialOpinions(obj, obj.getId()); + } +} \ No newline at end of file diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/HosptialOpinions.java b/platform-dal/src/main/java/com/lyms/platform/pojo/HosptialOpinions.java index 6604207..86da2b3 100644 --- a/platform-dal/src/main/java/com/lyms/platform/pojo/HosptialOpinions.java +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/HosptialOpinions.java @@ -16,26 +16,35 @@ public class HosptialOpinions extends BaseModel { private String id; //医院id private String hospitalId; - //医生姓名 - private String doctorName; + //医生id + private Integer doctorId; //创建时间 private Long createDate; //修改时间 private Long modifiedDate; //是否有效0-无效,1-有效 private Integer yn; - //是否使用、true-使用,false-未使用,false在下拉框不显示,在数据中显示 - private boolean isUse; + //1 下拉框显示,2下拉框不显示 + private String isUse; //权重 private Integer weight; //1 处理意见内容 2 指导意见内容 private Integer type; - //处理意见内容 - private String handleContent; - //指导意见内容 - private String guideContent; + //内容 + private String content; + ; + public Integer getDoctorId() { + return doctorId; + } + + public void setDoctorId(Integer doctorId) { + this.doctorId = doctorId; + } + public static long getSerialVersionUID() { + return serialVersionUID; + } public String getId() { return id; @@ -53,14 +62,6 @@ public class HosptialOpinions extends BaseModel { this.hospitalId = hospitalId; } - public String getDoctorName() { - return doctorName; - } - - public void setDoctorName(String doctorName) { - this.doctorName = doctorName; - } - public Long getCreateDate() { return createDate; } @@ -85,12 +86,12 @@ public class HosptialOpinions extends BaseModel { this.yn = yn; } - public boolean isUse() { + public String getIsUse() { return isUse; } - public void setUse(boolean use) { - isUse = use; + public void setIsUse(String isUse) { + this.isUse = isUse; } public Integer getWeight() { @@ -109,19 +110,11 @@ public class HosptialOpinions extends BaseModel { this.type = type; } - public String getHandleContent() { - return handleContent; - } - - public void setHandleContent(String handleContent) { - this.handleContent = handleContent; - } - - public String getGuideContent() { - return guideContent; + public String getContent() { + return content; } - public void setGuideContent(String guideContent) { - this.guideContent = guideContent; + public void setContent(String content) { + this.content = content; } } \ No newline at end of file diff --git a/platform-dal/src/main/java/com/lyms/platform/query/HosptialOpinionsQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/HosptialOpinionsQuery.java new file mode 100644 index 0000000..0f8b8ef --- /dev/null +++ b/platform-dal/src/main/java/com/lyms/platform/query/HosptialOpinionsQuery.java @@ -0,0 +1,143 @@ +package com.lyms.platform.query; + +import com.lyms.platform.common.base.IConvertToNativeQuery; +import com.lyms.platform.common.dao.BaseQuery; +import com.lyms.platform.common.dao.operator.MongoCondition; +import com.lyms.platform.common.dao.operator.MongoOper; +import com.lyms.platform.common.dao.operator.MongoQuery; +import com.lyms.platform.common.enums.YnEnums; +import org.springframework.data.mongodb.core.query.Criteria; + +import java.util.List; + +/** + * 医院自定义处理意见 和 指导意见内容 + */ +public class HosptialOpinionsQuery extends BaseQuery implements IConvertToNativeQuery { + + private String id; + //医院id + private String hospitalId; + //医生姓名 + private String doctorName; + //创建时间 + private Long createDate; + //是否有效0-无效,1-有效 + private Integer yn; + //是否使用、1 使用,2未使用,false在下拉框不显示,在数据中显示 + private String isUse; + //1 处理意见内容 2 指导意见内容 + private Integer type; + //内容 + private String content; + //权重 + private Integer weight; + + public String getHospitalId() { + return hospitalId; + } + + public void setHospitalId(String hospitalId) { + this.hospitalId = hospitalId; + } + + public String getDoctorName() { + return doctorName; + } + + public void setDoctorName(String doctorName) { + this.doctorName = doctorName; + } + + public Long getCreateDate() { + return createDate; + } + + public void setCreateDate(Long createDate) { + this.createDate = createDate; + } + + public void setYn(Integer yn) { + this.yn = yn; + } + + public String getIsUse() { + return isUse; + } + + public void setIsUse(String isUse) { + this.isUse = isUse; + } + + public Integer getType() { + return type; + } + + public void setType(Integer type) { + this.type = type; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public Integer getWeight() { + return weight; + } + + public void setWeight(Integer weight) { + this.weight = weight; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public Integer getYn() { + return yn; + } + + public MongoQuery convertToQuery() { +// MongoCondition condition = MongoCondition.newInstance("1","1",MongoOper.IS); + MongoCondition condition = MongoCondition.newInstance("yn", YnEnums.YES.getId(),MongoOper.IS); + if (null != id) { + condition = condition.and("id", id, MongoOper.IS); + } + + if (null != hospitalId) { + condition = condition.and("hospitalId", hospitalId, MongoOper.IS); + } + + if (null != doctorName) { + condition = condition.and("doctorName", doctorName, MongoOper.IS); + } + + if (null != isUse) { + condition = condition.and("isUse", isUse, MongoOper.IS); + } + + if (null != type) { + condition = condition.and("type", type, MongoOper.IS); + } + + if (null != content) { + condition = condition.and("content", content, MongoOper.IN); + } + + if(null!=weight){ + condition = condition.and("weight", weight, MongoOper.EXISTS); + } + + return condition.toMongoQuery(); + } + + +} \ No newline at end of file diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/HosptialHighRiskController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/HosptialHighRiskController.java index 245a598..b5c7d39 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/HosptialHighRiskController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/HosptialHighRiskController.java @@ -8,6 +8,7 @@ import com.lyms.platform.common.result.BaseResponse; import com.lyms.platform.common.utils.StringUtils; import com.lyms.platform.operate.web.facade.HosptialHighRiskFacade; import com.lyms.platform.pojo.HosptialHighRisk; +import com.lyms.platform.pojo.HosptialOpinions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; @@ -85,4 +86,55 @@ public class HosptialHighRiskController extends BaseController { LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); return hosptialHighRiskFacade.getHosptialHighRisk(loginState.getId()); } + + + /** + * 添加 医院自定义处理意见 和 指导意见内容 + * + * @param request + * @param httpServletRequest + * @Author: 武涛涛 + * @Date: 2020/7/18 13:41 + */ + @RequestMapping(method = RequestMethod.POST, value = "/addHosptialOpinions") + @ResponseBody + @TokenRequired + public BaseResponse addHosptialOpinions(@Valid @RequestBody HosptialOpinions request, HttpServletRequest httpServletRequest) { + LoginContext loginState = (LoginContext) httpServletRequest.getAttribute("loginContext"); + return hosptialHighRiskFacade.addHosptialOpinions(request, loginState.getId()); + } + + /** + * 根据医院自定义处理意见 和 指导意见内容 + * + * @param request + * @param type 1 处理意见内容 2 指导意见内容 + * @Author: 武涛涛 + * @Date: 2020/7/18 14:56 + */ + @RequestMapping(value = "/getHosptialOpinions", method = RequestMethod.GET) + @TokenRequired + @ResponseBody + public BaseResponse getHosptialOpinions(HttpServletRequest request,@RequestParam(required = true) Integer type) { + LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); + return hosptialHighRiskFacade.getHosptialOpinions(loginState.getId(),type); + } + + /** + * 删除自定义处理意见 和 指导意见内容,这里是逻辑删除 + * + * @param id + * @param request + * @Author: 武涛涛 + * @Date: 2020/7/18 15:05 + */ + @RequestMapping(value = "/deleteHosptialOpinionsById/{id}", method = RequestMethod.DELETE) + @TokenRequired + @ResponseBody + public BaseResponse deleteHosptialOpinionsById(@PathVariable("id") String id, HttpServletRequest request) { + return hosptialHighRiskFacade.deleteHosptialOpinionsById(id); + + } + + } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/HosptialHighRiskFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/HosptialHighRiskFacade.java index 3f4c206..7d56356 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/HosptialHighRiskFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/HosptialHighRiskFacade.java @@ -1,14 +1,18 @@ package com.lyms.platform.operate.web.facade; import com.lyms.platform.biz.service.HosptialHighRiskService; +import com.lyms.platform.biz.service.HosptialOpinionsService; import com.lyms.platform.common.constants.ErrorCodeConstants; import com.lyms.platform.common.enums.HisptialRiskTypeEnum; import com.lyms.platform.common.enums.RiskDefaultTypeEnum; +import com.lyms.platform.common.enums.YnEnums; import com.lyms.platform.common.result.BaseResponse; import com.lyms.platform.common.utils.JsonUtil; import com.lyms.platform.common.utils.SystemConfig; import com.lyms.platform.pojo.HosptialHighRisk; +import com.lyms.platform.pojo.HosptialOpinions; import com.lyms.platform.query.HosptialHighRiskQuery; +import com.lyms.platform.query.HosptialOpinionsQuery; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -16,10 +20,7 @@ import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Component; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * @auther yangfei @@ -31,6 +32,8 @@ public class HosptialHighRiskFacade { @Autowired private HosptialHighRiskService hosptialHighRiskService; @Autowired + private HosptialOpinionsService hosptialOpinionsService; + @Autowired private AutoMatchFacade autoMatchFacade; @Autowired private BasicConfigFacade basicConfigFacade; @@ -148,6 +151,40 @@ public class HosptialHighRiskFacade { } return baseResponse; } + /** + * 添加 医院自定义处理意见 和 指导意见内容 + * + * @param hosptialOpinions + * @param userId + * @Author: 武涛涛 + * @Date: 2020/7/18 13:41 + */ + public BaseResponse addHosptialOpinions(HosptialOpinions hosptialOpinions, int userId) { + + String hospitalId = autoMatchFacade.getHospitalId(userId); + HosptialOpinionsQuery hosptialOpinionsQuery = new HosptialOpinionsQuery(); + hosptialOpinionsQuery.setHospitalId(hospitalId); + hosptialOpinionsQuery.setContent(hosptialOpinions.getContent());//内容 + hosptialOpinionsQuery.setIsUse("1");//1 下拉框显示,2下拉框不显示 + hosptialOpinionsQuery.setType(hosptialOpinions.getType());//1 处理意见内容 2 指导意见内容 + List hosptialOpinionsList = hosptialOpinionsService.queryHosptialHighRisk(hosptialOpinionsQuery); + + BaseResponse baseResponse = new BaseResponse(); + if (CollectionUtils.isEmpty(hosptialOpinionsList)) { + hosptialOpinions.setCreateDate(System.currentTimeMillis()); + hosptialOpinions.setModifiedDate(System.currentTimeMillis()); + hosptialOpinions.setYn(1); + hosptialOpinions.setHospitalId(hospitalId); + hosptialOpinions.setDoctorId(userId); + hosptialOpinions.setIsUse("1");//1 下拉框显示,2下拉框不显示 + hosptialOpinionsService.addHosptialOpinions(hosptialOpinions); + baseResponse.setErrormsg("保存成功"); + } else { + baseResponse.setErrorcode(ErrorCodeConstants.DATA_EXIST); + baseResponse.setErrormsg("添加的内容名称已经存在,请勿重复添加"); + } + return baseResponse; + } /** * 根据用户id查询自定义高危 @@ -176,6 +213,53 @@ public class HosptialHighRiskFacade { return baseResponse; } + + /** + *根据用户id查询 自定义处理意见 和 指导意见内容 + * + * @param userId 当前登录用户id + * @param type //1 处理意见内容 2 指导意见内容 + * @Author: 武涛涛 + * @Date: 2020/7/18 14:51 + */ + public BaseResponse getHosptialOpinions(int userId,Integer type) { + BaseResponse baseResponse = new BaseResponse(); + String hospitalId = autoMatchFacade.getHospitalId(userId); + HosptialOpinionsQuery hosptialOpinionsQuery = new HosptialOpinionsQuery(); + hosptialOpinionsQuery.setHospitalId(hospitalId); + hosptialOpinionsQuery.setYn(YnEnums.YES.getId()); + hosptialOpinionsQuery.setIsUse("1"); //1 下拉框显示,2下拉框不显示 + hosptialOpinionsQuery.setType(type); + List hosptialOpinionsList = hosptialOpinionsService.queryHosptialHighRisk(hosptialOpinionsQuery); + + if (CollectionUtils.isNotEmpty(hosptialOpinionsList)) { + baseResponse.setObject(hosptialOpinionsList); + } + + return baseResponse; + } + /** + * 根据Id,删除自定义高危,这里是逻辑删除 + * + * @param id + * @return + */ + public BaseResponse deleteHosptialOpinionsById(String id) { + BaseResponse baseResponse = new BaseResponse(); + if(StringUtils.isNotEmpty(id)){ + HosptialOpinions hosptialOpinions = hosptialOpinionsService.getOneHosptialOpinionsById(id); + if( hosptialOpinions != null ){ + hosptialOpinions.setIsUse("2"); //1 下拉框显示,2下拉框不显示 + hosptialOpinionsService.updateHosptialOpinions(hosptialOpinions); + baseResponse.setErrorcode(ErrorCodeConstants.SUCCESS); + baseResponse.setErrormsg("删除成功"); + }else{ + baseResponse.setErrorcode(ErrorCodeConstants.DONT_DELETE); + baseResponse.setErrormsg("删除失败,缺少ID"); + } + } + return baseResponse; + } /** * 根据Id,删除自定义高危 * @@ -197,4 +281,7 @@ public class HosptialHighRiskFacade { } return baseResponse; } + + + }