Commit b5b07111 authored by chenzhao's avatar chenzhao

Merge branch 'developer' of http://172.16.10.76/moa/amos-boot-biz into developer

parents d0f6ba08 8f551dc2
package com.yeejoin.amos.boot.module.common.api.mapper;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.common.api.dto.LinkageUnitDto;
import com.yeejoin.amos.boot.module.common.api.dto.LinkageUnitZhDto;
import com.yeejoin.amos.boot.module.common.api.dto.RequestData;
import com.yeejoin.amos.boot.module.common.api.entity.LinkageUnit;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
* 联动单位 Mapper 接口
......@@ -58,7 +55,7 @@ public interface LinkageUnitMapper extends BaseMapper<LinkageUnit> {
* 查询包含特岗人数及的具体信息
* @return
*/
Page<List<LinkageUnitDto>> getEmergencyLinkageUnitList(IPage<LinkageUnitDto> page,String unitName,
List<LinkageUnitDto> getEmergencyLinkageUnitList(String unitName,
String linkageUnitTypeCode, String emergencyLinkageUnitCode);
List<LinkageUnitDto> exportToExcel();
......
......@@ -45,8 +45,17 @@
a.latitude,
a.longitude,
Round(st_distance(point(a.longitude,a.latitude),point(#{par.longitude},#{par.latitude}))*111195,1)
AS distance
FROM cb_linkage_unit a
AS distance,
case when csps.person_number is null then 0 else
csps.person_number end as userNum,
case when cre.vehicle_number is null then 0 else cre.vehicle_number end as
carNum
FROM
cb_linkage_unit a
LEFT JOIN cb_special_position_staff csps ON a.sequence_nbr =
csps.company_id
LEFT JOIN cb_rescue_equipment cre on a.sequence_nbr = cre.company_id
where a.longitude is not null and
a.latitude is not null
<if test='par.distance!=null'>
......@@ -87,46 +96,61 @@
emergency_linkage_unit_code
</select>
<select id="exportToExcel" resultType="com.yeejoin.amos.boot.module.common.api.dto.LinkageUnitDto">
<select id="exportToExcel"
resultType="com.yeejoin.amos.boot.module.common.api.dto.LinkageUnitDto">
select
a.unit_name unitName,
a.linkage_unit_type linkageUnitType,
a.linkage_unit_type
linkageUnitType,
a.address ,
a.latitude,
a.longitude,
a.agreement_start_date agreementStartDate,
a.agreement_end_date agreementEndDate,
a.agreement_end_date
agreementEndDate,
a.contact_user contactUser,
a.contact_phone contactPhone,
a.contact_phone
contactPhone,
b.*
from cb_linkage_unit a LEFT JOIN
(SELECT
m.instance_id,
max(case m.field_code when 'emergencyServiceContent' then m.field_value end) emergencyServiceContent,
max(case m.field_code when 'fireRescueCapability' then m.field_value end) fireRescueCapability,
max(case m.field_code when 'responsibilitiesSituation' then m.field_value end) responsibilitiesSituation,
max(case m.field_code when 'unitSituation' then m.field_value end) unitSituation
FROM cb_dynamic_form_instance m GROUP BY m.instance_id) b
max(case m.field_code when 'emergencyServiceContent' then
m.field_value end) emergencyServiceContent,
max(case m.field_code when
'fireRescueCapability' then m.field_value end) fireRescueCapability,
max(case m.field_code when 'responsibilitiesSituation' then
m.field_value end) responsibilitiesSituation,
max(case m.field_code
when 'unitSituation' then m.field_value end) unitSituation
FROM
cb_dynamic_form_instance m GROUP BY m.instance_id) b
on b.instance_id=a.instance_id where a.unit_name is not null
on
b.instance_id=a.instance_id where a.unit_name is not null
</select>
<select id="getEmergencyLinkageUnitList"
resultType="java.util.Map">
resultType="com.yeejoin.amos.boot.module.common.api.dto.LinkageUnitDto">
SELECT
clu.sequence_nbr as sequenceNbr,
clu.unit_name as unitName,
clu.unit_code AS unitCode,
clu.parent_id AS parentId,
clu.linkage_unit_type AS linkageUnitType,
clu.linkage_unit_type_code AS linkageUnitTypeCode,
clu.administrative_divisions AS administrativeDivisions,
clu.administrative_divisions_code AS administrativeDivisionsCode,
clu.linkage_unit_type_code AS
linkageUnitTypeCode,
clu.administrative_divisions AS
administrativeDivisions,
clu.administrative_divisions_code AS
administrativeDivisionsCode,
clu.address AS address,
clu.longitude AS longitude,
clu.longitude AS
longitude,
clu.latitude AS latitude,
clu.agreement_start_date AS agreementStartDate,
clu.agreement_start_date AS
agreementStartDate,
clu.agreement_end_date AS agreementEndDate,
clu.emergency_linkage_unit AS emergencyLinkageUnit,
clu.emergency_linkage_unit_code AS emergencyLinkageUnitCode,
......@@ -157,14 +181,16 @@
FROM
cb_linkage_unit clu
WHERE clu.is_delete=0
<if test="unitName != null and unitName != ''">
AND clu.unit_name LIKE concat(#{unitName}, '%')
<if test="unitName != null and unitName != ''">
AND clu.unit_name LIKE concat(#{unitName}, '%')
</if>
<if test="linkageUnitTypeCode != null and linkageUnitTypeCode != ''">
AND clu.linkage_unit_type_code =#{linkageUnitTypeCode}
<if
test="linkageUnitTypeCode != null and linkageUnitTypeCode != ''">
AND clu.linkage_unit_type_code =#{linkageUnitTypeCode}
</if>
<if test="emergencyLinkageUnitCode != null and emergencyLinkageUnitCode != ''">
AND clu.emergency_linkage_unit_code =#{emergencyLinkageUnitCode}
<if
test="emergencyLinkageUnitCode != null and emergencyLinkageUnitCode != ''">
AND clu.emergency_linkage_unit_code =#{emergencyLinkageUnitCode}
</if>
</select>
</mapper>
......@@ -6,8 +6,6 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
/**
* 调派资源dto
*
......
package com.yeejoin.amos.boot.module.jcs.api.dto;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 调派资源统计dto
*
* @author tb
* @date 2021-08-20
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AllArgsConstructor
@ApiModel(value="ResourceStatisticsDto", description="调派资源统计dto")
public class ResourceStatisticsDto extends BaseDto {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "类型")
private String type;
@ApiModelProperty(value = "全部")
private Integer allCount = 0;
@ApiModelProperty(value = "到场")
private Integer arrived = 0;
@ApiModelProperty(value = "途中")
private Integer underway = 0;
public ResourceStatisticsDto(String type, Integer allCount) {
this.type = type;
this.allCount = allCount;
this.arrived = 0;
this.underway = 0;
}
}
......@@ -10,6 +10,7 @@ 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.PowerTransferResourceDto;
import com.yeejoin.amos.boot.module.jcs.api.dto.ResourceStatisticsDto;
import com.yeejoin.amos.boot.module.jcs.api.entity.PowerTransfer;
import org.apache.ibatis.annotations.Param;
......@@ -96,6 +97,15 @@ public interface PowerTransferMapper extends BaseMapper<PowerTransfer> {
@Param("alertCalledId") Long alertCalledId);
/**
* 根据类型查询力量调派统计
*
* @param alertCalledId
* @param type
* @return
*/
List<ResourceStatisticsDto> getPowerTransferTeamResourceCount(Long alertCalledId, String type);
/**
* 根据参数获取警情当前已调派车辆资源列表信息
*
* @param alertCalledId 警情id
......
......@@ -8,6 +8,7 @@ import com.yeejoin.amos.boot.module.jcs.api.dto.PowerCompanyCountDto;
import com.yeejoin.amos.boot.module.jcs.api.dto.PowerTransferCompanyDto;
import com.yeejoin.amos.boot.module.jcs.api.dto.PowerTransferDto;
import com.yeejoin.amos.boot.module.jcs.api.dto.PowerTransferResourceDto;
import com.yeejoin.amos.boot.module.jcs.api.dto.ResourceStatisticsDto;
import com.yeejoin.amos.boot.module.jcs.api.entity.PowerTransfer;
import com.yeejoin.amos.boot.module.jcs.api.dto.PowerTransferSimpleDto;
......@@ -43,4 +44,13 @@ public interface IPowerTransferService extends IService<PowerTransfer> {
* @return
*/
IPage<PowerTransferResourceDto> getPowerTransferPageByParam(Long alertCalledId, String type, Page<PowerTransferResourceDto> page);
/**
* 根据参数查询力量调派资源统计信息
*
* @param alertCalledId 警情id
* @param type 查询类型
* @return
*/
List<ResourceStatisticsDto> getPowerTransferStatistics(Long alertCalledId, String type);
}
......@@ -210,6 +210,32 @@
transfer.alert_called_id = #{alertCalledId}
AND is_distribution_agencies = 0
</select>
<select id="getPowerTransferTeamResourceCount"
resultType="com.yeejoin.amos.boot.module.jcs.api.dto.ResourceStatisticsDto">
SELECT
"team" type,
count( DISTINCT company.company_id ) allCount
FROM
jc_power_transfer_company company
LEFT JOIN jc_power_transfer transfer ON transfer.sequence_nbr = company.power_transfer_id
WHERE
transfer.alert_called_id = #{alertCalledId}
AND is_distribution_agencies = 0 UNION ALL
SELECT
"car" type,
count( DISTINCT car.resources_id ) allCount
FROM
jc_power_transfer_company_resources car
LEFT JOIN jc_power_transfer_company company ON company.sequence_nbr = car.power_transfer_company_id
LEFT JOIN jc_power_transfer transfer ON transfer.sequence_nbr = company.power_transfer_id
WHERE
transfer.alert_called_id = #{alertCalledId}
AND is_distribution_agencies = 0
UNION ALL
SELECT
"person" type,
0 allCount
</select>
<select id="getPowerTransferCarResource"
resultType="com.yeejoin.amos.boot.module.jcs.api.dto.PowerTransferResourceDto">
SELECT DISTINCT
......
......@@ -422,8 +422,10 @@ public class CommandController extends BaseController {
@TycloudOperation( needAuth = true,ApiLevel = UserType.AGENCY)
@GetMapping(value = "/SY")
@ApiOperation(httpMethod = "GET", value = "根据id查询水源", notes = "根据id查询水源")
public ResponseModel<WaterResourceDto> selectOne( Long id) {
return ResponseHelper.buildResponse(iWaterResourceService.selectBySequenceNbr(id));
public ResponseModel<JSONObject> selectOne( Long id) {
JSONObject jsonObject= JSONObject.parseObject(JSONObject.toJSONString(iWaterResourceService.selectBySequenceNbr(id)));
jsonObject.remove("managementUnit");
return ResponseHelper.buildResponse(jsonObject);
}
......@@ -945,7 +947,7 @@ public class CommandController extends BaseController {
@ApiOperation(httpMethod = "GET",value = "app-根据警情id查询力量调派列表", notes = "app-根据警情id查询力量调派列表")
@GetMapping(value = "/app/transferList")
public ResponseModel getPowerTransferList(@RequestParam String alertId,
@RequestParam(defaultValue = "company") String type,
@RequestParam(defaultValue = "team") String type,
@RequestParam(value = "current") int current,
@RequestParam(value = "size") int size) {
Page page = new Page();
......@@ -953,4 +955,12 @@ public class CommandController extends BaseController {
page.setCurrent(current);
return ResponseHelper.buildResponse(powerTransferService.getPowerTransferPageByParam(Long.valueOf(alertId), type, page));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET",value = "app-根据警情id查询力量调派资源统计", notes = "app-根据警情id查询力量调派资源统计")
@GetMapping(value = "/app/transfer/statistics")
public ResponseModel getPowerTransferStatistics(@RequestParam String alertId,
@RequestParam(defaultValue = "team") String type) {
return ResponseHelper.buildResponse(powerTransferService.getPowerTransferStatistics(Long.valueOf(alertId), type));
}
}
\ No newline at end of file
package com.yeejoin.amos.boot.module.common.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;
......@@ -76,8 +75,8 @@ public class LinkageUnitServiceImpl extends BaseService<LinkageUnitDto, LinkageU
@Condition(Operator.eq) Boolean isDelete, @Condition(Operator.like) String unitName,
@Condition(Operator.eq) String linkageUnitTypeCode, @Condition(Operator.eq) String emergencyLinkageUnitCode,
String inAgreement) {
Page<List<LinkageUnitDto>> linkageUnitList = linkageUnitMapper.getEmergencyLinkageUnitList(page,unitName, linkageUnitTypeCode, emergencyLinkageUnitCode);
List<Map> linkageUnitListMap =JSONArray.parseArray(JSONArray.toJSONString(linkageUnitList.getRecords()), Map.class);
List<LinkageUnitDto> linkageUnitList = linkageUnitMapper.getEmergencyLinkageUnitList(unitName, linkageUnitTypeCode, emergencyLinkageUnitCode);
List<Map> linkageUnitListMap =JSONArray.parseArray(JSONArray.toJSONString(linkageUnitList), Map.class);
List<Map<String, Object>> pageList = dynamicFormInstanceService.listAll(getGroupCode());
linkageUnitListMap.forEach(i -> {
......@@ -88,7 +87,7 @@ public class LinkageUnitServiceImpl extends BaseService<LinkageUnitDto, LinkageU
}
});
});
List<LinkageUnitDto> resultDtoList = JSONArray.parseArray(JSONArray.toJSONString(linkageUnitList.getRecords()),
List<LinkageUnitDto> resultDtoList = JSONArray.parseArray(JSONArray.toJSONString(linkageUnitList),
LinkageUnitDto.class);
List<LinkageUnitDto> detaiList = resultDtoList.stream().map(item -> {
Date now = new Date();
......
......@@ -16,6 +16,7 @@ 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.PowerTransferResourceDto;
import com.yeejoin.amos.boot.module.jcs.api.dto.PowerTransferSimpleDto;
import com.yeejoin.amos.boot.module.jcs.api.dto.ResourceStatisticsDto;
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.PowerTransfer;
......@@ -372,8 +373,8 @@ public class PowerTransferServiceImpl extends BaseService<PowerTransferDto, Powe
}
IPage<PowerTransferResourceDto> resultPage = null;
switch (type) {
case "company":
resultPage = powerTransferMapper.getPowerTransferTeamResource(page, alertCalledId);
case "team":
resultPage = getPowerTransferTeamResource(page, alertCalledId);
break;
case "car":
resultPage = getPowerTransferCarResource(page, alertCalledId);
......@@ -388,7 +389,28 @@ public class PowerTransferServiceImpl extends BaseService<PowerTransferDto, Powe
return resultPage;
}
private IPage<PowerTransferResourceDto> getPowerTransferCarResource(Page<PowerTransferResourceDto> page, Long alertCalledId) {
@Override
public List<ResourceStatisticsDto> getPowerTransferStatistics(Long alertCalledId, String type) {
List<ResourceStatisticsDto> result;
result = powerTransferMapper.getPowerTransferTeamResourceCount(alertCalledId, type);
if (ValidationUtil.isEmpty(result)) {
ResourceStatisticsDto team = new ResourceStatisticsDto("team", 0, 0, 0);
ResourceStatisticsDto car = new ResourceStatisticsDto("car", 0, 0, 0);
ResourceStatisticsDto person = new ResourceStatisticsDto("person", 0, 0, 0);
result.add(team);
result.add(car);
result.add(person);
}
return result;
}
public IPage<PowerTransferResourceDto> getPowerTransferTeamResource(Page<PowerTransferResourceDto> page,
Long alertCalledId) {
return powerTransferMapper.getPowerTransferTeamResource(page, alertCalledId);
}
private IPage<PowerTransferResourceDto> getPowerTransferCarResource(Page<PowerTransferResourceDto> page,
Long alertCalledId) {
ResponseModel<Object> result = equipFeignClient.getFireCarListAll();
Map<String, List<Map<String, Object>>> carInfoMap = Maps.newConcurrentMap();
if (!ValidationUtil.isEmpty(result)) {
......@@ -405,7 +427,6 @@ public class PowerTransferServiceImpl extends BaseService<PowerTransferDto, Powe
String seq = car.getSequenceNbr().toString();
car.setName((String) finalCarInfoMap.get(seq).get(0).get("name"));
String carStateCode = (String) finalCarInfoMap.get(seq).get(0).get("carState");
FireCarStatusEnum.getEnum(carStateCode);
car.setCarState(!ValidationUtil.isEmpty(FireCarStatusEnum.getEnum(carStateCode)) ?
FireCarStatusEnum.getEnum(carStateCode).getName() : "");
List<String> images = (List<String>) finalCarInfoMap.get(seq).get(0).get("image");
......
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