package org.springblade.modules.investigate; import com.alibaba.druid.support.json.JSONUtils; import com.alibaba.fastjson.JSON; import lombok.AllArgsConstructor; import org.json.JSONArray; import org.json.JSONObject; import org.springblade.common.utils.InvestigateUtil; import org.springblade.core.tool.api.R; import org.springblade.core.tool.jackson.JsonUtil; import org.springblade.modules.location.vo.GunLiveLocationVO; import org.springblade.modules.system.entity.User; import org.springblade.modules.system.service.IUserService; import org.springframework.retry.backoff.Sleeper; import org.springframework.web.bind.annotation.*; import java.util.Comparator; import java.util.Date; import java.util.List; import java.util.function.BiConsumer; import java.util.function.Consumer; import java.util.stream.Collectors; /** * @author zhongrj * * 资格审核测试接口 */ @RestController @AllArgsConstructor public class Investigate { private final IUserService userService; /** * 单个人员审查 * @param idCardNo 身份证号码 * @return */ @GetMapping("/investigate") public String getInvestigate(String idCardNo, @RequestParam(defaultValue = "1")Integer pageNum, @RequestParam(defaultValue = "10")Integer pageSize){ return InvestigateUtil.httpGetOne(idCardNo); } /** * 枪支定位 * @param idCardNo 护卫员身份证号 * @param deptName 所在单位名称 * @param startTime 定位开始时间 * @param endTime 定位结束时间 */ @GetMapping("/investigate/gun") public String getInvestigateGun(String idCardNo, String deptName, String startTime, String endTime, @RequestParam(defaultValue = "1")Integer pageNum, @RequestParam(defaultValue = "10")Integer pageSize){ return InvestigateUtil.httpGetGunPosition(idCardNo,deptName,startTime,endTime,pageNum,pageSize); } // /** // * // * @return // */ // @GetMapping("/investigate/byUser") // public R investigateByUser(){ // //查询用户数据,未删除的 // List users = userService.getAllUserList(); // //遍历 // users.forEach(InvestigateUtil.consumerWithIndex((user,index) ->{ // if (index==80){ // try { // Thread.sleep(500); // } catch (InterruptedException e) { // e.printStackTrace(); // } // } // String body = InvestigateUtil.httpGet(user.getCardid()); // JSONObject jsonObject = new JSONObject(body); // Object data = jsonObject.get("data"); // JSONObject jsonData = new JSONObject(data.toString()); // JSONArray res = jsonData.getJSONArray("res"); // if (res.length()==0){ // //没有数据正常 // user.setExaminationType("0"); // }else { // user.setExaminationType("1"); // user.setExaminationMx(res.getJSONObject(0).get("zdxsfzqkry").toString()); // } // //更新用户数据 // userService.updateById(user); // })); // return R.data(users.size()); // } /** * 人员审查 * @return */ @GetMapping("/investigate/byUser") public R investigateByUser(@RequestParam(defaultValue = "1") Integer pageNum, @RequestParam(defaultValue = "1000")Integer pageSize){ //查询用户数据,未删除的,未审核的 List users = userService.getNotAuditAllUserList(); //遍历 users.forEach(InvestigateUtil.consumerWithIndex((user,index) -> { if (null != user.getCardid() && !user.getCardid().equals("")) { if (index == 1000) { try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } // System.out.println("cardid = " + user.getCardid()); String body = InvestigateUtil.httpGetOne(user.getCardid()); // System.out.println("body = " + body); if (null != body && !body.equals("")) { JSONObject jsonObject = new JSONObject(body); Object data = jsonObject.get("data"); JSONObject jsonData = new JSONObject(data.toString()); JSONArray res = jsonData.getJSONArray("res"); //设置审核时间 user.setAuditTime(new Date()); if (res.length() == 0) { //没有数据正常 user.setExaminationType("0"); // System.out.println("审查正常:user.getExaminationType() = " + user.getExaminationType()); } else { int count = 0; user.setExaminationType("1"); // System.out.println("审查异常:user.getExaminationType() = " + user.getExaminationType()); for (int i = 0; i < res.length(); i++) { if (res.getJSONObject(i).get("zdrylbjh").toString() != null && res.getJSONObject(i).get("zdrylbjh").toString() != "" && res.getJSONObject(i).get("zdrylbjh").toString() != "null" ) { user.setExaminationMx(res.getJSONObject(i).get("zdrylbjh").toString()); //更新用户数据 userService.updateById(user); break; } if (res.getJSONObject(i).get("zdryxlmc").toString() != null && res.getJSONObject(i).get("zdryxlmc").toString() != "" && res.getJSONObject(i).get("zdryxlmc").toString() != "null" ) { user.setExaminationMx(res.getJSONObject(i).get("zdryxlmc").toString()); //更新用户数据 userService.updateById(user); break; } if (res.getJSONObject(i).get("ztrylx").toString() != null && res.getJSONObject(i).get("ztrylx").toString() != "" && res.getJSONObject(i).get("ztrylx").toString() != "null" ) { user.setExaminationMx(res.getJSONObject(i).get("ztrylx").toString()); //更新用户数据 userService.updateById(user); break; } // if (res.getJSONObject(i).get("ajlbmc").toString() != null // && res.getJSONObject(i).get("ajlbmc").toString() != "") { // user.setExaminationMx(res.getJSONObject(i).get("ajlbmc").toString()); // //更新用户数据 // userService.updateById(user); // break; // } count++; //条件中的数据都为空,则审查为正常 if (count == res.length()) { //更新用户数据,设为正常 user.setExaminationType("0"); // System.out.println("审查有数据,数据为空 = user.getExaminationType() " + user.getExaminationType()); userService.updateById(user); } } } //更新用户数据 userService.updateById(user); } } })); return R.data(users.size()); } /** * 数据反向测试 * @param body 数据反向测试 * @return */ @PostMapping("/investigate/testBody") public R testBody(@RequestBody String body){ JSONObject jsonObject = new JSONObject(body); Object data = jsonObject.get("data"); JSONObject jsonData = new JSONObject(data.toString()); JSONArray res = jsonData.getJSONArray("res"); User user = new User(); if (res.length()>0){ // String zdxsfzqkry = res.getJSONObject(0).get("zdxsfzqkry").toString(); int count = 0; for (int i = 0; i < res.length(); i++) { System.out.println("res.length() =" + res.length()); if (res.getJSONObject(i).get("zdrylbjh").toString() != null && res.getJSONObject(i).get("zdrylbjh").toString() != "" && res.getJSONObject(i).get("zdrylbjh").toString() != "null" ) { user.setExaminationMx(res.getJSONObject(i).get("zdrylbjh").toString()); //更新用户数据 userService.updateById(user); break; } if (res.getJSONObject(i).get("zdryxlmc").toString() != null && res.getJSONObject(i).get("zdryxlmc").toString() != "" && res.getJSONObject(i).get("zdryxlmc").toString() != "null" ) { user.setExaminationMx(res.getJSONObject(i).get("zdryxlmc").toString()); //更新用户数据 userService.updateById(user); break; } if (res.getJSONObject(i).get("ztrylx").toString() != null && res.getJSONObject(i).get("ztrylx").toString() != "" && res.getJSONObject(i).get("ztrylx").toString() != "null" ) { user.setExaminationMx(res.getJSONObject(i).get("ztrylx").toString()); //更新用户数据 userService.updateById(user); break; } count++; System.out.println("count = " + count); // if (res.getJSONObject(i).get("ajlbmc").toString() != null // && res.getJSONObject(i).get("ajlbmc").toString() != "" // && res.getJSONObject(i).get("ajlbmc").toString() != "null" // ) { // user.setExaminationMx(res.getJSONObject(i).get("ajlbmc").toString()); // //更新用户数据 // userService.updateById(user); // break; // } } return R.data(user); } return null; } /** * 数据反向测试 -- 枪支 * @param body 数据反向测试 * @return */ @PostMapping("/investigate/testBodyGun") public R testBodyGun(@RequestBody String body){ JSONObject jsonObject = new JSONObject(body); Object data = jsonObject.get("data"); JSONObject jsonData = new JSONObject(data.toString()); JSONArray res = jsonData.getJSONArray("res"); //转换string String resToString = res.toString(); if (res.length()>0){ List gunLiveLocationVOS = JSON.parseArray(resToString, GunLiveLocationVO.class); System.out.println("gunLiveLocationVOS = " + gunLiveLocationVOS); //按时间排序(reversed降序) List gunLiveLocationVOList = gunLiveLocationVOS.stream().sorted(Comparator.comparing(GunLiveLocationVO::getDwsj).reversed()).collect(Collectors.toList()); GunLiveLocationVO gunLiveLocationVO = gunLiveLocationVOList.get(0); System.out.println("gunLiveLocationVO = " + gunLiveLocationVO); } return null; } }