Commit 6f8dced3 authored by LiuLin's avatar LiuLin

Merge remote-tracking branch 'origin/develop_tzs_1227' into develop_tzs_1227

parents 6711c7d5 74e56458
......@@ -3,7 +3,9 @@ package com.yeejoin.amos.boot.module.jyjc.biz.controller;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.module.common.biz.utils.CommonResponseUtil;
import com.yeejoin.amos.boot.module.jyjc.biz.service.impl.CommonserviceImpl;
import com.yeejoin.amos.boot.module.jyjc.biz.service.impl.EquipRegularlyRemindServicelmpl;
import com.yeejoin.amos.boot.module.ymt.api.entity.TzBaseEnterpriseInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.TzsUserInfo;
import io.swagger.annotations.Api;
......@@ -32,6 +34,8 @@ public class CommonController extends BaseController {
@Autowired
CommonserviceImpl commonserviceImpl;
@Autowired
EquipRegularlyRemindServicelmpl equipRegularlyRemindServicelmpl;
/**
* 新增
......@@ -100,4 +104,14 @@ public class CommonController extends BaseController {
return ResponseHelper.buildResponse(commonserviceImpl.getInspectionUnitBySequenceNbr(sequenceNbr));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/test1")
@ApiOperation(httpMethod = "GET", value = "查询检验检测机构基本信息", notes = "查询检验检测机构基本信息")
public ResponseModel sendReminderMessage() {
equipRegularlyRemindServicelmpl.sendReminderMessage();
return CommonResponseUtil.success();
}
}
......@@ -10,11 +10,14 @@ import com.yeejoin.amos.boot.module.ymt.api.entity.TzBaseEnterpriseInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.TzsUserInfo;
import com.yeejoin.amos.boot.module.ymt.api.mapper.TzBaseEnterpriseInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.TzsUserInfoMapper;
import com.yeejoin.amos.feign.systemctl.Systemctl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import java.util.HashMap;
import java.util.List;
......@@ -68,4 +71,13 @@ public class CommonserviceImpl {
public TzBaseEnterpriseInfo getInspectionUnitBySequenceNbr(Long sequenceNbr) {
return enterpriseInfoMapper.selectBySeq(sequenceNbr);
}
@Async
public void sendMessage(HashMap<String,String> smsParams, List<String> phones){
for (String phone : phones) {
smsParams.put("mobile",phone);
Systemctl.smsClient.sendCommonSms(smsParams);
}
}
}
......@@ -2,53 +2,128 @@ package com.yeejoin.amos.boot.module.jyjc.biz.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yeejoin.amos.boot.biz.common.utils.DateUtils;
import com.yeejoin.amos.boot.module.jyjc.api.enums.BizTypeEnum;
import com.yeejoin.amos.boot.module.ymt.api.dto.UseInfoModel;
import com.yeejoin.amos.boot.module.ymt.api.entity.TzsUserInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.UseInfo;
import com.yeejoin.amos.boot.module.ymt.api.mapper.TzsUserInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.UseInfoMapper;
import com.yeejoin.amos.feign.systemctl.Systemctl;
import com.yeejoin.amos.feign.systemctl.model.MessageModel;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
import java.text.ParseException;
import java.util.*;
import java.util.stream.Collectors;
@EnableScheduling
@Service
@Slf4j
public class EquipRegularlyRemindServicelmpl {
@Autowired
private UseInfoMapper useInfoMapper;
@Autowired
private TzsUserInfoMapper tzsUserInfoMapper;
@Autowired
CommonserviceImpl commonservice;
@Scheduled(cron = "0 0 8 * * * ?")
@Scheduled(cron = "0 0 8 * * ?")
public void sendReminderMessage(){
//获取当前日期
String currentDate = DateUtils.getDateNowShortStr();
Date date = DateUtils.dateAddDays(new Date(), 31);
Date curDate = null;
try {
curDate = DateUtils.dateParse(currentDate, null);
} catch (ParseException e) {
e.printStackTrace();
}
Date date = DateUtils.dateAddDays(curDate, 31);
List<String> types = new ArrayList<>();
List<String> status = new ArrayList<>();
types.add("DTJC");
types.add("DQJY");
//查询需要发送消息的设备
LambdaQueryWrapper<UseInfo> query = new LambdaQueryWrapper<>();
query.in(UseInfo::getLastInspectType,types);
query.in(UseInfo::getStatus,status);
query.le(UseInfo::getNextInspectDate,date).or().ge(UseInfo::getNextInspectDate,currentDate);
List<UseInfo> equips = useInfoMapper.selectList(query);
//查询符合发送规则的人员电话
//组装短信内容
HashMap<String,String> params = new HashMap<>();
//发送短信
Systemctl.smsClient.sendCommonSms(params);
// LambdaQueryWrapper<UseInfo> query = new LambdaQueryWrapper<>();
// query.in(UseInfo::getLastInspectType,types);
// query.in(UseInfo::getStatus,status);
// query.le(UseInfo::getNextInspectDate,date).or().ge(UseInfo::getNextInspectDate,currentDate);
// List<UseInfo> equips = useInfoMapper.selectList(query);
//
List<UseInfoModel> equips = useInfoMapper.selecEquipInfotList(types, status, date, curDate);
//超期设备
List<UseInfoModel> cqEquip = new ArrayList<>();
//临期设备
List<UseInfoModel> lqEquip = new ArrayList<>();
for (UseInfoModel equip : equips) {
//下次检验时间小于当前时间为超期 反之为临期
if (DateUtils.dateCompare(equip.getNextInspectDate(),curDate) < 0 ){
cqEquip.add(equip);
}else {
lqEquip.add(equip);
}
}
Map<String, List<UseInfoModel>> cqEquips = cqEquip.stream().collect(Collectors.groupingBy(UseInfoModel::getUseUnitCreditCode));
Map<String, List<UseInfoModel>> lqEquips = lqEquip.stream().collect(Collectors.groupingBy(UseInfoModel::getUseUnitCreditCode));
for (String s : cqEquips.keySet()) {
//查询单位下共有多少超期及临期装备
List<UseInfoModel> useInfos = cqEquips.get(s);
int cq = useInfos.size();
int lq = lqEquips.containsKey(s)?lqEquips.get(s).size():0;
//查询符合发送规则的人员电话
LambdaQueryWrapper<TzsUserInfo> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.like(TzsUserInfo::getPost,"6552");
queryWrapper.isNotNull(TzsUserInfo::getPhone);
List<TzsUserInfo> tzsUserInfos = tzsUserInfoMapper.selectList(queryWrapper);
List<String> phones = tzsUserInfos.stream().map(TzsUserInfo::getPhone).collect(Collectors.toList());
List<String> userIds = tzsUserInfos.stream().map(TzsUserInfo::getAmosUserId).collect(Collectors.toList());
// 组装短信内容 发送短信
HashMap<String,String> smsParams = new HashMap<>();
smsParams.put("smsCode","EQU_TZS_001");
smsParams.put("lq", String.valueOf(lq));
smsParams.put("cq", String.valueOf(cq));
commonservice.sendMessage(smsParams,phones);
//发送平台消息
if ( lqEquips.containsKey(s)){
useInfos.addAll(lqEquips.get(s));
}
for (UseInfoModel useInfo : useInfos) {
Date nextInspectDate = useInfo.getNextInspectDate();
try {
MessageModel messageModel = new MessageModel();
messageModel.setCategory(1); //1 :消息通知
messageModel.setRelationId(useInfo.getRecord());
int day = DateUtils.dateBetween(nextInspectDate, curDate);
int day1 = DateUtils.dateBetween(nextInspectDate, date);
if (day > 0) {
messageModel.setTitle("设备超期提醒");
messageModel.setBody(useInfo.getProductName()+"("+useInfo.getSupervisiryCode()==null?"":useInfo.getSupervisiryCode()+") 已超期"+ Math.abs(day)+"天" );
}else if (day1 > 0){
messageModel.setTitle("设备临期提醒");
messageModel.setBody(useInfo.getProductName()+"("+useInfo.getSupervisiryCode()==null?"":useInfo.getSupervisiryCode()+") 还有"+ Math.abs(day1)+"天将到期");
}
messageModel.setRecivers(userIds);
messageModel.setIsSendWeb(true);
messageModel.setMsgType("EQUIP_HINT");
messageModel.setMsgTypeLabel("设备检验");
Systemctl.messageClient.create(messageModel);
log.info("信息发送完成");
} catch (ParseException e) {
e.printStackTrace();
}
}
}
}
}
......@@ -28,10 +28,7 @@ import com.yeejoin.amos.boot.module.ymt.api.entity.CategoryOtherInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.InspectionDetectionInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.TzBaseEnterpriseInfo;
import com.yeejoin.amos.boot.module.ymt.api.enums.EquipmentClassifityEnum;
import com.yeejoin.amos.boot.module.ymt.api.mapper.CategoryOtherInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.EquipmentCategoryMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.InspectionDetectionInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.TzBaseEnterpriseInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.Resource;
......@@ -81,7 +78,8 @@ public class JyjcInspectionResultServiceImpl extends BaseService<JyjcInspectionR
JyjcInspectionResultAttachmentServiceImpl attachmentService;
@Autowired
private RedisUtils redisUtils;
@Autowired
UseInfoMapper useInfoMapper;
@Autowired
CategoryOtherInfoMapper categoryOtherInfoMapper;
......@@ -206,6 +204,8 @@ public class JyjcInspectionResultServiceImpl extends BaseService<JyjcInspectionR
extracted(model, info, jybgFile);
inspectionDetectionInfoMapper.updateById(info);
}
//更新使用信息表
useInfoMapper.updateByRecord(model.getEquipUnicode(),model.getNextInspectionDate(),model.getInspectionType(),model.getApplicationNo());
return model;
}
......
package com.yeejoin.amos.boot.module.ymt.api.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
* 使用信息表
*
......@@ -72,5 +75,11 @@ public class UseInfoModel extends BaseDto {
private String cityName;
@ApiModelProperty(value = "")
private String countyName;
private String supervisiryCode;
private String productName;
private Date nextInspectDate;
private String lastInspectReportNo;
private String lastInspectType;
private String record;
}
package com.yeejoin.amos.boot.module.ymt.api.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.boot.module.ymt.api.dto.UseInfoModel;
import com.yeejoin.amos.boot.module.ymt.api.entity.UseInfo;
import java.util.Date;
import java.util.List;
/**
* 特种设备基本信息-使用信息 Mapper 接口
*
......@@ -11,4 +15,7 @@ import com.yeejoin.amos.boot.module.ymt.api.entity.UseInfo;
*/
public interface UseInfoMapper extends BaseMapper<UseInfo> {
List<UseInfoModel> selecEquipInfotList(List<String>types, List<String>statusList, Date date,Date curDate);
void updateByRecord(String record, Date nextInspectDate, String lastInspectType, String lastInspectReportNo);
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yeejoin.amos.boot.module.ymt.api.mapper.UseInfoMapper">
<update id="updateByRecord">
UPDATE
idx_biz_jg_use_info
SET
NEXT_INSPECT_DATE = #{nextInspectDate},
LAST_INSPECT_TYPE = #{lastInspectType},
LAST_INSPECT_REPORT_NO = #{lastInspectReportNo}
WHERE
RECORD = #{record}
</update>
<select id="selecEquipInfotList" resultType="com.yeejoin.amos.boot.module.ymt.api.dto.UseInfoModel">
SELECT
use.RECORD,
use.USE_UNIT_CREDIT_CODE,
other.SUPERVISORY_CODE,
register.PRODUCT_NAME,
use.NEXT_INSPECT_DATE as nextInspectDate,
base.contact_phone as phone
FROM
idx_biz_jg_use_info use
LEFT JOIN idx_biz_jg_other_info other on other.RECORD = use.RECORD
LEFT JOIN idx_biz_jg_register_info register on register.RECORD = use.RECORD
LEFT JOIN idx_biz_jg_supervision_info supervision on supervision.RECORD = use.RECORD
LEFT JOIN privilege_company pc on pc.org_code = supervision.ORG_BRANCH_CODE
LEFT JOIN tz_base_enterprise_info base on base.use_code = pc.company_code
<where>
<if test="statusList.size() > 0">
and STATUS in
<foreach collection="statusList" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
<if test="types.size() > 0">
and LAST_INSPECT_TYPE in
<foreach collection="types" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
and (#{date} >= NEXT_INSPECT_DATE or #{curDate} > NEXT_INSPECT_DATE)
</where>
</select>
</mapper>
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