From 1e532957102c00153e8bd448f3e1b876e478e042 Mon Sep 17 00:00:00 2001 From: pengjie <17373303529@163.com> Date: Thu, 20 Jun 2024 16:36:07 +0800 Subject: [PATCH] =?UTF-8?q?BUG=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../car/controller/CarInfoController.java | 36 +++++++-- .../xz/controller/XzMaterialController.java | 5 -- .../XzRiskPredictionController.java | 79 +++++++------------ .../java/com/zhgd/xmgl/util/PolygonUtil.java | 2 +- 4 files changed, 58 insertions(+), 64 deletions(-) diff --git a/src/main/java/com/zhgd/xmgl/modules/car/controller/CarInfoController.java b/src/main/java/com/zhgd/xmgl/modules/car/controller/CarInfoController.java index 7342c429b..da7a846bf 100644 --- a/src/main/java/com/zhgd/xmgl/modules/car/controller/CarInfoController.java +++ b/src/main/java/com/zhgd/xmgl/modules/car/controller/CarInfoController.java @@ -2,6 +2,7 @@ package com.zhgd.xmgl.modules.car.controller; import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -10,7 +11,10 @@ import com.google.gson.JsonObject; import com.zhgd.annotation.OperLog; import com.zhgd.jeecg.common.api.vo.Result; import com.zhgd.xmgl.modules.basicdata.entity.SystemUser; +import com.zhgd.xmgl.modules.basicdata.entity.XzSystemUserToCompanyProject; +import com.zhgd.xmgl.modules.basicdata.service.INoticeService; import com.zhgd.xmgl.modules.basicdata.service.ISystemUserService; +import com.zhgd.xmgl.modules.basicdata.service.IXzSystemUserToCompanyProjectService; import com.zhgd.xmgl.modules.car.entity.CarInfo; import com.zhgd.xmgl.modules.car.entity.vo.CountCarModuleTypeVo; import com.zhgd.xmgl.modules.car.service.ICarInfoService; @@ -29,10 +33,8 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import springfox.documentation.annotations.ApiIgnore; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.stream.Collectors; /** @@ -56,6 +58,12 @@ public class CarInfoController { @Autowired private IWorkerInfoService workerInfoService; + @Autowired + private INoticeService noticeService; + + @Autowired + private IXzSystemUserToCompanyProjectService xzSystemUserToCompanyProjectService; + @ApiOperation(value = "分页列表查询项目下车辆黑白名单", notes = "分页列表查询项目下车辆黑白名单", httpMethod = "POST") @ApiImplicitParams({ @ApiImplicitParam(name = "isBlack", value = "是否黑名单,0白名单,1黑名单", paramType = "body", required = false, dataType = "String"), @@ -102,7 +110,7 @@ public class CarInfoController { @OperLog(operModul = "车辆管理", operType = "添加车辆黑白名单", operDesc = "添加车辆黑白名单管理信息") @ApiOperation(value = "添加车辆黑白名单管理信息", notes = "添加车辆黑白名单管理信息", httpMethod = "POST") @PostMapping(value = "/save") - public Result save(@RequestBody Map map) { + public Result save(@RequestBody Map map) { log.info("开始添加车辆" + JSONObject.parseObject(JSON.toJSONString(map))); Object alarmPushWorkerId = map.get("alarmPushWorkerId"); String userId = String.valueOf(map.get("enterpriseId")); @@ -203,7 +211,23 @@ public class CarInfoController { if (outsideDriverIdCard != null) { carInfo.setOutsideDriverIdCard(outsideDriverIdCard.toString()); } - carInfoService.addCarInfo(carInfo); + if (DateUtil.compare(carInfo.getReserveEndTime(), new Date()) < 0) { + List systemUserList = systemUserService.list(Wrappers.lambdaQuery() + .eq(SystemUser::getAccountType, 5) + .eq(SystemUser::getSn, carInfo.getProjectSn())); + List xzSystemUserToCompanyProjects = xzSystemUserToCompanyProjectService.list(Wrappers.lambdaQuery() + .eq(XzSystemUserToCompanyProject::getType, 2) + .eq(XzSystemUserToCompanyProject::getSn, carInfo.getProjectSn())); + List collect = systemUserList.stream().map(s -> s.getUserId().toString()).collect(Collectors.toList()); + collect.addAll(xzSystemUserToCompanyProjects.stream().map(x -> x.getUserId().toString()).collect(Collectors.toList())); + collect.addAll(carInfo.getUserIds()); + for (String s : collect) { + noticeService.addUserNotice(Long.valueOf(s), StrUtil.format("【预约时间已过期,({})车辆无法下发】", carInfo.getCarNumber()), + "车辆下发道闸通知", "24"); + } + } else { + carInfoService.addCarInfo(carInfo); + } return Result.ok(); } diff --git a/src/main/java/com/zhgd/xmgl/modules/xz/controller/XzMaterialController.java b/src/main/java/com/zhgd/xmgl/modules/xz/controller/XzMaterialController.java index 44ec82825..f3eb57dde 100644 --- a/src/main/java/com/zhgd/xmgl/modules/xz/controller/XzMaterialController.java +++ b/src/main/java/com/zhgd/xmgl/modules/xz/controller/XzMaterialController.java @@ -197,14 +197,9 @@ public class XzMaterialController { } xzMaterial.setNum(index); } -// JSONArray entryTime = obj.getJSONArray("entryTime"); -// if (entryTime != null) { -// String begin = entryTime.getString(0); -// String end = entryTime.getString(1); xzMaterial.setEntryBeginTime(DateUtil.parse(obj.getString("startTime") + ":00", DatePattern.NORM_DATETIME_FORMAT)); xzMaterial.setEntryEndTime(DateUtil.parse(obj.getString("endTime") + ":00", DatePattern.NORM_DATETIME_FORMAT)); xzMaterial.setCarNumber(obj.getString("carNumber")); -// } JSONArray detail = obj.getJSONArray("detail"); if (detail != null) { for (int i = 0; i < detail.size(); i++) { diff --git a/src/main/java/com/zhgd/xmgl/modules/xz/controller/XzRiskPredictionController.java b/src/main/java/com/zhgd/xmgl/modules/xz/controller/XzRiskPredictionController.java index 731c683ca..676cee103 100644 --- a/src/main/java/com/zhgd/xmgl/modules/xz/controller/XzRiskPredictionController.java +++ b/src/main/java/com/zhgd/xmgl/modules/xz/controller/XzRiskPredictionController.java @@ -195,20 +195,13 @@ public class XzRiskPredictionController { resultMap.put("security", 0); } // 计算面积 - BigDecimal base = new BigDecimal(0.43); - BigDecimal age = new BigDecimal(resultMap.get("age").toString()).multiply(new BigDecimal(100)); - BigDecimal exam = new BigDecimal(resultMap.get("exam").toString()).multiply(new BigDecimal(100)); - BigDecimal safe = new BigDecimal(resultMap.get("age").toString()).multiply(new BigDecimal(100)); - BigDecimal workerType1 = new BigDecimal(resultMap.get("age").toString()).multiply(new BigDecimal(100)); - BigDecimal security = new BigDecimal(resultMap.get("age").toString()).multiply(new BigDecimal(100)); - BigDecimal b1 = new BigDecimal(1).multiply(age).multiply(base); - BigDecimal b2 = age.multiply(exam).multiply(base); - BigDecimal b3 = exam.multiply(safe).multiply(base); - BigDecimal b4 = safe.multiply(workerType1).multiply(base); - BigDecimal b5 = workerType1.multiply(security).multiply(base); - BigDecimal b6 = security.multiply(new BigDecimal(1)).multiply(base); - BigDecimal area = b1.add(b2).add(b3).add(b4).add(b5).add(b6); - resultMap.put("area", area.divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP)); + BigDecimal age = new BigDecimal(resultMap.get("age").toString()); + BigDecimal exam = new BigDecimal(resultMap.get("exam").toString()); + BigDecimal safe = new BigDecimal(resultMap.get("age").toString()); + BigDecimal workerType1 = new BigDecimal(resultMap.get("age").toString()); + BigDecimal security = new BigDecimal(resultMap.get("age").toString()); + resultMap.put("area", NumberUtils.percent(PolygonUtil.calRadioArea(1.0, 6, Double.valueOf(1), age.doubleValue(), + exam.doubleValue(), safe.doubleValue(), workerType1.doubleValue(), security.doubleValue()), 2)); return Result.success(resultMap); } @@ -702,20 +695,14 @@ public class XzRiskPredictionController { resultMap.put("enterpriseId", enterpriseInfo.getId()); // 计算面积 - BigDecimal base = new BigDecimal(0.43); - BigDecimal age = new BigDecimal(resultMap.get("age").toString()).multiply(new BigDecimal(100)); - BigDecimal exam = new BigDecimal(resultMap.get("exam").toString()).multiply(new BigDecimal(100)); - BigDecimal safe = new BigDecimal(resultMap.get("age").toString()).multiply(new BigDecimal(100)); - BigDecimal workerType1 = new BigDecimal(resultMap.get("age").toString()).multiply(new BigDecimal(100)); - BigDecimal security = new BigDecimal(resultMap.get("age").toString()).multiply(new BigDecimal(100)); - BigDecimal b1 = new BigDecimal(1).multiply(age).multiply(base); - BigDecimal b2 = age.multiply(exam).multiply(base); - BigDecimal b3 = exam.multiply(safe).multiply(base); - BigDecimal b4 = safe.multiply(workerType1).multiply(base); - BigDecimal b5 = workerType1.multiply(security).multiply(base); - BigDecimal b6 = security.multiply(new BigDecimal(1)).multiply(base); - BigDecimal area = b1.add(b2).add(b3).add(b4).add(b5).add(b6); - resultMap.put("area", area.divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP)); + // 计算面积 + BigDecimal age = new BigDecimal(resultMap.get("age").toString()); + BigDecimal exam = new BigDecimal(resultMap.get("exam").toString()); + BigDecimal safe = new BigDecimal(resultMap.get("safe").toString()); + BigDecimal workerType1 = new BigDecimal(resultMap.get("workerType").toString()); + BigDecimal security = new BigDecimal(resultMap.get("security").toString()); + resultMap.put("area", NumberUtils.percent(PolygonUtil.calRadioArea(1.0, 6, Double.valueOf(1), age.doubleValue(), + exam.doubleValue(), safe.doubleValue(), workerType1.doubleValue(), security.doubleValue()), 2)); resultList.add(resultMap); } return Result.success(resultList); @@ -758,18 +745,12 @@ public class XzRiskPredictionController { resultMap.put("limitTime", 0); } // 计算面积 - BigDecimal base = new BigDecimal(0.5); - BigDecimal security = new BigDecimal(resultMap.get("security").toString()).multiply(new BigDecimal(100)); - BigDecimal limitTime = new BigDecimal(resultMap.get("limitTime").toString()).multiply(new BigDecimal(100)); - BigDecimal levelRisk = new BigDecimal(resultMap.get("levelRisk").toString()).multiply(new BigDecimal(100)); - BigDecimal safe = new BigDecimal(resultMap.get("safe").toString()).multiply(new BigDecimal(100)); - - BigDecimal b1 = security.multiply(limitTime).multiply(base); - BigDecimal b2 = limitTime.multiply(levelRisk).multiply(base); - BigDecimal b3 = levelRisk.multiply(safe).multiply(base); - BigDecimal b4 = safe.multiply(security).multiply(base); - BigDecimal area = b1.add(b2).add(b3).add(b4); - resultMap.put("area", area.divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP)); + BigDecimal security = new BigDecimal(resultMap.get("security").toString()); + BigDecimal limitTime = new BigDecimal(resultMap.get("limitTime").toString()); + BigDecimal levelRisk = new BigDecimal(resultMap.get("levelRisk").toString()); + BigDecimal safe = new BigDecimal(resultMap.get("safe").toString()); + resultMap.put("area", NumberUtils.percent(PolygonUtil.calRadioArea(1.0, 4, security.doubleValue(), + limitTime.doubleValue(), levelRisk.doubleValue(), safe.doubleValue()), 2)); return Result.success(resultMap); } @@ -827,18 +808,12 @@ public class XzRiskPredictionController { } resultMap.put("enterpriseName", enterpriseInfo.getEnterpriseName()); // 计算面积 - BigDecimal base = new BigDecimal(0.5); - BigDecimal security = new BigDecimal(resultMap.get("security").toString()).multiply(new BigDecimal(100)); - BigDecimal limitTime = new BigDecimal(resultMap.get("limitTime").toString()).multiply(new BigDecimal(100)); - BigDecimal levelRisk = new BigDecimal(resultMap.get("levelRisk").toString()).multiply(new BigDecimal(100)); - BigDecimal safe = new BigDecimal(resultMap.get("safe").toString()).multiply(new BigDecimal(100)); - - BigDecimal b1 = security.multiply(limitTime).multiply(base); - BigDecimal b2 = limitTime.multiply(levelRisk).multiply(base); - BigDecimal b3 = levelRisk.multiply(safe).multiply(base); - BigDecimal b4 = safe.multiply(security).multiply(base); - BigDecimal area = b1.add(b2).add(b3).add(b4); - resultMap.put("area", area.divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP)); + BigDecimal security = new BigDecimal(resultMap.get("security").toString()); + BigDecimal limitTime = new BigDecimal(resultMap.get("limitTime").toString()); + BigDecimal levelRisk = new BigDecimal(resultMap.get("levelRisk").toString()); + BigDecimal safe = new BigDecimal(resultMap.get("safe").toString()); + resultMap.put("area", NumberUtils.percent(PolygonUtil.calRadioArea(1.0, 4, security.doubleValue(), + limitTime.doubleValue(), levelRisk.doubleValue(), safe.doubleValue()), 2)); resultList.add(resultMap); } return Result.success(resultList); diff --git a/src/main/java/com/zhgd/xmgl/util/PolygonUtil.java b/src/main/java/com/zhgd/xmgl/util/PolygonUtil.java index 4b2c98219..eb3c65394 100644 --- a/src/main/java/com/zhgd/xmgl/util/PolygonUtil.java +++ b/src/main/java/com/zhgd/xmgl/util/PolygonUtil.java @@ -63,7 +63,7 @@ public class PolygonUtil { doubles.add(r1); } double sum = doubles.stream().mapToDouble(value -> value).sum(); - return sum / pentagonArea(1); + return sum / polygonArea(r, edgeNum); } public static void main(String[] args) {