Browse Source

Merge branch 'dev' of http://192.168.1.220:10080/Amoy2/wlyy2.0 into dev

wsl 2 năm trước cách đây
mục cha
commit
3954192bc5

+ 17 - 1
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/admin/AdminManageEndpoint.java

@ -1,6 +1,7 @@
package com.yihu.jw.care.endpoint.admin;
import com.yihu.jw.care.service.admin.AdminManageService;
import com.yihu.jw.care.service.common.PermissionService;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
@ -24,6 +25,8 @@ public class AdminManageEndpoint extends EnvelopRestEndpoint {
    @Resource
    private AdminManageService adminManageService;
    @Resource
    private PermissionService permissionService;
    @GetMapping(value = "getEmergencyAssistanceNum")
    @ApiOperation(value = "获取紧急救助预警中的工单数")
@ -67,7 +70,20 @@ public class AdminManageEndpoint extends EnvelopRestEndpoint {
    public Envelop orderUrgeReminder(@ApiParam(name = "orderType",value = "类型 20紧急呼叫22安防工单") @RequestParam String orderType,
                                     @ApiParam(name = "id",value = "工单id") @RequestParam String id){
        try {
            adminManageService.orderUrgeReminder(id,orderType);
            adminManageService.orderUrgeReminder(id,orderType, permissionService.getUID());
            return success("提醒成功");
        }catch (Exception e){
            e.printStackTrace();
            return Envelop.getError("提醒失败");
        }
    }
    @GetMapping(value = "jobOrderUrgeReminder")
    @ApiOperation(value = "job工单催促提醒")
    public Envelop systemOrderUrgeReminder(@ApiParam(name = "orderType",value = "类型 20紧急呼叫22安防工单") @RequestParam String orderType,
                                     @ApiParam(name = "id",value = "工单id") @RequestParam String id){
        try {
            adminManageService.orderUrgeReminder(id,orderType,"system");
            return success("提醒成功");
        }catch (Exception e){
            e.printStackTrace();

+ 14 - 6
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/admin/AdminManageService.java

@ -4,7 +4,6 @@ import com.yihu.jw.care.dao.assistance.EmergencyAssistanceDao;
import com.yihu.jw.care.dao.message.UrgeReminderRecordDao;
import com.yihu.jw.care.dao.security.SecurityMonitoringOrderDao;
import com.yihu.jw.care.dao.team.BaseTeamMemberDao;
import com.yihu.jw.care.service.common.PermissionService;
import com.yihu.jw.care.util.MessageUtil;
import com.yihu.jw.care.vo.OrgVo;
import com.yihu.jw.care.vo.UserVo;
@ -46,8 +45,6 @@ public class AdminManageService {
    @Resource
    private BaseTeamMemberDao baseTeamMemberDao;
    @Resource
    private PermissionService permissionService;
    @Resource
    private BaseDoctorDao doctorDao;
    @Resource
    private UrgeReminderRecordDao urgeReminderRecordDao;
@ -63,7 +60,7 @@ public class AdminManageService {
     * 工单催促提醒
     * 20紧急呼叫22安防工单
     */
    public void orderUrgeReminder(String id,String orderType){
    public void orderUrgeReminder(String id,String orderType,String sender){
        synchronized (id.intern()){
            UrgeReminderRecordDO recordDO = urgeReminderRecordDao.findByTypeAndOrderId(orderType,id);
            if(recordDO==null){
@ -71,8 +68,7 @@ public class AdminManageService {
                recordDO.setOrderId(id);
                recordDO.setType(orderType);
                urgeReminderRecordDao.save(recordDO);
                String sender = permissionService.getUID();
                BaseDoctorDO baseDoctorDO = doctorDao.findById(sender);
                BaseDoctorDO baseDoctorDO = getDoctorDO(sender);
                String patient;
                String name;
                String teamCode;
@ -97,6 +93,18 @@ public class AdminManageService {
        }
    }
    private BaseDoctorDO getDoctorDO(String id){
        BaseDoctorDO baseDoctorDO;
        if("system".equals(id)){
            baseDoctorDO = new BaseDoctorDO();
            baseDoctorDO.setId("system");
            baseDoctorDO.setName("系统");
        }else {
            baseDoctorDO = doctorDao.findById(id);
        }
        return baseDoctorDO;
    }
    //type   2社工 3助老员 4教师
    //2. 社区医院3.  养老机构 4.  托育机构
    public List<Map<String,Object>> getOrgList(String type){

+ 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 * * * ?