TEntranceGuardPersonInfoServiceImpl.java 9.02 KB
Newer Older
耿迪迪's avatar
耿迪迪 committed
1 2
package com.zehong.system.service.impl;

3
import com.alibaba.fastjson.JSONObject;
耿迪迪's avatar
耿迪迪 committed
4
import com.zehong.common.utils.DateUtils;
5
import com.zehong.common.utils.StringUtils;
6
import com.zehong.system.domain.TEntranceGuardPersonInfo;
7
import com.zehong.system.domain.vo.Bx06Vo;
耿迪迪's avatar
耿迪迪 committed
8 9 10
import com.zehong.system.mapper.TEntranceGuardPersonInfoMapper;
import com.zehong.system.service.ITEntranceGuardPersonInfoService;
import org.springframework.beans.factory.annotation.Autowired;
11
import org.springframework.beans.factory.annotation.Value;
耿迪迪's avatar
耿迪迪 committed
12
import org.springframework.stereotype.Service;
13 14 15 16 17 18 19

import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
耿迪迪's avatar
耿迪迪 committed
20 21 22 23 24 25 26 27 28 29 30 31 32

/**
 * 门禁人员信息Service业务层处理
 * 
 * @author zehong
 * @date 2022-11-02
 */
@Service
public class TEntranceGuardPersonInfoServiceImpl implements ITEntranceGuardPersonInfoService 
{
    @Autowired
    private TEntranceGuardPersonInfoMapper tEntranceGuardPersonInfoMapper;

33 34 35 36
    /**抓拍图片地址*/
    @Value("${entrance-guard-catch-pic-url}")
    private String entranceGuardCatchPicUrl;

耿迪迪's avatar
耿迪迪 committed
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131
    /**
     * 查询门禁人员信息
     * 
     * @param entranceGuardPersonId 门禁人员信息ID
     * @return 门禁人员信息
     */
    @Override
    public TEntranceGuardPersonInfo selectTEntranceGuardPersonInfoById(Long entranceGuardPersonId)
    {
        return tEntranceGuardPersonInfoMapper.selectTEntranceGuardPersonInfoById(entranceGuardPersonId);
    }

    /**
     * 查询门禁人员信息列表
     * 
     * @param tEntranceGuardPersonInfo 门禁人员信息
     * @return 门禁人员信息
     */
    @Override
    public List<TEntranceGuardPersonInfo> selectTEntranceGuardPersonInfoList(TEntranceGuardPersonInfo tEntranceGuardPersonInfo)
    {
        return tEntranceGuardPersonInfoMapper.selectTEntranceGuardPersonInfoList(tEntranceGuardPersonInfo);
    }

    /**
     * 新增门禁人员信息
     * 
     * @param tEntranceGuardPersonInfo 门禁人员信息
     * @return 结果
     */
    @Override
    public int insertTEntranceGuardPersonInfo(TEntranceGuardPersonInfo tEntranceGuardPersonInfo)
    {
        tEntranceGuardPersonInfo.setCreateTime(DateUtils.getNowDate());
        return tEntranceGuardPersonInfoMapper.insertTEntranceGuardPersonInfo(tEntranceGuardPersonInfo);
    }

    /**
     * 修改门禁人员信息
     * 
     * @param tEntranceGuardPersonInfo 门禁人员信息
     * @return 结果
     */
    @Override
    public int updateTEntranceGuardPersonInfo(TEntranceGuardPersonInfo tEntranceGuardPersonInfo)
    {
        tEntranceGuardPersonInfo.setUpdateTime(DateUtils.getNowDate());
        return tEntranceGuardPersonInfoMapper.updateTEntranceGuardPersonInfo(tEntranceGuardPersonInfo);
    }

    /**
     * 批量删除门禁人员信息
     * 
     * @param entranceGuardPersonIds 需要删除的门禁人员信息ID
     * @return 结果
     */
    @Override
    public int deleteTEntranceGuardPersonInfoByIds(Long[] entranceGuardPersonIds)
    {
        return tEntranceGuardPersonInfoMapper.deleteTEntranceGuardPersonInfoByIds(entranceGuardPersonIds);
    }

    /**
     * 删除门禁人员信息信息
     * 
     * @param entranceGuardPersonId 门禁人员信息ID
     * @return 结果
     */
    @Override
    public int deleteTEntranceGuardPersonInfoById(Long entranceGuardPersonId)
    {
        return tEntranceGuardPersonInfoMapper.deleteTEntranceGuardPersonInfoById(entranceGuardPersonId);
    }

    /**
     * 二道门人员信息初始化
     */
    @Override
    public Map<String,Object> getEntranceGuardPersonInfo(){
        Map<String,Object> result = new HashMap<>(16);
        //出入人数统计
        List<Map<String,String>> actionCount = tEntranceGuardPersonInfoMapper.statisticsPersonByActionType();
        for(Map map : actionCount){
            if("0".equals(map.get("actionType"))){
                result.put("importCount",map.get("counts"));
            }
            if("1".equals(map.get("actionType"))){
                result.put("exportCount",map.get("counts"));
            }
        }
        //在场人数统计
        result.put("stayInCount",tEntranceGuardPersonInfoMapper.statisticsStayInPersons());
        //出入场最新数据
        List<TEntranceGuardPersonInfo> lastImportAndExportData = tEntranceGuardPersonInfoMapper.lastImportAndExportData();
        for(TEntranceGuardPersonInfo tEntranceGuardPersonInfo : lastImportAndExportData){
132 133 134
            if(StringUtils.isNotEmpty(tEntranceGuardPersonInfo.getCatchPic())){
                tEntranceGuardPersonInfo.setCatchPic(entranceGuardCatchPicUrl + tEntranceGuardPersonInfo.getCatchPic());
            }
耿迪迪's avatar
耿迪迪 committed
135 136 137 138 139 140 141 142 143 144
            if("0".equals(tEntranceGuardPersonInfo.getActionType())){
                result.put("lastImportData",tEntranceGuardPersonInfo);
            }
            if("1".equals(tEntranceGuardPersonInfo.getActionType())){
                result.put("lastExportData",tEntranceGuardPersonInfo);
            }
        }
        return result;

    }
145 146 147 148 149 150 151 152 153 154

    /**
     * 发送到Led大屏
     */
    @Override
    public void send2Led() {
        String []contents=new String[6];
        contents[0]=" 石家庄柏坡正元化肥有限公司";
        //查询场内人数
        String cnrs=tEntranceGuardPersonInfoMapper.statisticsStayInPersons();
lizhichao's avatar
lizhichao committed
155
        contents[1]="企业人数:785人 厂内人数:"+cnrs+"人";
156 157 158 159 160 161 162 163
        List <TEntranceGuardPersonInfo>lastImportOrExportData=tEntranceGuardPersonInfoMapper.lastImportOrExportData();
        int i=0;
        String crc="";
        for(TEntranceGuardPersonInfo tEntranceGuardPersonInfo : lastImportOrExportData){
            if(i>2){
                return;
            }
            if("0".equals(tEntranceGuardPersonInfo.getActionType())){
164
                crc="入";
165
            }else if("1".equals(tEntranceGuardPersonInfo.getActionType())){
166
                crc="出";
167 168
            }

169
            contents[i+2]=tEntranceGuardPersonInfo.getPersonName()+""+crc+""+DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS,tEntranceGuardPersonInfo.getActionTime());
170 171
            i++;
        }
172
        contents[5]="               "+DateUtils.getDate();//展示当日日期
173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263
        //执行发送
        send(contents);

    }
    private void send(String[] contents){
        System.out.println("开始发送数据...");
        String pathUrl="http://218.207.92.101:8908/dangerManage/bx/send";
//        String pathUrl="http://127.0.0.1:8908/dangerManage/bx/send";
        Bx06Vo bv=new Bx06Vo();
        bv.setContents(contents);

        //发送数据
        doPostOrGet(pathUrl,JSONObject.toJSONString(bv));

    }

    //发送数据
    public static void doPostOrGet(String pathUrl, String data) {

        OutputStreamWriter out = null;
        BufferedReader br = null;

        String result = "";

        try {
            URL url = new URL(pathUrl);

            //打开和url之间的连接
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();

            //请求方式
            conn.setRequestMethod("POST");

            //conn.setRequestMethod("GET");
            //设置通用的请求属性
            conn.setRequestProperty("accept", "*/*");

            conn.setRequestProperty("connection", "Keep-Alive");

            conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");

            conn.setRequestProperty("Content-Type", "application/json;charset=utf-8");

            //DoOutput设置是否向httpUrlConnection输出,DoInput设置是否从httpUrlConnection读入,此外发送post请求必须设置这两个

            conn.setDoOutput(true);
            conn.setDoInput(true);

            /**
             * 下面的三句代码,就是调用第三方http接口
             */
            //获取URLConnection对象对应的输出流
            out = new OutputStreamWriter(conn.getOutputStream(), "UTF-8");
            //发送请求参数即数据
            out.write(data);
            //flush输出流的缓冲
            out.flush();
            /**
             * 下面的代码相当于,获取调用第三方http接口后返回的结果
             */
            //获取URLConnection对象对应的输入流
            InputStream is = conn.getInputStream();

            //构造一个字符流缓存
            br = new BufferedReader(new InputStreamReader(is));
            String str = "";
            while ((str = br.readLine()) != null) {
                result += str;
            }
            System.out.println(result);
            //关闭流
            is.close();

            //断开连接,disconnect是在底层tcp socket链接空闲时才切断,如果正在被其他线程使用就不切断。
            conn.disconnect();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if (out != null) {
                    out.close();
                }
                if (br != null) {
                    br.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

    }
耿迪迪's avatar
耿迪迪 committed
264
}