Commit 877b3e6c authored by 李腾威's avatar 李腾威

融合调度规则 任务 4318 4326 4327

parent b39ecc9a
......@@ -52,4 +52,16 @@ public class PowerrTransferLog extends BaseEntity {
@TableField("send_content")
private String sendContent;
/**
* 调派关联单位id
*/
@TableField("power_transfer_company_id")
private Long powerTransferCompany;
/**
* 调派关联资源id
*/
@TableField("power_transfer_company_resources_id")
private Long powerTransferCompanyResource;
}
......@@ -3,6 +3,7 @@ package com.yeejoin.amos.boot.module.jcs.biz.rule.action;
import java.util.List;
import com.yeejoin.amos.boot.module.jcs.biz.service.impl.PowerrTransferLogServiceImpl;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -36,6 +37,10 @@ public class PowerTransferAction {
private AlertSubmittedServiceImpl alertSubmittedService;
@Autowired
PowerrTransferLogServiceImpl powerrTransferLogServiceImpl;
/**
* 短信报送
......@@ -50,7 +55,10 @@ public class PowerTransferAction {
@RuleMethod(methodLabel = "短信报送", project = "西咸机场119接处警规则")
public void sendcmd(String smsCode, String sendType, List sendIds, Object object) throws Exception {
if (object instanceof AlertCallePowerTransferRo) {
AlertCallePowerTransferRo calledRo = (AlertCallePowerTransferRo) object;
powerrTransferLogServiceImpl.savePowerTransferLog(calledRo);
calledRo.getPowerTransType();
if (FireBrigadeTypeEnum.专职消防队.getKey().equals(calledRo.getPowerTransType())) {
alertSubmittedService.ruleCallbackActionForPowerTransferForCar(smsCode, sendIds, object);//消防车辆
......
......@@ -8,6 +8,9 @@ import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import com.yeejoin.amos.boot.module.jcs.api.dto.AlertCalledObjsDto;
import com.yeejoin.amos.boot.module.jcs.api.dto.AlertCalledRo;
import com.yeejoin.amos.boot.module.jcs.api.enums.AlertStageEnums;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.eclipse.paho.client.mqttv3.MqttException;
......@@ -134,12 +137,12 @@ public class PowerTransferServiceImpl extends BaseService<PowerTransferDto, Powe
String dispatch_num = alertCalledId.toString() + (count + 1);
// 获取警情详情
AlertCalled alertCalled = alertCalledService.getById(alertCalledId);
AlertCalledObjsDto alertCalled = (AlertCalledObjsDto)alertCalledService.selectAlertCalledByIdNoRedisNew(alertCalledId);
// 创建力量调派
PowerTransfer powerTransfer = new PowerTransfer();
BeanUtils.copyProperties(powerTransferDto, powerTransfer);
BeanUtils.copyProperties(alertCalled, powerTransfer);
BeanUtils.copyProperties(alertCalled.getAlertCalled(), powerTransfer);
powerTransfer.setDispatchNum(dispatch_num);
powerTransfer.setSequenceNbr(null);
......@@ -147,15 +150,15 @@ public class PowerTransferServiceImpl extends BaseService<PowerTransferDto, Powe
Long powerTransferSequenceNbr = powerTransfer.getSequenceNbr();
// 获取任务派发模板
Template template = templateService.getOne(new QueryWrapper<Template>().eq("type",
alertCalled.getAlertType()).eq("format", false));
Template template = templateService.getOne(new QueryWrapper<Template>().eq("type_code",
"LLDP").eq("format", false));
String content = template.getContent();
Map<String, String> definitions = new HashMap<>();
initDefinitions(definitions, alertCalled, powerTransferDto);
// initDefinitions(definitions, alertCalled, powerTransferDto);
// 创建力量调派单位
createPowerTransferCompany(powerTransferDto, powerTransferSequenceNbr, definitions, content);
createPowerTransferCompany(powerTransferDto, powerTransferSequenceNbr, definitions, content, alertCalled);
//封装调派任务的集合,以便于实现任务规则校验
try {
packagePowerTransferDetail(powerTransferDto);
......@@ -365,12 +368,12 @@ public class PowerTransferServiceImpl extends BaseService<PowerTransferDto, Powe
PowerTransferDto powerTransferDto) {
List<AlertFormValue> alertFormValue = alertFormValueService
.list(new QueryWrapper<AlertFormValue>().eq("alert_called_id", alertCalled.getSequenceNbr()));
definitions.put("rescueGrid", alertCalled.getRescueGrid());
definitions.put("alertType", alertCalled.getAlertType());
definitions.put("address", alertCalled.getAddress());
definitions.put("trappedNum", alertCalled.getTrappedNum().toString());
definitions.put("casualtiesNum", alertCalled.getCasualtiesNum().toString());
definitions.put("companyName", powerTransferDto.getCompanyName());
// definitions.put("rescueGrid", alertCalled.getRescueGrid());
// definitions.put("alertType", alertCalled.getAlertType());
// definitions.put("address", alertCalled.getAddress());
// definitions.put("trappedNum", alertCalled.getTrappedNum().toString());
// definitions.put("casualtiesNum", alertCalled.getCasualtiesNum().toString());
// definitions.put("companyName", powerTransferDto.getCompanyName());
for (AlertFormValue formValue : alertFormValue) {
definitions.put(formValue.getFieldCode(), formValue.getFieldValue());
......@@ -385,12 +388,29 @@ public class PowerTransferServiceImpl extends BaseService<PowerTransferDto, Powe
}
private void createPowerTransferCompany(PowerTransferDto powerTransferDto, Long powerTransferSequenceNbr,
Map<String, String> definitions, String content) {
Map<String, String> definitions, String content, AlertCalledObjsDto alertCalledObjsDto) {
List<PowerTransferCompanyDto> powerTransferCompanyDotList = powerTransferDto.getPowerTransferCompanyDotList();
PowerTransferCompany powerTransferCompany;
List<Object> carStatusInfoDtoList = Lists.newArrayList();
AlertCalled alertCalled = alertCalledObjsDto.getAlertCalled();
// 初始化警情 信息
/**
* 构建警情报送规则对象
*/
AlertCalledRo alertCalledRo = new AlertCalledRo();
String replaceContent = RuleAlertCalledService.init(alertCalledRo,alertCalledObjsDto);
definitions.put("rescueGrid", alertCalled.getAddress());
definitions.put("type", alertCalled.getAlertType());
definitions.put("contactUser", alertCalled.getContactUser());
definitions.put("contactPhone", alertCalled.getContactPhone());
definitions.put("type", alertCalled.getAlertType());
definitions.put("replaceContent", replaceContent);
definitions.put("callTime", DateUtils.convertDateToString(alertCalled.getCallTime(),DateUtils.DATE_TIME_PATTERN));
for (PowerTransferCompanyDto powerTransferCompanyDto : powerTransferCompanyDotList) {
powerTransferCompany = new PowerTransferCompany();
BeanUtils.copyProperties(powerTransferCompanyDto, powerTransferCompany);
......@@ -399,25 +419,30 @@ public class PowerTransferServiceImpl extends BaseService<PowerTransferDto, Powe
.getPowerTransferCompanyResourcesDtoList();
if (powerTransferCompanyResourcesDtoList.size() == 0) {
powerTransferCompany.setIsDistributionAgencies(true);
definitions.put("type", "");
definitions.put("resourcesNum", "");
definitions.put("departmentName", powerTransferCompanyDto.getCompanyName());
definitions.put("content", "");
powerTransferCompany.setTaskInformation(getTaskInformation(content, definitions));
powerTransferCompanyService.save(powerTransferCompany);
} else {
powerTransferCompany.setIsDistributionAgencies(false);
StringBuilder taskInformation = new StringBuilder();
for (PowerTransferCompanyResourcesDto powerTransferCompanyResourcesDto : powerTransferCompanyResourcesDtoList) {
definitions.put("type", powerTransferCompanyResourcesDto.getType());
definitions.put("resourcesNum", powerTransferCompanyResourcesDto.getResourcesNum());
String information = getTaskInformation(content, definitions);
taskInformation.append(information).append(";");
// definitions.put("type", powerTransferCompanyResourcesDto.getType());
// definitions.put("resourcesNum", powerTransferCompanyResourcesDto.getResourcesNum());
String information = powerTransferCompanyResourcesDto.getType().concat("车牌号").concat(powerTransferCompanyResourcesDto.getResourcesNum());
taskInformation.append(information).append("");
CarStatusInfoDto carStatusInfoDto = new CarStatusInfoDto();
carStatusInfoDto.setSequenceNbr(powerTransferCompanyResourcesDto.getResourcesId());
carStatusInfoDto.setStatus(FireCarStatusEnum.出动.getCode());
carStatusInfoDtoList.add(carStatusInfoDto);
}
powerTransferCompany.setTaskInformation(taskInformation.toString());
definitions.put("departmentName", powerTransferCompanyDto.getCompanyName());
definitions.put("content", taskInformation.toString());
powerTransferCompany.setTaskInformation(getTaskInformation(content, definitions));
powerTransferCompanyService.save(powerTransferCompany);
Long powerTransferCompanySequenceNbr = powerTransferCompany.getSequenceNbr();
List<PowerTransferCompanyResources> powerTransferCompanyResourcesList = DtoEntityBatchConvert(
......
package com.yeejoin.amos.boot.module.jcs.biz.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yeejoin.amos.boot.biz.common.utils.DateUtils;
import com.yeejoin.amos.boot.module.jcs.api.dto.AlertCallePowerTransferRo;
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.PowerTransferCompany;
import com.yeejoin.amos.boot.module.jcs.api.entity.PowerTransferCompanyResources;
import com.yeejoin.amos.boot.module.jcs.api.entity.PowerrTransferLog;
import com.yeejoin.amos.boot.module.jcs.api.enums.FireBrigadeTypeEnum;
import com.yeejoin.amos.boot.module.jcs.api.mapper.PowerrTransferLogMapper;
import com.yeejoin.amos.boot.module.jcs.api.service.IPowerrTransferLogService;
import com.yeejoin.amos.boot.module.jcs.api.dto.PowerrTransferLogDto;
import org.springframework.beans.factory.annotation.Autowired;
import org.typroject.tyboot.core.foundation.utils.Bean;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
......@@ -19,6 +35,13 @@ import java.util.List;
*/
@Service
public class PowerrTransferLogServiceImpl extends BaseService<PowerrTransferLogDto,PowerrTransferLog,PowerrTransferLogMapper> implements IPowerrTransferLogService {
@Autowired
PowerTransferCompanyServiceImpl powerTransferCompanyService;
@Autowired
PowerTransferCompanyResourcesServiceImpl powerTransferCompanyResourcesService;
/**
* 分页查询
*/
......@@ -41,11 +64,19 @@ public class PowerrTransferLogServiceImpl extends BaseService<PowerrTransferLogD
PowerrTransferLogDto dto = new PowerrTransferLogDto();
queryWrapper.eq(PowerrTransferLog::getTeamId,id);
List<PowerrTransferLog> list = this.list(queryWrapper);
PowerTransferCompany company = powerTransferCompanyService.getById(id);
list.stream().forEach(e->{
dto.setReceiveName(dto.getRecUserName() == null ? "".concat(e.getReceiveName()) : dto.getReceiveName().concat("/").concat(e.getReceiveName()) );
dto.setSendTime(e.getSendTime());
dto.setSendContent(e.getSendContent());
dto.setRecUserName(e.getReceiveName());
if(!ValidationUtil.isEmpty(company)) {
dto.setSendContent(company.getTaskInformation());
}
});
return dto;
}
......@@ -54,12 +85,59 @@ public class PowerrTransferLogServiceImpl extends BaseService<PowerrTransferLogD
if("1".equals(type)) {
LambdaQueryWrapper<PowerrTransferLog> queryWrapper = new LambdaQueryWrapper<>();
PowerrTransferLogDto dto = new PowerrTransferLogDto();
queryWrapper.eq(PowerrTransferLog::getTeamId,id);
queryWrapper.eq(PowerrTransferLog::getResourceId,id);
PowerrTransferLog powerrTransferLog = this.getOne(queryWrapper);
PowerTransferCompanyResources resources = powerTransferCompanyResourcesService.getById(id);
PowerTransferCompany byId = powerTransferCompanyService.getById(resources.getPowerTransferCompanyId());
powerrTransferLog.setSendContent(byId.getTaskInformation());
Bean.toPo(powerrTransferLog,dto);
return dto;
}
return new PowerrTransferLogDto();
}
public void savePowerTransferLog( AlertCallePowerTransferRo alertCallePowerTransferRo) {
String powerTransType = alertCallePowerTransferRo.getPowerTransType();
List<PowerrTransferLog> list = new ArrayList<>();
if (FireBrigadeTypeEnum.专职消防队.getKey().equals(powerTransType)) {
List<Object> companyDetail = JSONArray.parseArray(JSON.toJSON(alertCallePowerTransferRo.getCompany()).toString(),Object.class);
for (Object powerTransferCompanyDto : companyDetail) {
PowerTransferCompanyDto powerDto = JSONObject.parseObject(JSON.toJSON(powerTransferCompanyDto).toString(), PowerTransferCompanyDto.class);
List<PowerTransferCompanyResourcesDto> powerTransferCompanyResourcesDtoList = powerDto.getPowerTransferCompanyResourcesDtoList();
powerTransferCompanyResourcesDtoList.stream().forEach(f-> {
PowerrTransferLog pw = new PowerrTransferLog();
pw.setResourceId(f.getSequenceNbr());
pw.setReceiveName(f.getRecUserName());
try {
pw.setSendTime(DateUtils.dateTimeToDateString(new Date(System.currentTimeMillis())));
} catch (ParseException ex) {
ex.printStackTrace();
}
pw.setPowerTransferCompanyResource(f.getSequenceNbr());
pw.setPowerTransferCompany(f.getPowerTransferCompanyId());
list.add(pw);
});
}
} else if (FireBrigadeTypeEnum.医疗救援队.getKey().equals(powerTransType) || FireBrigadeTypeEnum.监控大队.getKey().equals(powerTransType)) {
List<Object> companyDetail = JSONArray.parseArray(JSON.toJSON(alertCallePowerTransferRo.getCompany()).toString(),Object.class);
for (Object powerTransferCompanyDto : companyDetail) {
PowerTransferCompanyDto powerDto = JSONObject.parseObject(JSON.toJSON(powerTransferCompanyDto).toString(), PowerTransferCompanyDto.class);
PowerrTransferLog pw = new PowerrTransferLog();
pw.setTeamId(powerDto.getSequenceNbr());
pw.setReceiveName(powerDto.getRecUserName());
try {
pw.setSendTime(DateUtils.dateTimeToDateString(new Date(System.currentTimeMillis())));
} catch (ParseException ex) {
ex.printStackTrace();
}
pw.setPowerTransferCompany(powerDto.getCompanyId());
list.add(pw);
}
}
this.saveBatch(list);
}
}
\ 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