Browse Source

定时任务接口,每天执行一次,查询培训开始时间前,两天内的数据,发送消息提醒

sucheng 1 year ago
parent
commit
aa258f058d

+ 11 - 0
cx-file/cx-file-entity/src/main/java/com/bsentity/domain/FsFileDataListDo.java

@@ -296,4 +296,15 @@ public class FsFileDataListDo implements Serializable {
      */
     @TableField("FILETCATEGORY")
     private String filetCateGory;
+    /**
+     * 培训开始时间
+     */
+    @TableField("TRAININGSTARTDATE")
+    private Date trainingStartDate;
+
+    /**
+     * 培训结束时间
+     */
+    @TableField("TRAININGENDDATE")
+    private Date trainingEndDate;
 }

+ 12 - 0
cx-file/cx-file-entity/src/main/java/com/bsentity/domain/FsFileDataListRecordDo.java

@@ -297,4 +297,16 @@ public class FsFileDataListRecordDo implements Serializable {
      */
     @TableField("FILETCATEGORY")
     private String filetCateGory;
+
+    /**
+     * 培训开始时间
+     */
+    @TableField("TRAININGSTARTDATE")
+    private Date trainingStartDate;
+
+    /**
+     * 培训结束时间
+     */
+    @TableField("TRAININGENDDATE")
+    private Date trainingEndDate;
 }

+ 27 - 0
cx-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/FsFileDataListDao.java

@@ -0,0 +1,27 @@
+package com.rongwei.sfcommon.sys.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.rongwe.scentity.domian.FsFileDataListDo;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
+
+
+/**
+ * <p>
+ * 奥克宁可——文件清单 Mapper 接口
+ * </p>
+ *
+ * @author trj
+ * @since 2023-07-17
+ */
+@Mapper
+public interface FsFileDataListDao extends BaseMapper<FsFileDataListDo> {
+
+    @Select("select * from fs_file_data_list where DELETED = 0 AND DATE_FORMAT(NOW(),'%Y-%m-%d 00:00:00') >= DATE_SUB(DATE_FORMAT(TRAININGSTARTDATE,'%Y-%m-%d 00:00:00'), INTERVAL 2 DAY) AND DATE_FORMAT(NOW(),'%Y-%m-%d 00:00:00') <= DATE_FORMAT(TRAININGSTARTDATE,'%Y-%m-%d 00:00:00') AND PROCESSINSTSTATUS = '20' AND FILESTATE = '1'")
+    List<FsFileDataListDo> selectByTrainingStartDate();
+
+    @Select("select USERID from fs_training_staff where MASTERID = #{id}")
+    List<String> selectPeopleIdListByFileId(String id);
+}

+ 18 - 0
cx-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/FsFileDataListService.java

@@ -0,0 +1,18 @@
+package com.rongwei.sfcommon.sys.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwe.scentity.domian.FsFileDataListDo;
+import com.rongwei.rwcommon.base.R;
+
+/**
+ * <p>
+ * 奥克宁可——文件清单 服务类
+ * </p>
+ *
+ * @author trjwq
+ * @since 2023-07-17
+ */
+public interface FsFileDataListService extends IService<FsFileDataListDo> {
+
+    R trainingReminder();
+}

+ 62 - 0
cx-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/impl/FsFileDataListServiceImpl.java

@@ -0,0 +1,62 @@
+package com.rongwei.sfcommon.sys.service.impl;
+
+
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.rongwe.scentity.domian.FsFileDataListDo;
+import com.rongwei.rwcommon.base.R;
+import com.rongwei.safecommon.utils.CXCommonUtils;
+import com.rongwei.sfcommon.sys.dao.FsFileDataListDao;
+import com.rongwei.sfcommon.sys.service.FsFileDataListService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 奥克宁可——文件清单 服务实现类
+ * </p>
+ *
+ * @author trj
+ * @since 2023-07-17
+ */
+@Slf4j
+@Service
+public class FsFileDataListServiceImpl extends ServiceImpl<FsFileDataListDao, FsFileDataListDo> implements FsFileDataListService {
+
+    @Autowired
+    private FsFileDataListDao fileDataListDao;
+
+
+    @Override
+    public R trainingReminder() {
+        //查询需要发送消息的文件数据
+        List<FsFileDataListDo> list = fileDataListDao.selectByTrainingStartDate();
+
+        //查询每个文件的培训人,组装消息发送
+        for (FsFileDataListDo item : list) {
+            String id = item.getId();
+
+            String trainingStartDate = ObjectUtil.isNotEmpty(item.getTrainingStartDate()) ? DateUtil.format(item.getTrainingStartDate(), "yyy-MM-dd") : "";
+            String trainingEndDate = ObjectUtil.isNotEmpty(item.getTrainingEndDate()) ? DateUtil.format(item.getTrainingEndDate(), "yyy-MM-dd") : "";
+
+            //组装消息内容
+            String msg = "您好,您有需要参与的安全生产制度培训:【"+item.getFilename()+"】,培训时间为:【"+trainingStartDate+"】到【"+trainingEndDate+"】,请及时参与,如已参与,请忽略!";
+            //查询培训人
+            List<String> userIdList = fileDataListDao.selectPeopleIdListByFileId(id);
+
+            //发送消息
+            CXCommonUtils.sendNotify("制度培训提醒",
+                    msg,
+                    null,
+                    userIdList,
+                    item.getId(),
+                    "trainingreminder");
+        }
+
+        return R.ok();
+    }
+}

+ 305 - 0
cx-safe-check/cx-save-check-entity/src/main/java/com/rongwe/scentity/domian/FsFileDataListDo.java

@@ -0,0 +1,305 @@
+package com.rongwe.scentity.domian;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("fs_file_data_list")
+public class FsFileDataListDo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键ID
+     */
+    @TableId("ID")
+    private String id;
+
+    /**
+     * 租户ID
+     */
+    @TableField("TENANTID")
+    private String tenantid;
+
+    /**
+     * 扩展json格式配置
+     */
+    @TableField("ROPTION")
+    private String roption;
+
+    /**
+     * 是否删除Y/N
+     */
+    @TableField("DELETED")
+    private String deleted;
+
+    /**
+     * 备注
+     */
+    @TableField("REMARK")
+    private String remark;
+
+    /**
+     * 创建时间
+     */
+    @TableField("CREATEDATE")
+    private Date createdate;
+
+    /**
+     * 创建用户ID
+     */
+    @TableField("CREATEUSERID")
+    private String createuserid;
+
+    /**
+     * 创建人
+     */
+    @TableField("CREATEUSERNAME")
+    private String createusername;
+
+    /**
+     * 修改时间
+     */
+    @TableField("MODIFYDATE")
+    private Date modifydate;
+
+    /**
+     * 修改用户ID
+     */
+    @TableField("MODIFYUSERID")
+    private String modifyuserid;
+
+    /**
+     * 修改人
+     */
+    @TableField("MODIFYUSERNAME")
+    private String modifyusername;
+
+    /**
+     * 流程实例ID
+     */
+    @TableField("PROCESSINSTID")
+    private String processinstid;
+
+    /**
+     * 流程审批状态
+     */
+    @TableField("PROCESSINSTSTATUS")
+    private String processinststatus;
+
+    /**
+     * 文件树ID
+     */
+    @TableField("DOCUMENTTREEID")
+    private String documenttreeid;
+
+    /**
+     * 文件编号
+     */
+    @TableField("FILEENCODING")
+    private String fileencoding;
+
+    /**
+     * 文件版本号
+     */
+    @TableField("SERIALNUMBER")
+    private String serialnumber;
+
+    /**
+     * 文件名称
+     */
+    @TableField("FILENAME")
+    private String filename;
+
+    /**
+     * 文件更改编号
+     */
+    @TableField("CHANGENUMBER")
+    private String changenumber;
+
+    /**
+     * 文件层次(数据字典)
+     */
+    @TableField("VARIETY")
+    private String variety;
+
+    /**
+     * 部门(数据字典)
+     */
+    @TableField("DEPARTMENT")
+    private String department;
+
+    /**
+     * 前缀(数据字典)
+     */
+    @TableField("CATEGORY")
+    private String category;
+
+    /**
+     * 流程类型标识(1:新建控件 ;2:控件更新;3:临时控件创建;4:临时控件更新;5:控件作废)
+     */
+    @TableField("CURRENTSTATE")
+    private String currentstate;
+
+    /**
+     * 文件说明
+     */
+    @TableField("SPECIFICATION")
+    private String specification;
+
+    /**
+     * 是否临时文件(0:非;1:是)
+     */
+    @TableField("TEMPORARYFILE")
+    private String temporaryfile;
+
+    /**
+     * 到期时间(临时文件必填)
+     */
+    @TableField("EXPIRATIONTIME")
+    private Date expirationtime;
+
+    /**
+     * 附件(文件PDF版本)
+     */
+    @TableField("FILEPDF")
+    private String filepdf;
+
+    /**
+     * 附件(文件WORD版本)
+     */
+    @TableField("FILEWORD")
+    private String fileword;
+
+    /**
+     * 审核人ID
+     */
+    @TableField("AUDITORID")
+    private String auditorid;
+
+    /**
+     * 审核人
+     */
+    @TableField("AUDITOR")
+    private String auditor;
+
+    /**
+     * 审批人ID
+     */
+    @TableField("APPROVERID")
+    private String approverid;
+
+    /**
+     * 审批人
+     */
+    @TableField("APPROVER")
+    private String approver;
+
+    /**
+     * 变更类别(
+     * 1:内部变更;
+     * 2:外部变更
+     * )
+     */
+    @TableField("CHANGECATEGORY")
+    private String changecategory;
+
+    /**
+     * 变更原因
+     */
+    @TableField("ALTERCAUSE")
+    private String altercause;
+
+    /**
+     * 变更前
+     */
+    @TableField("BEFORECHANGE")
+    private String beforechange;
+
+    /**
+     * 变更后
+     */
+    @TableField("AFTERCHANGE")
+    private String afterchange;
+
+    /**
+     * 关联文件
+     */
+    @TableField("RELEVANTDOCUMENT")
+    private String relevantdocument;
+
+    /**
+     * 是否作废(0:非;1:是)
+     */
+    @TableField("CANCELLATION")
+    private String cancellation;
+
+    /**
+     * 作废原因
+     */
+    @TableField("CANCELLATIONCAUSE")
+    private String cancellationcause;
+
+    /**
+     * 回顾状态(
+     * 1:未回顾
+     * 2:审核中
+     * 3:已审核
+     * )
+     */
+    @TableField("REVIEW")
+    private String review;
+
+    /**
+     * 是否EHS(数据字典: WJDL)
+     */
+    @TableField("ISEHS")
+    private String isehs;
+
+    /**
+     * 文件状态(1:生效中;2:已过期;3:已作废;)
+     */
+    @TableField("FILESTATE")
+    private String filestate;
+
+    /**
+     * 部门ID
+     */
+    @TableField("DEPTID")
+    private String deptId;
+
+    /**
+     * 部门名字
+     */
+    @TableField("DEPTNAME")
+    private String deptName;
+
+    /**
+     *文件类别(程序、表单)
+     */
+    @TableField("FILETCATEGORY")
+    private String filetCateGory;
+
+    /**
+     * 培训开始时间
+     */
+    @TableField("TRAININGSTARTDATE")
+    private Date trainingStartDate;
+
+    /**
+     * 培训结束时间
+     */
+    @TableField("TRAININGENDDATE")
+    private Date trainingEndDate;
+}

+ 31 - 0
cx-safe-check/cx-save-check-server/src/main/java/com/rongwei/savecheck/controller/FsFileDataListController.java

@@ -0,0 +1,31 @@
+package com.rongwei.savecheck.controller;
+
+
+import com.rongwei.rwcommon.base.R;
+import com.rongwei.sfcommon.sys.service.FsFileDataListService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ */
+@RestController
+@RequestMapping("/fsFile")
+public class FsFileDataListController {
+
+    @Autowired
+    private FsFileDataListService fileDataListService;
+    private final Logger log = LoggerFactory.getLogger(FsFileDataListController.class.getName());
+
+    /**
+     * 定时任务接口,每天执行一次,查询培训开始时间前,两天内的数据,发送消息提醒
+     */
+    @PostMapping("/trainingReminder")
+    public R trainingReminder(){
+        return fileDataListService.trainingReminder();
+    }
+}
+