LAPTOP-KB9HII50\70708 2 years ago
parent
commit
7c0f71968e

+ 56 - 0
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/dao/order/BaseTeamMemberDao.java

@ -0,0 +1,56 @@
package com.yihu.jw.care.dao.order;
import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
import com.yihu.jw.entity.base.team.BaseTeamMemberDO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
 * 
 * 团队成员 数据库访问层
 */
public interface BaseTeamMemberDao extends JpaRepository<BaseTeamMemberDO, String>, JpaSpecificationExecutor<BaseTeamMemberDO>  {
    @Query("select doc.name as name,doc.idcard as idcard ,doc.id as doctorCode from BaseDoctorDO doc where doc.id in (select team.doctorCode from BaseTeamMemberDO team where team.teamCode = ?1)")
    List<Map<String,Object>> getTeamMemberList(String teamCode);
    @Query("select id from BaseTeamMemberDO where teamCode = ?1")
    Set<Object> findIdListByTeamCode(String teamCode);
    List<BaseTeamMemberDO> findByTeamCode(String teamCode);
    @Query("SELECT case when count(A) > 0 then true else false END FROM BaseTeamMemberDO A WHERE A.teamCode = :teamCode " +
            "AND A.doctorCode = :doctorCode AND A.del = '1'")
    Boolean isMemberExist(@Param(value = "teamCode") String teamCode, @Param(value = "doctorCode") String doctorCode);
    @Modifying
    @Query("update BaseTeamMemberDO t SET t.del = '0' where t.teamCode = :teamCode")
    void deleteByTeamCode(@Param("teamCode") String teamCode);
    BaseTeamMemberDO findByTeamCodeAndDoctorCode(String teamCode, String doctorCode);
    BaseTeamMemberDO findByTeamCodeAndDoctorCodeAndDel(String teamCode, String doctorCode,String del);
    @Modifying
    @Query("update BaseTeamMemberDO t SET t.del = '0' where t.id = :id")
    void deleteById(@Param("id") String id);
    @Query("SELECT d FROM BaseTeamMemberDO m, BaseTeamDO t, BaseDoctorDO d WHERE t.id = :teamCode AND t.id = m.teamCode " +
            "AND m.doctorCode = d.id AND t.del = '1' AND m.del = '1' ")
    List<BaseDoctorDO> findAllMembers(@Param(value = "teamCode") String teamCode);
    @Query("SELECT d FROM BaseTeamMemberDO m, BaseTeamDO t, BaseDoctorDO d WHERE t.id = :teamCode AND t.id = m.teamCode " +
            "AND m.doctorCode = d.id And d.level=:doctorLevel AND t.del = '1' AND m.del = '1' ")
    List<BaseDoctorDO> findAllMembersByLevel(@Param(value = "teamCode") String teamCode,@Param(value = "doctorLevel") Integer doctorLevel);
    @Query("SELECT count(1) FROM BaseTeamMemberDO m, BaseTeamDO t, BaseDoctorDO d WHERE t.id = :teamCode AND t.id = m.teamCode " +
            "AND m.doctorCode = d.id AND t.del = '1' AND m.del = '1' ")
    Integer findMemCount(@Param(value = "teamCode") String teamCode);
}

+ 13 - 0
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/dao/order/UrgeReminderRecordDao.java

@ -0,0 +1,13 @@
package com.yihu.jw.care.dao.order;
import com.yihu.jw.entity.care.message.UrgeReminderRecordDO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
/**
 * Created by yeshijie on 2022/11/15.
 */
public interface UrgeReminderRecordDao extends JpaRepository<UrgeReminderRecordDO, String>, JpaSpecificationExecutor<UrgeReminderRecordDO> {
    UrgeReminderRecordDO findByTypeAndOrderId(String type, String orderId);
}

+ 10 - 4
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/event/ApplicationEvent.java

@ -8,10 +8,7 @@ import com.yihu.jw.care.job.data.SaveDataPushJob;
import com.yihu.jw.care.job.device.*;
import com.yihu.jw.care.job.message.DoctorSendUnreadJob;
import com.yihu.jw.care.job.message.PatientSendUnreadJob;
import com.yihu.jw.care.job.order.CancelPayOrderJob;
import com.yihu.jw.care.job.order.DailyWaterJob;
import com.yihu.jw.care.job.order.EmeWarnOrderDayJob;
import com.yihu.jw.care.job.order.EmeWarnOrderJob;
import com.yihu.jw.care.job.order.*;
import com.yihu.jw.care.job.pushRecord.*;
import com.yihu.jw.care.job.sim.GetSimsVoiceFlowDayJob;
import com.yihu.jw.care.job.sim.GetSimsVoiceFlowMonthJob;
@ -303,6 +300,15 @@ public class ApplicationEvent implements ApplicationListener<ContextRefreshedEve
                logger.info("DEVICE_SYNC_JOB exist");
            }
            //预警中的工单,2小时无人处理时,由系统自动发送一条工作提醒给对应的社工
            if (!quartzHelper.isExistJob("ORDER_URGE_REMINDER_JOB")){
                String trigger =  SystemConf.getInstance().getSystemProperties().getProperty("ORDER_URGE_REMINDER_JOB");
                quartzHelper.addJob(OrderUrgeReminderJob.class,trigger,"ORDER_URGE_REMINDER_JOB",new HashMap<String,Object>());
                logger.info("ORDER_URGE_REMINDER_JOB success");
            }else {
                logger.info("ORDER_URGE_REMINDER_JOB exist");
            }
        } catch (Exception e) {
            logger.info(" job start failed");
        }

+ 63 - 0
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/job/order/OrderUrgeReminderJob.java

@ -0,0 +1,63 @@
package com.yihu.jw.care.job.order;
import com.yihu.jw.util.http.HttpClientUtil;
import org.quartz.DisallowConcurrentExecution;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.jdbc.core.JdbcTemplate;
import java.util.List;
import java.util.Map;
/**
 * 预警中的工单,2小时无人处理时,由系统自动发送一条工作提醒给对应的社工
 * Created by yeshijie on 2022/11/18.
 */
@DisallowConcurrentExecution//解决执行频率和间隔时间的问题。到了执行时间点前一任务还在执行中,不会执行下一次任务,直至该次任务完成
public class OrderUrgeReminderJob implements Job {
    private static final Logger logger = LoggerFactory.getLogger(OrderUrgeReminderJob.class);
    @Autowired
    private JdbcTemplate jdbcTemplate;
    @Autowired
    private HttpClientUtil httpClientUtil;
    @Value("${spring.profiles.active}")
    private String profiles;
    @Override
    public void execute(JobExecutionContext context) throws JobExecutionException {
        try {
            //获取超过2小时的预警工单
            String sql = "select id,'20' type from base_emergency_assistance_order where status=1 and TIMESTAMPDIFF(HOUR,create_time,NOW())>2" +
                    " union select id,'22' type from base_security_monitoring_order where status=1 and TIMESTAMPDIFF(HOUR,create_time,NOW())>2";
            List<Map<String,Object>> mapList = jdbcTemplate.queryForList(sql);
            for (Map<String,Object> map:mapList){
                String orderId = map.get("id")+"";
                String type = map.get("type")+"";
                String tmpSql = "select count(1) from base_urge_reminder_record where type = '"+type+"' and order_id='"+orderId+"'";
                Integer count = jdbcTemplate.queryForObject(tmpSql,Integer.class);
                if(count==0){
                    String baseUrl;
                    String url = "adminManage/jobOrderUrgeReminder?orderType="+type+"&id="+orderId;
                    if("hzprod".equals(profiles)){
                        baseUrl = "http://10.18.43.41:10301/";
                    }else {
                        baseUrl = "http://172.26.0.107:10301/";
                    }
                    String res = httpClientUtil.get(baseUrl+url,"UTF-8");
                    logger.info("OrderUrgeReminderJob:"+"orderId="+orderId+",res="+res);
                }
            }
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}

+ 4 - 1
svr/svr-cloud-job/src/main/resources/system.properties

@ -57,4 +57,7 @@ PUSH_ZHAO_HUI_RI_BAO_JOB = 0 0 20 * * ?
#\u5BB6\u5C5E\u5FAE\u4FE1\u63A8\u9001 \u6BCF\u5929\u65E9\u4E0A\u5341\u70B9
FAMILY_WECHAT_PUSH_DEVICE_JOB = 0 0 10 * * ?
#\u6BCF\u5929 \u7269\u8054\u8BBE\u5907\u5BF9\u63A5
DEVICE_SYNC_JOB = 0 0 23 * * ?
DEVICE_SYNC_JOB = 0 0 23 * * ?
#\u9884\u8B66\u4E2D\u7684\u5DE5\u5355\uFF0C2\u5C0F\u65F6\u65E0\u4EBA\u5904\u7406\u65F6\uFF0C\u7531\u7CFB\u7EDF\u81EA\u52A8\u53D1\u9001\u4E00\u6761\u5DE5\u4F5C\u63D0\u9192\u7ED9\u5BF9\u5E94\u7684\u793E\u5DE5
ORDER_URGE_REMINDER_JOB=0 0/5 * * * ?