LAPTOP-KB9HII50\70708 2 tahun lalu
induk
melakukan
cbfc753118

+ 0 - 29
svr/svr-iot/src/main/java/com/yihu/iot/config/jpa/HibernateProperties.java

@ -1,29 +0,0 @@
//package com.yihu.iot.config.jpa;
//
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.cloud.context.config.annotation.RefreshScope;
//import org.springframework.stereotype.Component;
//
//import java.util.Properties;
//
///**
// * Created by chenweida on 2017/4/6.
// */
//@Component
//@RefreshScope
//public class HibernateProperties {
//    @Value("${hibernate.dialect}")
//    private String dialect;
//    @Value("${hibernate.show_sql}")
//    private String show_sql;
//    @Value("${hibernate.ejb.naming_strategy}")
//    private String naming_strategy;
//
//    public  Properties hibProperties() {
//        Properties properties = new Properties();
//        properties.put("hibernate.dialect",dialect);
//        properties.put("hibernate.show_sql", show_sql);
//        properties.put("hibernate.ejb.naming_strategy", naming_strategy);
//        return properties;
//    }
//}

+ 0 - 65
svr/svr-iot/src/main/java/com/yihu/iot/config/jpa/IotJpa.java

@ -1,65 +0,0 @@
//package com.yihu.iot.config.jpa;
//
//
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.beans.factory.annotation.Qualifier;
//import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
//import org.springframework.boot.context.properties.ConfigurationProperties;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//import org.springframework.context.annotation.Primary;
//import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
//import org.springframework.orm.jpa.JpaTransactionManager;
//import org.springframework.orm.jpa.JpaVendorAdapter;
//import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
//import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;
//import org.springframework.transaction.annotation.EnableTransactionManagement;
//
//import javax.persistence.EntityManagerFactory;
//import javax.sql.DataSource;
//
///**
// * Created by chenweida on 2017/4/6.
// */
//@Configuration
//@EnableTransactionManagement
//@EnableJpaRepositories(
//        entityManagerFactoryRef = "iotEntityManagerFactory",
//        transactionManagerRef = "iotTransactionManager",
//        basePackages = {"com.yihu.iot.dict","com.yihu.iot.datainput.dict"})   //设置Repository所在位置
//public class IotJpa {
//
//    @Autowired
//    private HibernateProperties hibernateProperties;
//
//    @Bean(name = "iotEntityManagerFactory")
//    @Primary
//    public LocalContainerEntityManagerFactoryBean entityManagerFactoryPrimary(DataSource dataSource) {
//
//        LocalContainerEntityManagerFactoryBean emfb = new LocalContainerEntityManagerFactoryBean();
//        emfb.setDataSource(dataSource);
//        emfb.setPackagesToScan("com.yihu.jw.entity.iot");
//        emfb.setPersistenceUnitName("iot");
//        JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
//        emfb.setJpaVendorAdapter(vendorAdapter);
//        emfb.setJpaProperties(hibernateProperties.hibProperties());
//
//        return emfb;
//    }
//
//
//    @Bean(name = "iotTransactionManager")
//    @Primary
//    JpaTransactionManager transactionManagerSecondary(
//            @Qualifier("iotEntityManagerFactory") EntityManagerFactory builder) {
//        return new JpaTransactionManager(builder);
//    }
//
//    @Bean
//    @Primary
//    @ConfigurationProperties(prefix = "spring.datasource")
//    public DataSource dataSource(){
//        return DataSourceBuilder.create().build();
//    }
//
//}

+ 174 - 0
svr/svr-iot/src/main/java/com/yihu/iot/controller/dict/WlyyHospitalSysDictEndpoint.java

@ -0,0 +1,174 @@
package com.yihu.iot.controller.dict;
import com.yihu.iot.service.dict.WlyyHospitalSysDictService;
import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.rm.base.BaseRequestMapping;
import com.yihu.jw.rm.hospital.BaseHospitalRequestMapping;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping(value = BaseRequestMapping.DictDisease.PREFIX)
@Api(value = "Sys字典管理", description = "Sys字典管理", tags = {"wlyy基础服务 - Sys字典管理"})
public class WlyyHospitalSysDictEndpoint extends EnvelopRestEndpoint {
    private static Logger logger = LoggerFactory.getLogger(WlyyHospitalSysDictEndpoint.class);
    @Autowired
    private WlyyHospitalSysDictService wlyyHospitalSysDictService;
    @ApiOperation("查询字典")
    @GetMapping(value= BaseHospitalRequestMapping.PatientNoLogin.findDict)
    public MixEnvelop findDict(@ApiParam(name = "name", value = "name", required = false)
                                @RequestParam(value = "name", required = false)String name,
                                @ApiParam(name = "modelName", value = "modelName", required = false)
                                @RequestParam(value = "modelName", required = false)String modelName,
                                @ApiParam(name = "code", value = "code", required = false)
                                @RequestParam(value = "code", required = false)String code,
                                @ApiParam(name = "value", value = "value", required = false)
                                @RequestParam(value = "value", required = false)String value,
                                @ApiParam(name = "page", value = "page", required = false)
                                @RequestParam(value = "page", required = false) Integer page,
                                @ApiParam(name = "pageSize", value = "pageSize", required = false)
                                @RequestParam(value = "pageSize", required = false)Integer pageSize){
        return wlyyHospitalSysDictService.findDictsByNameCode(modelName,name,code,value,page,pageSize);
    }
    @ApiOperation("删除字典")
    @GetMapping(value= BaseHospitalRequestMapping.PatientNoLogin.delDict)
    public Envelop delDict(@ApiParam(name = "id", value = "id", required = true)
                           @RequestParam(value = "id", required = true)String id){
        return success(wlyyHospitalSysDictService.deleteDictById(id));
    }
    @ApiOperation("新增/修改字典")
    @GetMapping(value= BaseHospitalRequestMapping.PatientNoLogin.createOrUpdateDict)
    public Envelop createOrUpdateDict(@ApiParam(name = "json", value = "id", required = true)
                                      @RequestParam(value = "json", required = true)String json) throws Exception{
        WlyyHospitalSysDictDO wlyyHospitalSysDictDO = wlyyHospitalSysDictService.updateOrCreateDict(json);
        if (wlyyHospitalSysDictDO==null){
            return failed("请设置轮播图排序");
        }
        return success(wlyyHospitalSysDictDO);
    }
    @ApiOperation("查单条")
    @GetMapping(value= BaseHospitalRequestMapping.PatientNoLogin.findOneDict)
    public Envelop findOneDict(@ApiParam(name = "id", value = "id", required = true)
                                      @RequestParam(value = "id", required = true)String id) throws Exception{
        return success(wlyyHospitalSysDictService.findOne(id));
    }
    @ApiOperation("查字典模块")
    @GetMapping(value= BaseHospitalRequestMapping.PatientNoLogin.findModelDict)
    public MixEnvelop findModelDict(@ApiParam(name = "modelName", value = "modelName", required = false)
                               @RequestParam(value = "modelName", required = false)String modelName,
                                    @ApiParam(name = "dictName", value = "dictName", required = false)
            @RequestParam(value = "dictName", required = false)String dictName,
                                    @ApiParam(name = "page", value = "page", required = false)
                                         @RequestParam(value = "page", required = false) Integer page,
                                    @ApiParam(name = "pageSize", value = "pageSize", required = false)
                                         @RequestParam(value = "pageSize", required = false)Integer pageSize) throws Exception{
        return wlyyHospitalSysDictService.findModel(modelName,dictName,page,pageSize);
    }
    @ApiOperation("批量修改字典")
    @GetMapping(value= BaseHospitalRequestMapping.PatientNoLogin.updateDictGroup)
    public Envelop updateDictGroup(@ApiParam(name = "json", value = "", required = true)
                                      @RequestParam(value = "json", required = true)String json) {
        try {
            return wlyyHospitalSysDictService.updateByModelName(json);
        } catch (Exception e) {
            e.printStackTrace();
            return failed(e.getMessage());
        }
    }
    @ApiOperation("批量删除字典")
    @GetMapping(value= BaseHospitalRequestMapping.PatientNoLogin.delDictGroup)
    public Envelop delDictGroup(@ApiParam(name = "preDictName", value = "", required = true)
                                   @RequestParam(value = "preDictName", required = true)String preDictName) throws Exception{
        return wlyyHospitalSysDictService.deleteByModelName(preDictName);
    }
    @ApiOperation("上移推荐医生")
    @GetMapping(value= BaseHospitalRequestMapping.PatientNoLogin.upDoctorDict)
    public Envelop upDoctorDict(@ApiParam(name = "id", value = "", required = true)
                                @RequestParam(value = "id", required = true)String id){
        try {
           return success(wlyyHospitalSysDictService.upDoctor(id));
        } catch (Exception e) {
            return failed(e.getMessage());
        }
    }
    @ApiOperation("下移推荐医生")
    @GetMapping(value= BaseHospitalRequestMapping.PatientNoLogin.downDoctorDict)
    public Envelop downDoctorDict(@ApiParam(name = "id", value = "", required = true)
                                @RequestParam(value = "id", required = true)String id){
        try {
            return success(wlyyHospitalSysDictService.downDoctor(id));
        } catch (Exception e) {
            return failed(e.getMessage());
        }
    }
    @ApiOperation("插入推荐医生顺序")
    @GetMapping(value= BaseHospitalRequestMapping.PatientNoLogin.insertSortDoctorDict)
    public Envelop insertSortDoctorDict(@ApiParam(name = "id", value = "", required = true)
                                @RequestParam(value = "id", required = true)String id,
                                        @ApiParam(name = "sort", value = "", required = true)
                                        @RequestParam(value = "sort", required = true)Integer sort) throws Exception{
        wlyyHospitalSysDictService.insertSort(id,sort);
        return success("操作成功");
    }
    @ApiOperation("保存推荐医生词典")
    @PostMapping(value= BaseHospitalRequestMapping.PatientNoLogin.saveSortDoctorDict)
    public Envelop saveSortDoctorDict(@ApiParam(name = "json", value = "", required = true)
                                        @RequestParam(value = "json", required = true)String json
                                        ) {
        try {
            wlyyHospitalSysDictService.saveDictDoctor(json);
            return success("操作成功");
        } catch (Exception e) {
            return failed(e.getMessage());
        }
    }
    @ApiOperation("查询推荐医生词典")
    @GetMapping(value= BaseHospitalRequestMapping.PatientNoLogin.findSortDoctorDict)
    public MixEnvelop findSortDoctorDict(@ApiParam(name = "orgCode", value = "", required = false)
                                      @RequestParam(value = "orgCode", required = false)String orgCode,
                                      @ApiParam(name = "del", value = "", required = false)
                                      @RequestParam(value = "del", required = false)String del,
                                      @ApiParam(name = "doctorName", value = "", required = false)
                                          @RequestParam(value = "doctorName", required = false)String doctorName,
                                      @ApiParam(name = "page", value = "", required = false)
                                          @RequestParam(value = "page", required = false)Integer page,
                                      @ApiParam(name = "pageSize", value = "", required = false)
                                          @RequestParam(value = "pageSize", required = false)Integer pageSize) {
        return  wlyyHospitalSysDictService.findSortDoctors(orgCode,del,doctorName,page,pageSize);
    }
}

+ 63 - 0
svr/svr-iot/src/main/java/com/yihu/iot/dao/dict/WlyyHospitalSysDictDao.java

@ -0,0 +1,63 @@
package com.yihu.iot.dao.dict;
import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
 * Created by Trick on 2019/6/17.
 */
public interface WlyyHospitalSysDictDao extends PagingAndSortingRepository<WlyyHospitalSysDictDO, String>, JpaSpecificationExecutor<WlyyHospitalSysDictDO> {
    WlyyHospitalSysDictDO findByHospitalAndDictCode(String hospital, String dictCode);
    List<WlyyHospitalSysDictDO> findByHospitalAndDictNameOrderBySortAsc(String hospital, String dictName);
    WlyyHospitalSysDictDO findById(String id);
    @Query("from WlyyHospitalSysDictDO where dictName = ?1  and  dictCode is null order by sort asc")
    List<WlyyHospitalSysDictDO> findByDictNameNotNull(String dictName);
    List<WlyyHospitalSysDictDO> findByDictName(String dictName);
    @Query("from WlyyHospitalSysDictDO where 1=1")
    List<WlyyHospitalSysDictDO> findAlldict();
    @Query("from WlyyHospitalSysDictDO where dictCode = ?1")
    List<WlyyHospitalSysDictDO> findByDictCode(String dictCode);
    List<WlyyHospitalSysDictDO> findByDictNameAndDictCode(String dictName,String dictCode);
    @Query("from WlyyHospitalSysDictDO where dictName = ?1 and hospital=?2 order by sort asc")
    List<WlyyHospitalSysDictDO> findByDictNameOrderBySort(String dictName,String orgCode);
    @Query("from WlyyHospitalSysDictDO where dictName = ?1 and hospital=?2 order by sort desc ")
    List<WlyyHospitalSysDictDO> getMaxSort(String dictName,String hospital);
    @Query("from WlyyHospitalSysDictDO where dictName = ?1 and hospital=?2 order by sort asc ")
    List<WlyyHospitalSysDictDO>  getMinSort(String dictName,String hospital);
    @Query("from WlyyHospitalSysDictDO where dictName = ?1  and  hospital=?2 and sort >= ?3 order by sort asc")
    List<WlyyHospitalSysDictDO> findByDictNameSortOrderBySort(String dictName,String hospital,Integer sort);
    @Query("from WlyyHospitalSysDictDO where dictName = ?1  and  dictCode=?2 ")
    WlyyHospitalSysDictDO findOneByDictNameAndDictCode(String dictName,String dictCode);
    @Query("from WlyyHospitalSysDictDO where dictName = ?1 and imgUrl is not null order by sort asc")
    List<WlyyHospitalSysDictDO> findByDictNameOrderBySort(String dictName);
    WlyyHospitalSysDictDO findByDictNameAndSort(String dictName, Integer sort);
    @Query("from WlyyHospitalSysDictDO where dictName = ?1 and sort>?2")
    List<WlyyHospitalSysDictDO> findByDictNameAndSortNear(String dictName,Integer sort);
    @Modifying
    @Transactional
    @Query("update WlyyHospitalSysDictDO set pyCode =?1 where id=?2 and dictName =?3")
    void updatePyCode(String pyCode,String id,String dictName);
}

+ 2 - 3
svr/svr-iot/src/main/java/com/yihu/iot/interceptor/CrosXssFilter.java

@ -1,6 +1,5 @@
package com.yihu.iot.interceptor;
import com.alibaba.fastjson.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -24,11 +23,11 @@ public class CrosXssFilter implements Filter {
        response.setContentType("text/html;charset=utf-8");
        //sql,xss过滤
        HttpServletRequest httpServletRequest=(HttpServletRequest)request;
        logger.info("CrosXssFilter.......orignal url:{},ParameterMap:{}",httpServletRequest.getRequestURI(), JSONObject.toJSONString(httpServletRequest.getParameterMap()));
//        logger.info("CrosXssFilter.......orignal url:{},ParameterMap:{}",httpServletRequest.getRequestURI(), JSONObject.toJSONString(httpServletRequest.getParameterMap()));
        XssHttpServletRequestWrapper xssHttpServletRequestWrapper=new XssHttpServletRequestWrapper(
                httpServletRequest);
        chain.doFilter(xssHttpServletRequestWrapper, response);
        logger.info("CrosXssFilter..........doFilter url:{},ParameterMap:{}",xssHttpServletRequestWrapper.getRequestURI(), JSONObject.toJSONString(xssHttpServletRequestWrapper.getParameterMap()));
//        logger.info("CrosXssFilter..........doFilter url:{},ParameterMap:{}",xssHttpServletRequestWrapper.getRequestURI(), JSONObject.toJSONString(xssHttpServletRequestWrapper.getParameterMap()));
    }
    @Override
    public void destroy() {

+ 481 - 0
svr/svr-iot/src/main/java/com/yihu/iot/service/dict/WlyyHospitalSysDictService.java

@ -0,0 +1,481 @@
package com.yihu.iot.service.dict;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.iot.dao.dict.WlyyHospitalSysDictDao;
import com.yihu.iot.util.excel.HibenateUtils;
import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.mysql.query.BaseJpaService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@Service
public class WlyyHospitalSysDictService extends BaseJpaService<WlyyHospitalSysDictDO, WlyyHospitalSysDictDao> {
    @Autowired
    private  WlyyHospitalSysDictDao wlyyHospitalSysDictDao;
    @Autowired
    private HibenateUtils hibenateUtils;
    @Autowired
    private ObjectMapper objectMapper;
    //查字典
    public MixEnvelop findDictsByNameCode(String modelName,String name,String code,String value,Integer page ,Integer pageSize){
        String  sql = "select t.id as \"id\"," +
                " t.dict_name  as \"dictName\","+
                " t.model_name  as \"modelName\","+
                " t.dict_code  as \"dictCode\","+
                " t.dict_value   as \"dictValue\","+
                " t.sort   as \"sort\","+
                " t.py_code  as \"pyCode\","+
                " t.hospital  as \"hospital\","+
                " t.img_url  as \"imgUrl\","+
                " t.create_time as \"createTime\""+
                " from wlyy_hospital_sys_dict t where 1=1  ";
        if (StringUtils.isNoneBlank(name)){
            sql+=" and t.dict_name = '"+name+"'";
        }
        if (StringUtils.isNoneBlank(modelName)){
            sql+=" and t.model_name like '%"+modelName+"%'";
        }
        if (StringUtils.isNoneBlank(code)){
            sql+=" and t.dict_code like '%"+code+"%'";
        }
        if (StringUtils.isNoneBlank(value)){
            sql+=" and t.dict_value like '%"+value+"%'";
        }
        sql+=" and t.dict_code is not null and  t.dict_code != ''";
        if (page==null||page==null){
            List<Map<String,Object>> list = hibenateUtils.createSQLQuery(sql);
            MixEnvelop mixEnvelop = new MixEnvelop();
            mixEnvelop.setTotalCount(list==null?0:list.size());
            mixEnvelop.setDetailModelList(list);
            return  mixEnvelop;
        }else {
            List<Map<String,Object>> list = hibenateUtils.createSQLQuery(sql,page,pageSize);
            List<Map<String,Object>> listCount = hibenateUtils.createSQLQuery(sql);
            MixEnvelop mixEnvelop = new MixEnvelop();
            mixEnvelop.setTotalCount(listCount==null?0:listCount.size());
            mixEnvelop.setCurrPage(page);
            mixEnvelop.setPageSize(pageSize);
            mixEnvelop.setDetailModelList(list);
            return  mixEnvelop;
        }
    }
    public WlyyHospitalSysDictDO updateOrCreateDict(String json) throws  Exception{
        WlyyHospitalSysDictDO  wlyyHospitalSysDictDO = objectMapper.readValue(json, WlyyHospitalSysDictDO.class);
        String modelName = "";
        if (StringUtils.isNoneBlank(wlyyHospitalSysDictDO.getDictName())){
            List<WlyyHospitalSysDictDO> modelNameList=wlyyHospitalSysDictDao.findByDictName(wlyyHospitalSysDictDO.getDictName());
            if (modelNameList!=null&&modelNameList.size()>0){
                modelName= modelNameList.get(0).getModelName();
            }
        }
        wlyyHospitalSysDictDO.setModelName(modelName);
        if(StringUtils.isNoneBlank(wlyyHospitalSysDictDO.getId())){
            WlyyHospitalSysDictDO wlyyHospitalSysDictDO1 = wlyyHospitalSysDictDao.findById(wlyyHospitalSysDictDO.getId());
            List<WlyyHospitalSysDictDO> wlyyHospitalSysDictDOList=new ArrayList<>();
            if (wlyyHospitalSysDictDO1!=null){
                wlyyHospitalSysDictDO1.setDictValue(wlyyHospitalSysDictDO.getDictValue());
                wlyyHospitalSysDictDO1.setDictCode(wlyyHospitalSysDictDO.getDictCode());
                wlyyHospitalSysDictDO1.setDictName(wlyyHospitalSysDictDO.getDictName());
                wlyyHospitalSysDictDO1.setHospital(wlyyHospitalSysDictDO.getHospital());
                wlyyHospitalSysDictDO1.setPyCode(wlyyHospitalSysDictDO.getPyCode());
                wlyyHospitalSysDictDO1.setImgUrl(wlyyHospitalSysDictDO.getImgUrl());
                if (wlyyHospitalSysDictDO.getDictName().equalsIgnoreCase("ONLINE_HOSPITAL_BANNER")){
                    if (wlyyHospitalSysDictDO.getSort()==null||wlyyHospitalSysDictDO.getSort()<=0){
                        return null;
                    }
                    WlyyHospitalSysDictDO wlyyHospitalSysDictDOs = wlyyHospitalSysDictDao.findByDictNameAndSort(wlyyHospitalSysDictDO.getDictName(),wlyyHospitalSysDictDO.getSort());
                    wlyyHospitalSysDictDOList= wlyyHospitalSysDictDao.findByDictNameAndSortNear("ONLINE_HOSPITAL_BANNER",wlyyHospitalSysDictDO.getSort());
                    if (wlyyHospitalSysDictDOs==null&&wlyyHospitalSysDictDOList.size()==0){
                        wlyyHospitalSysDictDO1.setSort(wlyyHospitalSysDictDO.getSort());
                    }else if (wlyyHospitalSysDictDOs==null&&wlyyHospitalSysDictDOList.size()>0){
                        wlyyHospitalSysDictDO1.setSort(wlyyHospitalSysDictDO.getSort());
                    }else if (wlyyHospitalSysDictDOs!=null&&wlyyHospitalSysDictDOList.size()==0){
                        wlyyHospitalSysDictDOs.setSort(wlyyHospitalSysDictDOs.getSort()+1);
                        wlyyHospitalSysDictDO1.setSort(wlyyHospitalSysDictDO.getSort());
                    }else {
                        for (WlyyHospitalSysDictDO wlyyHospitalSysDictDO2 : wlyyHospitalSysDictDOList) {
                            wlyyHospitalSysDictDO1.setSort(wlyyHospitalSysDictDO.getSort());
                            Integer sort = wlyyHospitalSysDictDO2.getSort();
                            sort++;
                            wlyyHospitalSysDictDO2.setSort(sort);
                        }
                        wlyyHospitalSysDictDao.save(wlyyHospitalSysDictDOList);
                    }
                }else {
                    wlyyHospitalSysDictDO1.setSort(wlyyHospitalSysDictDO.getSort());
                }
                wlyyHospitalSysDictDO1.setModelName(modelName);
            }else {
                wlyyHospitalSysDictDO1 = new WlyyHospitalSysDictDO();
                wlyyHospitalSysDictDO1.setDictValue(wlyyHospitalSysDictDO.getDictValue());
                wlyyHospitalSysDictDO1.setDictCode(wlyyHospitalSysDictDO.getDictCode());
                wlyyHospitalSysDictDO1.setDictName(wlyyHospitalSysDictDO.getDictName());
                wlyyHospitalSysDictDO1.setHospital(wlyyHospitalSysDictDO.getHospital());
                wlyyHospitalSysDictDO1.setPyCode(wlyyHospitalSysDictDO.getPyCode());
                wlyyHospitalSysDictDO1.setImgUrl(wlyyHospitalSysDictDO.getImgUrl());
                if (wlyyHospitalSysDictDO.getDictName().equalsIgnoreCase("ONLINE_HOSPITAL_BANNER")){
                    if (wlyyHospitalSysDictDO.getSort()==null||wlyyHospitalSysDictDO.getSort()<=0){
                        return null;
                    }
                    WlyyHospitalSysDictDO wlyyHospitalSysDictDOs = wlyyHospitalSysDictDao.findByDictNameAndSort(wlyyHospitalSysDictDO.getDictName(),wlyyHospitalSysDictDO.getSort());
                    wlyyHospitalSysDictDOList= wlyyHospitalSysDictDao.findByDictNameAndSortNear("ONLINE_HOSPITAL_BANNER",wlyyHospitalSysDictDO.getSort());
                    if (wlyyHospitalSysDictDOs==null&&wlyyHospitalSysDictDOList.size()==0){
                        wlyyHospitalSysDictDO1.setSort(wlyyHospitalSysDictDO.getSort());
                    }else if (wlyyHospitalSysDictDOs==null&&wlyyHospitalSysDictDOList.size()>0){
                        wlyyHospitalSysDictDO1.setSort(wlyyHospitalSysDictDO.getSort());
                    }else if (wlyyHospitalSysDictDOs!=null&&wlyyHospitalSysDictDOList.size()==0){
                        wlyyHospitalSysDictDOs.setSort(wlyyHospitalSysDictDOs.getSort()+1);
                        wlyyHospitalSysDictDO1.setSort(wlyyHospitalSysDictDO.getSort());
                    }else {
                        for (WlyyHospitalSysDictDO wlyyHospitalSysDictDO2 : wlyyHospitalSysDictDOList) {
                            wlyyHospitalSysDictDO1.setSort(wlyyHospitalSysDictDO.getSort());
                            Integer sort = wlyyHospitalSysDictDO2.getSort();
                            sort++;
                            wlyyHospitalSysDictDO2.setSort(sort);
                        }
                        wlyyHospitalSysDictDao.save(wlyyHospitalSysDictDOList);
                    }
                }else {
                    wlyyHospitalSysDictDO1.setSort(wlyyHospitalSysDictDO.getSort());
                }
                wlyyHospitalSysDictDO1.setModelName(modelName);
            }
            return wlyyHospitalSysDictDao.save(wlyyHospitalSysDictDO1);
        }
        return wlyyHospitalSysDictDao.save(wlyyHospitalSysDictDO);
    }
    //根据id删除字典
    public String  deleteDictById(String id){
        String msg = "";
        if (StringUtils.isNoneBlank(id)){
           WlyyHospitalSysDictDO wlyyHospitalSysDictDO = wlyyHospitalSysDictDao.findById(id);
           if (wlyyHospitalSysDictDO!=null) {
               wlyyHospitalSysDictDao.delete(id);
               msg = "删除成功";
           }else {
               msg = "没有这条记录";
           }
        }else{
            msg = "id为空";
        }
        return msg;
    }
    public WlyyHospitalSysDictDO findOne(String id){
        return  wlyyHospitalSysDictDao.findById(id);
    }
    //查字典
    public MixEnvelop findModel(String modelName, String name, Integer page , Integer pageSize){
        MixEnvelop mixEnvelop = new MixEnvelop();
        String  sql = "select " +
                " t.dict_name  as \"dictName\","+
                " t.model_name  as \"modelName\""+
                " from wlyy_hospital_sys_dict t where 1=1 ";
        if (StringUtils.isNoneBlank(name)){
            sql+=" and t.dict_name like '%"+name+"%'";
        }
        if (StringUtils.isNoneBlank(modelName)){
            sql+=" and t.model_name like '%"+modelName+"%'";
        }
        sql+=" group by t.dict_name,t.model_name ";
        List<Map<String,Object>> list = hibenateUtils.createSQLQuery(sql,page,pageSize);
        List<Map<String,Object>> listCount = hibenateUtils.createSQLQuery(sql);
        if (listCount!=null){
            mixEnvelop.setTotalCount(listCount.size());
        }else {
            mixEnvelop.setTotalCount(0);
        }
        mixEnvelop.setDetailModelList(list);
        mixEnvelop.setCurrPage(page);
        mixEnvelop.setPageSize(pageSize);
        return  mixEnvelop;
    }
    public Envelop updateByModelName(String jsonData) throws Exception{
        Envelop envelop = new Envelop();
        JSONObject jsonObject = JSONObject.parseObject(jsonData);
        if (StringUtils.isNoneBlank(jsonObject.getString("preDictName"))){
            String preDictName = jsonObject.get("preDictName").toString();
            List<WlyyHospitalSysDictDO> list  =  wlyyHospitalSysDictDao.findByDictName(preDictName);
            for (WlyyHospitalSysDictDO wlyyHospitalSysDictDO:list){
                if (jsonObject.get("dictName")!=null){
                    wlyyHospitalSysDictDO.setDictName(jsonObject.get("dictName").toString());
                }
                if (jsonObject.get("modelName")!=null){
                    wlyyHospitalSysDictDO.setModelName(jsonObject.get("modelName").toString());
                }
            }
            wlyyHospitalSysDictDao.save(list);
            envelop.setMessage("操作成功");
            envelop.setStatus(200);
        }else {
            if (jsonObject.get("dictName")!=null){
                List<WlyyHospitalSysDictDO> list  =  wlyyHospitalSysDictDao.findByDictName(jsonObject.get("dictName").toString());
                if (list!=null&&list.size()>0){
                    throw new Exception("该dictName已经存在");
                }else {
                    WlyyHospitalSysDictDO wlyyHospitalSysDictDO=new WlyyHospitalSysDictDO();
                    wlyyHospitalSysDictDO.setDictName(jsonObject.get("dictName").toString());
                    if (jsonObject.get("modelName")!=null){
                        wlyyHospitalSysDictDO.setModelName(jsonObject.get("modelName").toString());
                    }
                    wlyyHospitalSysDictDao.save(wlyyHospitalSysDictDO);
                }
                envelop.setMessage("操作成功");
                envelop.setStatus(200);
            }else {
                envelop.setMessage("dictName为空");
                envelop.setStatus(-1);
            }
        }
        return envelop;
    }
    public Envelop deleteByModelName(String preDictName){
        Envelop envelop = new Envelop();
        if (StringUtils.isNoneBlank(preDictName)){
            List<WlyyHospitalSysDictDO> list  =  wlyyHospitalSysDictDao.findByDictName(preDictName);
            for (WlyyHospitalSysDictDO wlyyHospitalSysDictDO:list){
                wlyyHospitalSysDictDao.delete(wlyyHospitalSysDictDO);
            }
            envelop.setMessage("操作成功");
            envelop.setStatus(200);
        }else {
            envelop.setMessage("preDictName为空");
            envelop.setStatus(-1);
        }
        return envelop;
    }
    public WlyyHospitalSysDictDO downDoctor(String id) throws Exception{
        WlyyHospitalSysDictDO sysDictDO = wlyyHospitalSysDictDao.findOne(id);
        List<WlyyHospitalSysDictDO> maxSortList =  wlyyHospitalSysDictDao.getMaxSort(sysDictDO.getDictName(),sysDictDO.getHospital());
        int maxSort =0;
        if (maxSortList!=null&&maxSortList.size()>0){
            maxSort = maxSortList.get(0).getSort();
        }
        int sort = 0;
        if(null!=sysDictDO){
            sort = sysDictDO.getSort();
        }
        if (maxSort==sort){
            throw new Exception("不能下移");
        }
        String sql = "select t.id AS \"id\" from wlyy_hospital_sys_dict t where t.dict_name='"+sysDictDO.getDictName()+"' and t.hospital='"+sysDictDO.getHospital()+"' and t.sort > "+sort+" order by t.sort asc ";
        System.out.println(sql);
        List<Map<String,Object>> list=hibenateUtils.createSQLQuery(sql,1,1);
        WlyyHospitalSysDictDO upPrevious = new WlyyHospitalSysDictDO();
        if (list.size()>0){
            String prviousId = list.get(0).get("id").toString();
            upPrevious =wlyyHospitalSysDictDao.findOne(prviousId);
        }
        //BaseBannerDO upPrevious = baseBannerDao.upBanner(sort);
        //交换sort值
        sysDictDO.setSort(upPrevious.getSort());
        upPrevious.setSort(sort);
        wlyyHospitalSysDictDao.save(sysDictDO);
        wlyyHospitalSysDictDao.save(upPrevious);
        return sysDictDO;
    }
    public WlyyHospitalSysDictDO upDoctor(String id) throws Exception{
        WlyyHospitalSysDictDO sysDictDO = wlyyHospitalSysDictDao.findOne(id);
        List<WlyyHospitalSysDictDO> minSortList =  wlyyHospitalSysDictDao.getMinSort(sysDictDO.getDictName(),sysDictDO.getHospital());
        int minSort =0;
        if (minSortList!=null&&minSortList.size()>0){
            minSort = minSortList.get(0).getSort();
        }
        int sort = 0;
        if(null!=sysDictDO){
            sort = sysDictDO.getSort();
        }
        if (minSort==sort){
            throw new Exception("不能上移");
        }
        String sql = "select t.id AS \"id\" from wlyy_hospital_sys_dict t where t.dict_name='"+sysDictDO.getDictName()+"' and t.hospital ='"+sysDictDO.getHospital()+"' and t.sort < "+sort+" order by t.sort asc ";
        System.out.println(sql);
        List<Map<String,Object>> list=hibenateUtils.createSQLQuery(sql,1,1);
        WlyyHospitalSysDictDO downPrevious = new WlyyHospitalSysDictDO();
        if (list.size()>0){
            String prviousId = list.get(0).get("id").toString();
            downPrevious =wlyyHospitalSysDictDao.findOne(prviousId);
        }
        //BaseBannerDO upPrevious = baseBannerDao.upBanner(sort);
        //交换sort值
        sysDictDO.setSort(downPrevious.getSort());
        downPrevious.setSort(sort);
        wlyyHospitalSysDictDao.save(sysDictDO);
        wlyyHospitalSysDictDao.save(downPrevious);
        return sysDictDO;
    }
    public void insertSort(String id,Integer sort){
        WlyyHospitalSysDictDO sysDictDO = wlyyHospitalSysDictDao.findOne(id);
        if (sysDictDO!=null){
            Integer  max= 0;
            List<WlyyHospitalSysDictDO> maxList = wlyyHospitalSysDictDao.getMaxSort("doctorFrontList",sysDictDO.getHospital());
            if (maxList!=null&&maxList.size()>0){
                max= maxList.get(0).getSort();
            }
            if (sort!=null&&sort<max){
                List<WlyyHospitalSysDictDO> list = wlyyHospitalSysDictDao.findByDictNameSortOrderBySort(sysDictDO.getDictName(),sysDictDO.getHospital(),sort);
                for (WlyyHospitalSysDictDO wlyyHospitalSysDictDO:list){
                    wlyyHospitalSysDictDO.setSort(wlyyHospitalSysDictDO.getSort()+1);
                    wlyyHospitalSysDictDao.save(wlyyHospitalSysDictDO);
                }
                sysDictDO.setSort(sort);
                wlyyHospitalSysDictDao.save(sysDictDO);
            }else if (sort!=null&&sort>=max){
                sysDictDO.setSort(max+1);
                wlyyHospitalSysDictDao.save(sysDictDO);
            }
        }
    }
    public void saveDictDoctor(String json) throws Exception{
        JSONArray jsonArray = JSONArray.parseArray(json);
        if (jsonArray!=null&&jsonArray.size()>0){
            for (int i=0;i<jsonArray.size();i++){
               JSONObject jsonObject = jsonArray.getJSONObject(i);
               String orgCode = jsonObject.getString("hosptial");
               JSONArray dictArray = jsonObject.getJSONArray("dictList");
               Integer  max= 0;
               List<WlyyHospitalSysDictDO> maxList = wlyyHospitalSysDictDao.getMaxSort("doctorFrontList",orgCode);
               if (maxList!=null&&maxList.size()>0){
                   max= maxList.get(0).getSort();
               }
               if (max==null){
                   max = 0;
               }
               for (int j=0;j<dictArray.size();j++){
                   JSONObject jsonObject1 = dictArray.getJSONObject(j);
                   WlyyHospitalSysDictDO wlyyHospitalSysDictDO = jsonObject1.toJavaObject(WlyyHospitalSysDictDO.class);
                   wlyyHospitalSysDictDO.setHospital(orgCode);
                   wlyyHospitalSysDictDO.setSort(max+1);
                   max++;
                   wlyyHospitalSysDictDao.save(wlyyHospitalSysDictDO);
               }
            }
        }
    }
    public MixEnvelop findSortDoctors(String orgCode,String del,String doctorName,Integer page ,Integer pageSize){
        String sql =" select DISTINCT t.id as \"id\"," +
                " t.dict_value as \"dict_value\"," +
                " t.dict_code as \"dict_code\"," +
                " t.sort as \"sort\"," +
                " t.hospital as \"hospital\"," +
                " b.idcard as \"idcard\"," +
                " b.del as \"del\"," +
                " case when b.sex =1 then '男' when b.sex =2 then '女' else '未知' end sex," +
                " b.mobile as \"mobile\"," +
                " b.job_title_name as \"jobTitleName\"," +
                " d.org_name as \"orgName\"" +
                "  from wlyy_hospital_sys_dict t left join base_doctor b on t.dict_code = b.id " +
                " left join base_doctor_hospital d on t.dict_code = d.doctor_code where 1=1 and dict_name ='doctorFrontList' ";
        if (StringUtils.isNoneBlank(orgCode)){
            sql+=" and t.hospital = '"+orgCode+"'";
        }
        if (StringUtils.isNoneBlank(del)){
            sql+=" and b.del = '"+del+"'";
        }
        if (StringUtils.isNoneBlank(doctorName)){
            sql+=" and b.name like '%"+doctorName+"%'";
        }
        sql+=" order by t.sort asc";
        System.out.println("sql++++++"+sql);
        List<Map<String,Object>> list = hibenateUtils.createSQLQuery(sql,page,pageSize);
        List<Map<String,Object>> listCount = hibenateUtils.createSQLQuery(sql);
        List<WlyyHospitalSysDictDO> sysDictDOS=wlyyHospitalSysDictDao.findByDictName("drugStoreStatus");
        if (sysDictDOS!=null&&list.size()>0){
            for (Map<String,Object> map:list){
                for (WlyyHospitalSysDictDO sysDictDO:sysDictDOS){
                    if (map.get("del").toString().equalsIgnoreCase(sysDictDO.getDictCode())){
                        map.put("delName",sysDictDO.getDictValue());
                    }
                }
            }
        }
        MixEnvelop mixEnvelop= new MixEnvelop();
        mixEnvelop.setDetailModelList(list);
        mixEnvelop.setPageSize(pageSize);
        mixEnvelop.setCurrPage(page);
        mixEnvelop.setTotalCount(listCount==null?0:list.size());
        return mixEnvelop;
    }
    /**
     * 字典转译
     *
     * @param dictName
     * @param code
     * @return
     */
    public String getDictValue(String dictName, String code) {
        String re = "";
        /*try {
            if (!StringUtils.isEmpty(code)) {
                //判断该字典redis是否存在
                String exit = redisTemplate.opsForValue().get("systemDict:" + dictName);
                if (!StringUtils.isEmpty(exit)) {
                    re = redisTemplate.opsForValue().get("systemDict:" + dictName + ":" + code);
                    if(StringUtils.isEmpty(re)){
                        WlyyHospitalSysDictDO wlyyHospitalSysDictDO= wlyyHospitalSysDictDao.findOneByDictNameAndDictCode(dictName,code);
                        if (wlyyHospitalSysDictDO!=null){
                            re =wlyyHospitalSysDictDO.getDictValue();
                        }
//                        if (!StringUtils.isEmpty(re)) {
//                            redisTemplate.opsForValue().set("systemDict:" + dictName + ":" + code, re);
//                        }
                    }
                } else {
                    List<WlyyHospitalSysDictDO> list = wlyyHospitalSysDictDao.findByDictName(dictName);
                    if (list != null && list.size() > 0) {
                        redisTemplate.opsForValue().set("systemDict:" + dictName, "1");
                        for (WlyyHospitalSysDictDO item : list) {
                            redisTemplate.opsForValue().set("systemDict:" + dictName + ":" + item.getDictCode(), item.getDictValue());
                            if (code.equals(item.getDictCode())) {
                                re = item.getDictValue();
                            }
                        }
                    }
                }
            }
        } catch (Exception ex) {
            ex.printStackTrace();
        }*/
        if (StringUtils.isNoneBlank(code)){
            WlyyHospitalSysDictDO wlyyHospitalSysDictDO= wlyyHospitalSysDictDao.findOneByDictNameAndDictCode(dictName,code);
            if (wlyyHospitalSysDictDO!=null){
                re =wlyyHospitalSysDictDO.getDictValue();
                System.out.println("re"+re);
            }
        }
        return re;
    }
    public List<WlyyHospitalSysDictDO> findByDictName(String dictName) {
        return wlyyHospitalSysDictDao.findByDictNameOrderBySort(dictName);
    }
}