Commit 9b2c98f1 authored by taabe's avatar taabe

力量调派、警情结案、非警情确认更新车辆状态

parent f429429f
package com.yeejoin.amos.boot.module.jcs.api.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author DELL
*/
@Data
@ApiModel(value = "车辆状态信息dto", description = "车辆状态信息dto")
public class CarStatusInfoDto {
@ApiModelProperty(value = "车辆id")
private String sequenceNbr;
@ApiModelProperty(value = "车辆状态")
private String status;
}
......@@ -9,11 +9,16 @@ import lombok.Getter;
@Getter
@AllArgsConstructor
public enum FireCarStatusEnum {
/**
* 执勤、出动
*/
onDuty("onDuty", "1", "执勤"),
out("out", "2", "出动");
// 执勤状态
执勤("ZW", "1", "执勤"),
// 出动状态
出动("ZQ", "2", "出动"),
// 维修状态
维修("WX","3", "维修"),
// 退役状态
退役("TY","6", "退役"),
// 报废状态
报废("BF","7", "报废");
private String key;
private String code;
......
package com.yeejoin.amos.boot.module.jcs.api.feign;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.jcs.api.dto.CarStatusInfoDto;
import com.yeejoin.amos.boot.module.jcs.api.dto.EquipSpecificDto;
import com.yeejoin.amos.boot.module.jcs.api.dto.EquipmentOnCarDto;
import com.yeejoin.amos.component.feign.config.InnerInvokException;
......@@ -20,7 +21,7 @@ import java.util.Map;
*
* @author Dell
*/
@FeignClient(name = "AMOS-EQUIPMANAGE", path = "equip", configuration = {MultipartSupportConfig.class})
@FeignClient(name = "AMOS-EQUIPMANAGE-tb", path = "equip", configuration = {MultipartSupportConfig.class})
public interface EquipFeignClient {
/**
......@@ -82,4 +83,12 @@ public interface EquipFeignClient {
*/
@RequestMapping(value = "/building/tree", method = RequestMethod.GET)
ResponseModel<Object> getBuildingTree();
/**
* 更新车辆状态
* @param carStatusInfo 车辆状态信息
* @return
*/
@RequestMapping(value = "/car/status", method = RequestMethod.POST)
ResponseModel<Object> updateCarStatus(@RequestBody List<CarStatusInfoDto> carStatusInfo);
}
......@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.boot.module.jcs.api.dto.PowerTransferCompanyDto;
import com.yeejoin.amos.boot.module.jcs.api.dto.PowerTransferCompanyResourcesDto;
import com.yeejoin.amos.boot.module.jcs.api.entity.PowerTransfer;
import org.apache.ibatis.annotations.Param;
import java.util.List;
......@@ -17,4 +18,12 @@ public interface PowerTransferMapper extends BaseMapper<PowerTransfer> {
List<PowerTransferCompanyResourcesDto> getPowerTransferList(Long alertCalledId);
List<PowerTransferCompanyDto> getLastPowerTransferCompany(Long alertCalledId);
/**
* 根据警情id获取调派车辆id列表
*
* @param alertCalledId
* @return
*/
List<String> queryTransferCarIdsByAlertCalledId(@Param("alertCalledId") Long alertCalledId);
}
......@@ -35,4 +35,14 @@
group by company_name, type, rec_date
having rec_date = (select rec_date from jc_power_transfer_company_resources order by rec_date desc limit 1)
</select>
<select id="queryTransferCarIdsByAlertCalledId" resultType="java.lang.String">
SELECT
ptcr.resources_id carId
FROM
`jc_power_transfer` pt
LEFT JOIN jc_power_transfer_company ptc ON ptc.power_transfer_id = pt.sequence_nbr
LEFT JOIN jc_power_transfer_company_resources ptcr ON ptcr.power_transfer_company_id = ptc.sequence_nbr
WHERE
pt.alert_called_id = #{alertCalledId}
</select>
</mapper>
......@@ -34,7 +34,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 消防队伍
*
......@@ -87,7 +86,6 @@ public class FireTeamController extends BaseController {
public ResponseModel<Object> updateByIdFireTeam(HttpServletRequest request, @RequestBody FireTeam fireTeam) {
iFireTeamService.updateById(fireTeam);
return ResponseHelper.buildResponse(null);
}
/**
......
......@@ -3,8 +3,10 @@ package com.yeejoin.amos.boot.module.jcs.biz.controller;
import java.util.Arrays;
import com.yeejoin.amos.boot.module.jcs.api.dto.PowerTransferSimpleDto;
import com.yeejoin.amos.boot.module.jcs.api.feign.EquipFeignClient;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
......@@ -43,6 +45,8 @@ public class PowerTransferController extends BaseController {
@Autowired
PowerTransferServiceImpl powerTransferService;
@Autowired
EquipFeignClient equipFeignClient;
/**
* 新增力量调派
......
......@@ -12,6 +12,7 @@ import com.yeejoin.amos.boot.module.jcs.api.dto.AlertCalledRo;
import com.yeejoin.amos.boot.module.jcs.api.dto.AlertSubmittedDto;
import com.yeejoin.amos.boot.module.jcs.api.dto.AlertSubmittedExtDto;
import com.yeejoin.amos.boot.module.jcs.api.dto.AlertSubmittedSMSDto;
import com.yeejoin.amos.boot.module.jcs.api.dto.CarStatusInfoDto;
import com.yeejoin.amos.boot.module.jcs.api.dto.FormValue;
import com.yeejoin.amos.boot.module.jcs.api.dto.PowerTransferCompanyDto;
import com.yeejoin.amos.boot.module.jcs.api.dto.SchedulingReportingDto;
......@@ -26,7 +27,9 @@ import com.yeejoin.amos.boot.module.jcs.api.entity.Template;
import com.yeejoin.amos.boot.module.jcs.api.enums.AlertBusinessTypeEnum;
import com.yeejoin.amos.boot.module.jcs.api.enums.AlertSchedulingTypeEnum;
import com.yeejoin.amos.boot.module.jcs.api.enums.AlertSubmitTypeEnum;
import com.yeejoin.amos.boot.module.jcs.api.enums.FireCarStatusEnum;
import com.yeejoin.amos.boot.module.jcs.api.enums.SubmissionMethodEnum;
import com.yeejoin.amos.boot.module.jcs.api.feign.EquipFeignClient;
import com.yeejoin.amos.boot.module.jcs.api.mapper.AlertSubmittedMapper;
import com.yeejoin.amos.boot.module.jcs.api.service.IAlertSubmittedObjectService;
import com.yeejoin.amos.boot.module.jcs.api.service.IAlertSubmittedService;
......@@ -37,9 +40,11 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.typroject.tyboot.component.emq.EmqKeeper;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.utils.StringUtil;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import java.lang.reflect.Field;
......@@ -89,6 +94,9 @@ public class AlertSubmittedServiceImpl extends BaseService<AlertSubmittedDto, Al
@Value("${mqtt.topic.alert.reporting}")
private String topic;
@Autowired
EquipFeignClient equipFeignClient;
@Override
public SchedulingReportingDto listSchedulingByParam(AlertSubmittedDto queryParam) {
SchedulingReportingDto schedulingReportingDto = new SchedulingReportingDto();
......@@ -242,6 +250,7 @@ public class AlertSubmittedServiceImpl extends BaseService<AlertSubmittedDto, Al
* @param alertSubmittedDto 警情信息
* @param userName 用户名
*/
@Transactional(rollbackFor = Exception.class)
public Long saveAlertSubmitted(AlertSubmittedDto alertSubmittedDto, String userName) {
Long alertSubmittedId = alertSubmittedDto.getSequenceNbr();
String smsCode = "";
......@@ -316,6 +325,24 @@ public class AlertSubmittedServiceImpl extends BaseService<AlertSubmittedDto, Al
alertCalledService.updateAlertCalled(alertSubmittedDto.getAlertCalledId(),
alertSubmittedDto.getBusinessTypeCode());
if (AlertBusinessTypeEnum.警情结案.getCode().equals(alertSubmittedDto.getBusinessTypeCode())
|| AlertBusinessTypeEnum.非警情确认.getCode().equals(alertSubmittedDto.getBusinessTypeCode())) {
// 查询本次警情调派的车辆
List<String> transferCarIdList =
powerTransferService.queryTransferCarIdsByAlertCalledId(alertSubmittedDto.getAlertCalledId());
List<CarStatusInfoDto> carStatusInfoDtoList = Lists.newArrayList();
if (!ValidationUtil.isEmpty(transferCarIdList)) {
transferCarIdList.forEach(carId -> {
CarStatusInfoDto carStatusInfo = new CarStatusInfoDto();
carStatusInfo.setSequenceNbr(carId);
carStatusInfo.setStatus(FireCarStatusEnum.执勤.getCode());
carStatusInfoDtoList.add(carStatusInfo);
});
}
// 更新所有车辆状态为执勤
equipFeignClient.updateCarStatus(carStatusInfoDtoList);
}
// 4.发送任务消息
// 4.1组织短信内容
HashMap<String, String> smsParams = new HashMap<>();
......
......@@ -2,10 +2,12 @@ package com.yeejoin.amos.boot.module.jcs.biz.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.google.common.collect.Lists;
import com.yeejoin.amos.boot.module.jcs.api.dto.CarStatusInfoDto;
import com.yeejoin.amos.boot.module.jcs.api.dto.FireBrigadeResourceDto;
import com.yeejoin.amos.boot.module.jcs.api.dto.PowerTransferCompanyDto;
import com.yeejoin.amos.boot.module.jcs.api.dto.PowerTransferCompanyResourcesDto;
import com.yeejoin.amos.boot.module.jcs.api.dto.PowerTransferDto;
import com.yeejoin.amos.boot.module.jcs.api.dto.PowerTransferSimpleDto;
import com.yeejoin.amos.boot.module.jcs.api.entity.AlertCalled;
import com.yeejoin.amos.boot.module.jcs.api.entity.AlertFormValue;
import com.yeejoin.amos.boot.module.jcs.api.entity.FireTeam;
......@@ -18,7 +20,6 @@ import com.yeejoin.amos.boot.module.jcs.api.enums.FireCarStatusEnum;
import com.yeejoin.amos.boot.module.jcs.api.feign.EquipFeignClient;
import com.yeejoin.amos.boot.module.jcs.api.mapper.PowerTransferMapper;
import com.yeejoin.amos.boot.module.jcs.api.service.IPowerTransferService;
import com.yeejoin.amos.boot.module.jcs.api.dto.PowerTransferSimpleDto;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
......@@ -121,14 +122,16 @@ public class PowerTransferServiceImpl extends BaseService<PowerTransferDto, Powe
if (!ObjectUtils.isEmpty(result)) {
List<Map<String, Object>> fireCarListMapList = (List<Map<String, Object>>) result.getResult();
if (!ValidationUtil.isEmpty(fireCarListMapList)) {
fireCarListMapList.stream().filter(car -> ObjectUtils.isNotEmpty(car.get("teamId"))).forEach(car -> {
fireCarListMapList.stream().filter(car -> ObjectUtils.isNotEmpty(car.get("teamId"))).filter(car ->
FireCarStatusEnum.执勤.getCode().equals(car.get("carState")) //TODO 后续如果需要多个状态需要删掉这个过滤条件
|| FireCarStatusEnum.出动.getCode().equals(car.get("carState"))).forEach(car -> {
FireBrigadeResourceDto fireCarDto = (FireBrigadeResourceDto) Bean.mapToBean(car, FireBrigadeResourceDto.class);
// TODO 后期根据车物联状态来返回,现在为"在位=执勤","其他=出动"
if (FireCarStatusEnum.onDuty.getCode().equals(fireCarDto.getCarState())) {
fireCarDto.setCarStateDesc(FireCarStatusEnum.onDuty.getName());
// TODO 后期根据车物联状态来返回,现在为"在位=执勤","执勤=出动"
if (FireCarStatusEnum.执勤.getCode().equals(fireCarDto.getCarState())) {
fireCarDto.setCarStateDesc(FireCarStatusEnum.执勤.getName());
} else {
fireCarDto.setCarState(FireCarStatusEnum.out.getCode());
fireCarDto.setCarStateDesc(FireCarStatusEnum.out.getName());
fireCarDto.setCarState(FireCarStatusEnum.出动.getCode());
fireCarDto.setCarStateDesc(FireCarStatusEnum.出动.getName());
}
fireCarDtoList.add(fireCarDto);
});
......@@ -147,7 +150,7 @@ public class PowerTransferServiceImpl extends BaseService<PowerTransferDto, Powe
FireBrigadeResourceDto fireCarResourceDto = new FireBrigadeResourceDto();
List<FireBrigadeResourceDto> fireBrigadeResourceDtoList =
resultMap.get(brigade.getSequenceNbr().toString());
long onDutyCarCount = fireBrigadeResourceDtoList.stream().filter(car -> FireCarStatusEnum.onDuty.getCode().equals(car.getCarState())).count();
long onDutyCarCount = fireBrigadeResourceDtoList.stream().filter(car -> FireCarStatusEnum.执勤.getCode().equals(car.getCarState())).count();
long outCarCount = fireBrigadeResourceDtoList.size() - onDutyCarCount;
fireCarResourceDto.setId(brigade.getSequenceNbr().toString());
fireCarResourceDto.setType(FireBrigadeTypeEnum.专职消防队.getKey());
......@@ -216,6 +219,8 @@ public class PowerTransferServiceImpl extends BaseService<PowerTransferDto, Powe
List<PowerTransferCompanyDto> powerTransferCompanyDotList = powerTransferDto.getPowerTransferCompanyDotList();
PowerTransferCompany powerTransferCompany;
List<CarStatusInfoDto> carStatusInfoDtoList = Lists.newArrayList();
for (PowerTransferCompanyDto powerTransferCompanyDto : powerTransferCompanyDotList) {
powerTransferCompany = new PowerTransferCompany();
BeanUtils.copyProperties(powerTransferCompanyDto, powerTransferCompany);
......@@ -237,6 +242,11 @@ public class PowerTransferServiceImpl extends BaseService<PowerTransferDto, Powe
definitions.put("resourcesNum", powerTransferCompanyResourcesDto.getResourcesNum());
String information = getTaskInformation(content, definitions);
taskInformation.append(information).append(";");
CarStatusInfoDto carStatusInfoDto = new CarStatusInfoDto();
carStatusInfoDto.setSequenceNbr(powerTransferCompanyResourcesDto.getResourcesId());
carStatusInfoDto.setStatus(FireCarStatusEnum.出动.getCode());
carStatusInfoDtoList.add(carStatusInfoDto);
}
powerTransferCompany.setTaskInformation(taskInformation.toString());
powerTransferCompanyService.save(powerTransferCompany);
......@@ -244,6 +254,9 @@ public class PowerTransferServiceImpl extends BaseService<PowerTransferDto, Powe
List<PowerTransferCompanyResources> powerTransferCompanyResourcesList =
DtoEntityBatchConvert(powerTransferCompanyResourcesDtoList, powerTransferCompanySequenceNbr);
powerTransferCompanyResourcesService.saveBatch(powerTransferCompanyResourcesList);
// 更新车辆状态
equipFeignService.updateCarStatus(carStatusInfoDtoList);
}
}
}
......@@ -252,4 +265,8 @@ public class PowerTransferServiceImpl extends BaseService<PowerTransferDto, Powe
public List<PowerTransferCompanyDto> getLastPowerTransferCompany(Long alertCalledId) {
return this.baseMapper.getLastPowerTransferCompany(alertCalledId);
}
public List<String> queryTransferCarIdsByAlertCalledId(Long alertCalledId) {
return this.baseMapper.queryTransferCarIdsByAlertCalledId(alertCalledId);
}
}
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