LAPTOP-KB9HII50\70708 1 рік тому
батько
коміт
821b2c8d85

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

@ -1,174 +0,0 @@
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);
    }
}

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

@ -1,63 +0,0 @@
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);
}

+ 13 - 0
svr/svr-iot/src/main/java/com/yihu/iot/dao/statistics/IotStatisticsAppDao.java

@ -0,0 +1,13 @@
package com.yihu.iot.dao.statistics;
import com.yihu.jw.entity.iot.statistics.IotStatisticsAppDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * Created by yeshijie on 2023/5/5.
 */
public interface IotStatisticsAppDao extends PagingAndSortingRepository<IotStatisticsAppDO,String>,
        JpaSpecificationExecutor<IotStatisticsAppDO> {
}

+ 13 - 0
svr/svr-iot/src/main/java/com/yihu/iot/dao/statistics/IotStatisticsRealtimeDao.java

@ -0,0 +1,13 @@
package com.yihu.iot.dao.statistics;
import com.yihu.jw.entity.iot.statistics.IotStatisticsRealtimeDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * Created by yeshijie on 2023/5/5.
 */
public interface IotStatisticsRealtimeDao  extends PagingAndSortingRepository<IotStatisticsRealtimeDO,String>,
        JpaSpecificationExecutor<IotStatisticsRealtimeDO> {
}

+ 36 - 14
svr/svr-iot/src/main/java/com/yihu/iot/service/company/IotCompanyService.java

@ -1,19 +1,25 @@
package com.yihu.iot.service.company;
import com.alibaba.fastjson.JSONObject;
import com.yihu.iot.dao.company.*;
import com.yihu.iot.dao.company.IotCompanyAppDao;
import com.yihu.iot.dao.company.IotCompanyCertificateChangeRecordDao;
import com.yihu.iot.dao.company.IotCompanyDao;
import com.yihu.iot.dao.company.IotCompanyTypeDao;
import com.yihu.iot.dao.platform.IotCompanyAppInterfaceDao;
import com.yihu.iot.dao.platform.IotInterfaceLogDao;
import com.yihu.iot.model.AppServiceCount;
import com.yihu.iot.service.useragent.UserAgent;
import com.yihu.jw.entity.iot.company.*;
import com.yihu.jw.entity.iot.company.IotCompanyAppDO;
import com.yihu.jw.entity.iot.company.IotCompanyCertificateChangeRecordDO;
import com.yihu.jw.entity.iot.company.IotCompanyDO;
import com.yihu.jw.entity.iot.company.IotCompanyTypeDO;
import com.yihu.jw.entity.iot.platform.IotCompanyAppInterfaceDO;
import com.yihu.jw.entity.iot.platform.IotInterfaceLogDO;
import com.yihu.jw.entity.iot.statistics.IotStatisticsAppDO;
import com.yihu.jw.entity.util.AesEncryptUtils;
import com.yihu.jw.restmodel.iot.company.IotCompanyAppVO;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.restmodel.iot.company.IotCompanyTypeVO;
import com.yihu.jw.restmodel.iot.company.IotCompanyVO;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.rm.iot.IotRequestMapping;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.mysql.query.BaseJpaService;
@ -25,8 +31,8 @@ import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.text.ParseException;
import java.util.*;
import java.util.stream.Collectors;
/**
 * @author yeshijie on 2018/1/15.
@ -1177,17 +1183,33 @@ public class IotCompanyService extends BaseJpaService<IotCompanyDO,IotCompanyDao
    }
    public JSONObject getAppService(){
        JSONObject object = new JSONObject();
        String str = "SELECT SUM(b.count) count,b.app_name appName FROM " +
                "(SELECT COUNT(id) count,app_name,interface_name FROM xmiot.iot_interface_log " +
                " WHERE state=0 OR (app_name IS NOT NULL and app_id<>'2c9a80ed72393a3301724abe57ec0032' AND app_id <> 'b5125656570011ec8771005056ab2351') " +
                "GROUP BY app_name,interface_name) b\n" +
                "GROUP BY b.app_name ORDER BY count DESC";
        List<AppServiceCount> counts = jdbcTemplate.query(str,new BeanPropertyRowMapper<>(AppServiceCount.class));
        object.put("appcount",counts.size());
        object.put("sortList",counts.subList(0,3));
        object.put("medicalcount",40);//目前暂无医疗机构接入,默认0家。
        String sql = "select * from iot_statistics_app order by num desc";
        List<IotStatisticsAppDO> appDOS = jdbcTempalte.query(sql,new BeanPropertyRowMapper<>(IotStatisticsAppDO.class));
        if(appDOS.size()>0){
            Map<String,List<IotStatisticsAppDO>> listMap = appDOS.stream().collect(Collectors.groupingBy(IotStatisticsAppDO::getType));
            IotStatisticsAppDO appDO = listMap.get("2").get(0);
            object.put("appcount",appDO.getNum());
            object.put("sortList",listMap.get("1"));
            object.put("medicalcount",appDO.getName());
        }else {
            object.put("appcount",0);
            object.put("sortList",new ArrayList<>());
            object.put("medicalcount",40);//目前暂无医疗机构接入,默认0家。
        }
//        String str = "SELECT SUM(b.count) count,b.app_name appName FROM " +
//                "(SELECT COUNT(id) count,app_name,interface_name FROM xmiot.iot_interface_log " +
//                " WHERE state=0 OR (app_name IS NOT NULL and app_id<>'2c9a80ed72393a3301724abe57ec0032' AND app_id <> 'b5125656570011ec8771005056ab2351') " +
//                "GROUP BY app_name,interface_name) b\n" +
//                "GROUP BY b.app_name ORDER BY count DESC";
//        List<AppServiceCount> counts = jdbcTemplate.query(str,new BeanPropertyRowMapper<>(AppServiceCount.class));
//        object.put("appcount",counts.size());
//        object.put("sortList",counts.subList(0,3));
//        object.put("medicalcount",40);//目前暂无医疗机构接入,默认0家。
        return object;
    }

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

@ -1,481 +0,0 @@
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);
    }
}

+ 46 - 2
svr/svr-iot/src/main/java/com/yihu/iot/service/monitorPlatform/MonitorPlatformService.java

@ -16,6 +16,7 @@ import com.yihu.iot.util.conceal.ConcealUtil;
import com.yihu.iot.util.excel.HibenateUtils;
import com.yihu.jw.entity.iot.dict.IotSystemDictDO;
import com.yihu.jw.entity.iot.equipment.IotEquipmentDetailDO;
import com.yihu.jw.entity.iot.statistics.IotStatisticsRealtimeDO;
import com.yihu.jw.entity.util.AesEncryptUtils;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.util.common.LatitudeUtils;
@ -28,6 +29,7 @@ import org.apache.http.message.BasicNameValuePair;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.elasticsearch.core.geo.GeoPoint;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
@ -1630,7 +1632,49 @@ public class MonitorPlatformService {
    public JSONObject getDeviceData() {
        JSONObject object = new JSONObject();
        //血糖仪数量
        int homeHealthEquipment = 0;//健康监测设备数(血压血糖)
        int homePhysicalSignData = 0;//健康监测设备体征数
        int homeAbnormalSignData = 0;//健康监测设备异常数
        int medicalInstitutionIquipment = 0;//自助服务设备数(药柜)
        int medicalPhysicalSignData = 0;//自助服务设备体征数
        int medicalAbnormalSignData = 0;//自助服务设备异常数
        int hospitalEquipment = 0;//临床医疗设备数(小屋)
        int hospitalPhysicalSignData = 0;//临床医疗设备体征数
        int hospitalAbnormalSignData = 0;//临床医疗设备异常数
        String sql = " select * from iot_statistics_realtime";
        List<IotStatisticsRealtimeDO> realtimeDOList = jdbcTemplate.query(sql,new BeanPropertyRowMapper<>(IotStatisticsRealtimeDO.class));
        for (IotStatisticsRealtimeDO realtimeDO:realtimeDOList){
            if("1".equals(realtimeDO.getType())){
                homeHealthEquipment = Integer.parseInt(realtimeDO.getDeviceNum());//健康监测设备(血压血糖)
                homePhysicalSignData = Integer.parseInt(realtimeDO.getSignNum());//
                homeAbnormalSignData = Integer.parseInt(realtimeDO.getAbnormalNum());//
                continue;
            }
            if("2".equals(realtimeDO.getType())){
                medicalInstitutionIquipment = Integer.parseInt(realtimeDO.getDeviceNum());//健康监测设备(血压血糖)
                medicalPhysicalSignData = Integer.parseInt(realtimeDO.getSignNum());//
                medicalAbnormalSignData = Integer.parseInt(realtimeDO.getAbnormalNum());//
                continue;
            }
            if("3".equals(realtimeDO.getType())){
                hospitalEquipment = Integer.parseInt(realtimeDO.getDeviceNum());//健康监测设备(血压血糖)
                hospitalPhysicalSignData = Integer.parseInt(realtimeDO.getSignNum());//
                hospitalAbnormalSignData = Integer.parseInt(realtimeDO.getAbnormalNum());//
                continue;
            }
        }
        object.put("homeHealthEquipment", homeHealthEquipment);
        object.put("homePhysicalSignData", homePhysicalSignData);
        object.put("homeAbnormalSignData", homeAbnormalSignData);
        object.put("medicalInstitutionIquipment", medicalInstitutionIquipment);
        object.put("medicalPhysicalSignData", medicalPhysicalSignData);
        object.put("medicalAbnormalSignData", medicalAbnormalSignData);
        object.put("hospitalEquipment", hospitalEquipment);
        object.put("hospitalPhysicalSignData", hospitalPhysicalSignData);
        object.put("hospitalAbnormalSignData", hospitalAbnormalSignData);
/*        //血糖仪数量
        String bloodGlucosemeterCount = "SELECT COUNT(1) FROM wlyy.wlyy_patient_device WHERE category_code = 1 AND del = 0";
        //血压计数量
        String sphygmomanometerCount = "SELECT COUNT(1) FROM wlyy.wlyy_patient_device WHERE category_code = 2 AND del = 0";
@ -1664,7 +1708,7 @@ public class MonitorPlatformService {
                "or (d.`code`='LowPressure' and (d.`value` not BETWEEN 60.0 and 90))\n" +
                ");";
        Integer gg = jdbcTemplate.queryForObject(abnormalSignDataOfCabin, Integer.class);
        object.put("medicalAbnormalSignData", gg);
        object.put("medicalAbnormalSignData", gg);*/
        return object;
    }