Commit f5169ca7 authored by litengwei's avatar litengwei

Merge remote-tracking branch 'origin/develop_dl' into develop_dl

parents 4ce836a7 867023de
This diff is collapsed.
...@@ -5,6 +5,9 @@ import com.yeejoin.amos.boot.module.jcs.api.dto.SignDto; ...@@ -5,6 +5,9 @@ import com.yeejoin.amos.boot.module.jcs.api.dto.SignDto;
import com.yeejoin.amos.boot.module.jcs.api.dto.SinStaticDto; import com.yeejoin.amos.boot.module.jcs.api.dto.SinStaticDto;
import com.yeejoin.amos.boot.module.jcs.api.entity.Sign; import com.yeejoin.amos.boot.module.jcs.api.entity.Sign;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import java.util.Map;
/** /**
* 打卡记录 Mapper 接口 * 打卡记录 Mapper 接口
...@@ -20,4 +23,6 @@ public interface SignMapper extends BaseMapper<Sign> { ...@@ -20,4 +23,6 @@ public interface SignMapper extends BaseMapper<Sign> {
IPage<SinStaticDto> queryStaticForPage(IPage<?> page, SinStaticDto dto); IPage<SinStaticDto> queryStaticForPage(IPage<?> page, SinStaticDto dto);
int queryPersonNum(String bizOgrCode); int queryPersonNum(String bizOgrCode);
// Map<String, Object> getSignStatistic(@Param("bizOrgCode") String bizOgrCode, @Param("userId") String userId);
} }
...@@ -3,6 +3,8 @@ package com.yeejoin.amos.boot.module.jcs.api.service; ...@@ -3,6 +3,8 @@ package com.yeejoin.amos.boot.module.jcs.api.service;
import com.yeejoin.amos.boot.module.jcs.api.dto.SignDto; import com.yeejoin.amos.boot.module.jcs.api.dto.SignDto;
import java.util.Map;
/** /**
* 打卡记录接口类 * 打卡记录接口类
* *
...@@ -14,4 +16,6 @@ public interface ISignService { ...@@ -14,4 +16,6 @@ public interface ISignService {
Boolean hasSign(String type,String date,String userId); Boolean hasSign(String type,String date,String userId);
Boolean saveSign(SignDto dot); Boolean saveSign(SignDto dot);
Map<String, Object> getSignStatistic(String userId, String bizOrgCode);
} }
...@@ -78,6 +78,9 @@ ...@@ -78,6 +78,9 @@
<select id="queryPersonNum" resultType="java.lang.Integer"> <select id="queryPersonNum" resultType="java.lang.Integer">
select count(*) from cb_firefighters where biz_org_code like CONCAT('%',#{bizOgrCode}, '%') AND people_type = '1601' select count(*) from cb_firefighters where biz_org_code like CONCAT('%',#{bizOgrCode}, '%') AND people_type = '1601'
AND is_delete = 0 AND now() > rec_date AND is_delete = 0 AND now() > rec_date
</select> </select>
<!-- <select id="getSignStatistic" resultType="Map">-->
<!-- </select>-->
</mapper> </mapper>
...@@ -6,11 +6,14 @@ import com.yeejoin.equipmanage.common.entity.dto.FireResourceStatsDTO; ...@@ -6,11 +6,14 @@ import com.yeejoin.equipmanage.common.entity.dto.FireResourceStatsDTO;
import com.yeejoin.equipmanage.service.IFireResourceSupervisionService; import com.yeejoin.equipmanage.service.IFireResourceSupervisionService;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import org.typroject.tyboot.core.foundation.enumeration.UserType; import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.restful.doc.TycloudOperation; import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper; import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel; import org.typroject.tyboot.core.restful.utils.ResponseModel;
...@@ -29,9 +32,11 @@ public class FireResourceSupervisionController extends BaseController { ...@@ -29,9 +32,11 @@ public class FireResourceSupervisionController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET", value = "消防系统、监测部件、消防车辆统计信息查询", notes = "聚合接口: 消防系统、监测部件、消防车辆统计信息查询") @ApiOperation(httpMethod = "GET", value = "消防系统、监测部件、消防车辆统计信息查询", notes = "聚合接口: 消防系统、监测部件、消防车辆统计信息查询")
@RequestMapping(value = "/stats", method = RequestMethod.GET) @RequestMapping(value = "/stats", method = RequestMethod.GET)
public ResponseModel<Object> stats() { public ResponseModel<Object> stats(@RequestParam(value = "bizOrgCode", required = false) String bizOrgCode) {
ReginParams reginParams = getSelectedOrgInfo(); if (StringUtils.isBlank(bizOrgCode)) {
String bizOrgCode = reginParams.getPersonIdentity().getCompanyBizOrgCode(); ReginParams reginParams = getSelectedOrgInfo();
bizOrgCode = !ValidationUtil.isEmpty(reginParams.getPersonIdentity()) && StringUtils.isNotEmpty(reginParams.getPersonIdentity().getBizOrgCode()) ? reginParams.getPersonIdentity().getBizOrgCode() : null;
}
FireResourceStatsDTO fireSystemStats = iFireResourceSupervisionService.getFireSystemStats(bizOrgCode); FireResourceStatsDTO fireSystemStats = iFireResourceSupervisionService.getFireSystemStats(bizOrgCode);
FireResourceStatsDTO monitorComponentStats = iFireResourceSupervisionService.getMonitorComponentStats(bizOrgCode); FireResourceStatsDTO monitorComponentStats = iFireResourceSupervisionService.getMonitorComponentStats(bizOrgCode);
FireResourceStatsDTO fireCarStats = iFireResourceSupervisionService.getFireCarStats(bizOrgCode); FireResourceStatsDTO fireCarStats = iFireResourceSupervisionService.getFireCarStats(bizOrgCode);
......
...@@ -87,4 +87,6 @@ public interface CarMapper extends BaseMapper<Car> { ...@@ -87,4 +87,6 @@ public interface CarMapper extends BaseMapper<Car> {
Integer getCarCategoryCountByCategoryID(Long categoryID); Integer getCarCategoryCountByCategoryID(Long categoryID);
List<CarEquipStateInfoDto> getCarEquipStateInfo(); List<CarEquipStateInfoDto> getCarEquipStateInfo();
List<CarEquipAlarmInfoDto> getCarEquipAlarmInfo(Integer batteryNumber); List<CarEquipAlarmInfoDto> getCarEquipAlarmInfo(Integer batteryNumber);
void updateStatusByIds(List<String> carIds, String status);
} }
...@@ -36,4 +36,7 @@ public interface CarPropertyMapper extends BaseMapper<CarProperty> { ...@@ -36,4 +36,7 @@ public interface CarPropertyMapper extends BaseMapper<CarProperty> {
List<CarPropertyVo> getCarPropertyListByCarIds(@Param("list") List<Long> carIds); List<CarPropertyVo> getCarPropertyListByCarIds(@Param("list") List<Long> carIds);
Map<String, Object> getCarPropertyByCarIds(List<Long> carIds); Map<String, Object> getCarPropertyByCarIds(List<Long> carIds);
List<Map<String, Object>> selectIndexByTime(String carStartIndexKey);
} }
package com.yeejoin.equipmanage.quartz;
import com.yeejoin.equipmanage.service.ICarService;
import com.yeejoin.equipmanage.service.impl.CarServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
/**
* 定时监控车辆相关指标
* @author xxz
*/
@Component
@EnableScheduling
@Slf4j
public class CarPropertyJob {
@Autowired
private ICarService carService;
/**
* 车辆赋红码。定时查询车辆启停更新时间,
*/
@Scheduled(cron = "${update.car.qrCode}")
public void UpdateCarQrCode(){
carService.updateCarStartStatus();
}
}
...@@ -207,4 +207,11 @@ public interface ICarService extends IService<Car> { ...@@ -207,4 +207,11 @@ public interface ICarService extends IService<Car> {
List<CarExportDto> exportCarMileageInfoByMoth(String date); List<CarExportDto> exportCarMileageInfoByMoth(String date);
ZZChartsDto getCarMileageInfoByMothOFDay(String iotCode); ZZChartsDto getCarMileageInfoByMothOFDay(String iotCode);
Page<CarExceptionDto> getCarExcepitonTrack(Integer type); Page<CarExceptionDto> getCarExcepitonTrack(Integer type);
/**
* 查询车辆启动状态,赋码
*/
void updateCarStartStatus();
} }
...@@ -156,6 +156,9 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS ...@@ -156,6 +156,9 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
@Autowired @Autowired
private IEquipmentCategoryService iEquipmentCategoryService; private IEquipmentCategoryService iEquipmentCategoryService;
@Autowired
private CarPropertyMapper carPropertyMapper;
@Value("${equip.dict.car-state}") @Value("${equip.dict.car-state}")
private String carState; private String carState;
...@@ -175,6 +178,8 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS ...@@ -175,6 +178,8 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
@Lazy @Lazy
private IWlCarMileageService iWlCarMileageService; private IWlCarMileageService iWlCarMileageService;
private final String CAR_START_INDEX_KEY = "FireCar_Start";
/** /**
* 当前登录用户信息 * 当前登录用户信息
*/ */
...@@ -1962,4 +1967,16 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS ...@@ -1962,4 +1967,16 @@ public class CarServiceImpl extends ServiceImpl<CarMapper, Car> implements ICarS
page.setSize(10); page.setSize(10);
return page; return page;
} }
@Override
public void updateCarStartStatus() {
List<Map<String, Object>> list = carPropertyMapper.selectIndexByTime(CAR_START_INDEX_KEY);
List<String> carIds = list.stream().map(o -> String.valueOf(o.get("carId"))).collect(Collectors.toList());
// 近七天未启动赋红码
updateCarQrCode(carIds, "2");
}
private void updateCarQrCode(List<String> carIds, String status) {
carMapper.updateStatusByIds(carIds, status);
}
} }
...@@ -56,6 +56,7 @@ import java.io.File; ...@@ -56,6 +56,7 @@ import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.IOException; import java.io.IOException;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode;
import java.net.Inet4Address; import java.net.Inet4Address;
import java.net.InetAddress; import java.net.InetAddress;
import java.net.NetworkInterface; import java.net.NetworkInterface;
...@@ -139,10 +140,10 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste ...@@ -139,10 +140,10 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
@Autowired @Autowired
private JCSRemoteService jcsRemoteService; private JCSRemoteService jcsRemoteService;
@Autowired @Autowired
private EquipmentSpecificMapper equipmentSpecificMapper; private EquipmentSpecificMapper equipmentSpecificMapper;
@Autowired @Autowired
private VideoMapper videoMapper; private VideoMapper videoMapper;
...@@ -2397,7 +2398,7 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste ...@@ -2397,7 +2398,7 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
return fireFightingSystemMapper.getStationStatusStatistics(); return fireFightingSystemMapper.getStationStatusStatistics();
} }
@Override @Override
public void resetMorphic() { public void resetMorphic() {
try { try {
...@@ -2440,15 +2441,15 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste ...@@ -2440,15 +2441,15 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
videoInScene = "".equals(videoInScene) ? action.getSequenceNbr().toString() videoInScene = "".equals(videoInScene) ? action.getSequenceNbr().toString()
: videoInScene + "," + action.getSequenceNbr(); : videoInScene + "," + action.getSequenceNbr();
} }
} }
parse.setChildren(newPointList); parse.setChildren(newPointList);
System.out.println("parse="+JSONObject.toJSONString(parse)); System.out.println("parse="+JSONObject.toJSONString(parse));
resourceDTO.setContent(JSONObject.toJSONString(parse)); resourceDTO.setContent(JSONObject.toJSONString(parse));
System.out.println("resourceDTO="+JSONObject.toJSONString(resourceDTO)); System.out.println("resourceDTO="+JSONObject.toJSONString(resourceDTO));
FeignUtil.remoteCall(() -> Morphic.morphicSubjectClient.update(resourceDTO)); FeignUtil.remoteCall(() -> Morphic.morphicSubjectClient.update(resourceDTO));
sourceScene.setPointInScene(pointInScene); sourceScene.setPointInScene(pointInScene);
sourceScene.setVideoInScene(videoInScene); sourceScene.setVideoInScene(videoInScene);
System.out.println("sourceScene="+JSONObject.toJSONString(sourceScene)); System.out.println("sourceScene="+JSONObject.toJSONString(sourceScene));
...@@ -2474,8 +2475,12 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste ...@@ -2474,8 +2475,12 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
BigDecimal redNum = new BigDecimal(String.valueOf(resultMap.get("redCode"))); BigDecimal redNum = new BigDecimal(String.valueOf(resultMap.get("redCode")));
BigDecimal yellowNum = new BigDecimal(String.valueOf(resultMap.get("yellowCode"))); BigDecimal yellowNum = new BigDecimal(String.valueOf(resultMap.get("yellowCode")));
BigDecimal errorNum = redNum.add(yellowNum); BigDecimal errorNum = redNum.add(yellowNum);
BigDecimal ratePercent = errorNum.divide(total, 2, BigDecimal.ROUND_HALF_UP); if (total.compareTo(BigDecimal.ZERO) == 0) {
map.put("ratePercent", ratePercent + "%"); map.put("ratePercent", "0%");
} else {
BigDecimal ratePercent = errorNum.divide(total, 2, RoundingMode.HALF_UP);
map.put("ratePercent", ratePercent.multiply(new BigDecimal(100)) + "%");
}
return map; return map;
} }
......
...@@ -16,6 +16,7 @@ import com.yeejoin.equipmanage.fegin.IotFeign; ...@@ -16,6 +16,7 @@ import com.yeejoin.equipmanage.fegin.IotFeign;
import com.yeejoin.equipmanage.mapper.WlCarMileageMapper; import com.yeejoin.equipmanage.mapper.WlCarMileageMapper;
import com.yeejoin.equipmanage.service.ICarService; import com.yeejoin.equipmanage.service.ICarService;
import com.yeejoin.equipmanage.service.IWlCarMileageService; import com.yeejoin.equipmanage.service.IWlCarMileageService;
import com.yeejoin.equipmanage.thread.ThreadCarMileageTreatment;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -348,7 +349,6 @@ public class WlCarMileageServiceImpl extends ServiceImpl<WlCarMileageMapper, WlC ...@@ -348,7 +349,6 @@ public class WlCarMileageServiceImpl extends ServiceImpl<WlCarMileageMapper, WlC
start.getDoubleValue("FireCar_Longitude"), end.getDoubleValue("FireCar_Latitude"), start.getDoubleValue("FireCar_Longitude"), end.getDoubleValue("FireCar_Latitude"),
end.getDoubleValue("FireCar_Longitude")); end.getDoubleValue("FireCar_Longitude"));
} }
// 查询车辆最新位置 // 查询车辆最新位置
String address = getAddress(startLongitude, startLatitude); String address = getAddress(startLongitude, startLatitude);
// 里程耗时 // 里程耗时
...@@ -379,10 +379,19 @@ public class WlCarMileageServiceImpl extends ServiceImpl<WlCarMileageMapper, WlC ...@@ -379,10 +379,19 @@ public class WlCarMileageServiceImpl extends ServiceImpl<WlCarMileageMapper, WlC
item.setStartLongitude(startLongitude); item.setStartLongitude(startLongitude);
item.setStartLatitude(startLatitude); item.setStartLatitude(startLatitude);
this.baseMapper.insert(item); this.baseMapper.insert(item);
//根据iotcode获取车辆并且同步经纬度到车辆
Car car = iCarService.getOne(new QueryWrapper<Car>().eq("iot_code", item.getIotCode()));
car.setLongitude(startLongitude);
car.setLatitude(startLatitude);
} }
}); });
log.info("轨迹切分任务执行完成.............."); log.info("轨迹切分任务执行完成..............");
log.info("-------------------对于切割完成的数据进行倒计时操作----------------------------------");
ThreadCarMileageTreatment threadCarMileageTreatment = new ThreadCarMileageTreatment();
log.info("-------------------对于切割完成的数据进行倒计时开始----------------------------------");
threadCarMileageTreatment.start();
log.info("-------------------对于切割完成的数据进行倒计时结束----------------------------------");
} }
@Override @Override
......
package com.yeejoin.equipmanage.thread; package com.yeejoin.equipmanage.thread;
import ch.qos.logback.core.joran.conditional.ElseAction;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
...@@ -13,6 +14,9 @@ import com.yeejoin.equipmanage.utils.CarUtils; ...@@ -13,6 +14,9 @@ import com.yeejoin.equipmanage.utils.CarUtils;
import org.eclipse.paho.client.mqttv3.MqttException; import org.eclipse.paho.client.mqttv3.MqttException;
import org.eclipse.paho.client.mqttv3.MqttMessage; import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.jfree.util.Log; import org.jfree.util.Log;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.component.emq.EmqKeeper; import org.typroject.tyboot.component.emq.EmqKeeper;
import org.typroject.tyboot.core.restful.utils.ResponseModel; import org.typroject.tyboot.core.restful.utils.ResponseModel;
...@@ -23,24 +27,23 @@ import java.util.List; ...@@ -23,24 +27,23 @@ import java.util.List;
import java.util.Timer; import java.util.Timer;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
public class ThreadCar extends Thread { public class
ThreadCar extends Thread {
Logger logger = LoggerFactory.getLogger(ThreadCar.class);
private IWlCarMileageService iWlCarMileageService; private IWlCarMileageService iWlCarMileageService;
private IotFeign iotFeign; private IotFeign iotFeign;
private String topic; private String topic;
private Long clippingTime; private Long clippingTime;
ICarService iCarService; ICarService iCarService;
private EmqKeeper emqkeeper;
private JSONObject jsonObject; private JSONObject jsonObject;
public ThreadCar(String topic, JSONObject jsonObject, IWlCarMileageService iWlCarMileageService, IotFeign iotFeign, ICarService iCarService, EmqKeeper emqkeeper, Long clippingTime) { public ThreadCar(String topic, JSONObject jsonObject, IWlCarMileageService iWlCarMileageService, IotFeign iotFeign, ICarService iCarService, Long clippingTime) {
this.topic = topic; this.topic = topic;
this.jsonObject = jsonObject; this.jsonObject = jsonObject;
this.iWlCarMileageService = iWlCarMileageService; this.iWlCarMileageService = iWlCarMileageService;
this.iotFeign = iotFeign; this.iotFeign = iotFeign;
this.iCarService = iCarService; this.iCarService = iCarService;
this.emqkeeper = emqkeeper;
this.clippingTime = clippingTime; this.clippingTime = clippingTime;
} }
...@@ -51,7 +54,8 @@ public class ThreadCar extends Thread { ...@@ -51,7 +54,8 @@ public class ThreadCar extends Thread {
JSONObject lastObj = null; JSONObject lastObj = null;
WlCarMileage last = null; WlCarMileage last = null;
try { try {
Log.info("-------------------------" + this.topic + "结束坐标开始计时------------------------------"); Long startTime = System.currentTimeMillis();
logger.info("=============================================" + topic + "结束坐标开始计时=======================================");
this.sleep(clippingTime); this.sleep(clippingTime);
//业务处理 //业务处理
//如果十分钟没有坐标,则需要设置结束标记 //如果十分钟没有坐标,则需要设置结束标记
...@@ -67,7 +71,6 @@ public class ThreadCar extends Thread { ...@@ -67,7 +71,6 @@ public class ThreadCar extends Thread {
last.getStartTime(), new Date(new Date().getTime() + 2000)); last.getStartTime(), new Date(new Date().getTime() + 2000));
List<Object> list = result.getResult(); List<Object> list = result.getResult();
if (list != null && list.size() > 0) { if (list != null && list.size() > 0) {
// 过滤空坐标 // 过滤空坐标
List<Object> filterList = new ArrayList<Object>(); List<Object> filterList = new ArrayList<Object>();
for (int i = 0; i < list.size(); i++) { for (int i = 0; i < list.size(); i++) {
...@@ -82,14 +85,13 @@ public class ThreadCar extends Thread { ...@@ -82,14 +85,13 @@ public class ThreadCar extends Thread {
} }
} }
} }
// JSONObject lastObj =
// JSONObject.parseObject(JSONObject.toJSONString(list.get(list.size() - 1)));
if (lastObj == null) { if (lastObj == null) {
lastObj = new JSONObject(); lastObj = new JSONObject();
lastObj.put("FireCar_Longitude", last.getStartLongitude()); lastObj.put("FireCar_Longitude", last.getStartLongitude());
lastObj.put("FireCar_Latitude", last.getEndLatitude()); lastObj.put("FireCar_Latitude", last.getEndLatitude());
lastObj.put("time", 0); lastObj.put("time", 0);
lastObj.put("FireCar_Speed", 0); lastObj.put("FireCar_Speed", 0);
logger.info("---过滤后last信息为null时的数据::" + JSONObject.toJSONString(last));
} }
double endLongitude = lastObj.getDoubleValue("FireCar_Longitude"); double endLongitude = lastObj.getDoubleValue("FireCar_Longitude");
double endLatitude = lastObj.getDoubleValue("FireCar_Latitude"); double endLatitude = lastObj.getDoubleValue("FireCar_Latitude");
...@@ -97,15 +99,25 @@ public class ThreadCar extends Thread { ...@@ -97,15 +99,25 @@ public class ThreadCar extends Thread {
Date endTime = new Date(); Date endTime = new Date();
//实时库中的时间虽然坐标与记录的一致,但是更新时间可能最新,故可能会有记录的结束时间早于开始时间 //实时库中的时间虽然坐标与记录的一致,但是更新时间可能最新,故可能会有记录的结束时间早于开始时间
long takeTime = (endTime.getTime() / 1000 * 1000) - (last.getStartTime().getTime() / 1000 * 1000); long takeTime = (endTime.getTime() / 1000 * 1000) - (last.getStartTime().getTime() / 1000 * 1000);
if(takeTime<0){ if (takeTime < 0) {
takeTime = 0-takeTime; takeTime = 0 - takeTime;
} }
last.setTakeTime(takeTime);
last.setEndLongitude(endLongitude); last.setEndLongitude(endLongitude);
last.setEndLatitude(endLatitude); last.setEndLatitude(endLatitude);
last.setEndTime(endTime); last.setEndTime(endTime);
last.setEndName(CarUtils.getAddress(endLongitude, endLatitude)); last.setEndName(CarUtils.getAddress(endLongitude, endLatitude));
last.setEndSpeed(lastObj.getIntValue("FireCar_Speed")); //原来的写法不够健壮,如果上报的数据为double写法则会直接报凑错
last.setTakeTime(takeTime); try {
Double.valueOf(jsonObject.getDoubleValue("FireCar_Speed")).intValue();
if (ObjectUtils.isEmpty(lastObj.containsKey("FireCar_Speed"))) {
last.setEndSpeed(0);
} else {
last.setEndSpeed(Double.valueOf(jsonObject.getString("FireCar_Speed")).intValue());
}
} catch (Exception exception) {
last.setEndSpeed(0);
}
double travel = 0.0; double travel = 0.0;
// 获取里程 // 获取里程
for (int i = 0; i < filterList.size() - 1; i++) { for (int i = 0; i < filterList.size() - 1; i++) {
...@@ -115,15 +127,24 @@ public class ThreadCar extends Thread { ...@@ -115,15 +127,24 @@ public class ThreadCar extends Thread {
start.getDoubleValue("FireCar_Longitude"), end.getDoubleValue("FireCar_Latitude"), start.getDoubleValue("FireCar_Longitude"), end.getDoubleValue("FireCar_Latitude"),
end.getDoubleValue("FireCar_Longitude")); end.getDoubleValue("FireCar_Longitude"));
} }
last.setTravel(new BigDecimal(travel / 1000).setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue()); Double travle =new BigDecimal(travel / 1000).setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue();
logger.info("---------------------本次里程::"+travle+"---------------------------------------");
last.setTravel(travle);
iWlCarMileageService.updateById(last); iWlCarMileageService.updateById(last);
Log.info("============================================================更新结束坐标成功==========:"+topic); Long lastTime = System.currentTimeMillis();
this.interrupt(); logger.info("---正常时获取到的获取last信息::" + JSONObject.toJSONString(last));
logger.info("--------------" + topic + "结束坐标成功::花费时间====" + String.valueOf((lastTime - startTime) / 60000) + "分钟-------------------------");
logger.info("============================================================更新结束坐标成功==============================================:" + topic);
} }
} catch (Exception exception) { } catch (Exception exception) {
if (last != null) { if (last != null) {
logger.info("---异常时获取到的获取last信息::" + JSONObject.toJSONString(last));
iWlCarMileageService.updateById(last); iWlCarMileageService.updateById(last);
} }
} finally {
logger.info("销毁车辆倒计时线程::topic_" + topic);
this.interrupt();
} }
} }
......
...@@ -14,9 +14,12 @@ import com.yeejoin.equipmanage.service.impl.WlCarMileageServiceImpl; ...@@ -14,9 +14,12 @@ import com.yeejoin.equipmanage.service.impl.WlCarMileageServiceImpl;
import com.yeejoin.equipmanage.utils.CarUtils; import com.yeejoin.equipmanage.utils.CarUtils;
import liquibase.pro.packaged.E; import liquibase.pro.packaged.E;
import org.jfree.util.Log; import org.jfree.util.Log;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.component.emq.EmqKeeper; import org.typroject.tyboot.component.emq.EmqKeeper;
import org.typroject.tyboot.core.restful.utils.ResponseModel; import org.typroject.tyboot.core.restful.utils.ResponseModel;
...@@ -28,6 +31,7 @@ import java.util.List; ...@@ -28,6 +31,7 @@ import java.util.List;
@Component @Component
public class ThreadCarMileageTreatment extends Thread { public class ThreadCarMileageTreatment extends Thread {
Logger logger = LoggerFactory.getLogger(ThreadCarMileageTreatment.class);
@Autowired @Autowired
private WlCarMileageServiceImpl wlCarMileageServiceImpl; private WlCarMileageServiceImpl wlCarMileageServiceImpl;
...@@ -40,7 +44,7 @@ public class ThreadCarMileageTreatment extends Thread { ...@@ -40,7 +44,7 @@ public class ThreadCarMileageTreatment extends Thread {
@Override @Override
public void run() { public void run() {
Log.info("----------------------------------------------------开始处理未结束里程---------------------------------"); logger.info("----------------------------------------------------开始处理未结束里程---------------------------------");
HashMap<String, String> hashMap = new HashMap<>(); HashMap<String, String> hashMap = new HashMap<>();
//toDo //toDo
WlCarMileage last = null; WlCarMileage last = null;
...@@ -82,7 +86,7 @@ public class ThreadCarMileageTreatment extends Thread { ...@@ -82,7 +86,7 @@ public class ThreadCarMileageTreatment extends Thread {
lastObj = Obj; lastObj = Obj;
} }
} }
Log.info("----------------------------------------lastobj----------------------"+lastObj.toJSONString()); logger.info("----------------------------------------lastobj----------------------"+lastObj.toJSONString());
if (lastObj == null) { if (lastObj == null) {
lastObj = new JSONObject(); lastObj = new JSONObject();
lastObj.put("FireCar_Longitude", last.getStartLongitude()); lastObj.put("FireCar_Longitude", last.getStartLongitude());
...@@ -97,12 +101,22 @@ public class ThreadCarMileageTreatment extends Thread { ...@@ -97,12 +101,22 @@ public class ThreadCarMileageTreatment extends Thread {
if(takeTime<0){ if(takeTime<0){
takeTime = 0-takeTime; takeTime = 0-takeTime;
} }
last.setTakeTime(takeTime);
last.setEndLongitude(endLongitude); last.setEndLongitude(endLongitude);
last.setEndLatitude(endLatitude); last.setEndLatitude(endLatitude);
last.setEndTime(endTime); last.setEndTime(endTime);
last.setEndName(CarUtils.getAddress(endLongitude, endLatitude)); last.setEndName(CarUtils.getAddress(endLongitude, endLatitude));
last.setEndSpeed(lastObj.getIntValue("FireCar_Speed")); //原来的写法不够健壮,如果上报的数据为double写法则会直接报凑错
last.setTakeTime(takeTime); try {
Double.valueOf(lastObj.getDoubleValue("FireCar_Speed")).intValue();
if (ObjectUtils.isEmpty(lastObj.containsKey("FireCar_Speed"))) {
last.setEndSpeed(0);
} else {
last.setEndSpeed(Double.valueOf(lastObj.getString("FireCar_Speed")).intValue());
}
} catch (Exception exception) {
last.setEndSpeed(0);
}
double travel = 0.0; double travel = 0.0;
// 获取里程 // 获取里程
for (int k = 0; k < filterList.size() - 1; k++) { for (int k = 0; k < filterList.size() - 1; k++) {
...@@ -112,14 +126,17 @@ public class ThreadCarMileageTreatment extends Thread { ...@@ -112,14 +126,17 @@ public class ThreadCarMileageTreatment extends Thread {
start.getDoubleValue("FireCar_Longitude"), end.getDoubleValue("FireCar_Latitude"), start.getDoubleValue("FireCar_Longitude"), end.getDoubleValue("FireCar_Latitude"),
end.getDoubleValue("FireCar_Longitude")); end.getDoubleValue("FireCar_Longitude"));
} }
last.setTravel(new BigDecimal(travel / 1000).setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue()); Double travle =new BigDecimal(travel / 1000).setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue();
Log.info("----------------------------------------last----------------------"+lastObj.toJSONString()); logger.info("---------------------本次里程::"+travle+"---------------------------------------");
// wlCarMileageServiceImpl.updateById(last); last.setTravel(travle);
logger.info("----------------------------------------last----------------------"+lastObj.toJSONString());
wlCarMileageServiceImpl.updateById(last);
} }
} }
} }
} catch (Exception exception) { } catch (Exception exception) {
exception.printStackTrace(); logger.info(exception.getMessage());
wlCarMileageServiceImpl.updateById(last);
} }
} }
......
...@@ -5,11 +5,14 @@ import com.yeejoin.amos.boot.biz.common.controller.BaseController; ...@@ -5,11 +5,14 @@ import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.module.jcs.api.service.IFireResourceSupervisionService; import com.yeejoin.amos.boot.module.jcs.api.service.IFireResourceSupervisionService;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import org.typroject.tyboot.core.foundation.enumeration.UserType; import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.restful.doc.TycloudOperation; import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper; import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel; import org.typroject.tyboot.core.restful.utils.ResponseModel;
...@@ -26,9 +29,11 @@ public class FireResourceSupervisionController extends BaseController { ...@@ -26,9 +29,11 @@ public class FireResourceSupervisionController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET", value = "驻站消防员、运维人员统计信息查询", notes = "驻站消防员、运维人员统计信息查询") @ApiOperation(httpMethod = "GET", value = "驻站消防员、运维人员统计信息查询", notes = "驻站消防员、运维人员统计信息查询")
@RequestMapping(value = "/stats", method = RequestMethod.GET) @RequestMapping(value = "/stats", method = RequestMethod.GET)
public ResponseModel<Object> stats() { public ResponseModel<Object> stats(@RequestParam(value = "bizOrgCode", required = false) String bizOrgCode) {
ReginParams reginParams = getSelectedOrgInfo(); if (StringUtils.isBlank(bizOrgCode)) {
String bizOrgCode = reginParams.getPersonIdentity().getCompanyBizOrgCode(); ReginParams reginParams = getSelectedOrgInfo();
bizOrgCode = !ValidationUtil.isEmpty(reginParams.getPersonIdentity()) && StringUtils.isNotEmpty(reginParams.getPersonIdentity().getBizOrgCode()) ? reginParams.getPersonIdentity().getBizOrgCode() : null;
}
Map<String, Map<String, Number>> personnelStats = iFireResourceSupervisionService.getPersonnelStats(bizOrgCode); Map<String, Map<String, Number>> personnelStats = iFireResourceSupervisionService.getPersonnelStats(bizOrgCode);
return ResponseHelper.buildResponse(personnelStats); return ResponseHelper.buildResponse(personnelStats);
} }
......
...@@ -3,6 +3,7 @@ package com.yeejoin.amos.boot.module.jcs.biz.controller; ...@@ -3,6 +3,7 @@ package com.yeejoin.amos.boot.module.jcs.biz.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yeejoin.amos.boot.biz.common.utils.DateUtils; import com.yeejoin.amos.boot.biz.common.utils.DateUtils;
import com.yeejoin.amos.boot.module.common.api.core.framework.PersonIdentify;
import com.yeejoin.amos.boot.module.common.api.dto.FormValue; import com.yeejoin.amos.boot.module.common.api.dto.FormValue;
import com.yeejoin.amos.boot.module.common.api.dto.OrgPersonFormDto; import com.yeejoin.amos.boot.module.common.api.dto.OrgPersonFormDto;
import com.yeejoin.amos.boot.module.common.api.entity.OrgUsr; import com.yeejoin.amos.boot.module.common.api.entity.OrgUsr;
...@@ -17,6 +18,7 @@ import com.yeejoin.amos.boot.biz.common.controller.BaseController; ...@@ -17,6 +18,7 @@ import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import com.yeejoin.amos.boot.module.jcs.biz.service.impl.SignServiceImpl; import com.yeejoin.amos.boot.module.jcs.biz.service.impl.SignServiceImpl;
...@@ -125,7 +127,36 @@ public class SignController extends BaseController { ...@@ -125,7 +127,36 @@ public class SignController extends BaseController {
Page<SignDto> page = new Page<SignDto>(); Page<SignDto> page = new Page<SignDto>();
page.setCurrent(dto.getCurrent()); page.setCurrent(dto.getCurrent());
page.setSize(dto.getSize()); page.setSize(dto.getSize());
return ResponseHelper.buildResponse(signServiceImpl.queryForSignPageByMapper(page, dto)); IPage<SignDto> page1 = signServiceImpl.queryForSignPageByMapper(page, dto);
if (0 < page1.getRecords().size()) {
for(SignDto d : page1.getRecords()){
QueryWrapper<OrgUsr> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("sequence_nbr",d.getSignUserId());
queryWrapper.eq("is_delete",0);
OrgUsr orgUsr = iOrgUsrService.getOne(queryWrapper);
try {
OrgPersonFormDto orgPersonFormDto = iOrgUsrService.selectPersonById(orgUsr.getSequenceNbr());
List<FormValue> personImg = orgPersonFormDto.getDynamicFormAlert().stream().filter(e -> e.getKey().equals("personImg")).collect(Collectors.toList());
d.setPersonPhotos(personImg.get(0).getValue());
} catch (Exception e) {
e.printStackTrace();
}
}
}
return ResponseHelper.buildResponse(page1);
}
/**
* 人员信息卡统计打卡
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET",value = "人员信息卡统计打卡", notes = "人员信息卡统计打卡")
@GetMapping(value = "/statistic")
public ResponseModel<Map<String, Object>> getSignStatistic(@RequestParam(value = "userId" , required = false) String userId,
@RequestParam(value = "bizOrgCode" , required = false) String bizOrgCode) {
return ResponseHelper.buildResponse(signServiceImpl.getSignStatistic(userId, bizOrgCode));
} }
/** /**
......
...@@ -111,6 +111,16 @@ public class SignServiceImpl extends BaseService<SignDto,Sign,SignMapper> implem ...@@ -111,6 +111,16 @@ public class SignServiceImpl extends BaseService<SignDto,Sign,SignMapper> implem
} }
@Override @Override
public Map<String, Object> getSignStatistic(String userId, String bizOrgCode) {
// 人员缺卡统计暂无法统计,只知道person_of_day需要打卡总人数,但是打一次卡和哪些人打卡无法获取,此处返回了默认值
// this.baseMapper.getSignStatistic(bizOrgCode, userId);
Map<String, Object> map = new HashMap<>();
map.put("totalNum", 50);
map.put("loss", 4);
return map;
}
@Override
public Boolean saveSign(SignDto dot) { public Boolean saveSign(SignDto dot) {
Sign sign = new Sign(); Sign sign = new Sign();
Map<String,Object> bizOrgCodeAndBizOrgName = iFirefightersService.getCompanyName(dot.getBizOrgCode()); Map<String,Object> bizOrgCodeAndBizOrgName = iFirefightersService.getCompanyName(dot.getBizOrgCode());
......
...@@ -916,4 +916,41 @@ public class CheckController extends AbstractBaseController { ...@@ -916,4 +916,41 @@ public class CheckController extends AbstractBaseController {
return CommonResponseUtil.failure(e.getMessage()); return CommonResponseUtil.failure(e.getMessage());
} }
} }
@TycloudOperation(ApiLevel = UserType.AGENCY)
@RequestMapping(value = "/people/statistic", method = RequestMethod.GET, produces = "application/json;charset=UTF-8")
public CommonResponse getPeopleStatistic(
@RequestParam(required = false) String bizOrgCode,
@RequestParam(required = false) String userId) {
try {
return CommonResponseUtil.success(checkService.getPeopleStatistic(bizOrgCode, userId));
} catch (Exception e) {
return CommonResponseUtil.failure(e.getMessage());
}
}
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@RequestMapping(value = "/people/page", method = RequestMethod.GET, produces = "application/json;charset=UTF-8")
public CommonResponse getPeoplePatrolPage(
@RequestParam(required = false) String bizOrgCode,
@RequestParam(required = false) String userId,
int pageNumber,
int pageSize) {
CheckInfoPageParam param = new CheckInfoPageParam();
param.setBizOrgCode(bizOrgCode);
param.setUserId(userId);
ReginParams reginParams = getSelectedOrgInfo();
param.setOrderBy("checkDate desc");
param.setBizOrgCode(ObjectUtils.isEmpty(param.getBizOrgCode()) ? reginParams.getPersonIdentity().getBizOrgCode() : param.getBizOrgCode());
CommonPageable commonPageable = new CommonPageable();
commonPageable.setPageNumber(pageNumber);
commonPageable.setPageSize(pageSize);
if(commonPageable !=null){
param.setPageNumber(commonPageable.getPageNumber()-1);
param.setPageSize(commonPageable.getPageSize());
}
Page<CheckInfoVo> list = checkService.getPeoplePatrolPage(param);
return CommonResponseUtil.success(list);
}
} }
...@@ -38,8 +38,11 @@ public class ControlScreenController extends AbstractBaseController { ...@@ -38,8 +38,11 @@ public class ControlScreenController extends AbstractBaseController {
@GetMapping("/statics") @GetMapping("/statics")
@ApiOperation(value = "消防运维信息") @ApiOperation(value = "消防运维信息")
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false) @TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
public CommonResponse getStatics(@RequestParam(required = false) String companyCode) { public CommonResponse getStatics(
return CommonResponseUtil.success(iPlanTaskService.getStatics(companyCode)); @RequestParam(required = false) String companyCode,
@RequestParam(required = false) String bizOrgCode
) {
return CommonResponseUtil.success(iPlanTaskService.getStatics(companyCode, bizOrgCode));
} }
} }
...@@ -278,4 +278,10 @@ public interface CheckMapper extends BaseMapper { ...@@ -278,4 +278,10 @@ public interface CheckMapper extends BaseMapper {
List<Map<String, Object>> selectCheckById(@Param(value = "taskId") Long taskId, @Param(value = "pointId") Long pointId); List<Map<String, Object>> selectCheckById(@Param(value = "taskId") Long taskId, @Param(value = "pointId") Long pointId);
List<Map<String, Object>> queryCheckInputItemsByCheckId(@Param(value="checkId") long checkId); List<Map<String, Object>> queryCheckInputItemsByCheckId(@Param(value="checkId") long checkId);
Map<String, Object> getPeopleStatistic(@Param(value = "bizOrgCode") String bizOrgCode, @Param(value = "userId") String userId);
long getPeoplePageCount(CheckInfoPageParam param);
List<CheckInfoVo> getPeopleCheckPage(CheckInfoPageParam param);
} }
package com.yeejoin.amos.patrol.business.service.impl; package com.yeejoin.amos.patrol.business.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.google.common.base.Joiner; import com.google.common.base.Joiner;
...@@ -20,6 +21,7 @@ import com.yeejoin.amos.patrol.business.dao.repository.*; ...@@ -20,6 +21,7 @@ import com.yeejoin.amos.patrol.business.dao.repository.*;
import com.yeejoin.amos.patrol.business.dto.CheckDto; import com.yeejoin.amos.patrol.business.dto.CheckDto;
import com.yeejoin.amos.patrol.business.entity.mybatis.*; import com.yeejoin.amos.patrol.business.entity.mybatis.*;
import com.yeejoin.amos.patrol.business.feign.EquipFeign; import com.yeejoin.amos.patrol.business.feign.EquipFeign;
import com.yeejoin.amos.patrol.business.feign.IdxFeign;
import com.yeejoin.amos.patrol.business.feign.JcsFeignClient; import com.yeejoin.amos.patrol.business.feign.JcsFeignClient;
import com.yeejoin.amos.patrol.business.param.*; import com.yeejoin.amos.patrol.business.param.*;
import com.yeejoin.amos.patrol.business.service.intfc.ICheckService; import com.yeejoin.amos.patrol.business.service.intfc.ICheckService;
...@@ -30,6 +32,7 @@ import com.yeejoin.amos.patrol.business.util.CheckDetailInputPageParam; ...@@ -30,6 +32,7 @@ import com.yeejoin.amos.patrol.business.util.CheckDetailInputPageParam;
import com.yeejoin.amos.patrol.business.util.Toke; import com.yeejoin.amos.patrol.business.util.Toke;
import com.yeejoin.amos.patrol.business.vo.CheckAnalysisVo; import com.yeejoin.amos.patrol.business.vo.CheckAnalysisVo;
import com.yeejoin.amos.patrol.business.vo.CheckInfoVo; import com.yeejoin.amos.patrol.business.vo.CheckInfoVo;
import com.yeejoin.amos.patrol.business.vo.DefectVo;
import com.yeejoin.amos.patrol.common.enums.CheckStatusEnum; import com.yeejoin.amos.patrol.common.enums.CheckStatusEnum;
import com.yeejoin.amos.patrol.common.enums.PointLevelEnum; import com.yeejoin.amos.patrol.common.enums.PointLevelEnum;
import com.yeejoin.amos.patrol.common.enums.PointStatusEnum; import com.yeejoin.amos.patrol.common.enums.PointStatusEnum;
...@@ -110,6 +113,9 @@ public class CheckServiceImpl implements ICheckService { ...@@ -110,6 +113,9 @@ public class CheckServiceImpl implements ICheckService {
@Autowired @Autowired
private CheckInputMapper checkInputMapper; private CheckInputMapper checkInputMapper;
@Autowired
private IdxFeign idxFeign;
public static final Logger log = LoggerFactory.getLogger(CheckServiceImpl.class); public static final Logger log = LoggerFactory.getLogger(CheckServiceImpl.class);
@Override @Override
...@@ -162,6 +168,36 @@ public class CheckServiceImpl implements ICheckService { ...@@ -162,6 +168,36 @@ public class CheckServiceImpl implements ICheckService {
return new PageImpl<>(content, param, total); return new PageImpl<>(content, param, total);
} }
public Page<CheckInfoVo> getPeoplePatrolPage(CheckInfoPageParam param) {
long total = checkMapper.getPeoplePageCount(param);
List<CheckInfoVo> content = Lists.newArrayList();
if (total == 0) {
return new PageImpl<>(content, param, total);
}
content = checkMapper.getPeopleCheckPage(param);
for (CheckInfoVo infoVo : content) {
FeignClientResult responseModel = new FeignClientResult();
List result = new ArrayList();
try {
responseModel = idxFeign.queryDefectByCodes(new ArrayList<>(), infoVo.getId());
result = (List) responseModel.getResult();
} catch (Exception e) {
e.printStackTrace();
}
List<DefectVo> res = new ArrayList();
if (result != null && 0 < result.size()) {
for(Object object : result) {
DefectVo vo = JSON.parseObject(JSON.toJSONString(object), DefectVo.class);
res.add(vo);
}
infoVo.setError(ObjectUtils.isEmpty(res.get(0)) ? "" : res.get(0).getDefectDescribe());
infoVo.setProblemNum(ObjectUtils.isEmpty(res.get(0)) ? "" : res.get(0).getDefectNum());
infoVo.setHandleStatus(ObjectUtils.isEmpty(res.get(0)) ? "" : String.valueOf(res.get(0).getDefectStatus()));
}
}
return new PageImpl<>(content, param, total);
}
@Override @Override
@Transactional @Transactional
public void saveCheckImg(List<CheckShot> imgList) { public void saveCheckImg(List<CheckShot> imgList) {
...@@ -2004,4 +2040,9 @@ public class CheckServiceImpl implements ICheckService { ...@@ -2004,4 +2040,9 @@ public class CheckServiceImpl implements ICheckService {
public List<Long> getPlanCheckDataCount(HashMap<String, Object> param) { public List<Long> getPlanCheckDataCount(HashMap<String, Object> param) {
return checkMapper.getPlanCheckDataCount(param); return checkMapper.getPlanCheckDataCount(param);
} }
@Override
public Map<String, Object> getPeopleStatistic(String bizOrgCode, String userId){
return checkMapper.getPeopleStatistic(bizOrgCode, userId);
}
} }
...@@ -2029,9 +2029,8 @@ public class PlanTaskServiceImpl implements IPlanTaskService { ...@@ -2029,9 +2029,8 @@ public class PlanTaskServiceImpl implements IPlanTaskService {
} }
@Override @Override
public List<Map<String, Object>> getStatics(String companyCode) { public List<Map<String, Object>> getStatics(String companyCode, String bizOrgCode) {
String bizOrgCode = null; if (StringUtils.isEmpty(bizOrgCode) && StringUtil.isNotEmpty(companyCode)) {
if (StringUtil.isNotEmpty(companyCode)) {
bizOrgCode = planTaskMapper.queryByCompanyCode(companyCode); bizOrgCode = planTaskMapper.queryByCompanyCode(companyCode);
} }
return planTaskMapper.getStatics(bizOrgCode); return planTaskMapper.getStatics(bizOrgCode);
......
...@@ -262,4 +262,8 @@ public interface ICheckService { ...@@ -262,4 +262,8 @@ public interface ICheckService {
List<HashMap<String,Object>> getEquipByCheckId(CheckDetailInputPageParam param); List<HashMap<String,Object>> getEquipByCheckId(CheckDetailInputPageParam param);
Page<CheckInfoVo> getCheckInfoNew(String toke,String product,String appKey,CheckInfoPageParam param); Page<CheckInfoVo> getCheckInfoNew(String toke,String product,String appKey,CheckInfoPageParam param);
Page<CheckInfoVo> getPeoplePatrolPage(CheckInfoPageParam param);
Map<String, Object> getPeopleStatistic(String bizOrgCode, String userId);
} }
...@@ -187,7 +187,7 @@ public interface IPlanTaskService { ...@@ -187,7 +187,7 @@ public interface IPlanTaskService {
*/ */
List<Map<String,Object>> firePatrolStatics(String bizOrgCode); List<Map<String,Object>> firePatrolStatics(String bizOrgCode);
List<Map<String,Object>> getStatics(String companyCode); List<Map<String,Object>> getStatics(String companyCode, String bizOrgCode);
/** /**
* 计划执行查询 * 计划执行查询
......
...@@ -47,6 +47,26 @@ public class CheckInfoVo { ...@@ -47,6 +47,26 @@ public class CheckInfoVo {
private String bizOrgName; private String bizOrgName;
private String problemNum;
private String handleStatus;
public String getProblemNum() {
return problemNum;
}
public String getHandleStatus() {
return handleStatus;
}
public void setProblemNum(String problemNum) {
this.problemNum = problemNum;
}
public void setHandleStatus(String handleStatus) {
this.handleStatus = handleStatus;
}
public void setBizOrgName(String bizOrgName) { public void setBizOrgName(String bizOrgName) {
this.bizOrgName = bizOrgName; this.bizOrgName = bizOrgName;
} }
......
...@@ -62,6 +62,9 @@ jobs.day.cron = 0 5 0 * * ? ...@@ -62,6 +62,9 @@ jobs.day.cron = 0 5 0 * * ?
jobs.week.cron = 0 25 0 ? * 1 jobs.week.cron = 0 25 0 ? * 1
jobs.day.cron.old = 0 25 0 * * ? jobs.day.cron.old = 0 25 0 * * ?
# 定时更新车辆二维码
update.car.qrCode=0 01 00 * * ?
#数据同步开关 #数据同步开关
systemctl.sync.switch=false systemctl.sync.switch=false
#数据JCS开关 #数据JCS开关
......
...@@ -714,4 +714,11 @@ ...@@ -714,4 +714,11 @@
FROM `wl_car` FROM `wl_car`
where extra2 &lt; #{batteryNumber} where extra2 &lt; #{batteryNumber}
</select> </select>
<update id="updateStatusByIds" parameterType="list">
UPDATE wl_car SET equip_status = #{status} WHERE id IN
<foreach collection="carIds" separator="," item="carId" open="(" close=")">
#{carId}
</foreach>
</update>
</mapper> </mapper>
...@@ -97,4 +97,15 @@ ...@@ -97,4 +97,15 @@
</foreach> </foreach>
AND equipment_index_key = '119car_Fire_foam' AND equipment_index_key = '119car_Fire_foam'
</select> </select>
<select id="selectIndexByTime" resultType="map">
SELECT
car_id carId
FROM
wl_car_property
WHERE
equipment_index_key = #{carStartIndexKey} AND `value` IS NOT NULL AND
DATE_SUB(CURDATE( ), INTERVAL 7 DAY ) > update_date
</select>
</mapper> </mapper>
...@@ -332,6 +332,57 @@ ...@@ -332,6 +332,57 @@
</choose> </choose>
</select> </select>
<select id="getPeoplePageCount" resultType="long">
SELECT
count(1)
FROM
`p_check` `a`
<trim prefix="WHERE" prefixOverrides="AND ">
<if test="userId!=null and userId!=''">and find_in_set(#{userId}, a.user_id) > 0</if>
<if test="bizOrgCode != null and bizOrgCode != ''">
and a.org_code LIKE CONCAT(#{bizOrgCode},'%')
</if>
</trim>
<choose>
<when test="pageSize==-1"></when>
<when test="pageSize!=-1">limit #{offset},#{pageSize}</when>
</choose>
</select>
<select id="getPeopleCheckPage" resultMap="checkInfoMap">
SELECT
a.id,
a.user_id,
date_format(
`a`.`check_time`,
'%Y-%m-%d %H:%i:%s'
) AS `checkDate`,
(
CASE
WHEN `a`.`is_ok` = 1
THEN '合格'
WHEN `a`.`is_ok` = 2
THEN '不合格'
WHEN `a`.`is_ok` = 3
THEN '漏检'
END
) as is_ok
FROM
`p_check` `a`
<trim prefix="WHERE" prefixOverrides="AND ">
`a`.`is_ok` != 1
<if test="userId!=null and userId!=''">and find_in_set(#{userId}, a.user_id) > 0</if>
<if test="bizOrgCode != null and bizOrgCode != ''">
and a.org_code LIKE CONCAT(#{bizOrgCode},'%')
</if>
</trim>
order by ${orderBy}
<choose>
<when test="pageSize==-1"></when>
<when test="pageSize!=-1">limit #{offset},#{pageSize}</when>
</choose>
</select>
<select id="queryUnqualifiedInputItem" resultType="Map" parameterType="int"> <select id="queryUnqualifiedInputItem" resultType="Map" parameterType="int">
SELECT SELECT
ii.name, ii.name,
...@@ -2207,4 +2258,19 @@ ...@@ -2207,4 +2258,19 @@
ORDER BY ORDER BY
ci.order_no ci.order_no
</select> </select>
<select id="getPeopleStatistic" resultType="Map">
SELECT
count(1) AS total
FROM
p_check pc
<where>
<if test="bizOrgCode !=null and bizOrgCode!='' ">
pc.org_code like CONCAT(#{bizOrgCode},'%')
</if>
<if test="bizOrgCode !=null and bizOrgCode!='' ">
AND pc.user_id = #{userId}
</if>
</where>
</select>
</mapper> </mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment