Commit 51e2e21f authored by 李秀明's avatar 李秀明

feat: TASK#30878 泡沫液统计方式修改-只统计备品和装备里面的泡沫液

parent 37e06e68
......@@ -113,6 +113,16 @@ public class EmergencyController extends AbstractBaseController {
}
return iEmergencyService.emergencyMaterialsDetails(page, bizOrgCode);
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation("应急物资-详情")
@GetMapping(value = "/emergencyMaterialsList")
public List<Map<String, Object>> emergencyMaterialsList(@RequestParam(value = "bizOrgCode", required = false) String bizOrgCode) {
if (ObjectUtils.isEmpty(bizOrgCode)){
ReginParams reginParams = getSelectedOrgInfo();
bizOrgCode = reginParams.getPersonIdentity().getBizOrgCode();
}
return iEmergencyService.emergencyMaterialsList(bizOrgCode);
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation("消防炮列表")
......
......@@ -31,6 +31,7 @@ public interface EmergencyMapper extends BaseMapper{
* @return
*/
Page<Map<String, Object>> selectEmergencyMaterialsDetails(Page<Map<String, Object>> page, @Param("bizOrgCode") String bizOrgCode);
List<Map<String, Object>> selectEmergencyMaterialList(@Param("bizOrgCode") String bizOrgCode);
/**
* 消防炮列表
......
......@@ -33,6 +33,8 @@ public interface IEmergencyService {
Page<Map<String, Object>> emergencyMaterialsDetails(Page<Map<String, Object>> page, String bizOrgCode);
List<Map<String, Object>> emergencyMaterialsList(String bizOrgCode);
Page<Map<String, Object>> selectFireMonitor(Page<Map<String, Object>> page, String bizOrgCode,String code);
Page<Map<String, Object>> selectFoamTank(Page<Map<String, Object>> page);
......
......@@ -150,48 +150,21 @@ public class EmergencyServiceImpl implements IEmergencyService {
@Override
public Map<String, Object> emergencyMaterials() {
double liquidFoam = getCAFSFoamTanksRemainingVolume();
Map<String, Object> resultMap = emergencyMapper.selectEmergencyMaterials();
resultMap.put("liquidFoam", liquidFoam);
return resultMap;
}
private double getCAFSFoamTanksRemainingVolume() {
// 1. 查询CAFS泡沫罐余量总和
Page<Map<String, Object>> page = new Page<>(1, 9999);
Page<Map<String, Object>> queriedPage = emergencyMapper.selectFoamTank(page);
List<Map<String, Object>> records = queriedPage.getRecords();
BigDecimal sum = new BigDecimal(0);
for (Map<String, Object> record : records) {
Map<String, Object> transResult = UnitTransformUtil.transformValues(String.valueOf(record.get("nowLevel")),
String.valueOf(record.get("unit")), String.valueOf(record.get("minLevel")), String.valueOf(record.get("maxLevel")));
if (!String.valueOf(transResult.get("abs")).equals("--") && !ObjectUtils.isEmpty(record.get("volume"))) {
BigDecimal value = new BigDecimal(String.valueOf(record.get("volume"))).multiply(new BigDecimal(String.valueOf(transResult.get("abs")))).divide(new BigDecimal(100), 2, RoundingMode.HALF_UP);
sum = sum.add(value);
}
}
// 2. 查询备品备件泡沫液余量总和
List<WlSpareEquipment> wlSpareEquipments = wlSpareEquipmentMapper.selectList(
Wrappers.<WlSpareEquipment>lambdaQuery()
.select(WlSpareEquipment::getStockNum)
.likeRight(WlSpareEquipment::getEquipCategoryCode, "420104")
.eq(WlSpareEquipment::getIsDelete, false)
);
for (WlSpareEquipment equipment : wlSpareEquipments) {
BigDecimal stockNum = BigDecimal.valueOf(equipment.getStockNum()).setScale(2, RoundingMode.HALF_UP);
sum = sum.add(stockNum);
}
return sum.doubleValue();
}
@Override
public Page<Map<String, Object>> emergencyMaterialsDetails(Page<Map<String, Object>> page, String bizOrgCode) {
return emergencyMapper.selectEmergencyMaterialsDetails(page, bizOrgCode);
}
@Override
public List<Map<String, Object>> emergencyMaterialsList(String bizOrgCode) {
return emergencyMapper.selectEmergencyMaterialList(bizOrgCode);
}
@Override
public Page<Map<String, Object>> selectFireMonitor(Page<Map<String, Object>> page, String bizOrgCode, String code) {
return emergencyMapper.selectFireMonitor(page, bizOrgCode, code);
}
......
......@@ -265,7 +265,16 @@
SELECT id FROM wl_equipment_specific t WHERE t.equipment_code LIKE CONCAT('1106', '%') AND t.single = 0
)
)
) AS respirator
) AS respirator,
(
(SELECT COUNT(1) FROM wl_equipment_specific wel WHERE wel.equipment_code LIKE CONCAT('420104', '%') AND wel.single = 1) +
(SELECT ROUND(IFNULL(SUM(wse.stock_num), 0), 2) FROM wl_spare_equipment wse WHERE wse.equip_category_code LIKE CONCAT('420104', '%') AND wse.is_delete = false) +
(
SELECT ROUND(IFNULL(SUM(wsd.amount), 0), 2) FROM wl_stock_detail wsd WHERE wsd.equipment_specific_id IN (
SELECT id FROM wl_equipment_specific t WHERE t.equipment_code LIKE CONCAT('420104', '%') AND t.single = 0
)
)
) AS liquidFoam
</select>
<select id="selectEmergencyMaterialsDetails" resultType="java.util.Map">
SELECT
......@@ -293,6 +302,104 @@
GROUP BY
wel.warehouse_structure_id ,wel.equipment_code
</select>
<select id="selectEmergencyMaterialList" resultType="java.util.Map">
SELECT
*
FROM (
SELECT
IFNULL(ec.name,'--') AS name ,
count( 1 ) AS num,
IFNULL(ws.`name`,'--') AS buildingname,
IFNULL(un.name,'--') as unit,
'--' source
FROM
wl_equipment_specific wel
LEFT JOIN wl_warehouse_structure ws ON wel.warehouse_structure_id = ws.id
LEFT JOIN wl_equipment_detail wed ON wel.equipment_detail_id = wed.id
LEFT JOIN wl_equipment we ON wed.equipment_Id = we.id
LEFT JOIN wl_equipment_category ec ON we.category_id = ec.id
LEFT JOIN wl_unit un ON we.unit_id = un.id
WHERE
(
wel.equipment_code LIKE CONCAT( '3104', '%' )
OR wel.equipment_code LIKE CONCAT( '3105', '%' )
OR wel.equipment_code LIKE CONCAT( '3910', '%' )
OR wel.equipment_code LIKE CONCAT( '3904', '%' )
OR wel.equipment_code LIKE CONCAT( '3911', '%' )
OR wel.equipment_code LIKE CONCAT( '1106', '%' )
OR wel.equipment_code LIKE CONCAT( '420104', '%' )
)
AND wel.single = 1
AND wel.biz_org_code LIKE CONCAT( #{bizOrgCode}, '%' )
GROUP BY
wel.warehouse_structure_id ,wel.equipment_code
UNION ALL
SELECT
IFNULL(ec.name,'--') AS name ,
ROUND(IFNULL(SUM(wse.stock_num), 0), 2) AS num,
IFNULL(ws.name,'--') AS buildingname,
IFNULL(un.name,'--') as unit,
'备件' source
FROM
wl_spare_equipment wse
LEFT JOIN wl_warehouse_structure ws ON wse.warehouse_structure_id = ws.id
LEFT JOIN wl_equipment we ON wse.equip_model_id = we.id
LEFT JOIN wl_equipment_category ec ON we.category_id = ec.id
LEFT JOIN wl_unit un ON we.unit_id = un.id
WHERE
wse.is_delete = 0
AND (
wse.equip_category_code LIKE CONCAT( '3104', '%' )
OR wse.equip_category_code LIKE CONCAT( '3105', '%' )
OR wse.equip_category_code LIKE CONCAT( '3910', '%' )
OR wse.equip_category_code LIKE CONCAT( '3904', '%' )
OR wse.equip_category_code LIKE CONCAT( '3911', '%' )
OR wse.equip_category_code LIKE CONCAT( '1106', '%' )
OR wse.equip_category_code LIKE CONCAT( '420104', '%' )
)
AND wse.biz_org_code LIKE CONCAT( #{bizOrgCode}, '%' )
GROUP BY
wse.warehouse_structure_id,
wse.equip_category_code
UNION ALL
SELECT
IFNULL(ec.name,'--') AS name ,
ROUND(IFNULL(SUM(wsd.amount), 0), 2) AS num,
IFNULL(ws.`name`,'--') AS buildingname,
IFNULL(un.name,'--') as unit,
'库存' source
FROM
wl_equipment_specific wel
LEFT JOIn wl_stock_detail wsd ON wsd.equipment_specific_id = wel.id
LEFT JOIN wl_warehouse_structure ws ON wel.warehouse_structure_id = ws.id
LEFT JOIN wl_equipment_detail wed ON wel.equipment_detail_id = wed.id
LEFT JOIN wl_equipment we ON wed.equipment_Id = we.id
LEFT JOIN wl_equipment_category ec ON we.category_id = ec.id
LEFT JOIN wl_unit un ON we.unit_id = un.id
WHERE
(
wel.equipment_code LIKE CONCAT( '3104', '%' )
OR wel.equipment_code LIKE CONCAT( '3105', '%' )
OR wel.equipment_code LIKE CONCAT( '3910', '%' )
OR wel.equipment_code LIKE CONCAT( '3904', '%' )
OR wel.equipment_code LIKE CONCAT( '3911', '%' )
OR wel.equipment_code LIKE CONCAT( '1106', '%' )
OR wel.equipment_code LIKE CONCAT( '420104', '%' )
)
AND wel.single = 0
AND wel.biz_org_code LIKE CONCAT( #{bizOrgCode}, '%' )
GROUP BY
wel.warehouse_structure_id ,wel.equipment_code
) t
WHERE
t.num > 0
ORDER BY
t.name
</select>
<select id="selectFireMonitor" resultType="java.util.Map">
SELECT
temp.name,
......
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