Browse Source

三院知识库后台配置接口开发完成

wangzhinan 2 years ago
parent
commit
ebb59f6049

+ 21 - 0
business/base-service/src/main/java/com/yihu/jw/knowledge/dao/BaseSystemDialogSettingDao.java

@ -0,0 +1,21 @@
package com.yihu.jw.knowledge.dao;
import com.yihu.jw.entity.knowledge.BaseKnowledgeDictRelation;
import com.yihu.jw.entity.knowledge.BaseSystemDialogSetting;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
 * 系统会话设置dao
 * @wangzhinan
 */
@Transactional
public interface BaseSystemDialogSettingDao extends JpaRepository<BaseSystemDialogSetting, String>, JpaSpecificationExecutor<BaseSystemDialogSettingDao> {
    @Query("from BaseSystemDialogSetting p where p.systemType = ?1 ")
    List<BaseSystemDialogSetting> selectBySystemType(String systemType);
}

+ 104 - 0
business/base-service/src/main/java/com/yihu/jw/knowledge/service/BaseSystemDialogSettingService.java

@ -0,0 +1,104 @@
package com.yihu.jw.knowledge.service;
import com.yihu.jw.entity.knowledge.BaseKnowledgeDict;
import com.yihu.jw.entity.knowledge.BaseKnowledgeQuestion;
import com.yihu.jw.entity.knowledge.BaseKnowledgeQuestions;
import com.yihu.jw.entity.knowledge.BaseSystemDialogSetting;
import com.yihu.jw.knowledge.dao.BaseKnowledgeDictDao;
import com.yihu.jw.knowledge.dao.BaseKnowledgeQuestionDao;
import com.yihu.jw.knowledge.dao.BaseKnowledgeQuestionsDao;
import com.yihu.jw.knowledge.dao.BaseSystemDialogSettingDao;
import com.yihu.jw.mysql.query.BaseJpaService;
import com.ylzinfo.onepay.sdk.utils.StringUtil;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
 * 系统会话设置
 *
 * @wangzhinan
 */
@Service
public class BaseSystemDialogSettingService extends BaseJpaService<BaseSystemDialogSetting, BaseSystemDialogSettingDao> {
    private org.slf4j.Logger logger = LoggerFactory.getLogger(BaseSystemDialogSettingService.class);
    @Autowired
    private BaseSystemDialogSettingDao dialogSettingDao;
    @Autowired
    private BaseKnowledgeQuestionDao questionDao;
    @Autowired
    private BaseKnowledgeQuestionsDao questionsDao;
    @Autowired
    private BaseKnowledgeDictDao dictDao;
    /**
     * 新增和修改系统会话设置
     *
     * @param dialogSettings
     * @return
     */
    public List<BaseSystemDialogSetting> insterAndUpdateSystemDialogSetting(List<BaseSystemDialogSetting> dialogSettings){
        for (BaseSystemDialogSetting dialogSetting:dialogSettings){
            if (StringUtils.isNoneBlank(dialogSetting.getId())){
                dialogSetting.setUpdateTime(new Date());
            }else {
                dialogSetting.setCreateTime(new Date());
            }
            dialogSettingDao.save(dialogSetting);
        }
        return dialogSettings;
    }
    /**
     * 根据不同业务code查询相关的系统会话设置配置信息;
     *
     * @param systemType
     * @return
     */
    public List<BaseSystemDialogSetting> selectBySystemType(String systemType){
        List<BaseSystemDialogSetting> systemDialogSettings = dialogSettingDao.selectBySystemType(systemType);
        for (BaseSystemDialogSetting dialogSetting:systemDialogSettings){
            if (dialogSetting.getRelaitonCodeType()!=null){
                if (dialogSetting.getRelaitonCodeType()==1){
                    String question[] = dialogSetting.getRelationCode().split(",");
                    List<BaseKnowledgeQuestion> questionList = new ArrayList<>();
                    for (int i=0;i<=question.length-1;i++){
                        String questionId = question[i];
                        BaseKnowledgeQuestion knowledgeQuestion = questionDao.findById(questionId).get();
                        questionList.add(knowledgeQuestion);
                    }
                    dialogSetting.setQuestions(questionList);
                }else  if (dialogSetting.getRelaitonCodeType()==2){
                    String dict[] = dialogSetting.getRelationCode().split(",");
                    List<BaseKnowledgeDict> dictList = new ArrayList<>();
                    for (int i=0;i<=dict.length-1;i++){
                        String dictId = dict[i];
                        BaseKnowledgeDict knowledgeDict = dictDao.findById(dictId).get();
                        dictList.add(knowledgeDict);
                    }
                    dialogSetting.setDictList(dictList);
                }else if (dialogSetting.getRelaitonCodeType()==3){
                    String questions[] = dialogSetting.getRelationCode().split(",");
                    List<BaseKnowledgeQuestions> questionsList = new ArrayList<>();
                    for (int i=0;i<=questions.length-1;i++){
                        String questionId = questions[i];
                        BaseKnowledgeQuestions knowledgeQuestions = questionsDao.findById(questionId).get();
                        questionsList.add(knowledgeQuestions);
                    }
                    dialogSetting.setQuestionsList(questionsList);
                }
            }
        }
        return systemDialogSettings;
    }
}

+ 140 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/knowledge/BaseSystemDialogSetting.java

@ -0,0 +1,140 @@
package com.yihu.jw.entity.knowledge;
import com.yihu.jw.entity.UuidIdentityEntityWithOperator;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.util.List;
/**
 * 系统会话设置
 * @wangzhinan
 *
 */
@Entity
@Table(name = "base_system_dialog_setting")
public class BaseSystemDialogSetting extends UuidIdentityEntityWithOperator {
	private String systemType;//系统业务类型(字典systemBusinessType)
	private String systemName;//系统业务名称
	private String functionType;//业务类型(字典 sessionFunctionType)
	private String functionName;//业务名称
	private Integer flag;//1开0关
	private Integer relationType;//1关联文本(对应content)2关联业务(对应relaitonCode)
	private Integer relaitonCodeType;//1常见问题2字典中心3问题集
	private String relationCode;//relationType2对应业务code,多个逗号隔开
	private String content;//文本
	private String time;//超时时间
	private List<BaseKnowledgeQuestion> questions;//问题列表
	private List<BaseKnowledgeQuestions> questionsList;//问题集列表
	private List<BaseKnowledgeDict> dictList;//字典列表
	@Transient
	public List<BaseKnowledgeQuestion> getQuestions() {
		return questions;
	}
	public void setQuestions(List<BaseKnowledgeQuestion> questions) {
		this.questions = questions;
	}
	@Transient
	public List<BaseKnowledgeQuestions> getQuestionsList() {
		return questionsList;
	}
	public void setQuestionsList(List<BaseKnowledgeQuestions> questionsList) {
		this.questionsList = questionsList;
	}
	@Transient
	public List<BaseKnowledgeDict> getDictList() {
		return dictList;
	}
	public void setDictList(List<BaseKnowledgeDict> dictList) {
		this.dictList = dictList;
	}
	public String getSystemType() {
		return systemType;
	}
	public void setSystemType(String systemType) {
		this.systemType = systemType;
	}
	public String getSystemName() {
		return systemName;
	}
	public void setSystemName(String systemName) {
		this.systemName = systemName;
	}
	public String getFunctionType() {
		return functionType;
	}
	public void setFunctionType(String functionType) {
		this.functionType = functionType;
	}
	public String getFunctionName() {
		return functionName;
	}
	public void setFunctionName(String functionName) {
		this.functionName = functionName;
	}
	public Integer getFlag() {
		return flag;
	}
	public void setFlag(Integer flag) {
		this.flag = flag;
	}
	public Integer getRelationType() {
		return relationType;
	}
	public void setRelationType(Integer relationType) {
		this.relationType = relationType;
	}
	public Integer getRelaitonCodeType() {
		return relaitonCodeType;
	}
	public void setRelaitonCodeType(Integer relaitonCodeType) {
		this.relaitonCodeType = relaitonCodeType;
	}
	public String getRelationCode() {
		return relationCode;
	}
	public void setRelationCode(String relationCode) {
		this.relationCode = relationCode;
	}
	public String getContent() {
		return content;
	}
	public void setContent(String content) {
		this.content = content;
	}
	public String getTime() {
		return time;
	}
	public void setTime(String time) {
		this.time = time;
	}
}

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

@ -1610,4 +1610,13 @@ public class BaseHospitalRequestMapping {
        public static final String setDictRelation= "/setDictRelation";
    }
    /**
     * 系统会话设置
     */
    public static class BaseSystemDialogSetting extends Basic{
        public static final String PREFIX  = "/baseSystemDialogSetting";
        public static final String insterAndUpdateSystemDialogSetting = "/insterAndUpdateSystemDialogSetting";
        public static final String selectBySystemType = "/selectBySystemType";
    }
}

+ 66 - 0
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/knowledge/BaseSystemDialogSettingController.java

@ -0,0 +1,66 @@
package com.yihu.jw.hospital.endpoint.knowledge;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yihu.ehr.constants.LisEntry;
import com.yihu.jw.entity.knowledge.BaseKnowledgeDict;
import com.yihu.jw.entity.knowledge.BaseKnowledgeDictRelation;
import com.yihu.jw.entity.knowledge.BaseSystemDialogSetting;
import com.yihu.jw.knowledge.service.BaseKnowledgeDictService;
import com.yihu.jw.knowledge.service.BaseSystemDialogSettingService;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.rm.hospital.BaseHospitalRequestMapping;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
@RestController
@RequestMapping(value = BaseHospitalRequestMapping.BaseSystemDialogSetting.PREFIX)
@Api(value = "系统会话配置", description = "系统会话配置", tags = {"系统会话配置"})
public class BaseSystemDialogSettingController extends EnvelopRestEndpoint {
    @Autowired
    private BaseSystemDialogSettingService dialogSettingService;
    @ApiOperation("新增/更新系统会话设置")
    @PostMapping(value= BaseHospitalRequestMapping.BaseSystemDialogSetting.insterAndUpdateSystemDialogSetting)
    public Envelop insertAndUpdateDict(@ApiParam(name = "json", value = "系统会话设置实体json", required = true)
                                   @RequestParam(value = "json", required = true)String json){
        try {
            JSONArray array = JSONArray.parseArray(json);
            List<BaseSystemDialogSetting> dialogSettings = new ArrayList<>();
            for (int i=0;i<array.size();i++){
                JSONObject object = array.getJSONObject(i);
                BaseSystemDialogSetting dialogSetting = toEntity(object.toJSONString(), BaseSystemDialogSetting.class);
                dialogSettings.add(dialogSetting);
            }
            return success(dialogSettingService.insterAndUpdateSystemDialogSetting(dialogSettings));
        }catch (Exception e){
            return failedException(e);
        }
    }
    @ApiOperation("根据不同业务code查询相关的系统会话设置配置信息")
    @GetMapping(value= BaseHospitalRequestMapping.BaseKnowledgeDict.selectById)
    public Envelop selectById(@ApiParam(name = "systemType", value = "系统业务编码", required = true)
                              @RequestParam(value = "systemType", required = true)String systemType){
        try {
            return success(dialogSettingService.selectBySystemType(systemType));
        }catch (Exception e){
            return failedException(e);
        }
    }
}