Jelajahi Sumber

生物安全门禁车辆修改

wwh 1 tahun lalu
induk
melakukan
5e0a67fe84

+ 13 - 5
huimv-receive/src/main/java/com/huimv/receive/controller/BillAccessDoorController.java

@@ -9,9 +9,11 @@ import com.huimv.receive.common.utils.ResultCode;
 import com.huimv.receive.common.utils.UploadImage;
 import com.huimv.receive.entity.BillAccessDoor;
 import com.huimv.receive.entity.BillGate;
+import com.huimv.receive.entity.DeviceList;
 import com.huimv.receive.entity.vo.DoorVo;
 import com.huimv.receive.service.IBillAccessDoorService;
 import com.huimv.receive.service.IBillGateService;
+import com.huimv.receive.service.IDeviceListService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 import org.springframework.web.bind.annotation.*;
@@ -45,6 +47,8 @@ public class BillAccessDoorController {
     private IBillGateService gateService;
     @Autowired
     private UploadImage uploadImage;
+    @Autowired
+    private IDeviceListService deviceListService;
 
     @RequestMapping("/listById")
     public Result listById(HttpServletRequest httpServletRequest, @RequestBody Map<String, String> paramsMap) {
@@ -68,7 +72,8 @@ public class BillAccessDoorController {
                               @RequestParam("result") String result,
                               @RequestParam("userId") String userId,
                               @RequestParam("image") MultipartFile image,
-                              @RequestParam("userName") String userName) throws ParseException, IOException {
+                              @RequestParam("userName") String userName,
+                              @RequestParam("seq") String seq) throws ParseException, IOException {
         BillAccessDoor door = new BillAccessDoor();
         door.setBillStatus(Integer.parseInt(result));
         DateFormat def = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@@ -84,11 +89,14 @@ public class BillAccessDoorController {
             door.setUrlImg(imageCom);
         }
         //后面需要修改
-        door.setFarmId(25);
-        door.setLocationId(1);
-        door.setCheckLocation("人员初级洗消");
+        QueryWrapper<DeviceList> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("device_code", seq);
+        DeviceList deviceList = deviceListService.getOne(queryWrapper);
+        door.setFarmId(Integer.valueOf(deviceList.getFarmId()));
+        door.setLocationId(deviceList.getLocationId());
+        door.setCheckLocation(deviceList.getLocationName());
         door.setUserName(userName);
         doorService.save(door);
-        return new Result(ResultCode.SUCCESS, time,imageCom);
+        return new Result(ResultCode.SUCCESS, time, imageCom);
     }
 }

+ 16 - 5
huimv-receive/src/main/java/com/huimv/receive/controller/BillGateController.java

@@ -2,12 +2,15 @@ package com.huimv.receive.controller;
 
 
 import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.huimv.receive.common.utils.Result;
 import com.huimv.receive.common.utils.ResultCode;
 import com.huimv.receive.common.utils.UploadImage;
 import com.huimv.receive.entity.BillAccessDoor;
 import com.huimv.receive.entity.BillGate;
+import com.huimv.receive.entity.DeviceList;
 import com.huimv.receive.service.IBillGateService;
+import com.huimv.receive.service.IDeviceListService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 import org.springframework.web.bind.annotation.CrossOrigin;
@@ -39,12 +42,16 @@ public class BillGateController {
     private IBillGateService gateService;
     @Autowired
     private UploadImage uploadImage;
+    @Autowired
+    private IDeviceListService deviceListService;
 
     @RequestMapping("/getGateData")
     public Result getDoorData(@RequestParam("time") String time,
-                              @RequestParam(value = "plateNumber",required = false) String plateNumber,
+                              @RequestParam(value = "plateNumber", required = false) String plateNumber,
                               @RequestParam("result") String result,
-                              @RequestParam("image") MultipartFile image) throws ParseException, IOException {
+                              @RequestParam("image") MultipartFile image,
+                              @RequestParam("username") String userName,
+                              @RequestParam("seq") String seq) throws ParseException, IOException {
 
         BillGate gate = new BillGate();
         gate.setBillStatus(Integer.parseInt(result));
@@ -62,9 +69,13 @@ public class BillGateController {
         }
 
         //后面需要修改
-        gate.setFarmId(25);
-        gate.setLocationId(1);
-        gate.setCheckLocation("人员初级洗消");
+        QueryWrapper<DeviceList> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("device_code", seq);
+        DeviceList deviceList = deviceListService.getOne(queryWrapper);
+        gate.setFarmId(Integer.valueOf(deviceList.getFarmId()));
+        gate.setLocationId(deviceList.getLocationId());
+        gate.setCheckLocation(deviceList.getLocationName());
+        gate.setUserName(userName);
         gateService.save(gate);
         return new Result(ResultCode.SUCCESS, time, imageCom);
     }

+ 1 - 1
huimv-receive/src/main/java/com/huimv/receive/controller/BillPersonnelAdmissionController.java

@@ -79,7 +79,7 @@ public class BillPersonnelAdmissionController {
     }
 
     @PostMapping("/handleAdmission")
-    public Result handleAdmission (HttpServletRequest httpServletRequest,@RequestBody Map<String, String> paramsMap){
+    public Result handleAdmission (HttpServletRequest httpServletRequest,@RequestBody Map<String, String> paramsMap) throws IOException {
         return billPersonnelAdmissionService.handleAdmission(httpServletRequest,paramsMap);
     }
 

+ 3 - 1
huimv-receive/src/main/java/com/huimv/receive/service/IBillPersonnelAdmissionService.java

@@ -9,6 +9,8 @@ import org.springframework.web.multipart.MultipartFile;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.ProtocolException;
 import java.text.ParseException;
 import java.util.Map;
 
@@ -46,7 +48,7 @@ public interface IBillPersonnelAdmissionService extends IService<BillPersonnelAd
 
     Result listAdmission(HttpServletRequest httpServletRequest, Map<String, String> paramsMap);
 
-    Result handleAdmission(HttpServletRequest httpServletRequest, Map<String, String> paramsMap);
+    Result handleAdmission(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) throws IOException;
 
     Result listAll(HttpServletRequest httpServletRequest, Map<String, String> paramsMap);
 

+ 143 - 1
huimv-receive/src/main/java/com/huimv/receive/service/impl/BillPersonnelAdmissionServiceImpl.java

@@ -2,7 +2,11 @@ package com.huimv.receive.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.date.DateTime;
+import cn.hutool.core.io.FileUtil;
 import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.http.Header;
+import cn.hutool.http.HttpRequest;
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONException;
 import com.alibaba.fastjson.JSONObject;
@@ -28,7 +32,13 @@ import org.springframework.web.multipart.MultipartFile;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.io.FileOutputStream;
 import java.io.IOException;
+import java.io.InputStream;
+import java.net.HttpURLConnection;
+import java.net.MalformedURLException;
+import java.net.ProtocolException;
+import java.net.URL;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
@@ -71,6 +81,10 @@ public class BillPersonnelAdmissionServiceImpl extends ServiceImpl<BillPersonnel
     private BillGateMapper gateMapper;
     @Autowired
     private BillAccessDoorMapper doorMapper;
+    @Autowired
+    private DeviceListMapper deviceListMapper;
+    @Autowired
+    private PeopleListMapper peopleListMapper;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -318,7 +332,7 @@ public class BillPersonnelAdmissionServiceImpl extends ServiceImpl<BillPersonnel
 
     @Override
     @Transactional
-    public Result handleAdmission(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
+    public Result handleAdmission(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) throws IOException {
         String type = paramsMap.get("type");
         String id = paramsMap.get("id");
         DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
@@ -405,6 +419,134 @@ public class BillPersonnelAdmissionServiceImpl extends ServiceImpl<BillPersonnel
 //                baseProcess.setCurrentLocationId(baseProcess.getCurrentLocationId() +","+baseLocation.getId());
                 //TODO 紧急入场通过先不处理
             }
+
+            //通过生成门禁白名单
+            QueryWrapper<DeviceList> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("farm_id", billPersonnelAdmission.getFarmId()).eq("location_id", locationId);
+            DeviceList deviceList = deviceListMapper.selectOne(queryWrapper);
+            if (ObjectUtil.isNotEmpty(deviceList)) {
+                if (deviceList.getDeviceType() == 0) {
+                    //通过生成门禁白名单
+                    PeopleList peopleList = new PeopleList();
+                    peopleList.setFarmId(billPersonnelAdmission.getFarmId().toString());
+                    peopleList.setDeviceCode(deviceList.getDeviceCode());
+                    peopleList.setUserId(billPersonnelAdmission.getAdmissionUserId());
+                    peopleList.setUserName(billPersonnelAdmission.getAdmissionUserName());
+                    peopleList.setPassword("123456");
+                    peopleList.setType(0);
+                    peopleList.setCreateTime(new Date());
+                    Date date = new Date();
+                    Calendar calendar = Calendar.getInstance();
+                    calendar.setTime(date);
+                    calendar.add(Calendar.HOUR_OF_DAY, 2);
+                    Date date1 = calendar.getTime();
+                    peopleList.setOutTime(date1);
+                    peopleListMapper.insert(peopleList);
+
+                    HashMap<String, Object> jsonObject = new HashMap<>();
+                    jsonObject.put("seq", deviceList.getDeviceCode());
+                    String savePath = "D:\\works\\pig_projects\\甜妹.jpg";
+                    URL url = new URL(billPersonnelAdmission.getUserImgUrl());
+                    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
+                    connection.setRequestMethod("GET");
+                    int resCode = connection.getResponseCode();
+                    if (resCode == HttpURLConnection.HTTP_OK) {
+                        InputStream inputStream = connection.getInputStream();
+                        byte[] buffer = new byte[4096];
+                        int length;
+                        //读取数据并写入到文件中
+                        try (FileOutputStream outStream = new FileOutputStream(savePath)) {
+                            while ((length = inputStream.read(buffer)) != -1) {
+                                outStream.write(buffer, 0, length);
+                            }
+                            outStream.flush();
+                        } finally {
+                            inputStream.close();
+                        }
+                    } else {
+                        System.out.println("文件下载错误码为" + resCode);
+                    }
+
+                    jsonObject.put("face", FileUtil.file("D:\\works\\pig_projects\\甜妹.jpg"));
+                    jsonObject.put("name", billPersonnelAdmission.getAdmissionUserName());
+                    jsonObject.put("password", "123456");
+                    jsonObject.put("timestamp", date1.getTime());
+                    jsonObject.put("uid", billPersonnelAdmission.getAdmissionUserId());
+                    String post = HttpRequest.post("http://192.168.1.42:8040/addDeviceUser")
+                            .header(Header.CONTENT_TYPE, "multipart/form-data")
+                            .form(jsonObject)
+                            .timeout(30 * 1000).execute().body();
+                    System.out.println(post);
+                } else {
+                    //车辆闸机
+                    PeopleList peopleList = new PeopleList();
+                    peopleList.setFarmId(billPersonnelAdmission.getFarmId().toString());
+                    peopleList.setDeviceCode(deviceList.getDeviceCode());
+                    peopleList.setUserId(billPersonnelAdmission.getAdmissionUserId());
+                    peopleList.setUserName(billPersonnelAdmission.getAdmissionUserName());
+                    peopleList.setPassword("123456");
+                    peopleList.setType(1);
+                    peopleList.setCreateTime(new Date());
+                    Date date = new Date();
+                    Calendar calendar = Calendar.getInstance();
+                    calendar.setTime(date);
+                    calendar.add(Calendar.HOUR_OF_DAY, 2);
+                    Date date1 = calendar.getTime();
+                    peopleList.setOutTime(date1);
+                    peopleListMapper.insert(peopleList);
+
+                    //需要先验证车辆是否存在白名单内,如果车辆已存在于白名单当中,则需要更新白名单,将车牌从白名单中删除后
+                    //重新进行添加,如果车辆不存在于白名单当中则直接添加入白名单
+                    JSONObject jsonObject = new JSONObject();
+                    jsonObject.put("seq", deviceList.getDeviceCode());
+                    jsonObject.put("isBlack", false);
+                    String request = HttpRequest.get("http://192.168.1.42:8040/getCarDeviceWoBList")
+                            .body(jsonObject.toJSONString())
+                            .header(Header.CONTENT_TYPE, "application/json")
+                            .timeout(30 * 1000).execute().body();
+                    JSONObject object = JSON.parseObject(request);
+                    System.out.println(object);
+                    JSONArray data = (JSONArray) object.get("data");
+                    System.out.println(data);
+                    for (int i = 0; i < data.size(); i++) {
+                        JSONObject jsonObject1 = (JSONObject) data.get(i);
+                        if (jsonObject1.get("plate").equals(billPersonnelAdmission.getCarNum())) {
+                            JSONObject jsonObject2 = new JSONObject();
+                            jsonObject2.put("isBlack", false);
+                            jsonObject2.put("seq", deviceList.getDeviceCode());
+                            List<Integer> list = new ArrayList<>();
+                            list.add((Integer) jsonObject1.get("cid"));
+                            jsonObject2.put("cids", list);
+
+                            String body = HttpRequest.post(" http://192.168.1.42:8040/delCarDeviceWoBList").header(Header.CONTENT_TYPE, "application/json")
+                                    .body(jsonObject2.toJSONString())
+                                    .timeout(30 * 1000).execute().body();
+                            System.out.println(body);
+                        }
+                    }
+
+
+                    JSONObject jsonObject1 = new JSONObject();
+                    JSONArray jsonArray = new JSONArray();
+                    JSONObject object1 = new JSONObject();
+                    jsonObject1.put("seq", deviceList.getDeviceCode());
+                    jsonObject1.put("isBlack", false);
+
+                    object1.put("timestamp", date1.getTime());
+                    object1.put("name", billPersonnelAdmission.getAdmissionUserName());
+                    object1.put("plate", billPersonnelAdmission.getCarNum());
+
+                    jsonArray.add(object1);
+                    jsonObject1.put("plates", jsonArray);
+
+                    String post = HttpRequest.post(" http://192.168.1.42:8040/addCarDeviceWoBList")
+                            .header(Header.CONTENT_TYPE, "application/json")
+                            .body(jsonObject1.toJSONString())
+                            .timeout(30 * 1000).execute().body();
+                    System.out.println(post);
+                }
+
+            }
         }
         baseProcessMapper.updateById(baseProcess);
         billPersonnelAdmissionMapper.updateById(billPersonnelAdmission);