Commit dcfed3a0 authored by litengwei's avatar litengwei

任务 9900

parent ed504d97
...@@ -110,4 +110,5 @@ public interface EquipmentSpecificIndexMapper extends BaseMapper<EquipmentSpecif ...@@ -110,4 +110,5 @@ public interface EquipmentSpecificIndexMapper extends BaseMapper<EquipmentSpecif
List<EquipmentSpecificIndex> getEquipmentSpeIndexByIotCodeTrend(String iotCode, Integer isTrend, String fieldKey); List<EquipmentSpecificIndex> getEquipmentSpeIndexByIotCodeTrend(String iotCode, Integer isTrend, String fieldKey);
List<Map<String, Object>> getEquipSpecificScrap();
} }
...@@ -6,6 +6,8 @@ import java.util.*; ...@@ -6,6 +6,8 @@ import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.yeejoin.amos.feign.systemctl.Systemctl;
import com.yeejoin.amos.feign.systemctl.model.MessageModel;
import com.yeejoin.equipmanage.common.entity.vo.*; import com.yeejoin.equipmanage.common.entity.vo.*;
import com.yeejoin.equipmanage.common.vo.*; import com.yeejoin.equipmanage.common.vo.*;
import com.yeejoin.equipmanage.mapper.*; import com.yeejoin.equipmanage.mapper.*;
...@@ -17,6 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -17,6 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Lazy;
import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
...@@ -162,6 +165,9 @@ public class EquipmentSpecificSerivceImpl extends ServiceImpl<EquipmentSpecificM ...@@ -162,6 +165,9 @@ public class EquipmentSpecificSerivceImpl extends ServiceImpl<EquipmentSpecificM
@Value("${equipment.type}") @Value("${equipment.type}")
String equipmentCategoryLeftTypeCode; String equipmentCategoryLeftTypeCode;
@Value("${equipment.scrap.day}")
String equipmentScrapDay;
@Autowired @Autowired
private ISyncDataService syncDataService; private ISyncDataService syncDataService;
...@@ -1803,4 +1809,73 @@ public class EquipmentSpecificSerivceImpl extends ServiceImpl<EquipmentSpecificM ...@@ -1803,4 +1809,73 @@ public class EquipmentSpecificSerivceImpl extends ServiceImpl<EquipmentSpecificM
return infoVoList; return infoVoList;
} }
/**
* 在设备报废前30日 每日9点执行 系统推送提醒。设备报废后停止消息推送提醒。。
*
* @throws Exception
*/
@Scheduled(cron = "${equipment.scrap.cron}")
@Transactional(rollbackFor = Exception.class)
public void equipmentScrap() throws Exception {
List<Map<String, Object>> equipSpecificScrap = equipmentSpecificIndexMapper.getEquipSpecificScrap();
equipSpecificScrap.forEach(e->{
try {
int year = e.get("weExpiry") != null ? Integer.parseInt(e.get("weExpiry").toString()) : Integer.parseInt(e.get("wesExpiry").toString());
Date productDate = DateUtils.dateParse(e.get("product").toString(),DateUtils.DATE_TIME_PATTERN);
Calendar calendar = Calendar.getInstance();
calendar.setTime(productDate);
calendar.add(Calendar.YEAR, year);
Date now = new Date();
String scrapTime = new SimpleDateFormat(DateUtils.DATE_TIME_PATTERN).format(calendar.getTime())
int i = 0;
while (now.after(calendar.getTime())) {
calendar.add(Calendar.DAY_OF_MONTH,1);
i++;
}
if(i < 30 && i > -1) {
syncSystemctlMsg(e, scrapTime,i);
}
} catch (ParseException parseException) {
parseException.printStackTrace();
}
});
}
void syncSystemctlMsg(Map<String, Object> map,String scrapTime, int i) {
try {
MessageModel model = new MessageModel();
model.setTitle("报废到期提醒");
String equipName = map.get("name").toString();
String location = map.get("sName").toString() + map.get("position").toString() ;
String body = String.format("%s-%s于%s报废,请提前更换处理", equipName, location, scrapTime);
String join = String.format("设备还剩%s天报废,请提前更换", i);
model.setBody(body);
model.setMsgType("scrapWarning");
model.setSendTime(new Date());
model.setIsSendApp(false);
model.setTerminal("WEB");
model.setIsSendWeb(true);
model.setRelationId(map.get("id").toString());
model.setCategory(1);
List<String> receive = new ArrayList<>();
receive.add("system");
Map<String, String> ext = new HashMap<>();
ext.put("content", join);
ext.put("type", "报废到期");
ext.put("name", map.get("name").toString());
ext.put("time", new SimpleDateFormat(DateUtils.DATE_TIME_PATTERN).format(new Date()));
model.setExtras(ext);
model.setRecivers(receive);
Systemctl.messageClient.create(model);
} catch (Exception e) {
e.printStackTrace();
}
}
} }
...@@ -34,8 +34,7 @@ ...@@ -34,8 +34,7 @@
</update> </update>
<select id="getEquipmentSpeIndexBySpeIotCode" <select id="getEquipmentSpeIndexBySpeIotCode"
resultType="com.yeejoin.equipmanage.common.entity.EquipmentSpecificIndex"> resultType="com.yeejoin.equipmanage.common.entity.EquipmentSpecificIndex">
SELECT SELECT wesi.id AS id,
wesi.id AS id,
wei.name_key AS nameKey, wei.name_key AS nameKey,
wesi.value AS value, wesi.value AS value,
wesi.equipment_specific_id AS equipmentSpecificId, wesi.equipment_specific_id AS equipmentSpecificId,
...@@ -66,18 +65,19 @@ ...@@ -66,18 +65,19 @@
sd.warehouse_structure_id AS buildId sd.warehouse_structure_id AS buildId
FROM FROM
wl_equipment_specific_index AS wesi wl_equipment_specific_index AS wesi
LEFT JOIN wl_equipment_specific AS wes ON wes.id = wesi.equipment_specific_id LEFT JOIN wl_equipment_specific AS wes
ON wes.id = wesi.equipment_specific_id
LEFT JOIN wl_equipment_detail ed ON ed.id = wes.equipment_detail_id LEFT JOIN wl_equipment_detail ed ON ed.id = wes.equipment_detail_id
LEFT JOIN wl_equipment_index AS wei ON wei.id = wesi.equipment_index_id LEFT JOIN wl_equipment_index AS wei ON wei.id = wesi.equipment_index_id
LEFT JOIN wl_stock_detail sd ON sd.equipment_specific_id = wes.id LEFT JOIN wl_stock_detail sd ON sd.equipment_specific_id = wes.id
WHERE WHERE
wes.iot_code = #{iotCode} and wei.is_iot = true wes.iot_code = #{iotCode}
and wei.is_iot = true
</select> </select>
<select id="getEquipmentSpeIndexByIotCode" <select id="getEquipmentSpeIndexByIotCode"
resultType="com.yeejoin.equipmanage.common.entity.EquipmentSpecificIndex"> resultType="com.yeejoin.equipmanage.common.entity.EquipmentSpecificIndex">
SELECT SELECT wesi.id AS id,
wesi.id AS id,
wei.name_key AS nameKey, wei.name_key AS nameKey,
wesi.value AS value, wesi.value AS value,
wesi.equipment_specific_id AS equipmentSpecificId, wesi.equipment_specific_id AS equipmentSpecificId,
...@@ -91,15 +91,16 @@ ...@@ -91,15 +91,16 @@
wesi.update_date AS updateDate wesi.update_date AS updateDate
FROM FROM
wl_equipment_specific_index AS wesi wl_equipment_specific_index AS wesi
LEFT JOIN wl_equipment_specific AS wes ON wes.id = wesi.equipment_specific_id LEFT JOIN wl_equipment_specific AS wes
ON wes.id = wesi.equipment_specific_id
LEFT JOIN wl_equipment_index AS wei ON wei.id = wesi.equipment_index_id LEFT JOIN wl_equipment_index AS wei ON wei.id = wesi.equipment_index_id
WHERE WHERE
wes.iot_code = #{iotCode} wes.iot_code = #{iotCode}
</select> </select>
<select id="getEquipmentSpeIndexByIotCodeAndTrend" resultType="com.yeejoin.equipmanage.common.entity.EquipmentSpecificIndex"> <select id="getEquipmentSpeIndexByIotCodeAndTrend"
SELECT resultType="com.yeejoin.equipmanage.common.entity.EquipmentSpecificIndex">
wei.id AS id, SELECT wei.id AS id,
wei.name_key AS nameKey, wei.name_key AS nameKey,
wesi.value AS value, wesi.value AS value,
wesi.equipment_specific_id AS equipmentSpecificId, wesi.equipment_specific_id AS equipmentSpecificId,
...@@ -113,7 +114,8 @@ ...@@ -113,7 +114,8 @@
wesi.update_date AS updateDate wesi.update_date AS updateDate
FROM FROM
wl_equipment_specific_index AS wesi wl_equipment_specific_index AS wesi
LEFT JOIN wl_equipment_specific AS wes ON wes.id = wesi.equipment_specific_id LEFT JOIN wl_equipment_specific AS wes
ON wes.id = wesi.equipment_specific_id
LEFT JOIN wl_equipment_index AS wei ON wei.id = wesi.equipment_index_id LEFT JOIN wl_equipment_index AS wei ON wei.id = wesi.equipment_index_id
WHERE WHERE
wes.iot_code = #{iotCode} wes.iot_code = #{iotCode}
...@@ -123,8 +125,7 @@ ...@@ -123,8 +125,7 @@
<select id="getEquipmentSpeIndexDataByIotCode" <select id="getEquipmentSpeIndexDataByIotCode"
resultType="com.yeejoin.equipmanage.common.entity.EquipmentSpecificIndex"> resultType="com.yeejoin.equipmanage.common.entity.EquipmentSpecificIndex">
SELECT SELECT wesi.id AS id,
wesi.id AS id,
wei.name_key AS nameKey, wei.name_key AS nameKey,
IFNULL(si.value_label, si.`value`) AS 'value', IFNULL(si.value_label, si.`value`) AS 'value',
wesi.equipment_specific_id AS equipmentSpecificId, wesi.equipment_specific_id AS equipmentSpecificId,
...@@ -136,59 +137,48 @@ ...@@ -136,59 +137,48 @@
wei.name AS indexName, wei.name AS indexName,
wei.unit AS indexUnitName, wei.unit AS indexUnitName,
wei.value_enum AS valueEnum wei.value_enum AS valueEnum
FROM FROM wl_equipment_specific_index AS wesi
wl_equipment_specific_index AS wesi
LEFT JOIN wl_equipment_specific AS wes ON wes.id = wesi.equipment_specific_id LEFT JOIN wl_equipment_specific AS wes ON wes.id = wesi.equipment_specific_id
LEFT JOIN wl_equipment_index AS wei ON wei.id = wesi.equipment_index_id LEFT JOIN wl_equipment_index AS wei ON wei.id = wesi.equipment_index_id
WHERE WHERE wes.iot_code = #{iotCode}
wes.iot_code = #{iotCode}
</select> </select>
<select id="getEquipmentSpeIndexByEquipmentSecificId" <select id="getEquipmentSpeIndexByEquipmentSecificId"
resultType="com.yeejoin.equipmanage.common.entity.EquipmentSpecificIndex"> resultType="com.yeejoin.equipmanage.common.entity.EquipmentSpecificIndex">
SELECT SELECT wesi.id,
wesi.id,
wesi.equipment_specific_id, wesi.equipment_specific_id,
wesi.VALUE, wesi.VALUE,
wesi.create_date, wesi.create_date,
wesi.equipment_index_id, wesi.equipment_index_id,
wli.`name` nameKey wli.`name` nameKey
FROM FROM wl_equipment_specific_index wesi
wl_equipment_specific_index wesi
LEFT JOIN wl_equipment_index wli ON wesi.equipment_index_id = wli.id LEFT JOIN wl_equipment_index wli ON wesi.equipment_index_id = wli.id
where wesi.equipment_specific_id=#{id} where wesi.equipment_specific_id = #{id}
</select> </select>
<select id="getVideoByEquipmentSecificId" resultType="com.yeejoin.equipmanage.common.entity.Video"> <select id="getVideoByEquipmentSecificId" resultType="com.yeejoin.equipmanage.common.entity.Video">
SELECT SELECT ip,
ip,
`port`, `port`,
url, url,
`name`, `name`,
token, token,
`code`, `code`,
preset_position preset_position
FROM FROM wl_video wlv
wl_video wlv
LEFT JOIN wl_video_equipment_specific wlves ON wlv.id = wlves.video_id LEFT JOIN wl_video_equipment_specific wlves ON wlv.id = wlves.video_id
WHERE WHERE wlves.equipment_specific_id = #{id}
wlves.equipment_specific_id = #{id}
</select> </select>
<select id="getEquipmentDetailBySecificId" resultMap="EquipmentDetail"> <select id="getEquipmentDetailBySecificId" resultMap="EquipmentDetail">
SELECT SELECT wled.NAME equipment_name,
wled.NAME equipment_name,
wle.id equip_id, wle.id equip_id,
wled.id equip_detail_id, wled.id equip_detail_id,
wles.qr_code, wles.qr_code,
wles. CODE, wles.CODE,
( (
select select GROUP_CONCAT(fs.name)
GROUP_CONCAT(fs.name) from f_fire_fighting_system fs
from where FIND_IN_SET(fs.id, wles.system_id)
f_fire_fighting_system fs
where
FIND_IN_SET(fs.id,wles.system_id)
) as System_name, ) as System_name,
wlec. NAME category_name, wlec.NAME category_name,
wlws.full_name warehouse_name, wlws.full_name warehouse_name,
wled.standard, wled.standard,
sd.`name` country, sd.`name` country,
...@@ -203,37 +193,31 @@ ...@@ -203,37 +193,31 @@
wlmi.address, wlmi.address,
wlmi.img, wlmi.img,
wleias.`value` STATUS wleias.`value` STATUS
FROM FROM wl_equipment_specific wles
wl_equipment_specific wles LEFT JOIN wl_equipment_detail wled ON wles.equipment_detail_id = wled.id
LEFT JOIN wl_equipment_detail wled ON wles.equipment_detail_id = wled.id LEFT JOIN wl_system_dic sd ON sd.id = wled.country
LEFT JOIN wl_system_dic sd ON sd.id = wled.country LEFT JOIN wl_equipment wle ON wled.equipment_id = wle.id
LEFT JOIN wl_equipment wle ON wled.equipment_id = wle.id LEFT JOIN wl_equipment_category wlec ON wle.category_id = wlec.id
LEFT JOIN wl_equipment_category wlec ON wle.category_id = wlec.id LEFT JOIN wl_stock_detail wlsd ON wlsd.qr_code = wles.qr_code
LEFT JOIN wl_stock_detail wlsd ON wlsd.qr_code = wles.qr_code LEFT JOIN wl_warehouse_structure wlws ON wlsd.warehouse_structure_id = wlws.id
LEFT JOIN wl_warehouse_structure wlws ON wlsd.warehouse_structure_id = wlws.id LEFT JOIN wl_unit wlun ON wle.unit_id = wlun.id
LEFT JOIN wl_unit wlun ON wle.unit_id = wlun.id LEFT JOIN wl_manufacturer_info wlmi ON wlmi.id = wled.manufacturer_id
LEFT JOIN wl_manufacturer_info wlmi ON wlmi.id = wled.manufacturer_id LEFT JOIN (
LEFT JOIN ( SELECT wlei.equipment_id,
SELECT
wlei.equipment_id,
wlesi.`value` wlesi.`value`
FROM FROM wl_equipment_index wlei
wl_equipment_index wlei
LEFT JOIN wl_equipment_specific_index wlesi ON wlei.id = wlesi.equipment_index_id LEFT JOIN wl_equipment_specific_index wlesi ON wlei.id = wlesi.equipment_index_id
WHERE WHERE wlei.name_key = 'runState'
wlei.name_key = 'runState' ) wleias ON wle.id = wleias.equipment_id
) wleias ON wle.id = wleias.equipment_id WHERE wles.id = #{id}
WHERE wles.id=#{id}
</select> </select>
<select id="selectEquProperty" resultType="java.util.HashMap"> <select id="selectEquProperty" resultType="java.util.HashMap">
SELECT SELECT wlei.NAME,
wlei. NAME,
wlesi.`value` wlesi.`value`
FROM FROM wl_equipment_specific_index wlesi
wl_equipment_specific_index wlesi
LEFT JOIN wl_equipment_specific wleqs ON wleqs.id = wlesi.equipment_specific_id LEFT JOIN wl_equipment_specific wleqs ON wleqs.id = wlesi.equipment_specific_id
LEFT JOIN wl_equipment_index wlei ON wlesi.equipment_index_id = wlei.id LEFT JOIN wl_equipment_index wlei ON wlesi.equipment_index_id = wlei.id
where wleqs.id=#{id} where wleqs.id = #{id}
</select> </select>
<select id="selectEquList" resultType="java.util.HashMap"> <select id="selectEquList" resultType="java.util.HashMap">
SELECT SELECT
...@@ -317,21 +301,18 @@ WHERE wles.id=#{id} ...@@ -317,21 +301,18 @@ WHERE wles.id=#{id}
</select> </select>
<select id="getEquipmentSpeIndexList" resultType="hashmap"> <select id="getEquipmentSpeIndexList" resultType="hashmap">
SELECT SELECT wles.equipment_specific_id AS speId,
wles.equipment_specific_id AS speId,
wles.`value` AS speIndexValue, wles.`value` AS speIndexValue,
wlei.type_name AS typeName, wlei.type_name AS typeName,
wlei.type_code AS typeCode, wlei.type_code AS typeCode,
wlei.name_key AS nameKey, wlei.name_key AS nameKey,
wlei.`name` as indexName wlei.`name` as indexName
FROM FROM wl_equipment_specific_index wles
wl_equipment_specific_index wles
JOIN wl_equipment_index wlei ON wlei.id = wles.equipment_index_id JOIN wl_equipment_index wlei ON wlei.id = wles.equipment_index_id
WHERE WHERE wlei.is_iot = 1
wlei.is_iot = 1
AND ( AND (
wlei.type_code IN ( 'BREAKDOWN', 'SHIELD' )) wlei.type_code IN ('BREAKDOWN', 'SHIELD'))
AND (wles.`value` IS NOT NULL AND LENGTH(TRIM(wles.`value`)) > 1 ) AND (wles.`value` IS NOT NULL AND LENGTH(TRIM(wles.`value`)) > 1)
</select> </select>
<select id="getEquipSpecificIndexList" resultType="com.yeejoin.equipmanage.common.entity.vo.EquipmentIndexVO"> <select id="getEquipSpecificIndexList" resultType="com.yeejoin.equipmanage.common.entity.vo.EquipmentIndexVO">
SELECT SELECT
...@@ -390,7 +371,8 @@ WHERE wles.id=#{id} ...@@ -390,7 +371,8 @@ WHERE wles.id=#{id}
SELECT SELECT
si.id, si.id,
si.equipment_specific_id AS equipmentId, si.equipment_specific_id AS equipmentId,
(case when si.value_label is null or trim(si.value_label) ='' then si.`value` else si.value_label end )AS 'value', (case when si.value_label is null or trim(si.value_label) ='' then si.`value` else si.value_label end )AS
'value',
si.create_date, si.create_date,
si.update_date si.update_date
FROM FROM
...@@ -434,12 +416,11 @@ WHERE wles.id=#{id} ...@@ -434,12 +416,11 @@ WHERE wles.id=#{id}
</where> </where>
</select> </select>
<select id="getEquipSpecificIndexByUpdateDateDesc" resultType="java.util.HashMap"> <select id="getEquipSpecificIndexByUpdateDateDesc" resultType="java.util.HashMap">
SELECT SELECT esi.id,
esi.id,
es.`name` AS equipmentSpecificName, es.`name` AS equipmentSpecificName,
esi.equipment_index_name AS equipmentSpecificIndexName, esi.equipment_index_name AS equipmentSpecificIndexName,
IF ( IF(
esi.value_label = '' esi.value_label = ''
OR esi.value_label IS NULL, OR esi.value_label IS NULL,
esi.`value`, esi.`value`,
...@@ -447,17 +428,14 @@ WHERE wles.id=#{id} ...@@ -447,17 +428,14 @@ WHERE wles.id=#{id}
) AS valueLabel, ) AS valueLabel,
es.position AS location, es.position AS location,
esi.update_date AS createDate esi.update_date AS createDate
FROM FROM `wl_equipment_specific_index` esi
`wl_equipment_specific_index` esi
LEFT JOIN wl_equipment_specific es ON es.id = esi.equipment_specific_id LEFT JOIN wl_equipment_specific es ON es.id = esi.equipment_specific_id
WHERE WHERE esi.`value` IS NOT NULL
esi.`value` IS NOT NULL ORDER BY esi.update_date DESC LIMIT 50
ORDER BY
esi.update_date DESC
LIMIT 50
</select> </select>
<select id="getEquipmentSpeIndexByIotCodeTrend" resultType="com.yeejoin.equipmanage.common.entity.EquipmentSpecificIndex"> <select id="getEquipmentSpeIndexByIotCodeTrend"
resultType="com.yeejoin.equipmanage.common.entity.EquipmentSpecificIndex">
SELECT SELECT
wei.id AS id, wei.id AS id,
wei.name_key AS nameKey, wei.name_key AS nameKey,
...@@ -487,4 +465,21 @@ WHERE wles.id=#{id} ...@@ -487,4 +465,21 @@ WHERE wles.id=#{id}
AND wei.name_key = #{fieldKey} AND wei.name_key = #{fieldKey}
</if> </if>
</select> </select>
<select id="getEquipSpecificScrap" resultType="java.util.Map">
select wes.id,
str.name as sname,
wlsd.status,
wes.position,
wes.name,
we.expiry_date as weExpiry,
wed.expiry_date as wesExpiry,
wed.production_date as product
from wl_equipment_specific wes
left join wl_equipment_detail wed on wes.equipment_detail_id = wed.id
left join wl_equipment we on wed.equipment_id = we.id
left join wl_warehouse_structure str on str.id = wes.warehouse_structure_id
left join wl_stock_detail wlsd on wes.id = wlsd.equipment_specific_id
where wed.production_date is not null
and wlsd.status != 7
</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