Browse Source

feature 代码提交

xiahan 1 year ago
commit
7f98bbd767
100 changed files with 4306 additions and 0 deletions
  1. 86 0
      js-common/pom.xml
  2. 177 0
      js-common/src/main/java/com/rongwei/safecommon/config/BsMetaObjectHandler.java
  3. 81 0
      js-common/src/main/java/com/rongwei/safecommon/config/CustomCellWriteWidthConfig.java
  4. 28 0
      js-common/src/main/java/com/rongwei/safecommon/config/CxCommonRunnerImpl.java
  5. 34 0
      js-common/src/main/java/com/rongwei/safecommon/config/ThreadPoolConfig.java
  6. 28 0
      js-common/src/main/java/com/rongwei/safecommon/fegin/CXAdminFeginClient.java
  7. 40 0
      js-common/src/main/java/com/rongwei/safecommon/fegin/CXAdminFeginClientError.java
  8. 37 0
      js-common/src/main/java/com/rongwei/safecommon/fegin/CXCommonFeginClient.java
  9. 59 0
      js-common/src/main/java/com/rongwei/safecommon/fegin/CXHysitx.java
  10. 359 0
      js-common/src/main/java/com/rongwei/safecommon/utils/CXCommonUtils.java
  11. 212 0
      js-common/src/main/java/com/rongwei/safecommon/utils/CommonEasyExcelUtils.java
  12. 59 0
      js-common/src/main/java/com/rongwei/safecommon/utils/ExportExcelByEasyExcel.java
  13. 885 0
      js-common/src/main/java/com/rongwei/safecommon/utils/SaveConstans.java
  14. 45 0
      js-common/src/main/java/com/rongwei/safecommon/vo/CommonGenerateExcelVo.java
  15. 30 0
      js-common/src/main/java/com/rongwei/safecommon/vo/ExportExcelCommonVo.java
  16. 42 0
      js-safe-check/cx-save-check-common/pom.xml
  17. 133 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/AccidentDao.java
  18. 15 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/AccidentObjectDao.java
  19. 30 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/AccidentTrackPlanDao.java
  20. 15 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/AccidentUserDao.java
  21. 8 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/AspAccidentReportDao.java
  22. 8 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/AspCheckDiscoveryItemDao.java
  23. 15 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/AspEvaluationRecordDao.java
  24. 18 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/AspEvaluationRecordHistoryDao.java
  25. 9 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/AspRiskSourceDao.java
  26. 19 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/AspRiskSourceHistoryDao.java
  27. 15 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/AspSafeAttachmentsDao.java
  28. 43 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/AspSafetyDrillProgrammeDao.java
  29. 16 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/AspSafetyDrillProgrammeMsgNotifyRecordDao.java
  30. 16 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/AspSafetyEmergencyPlanDao.java
  31. 12 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/AspSafetyMeetingDao.java
  32. 7 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/AspSafetyPerformanceAppraisalDao.java
  33. 8 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/AspSafetyPerformanceAppraisalDetailDao.java
  34. 31 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/AspSafetyProductObjectiveDao.java
  35. 7 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/AspSafetyProductObjectiveResultDao.java
  36. 8 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/AspSafetyProductObjectiveResultScoreDetailDao.java
  37. 7 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/AspSafetyProductObjectiveScoreDetailDao.java
  38. 15 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/AspSpecialEquipmentCertificateDao.java
  39. 15 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/CheckItemContentDao.java
  40. 55 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/CheckItemsDao.java
  41. 27 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/CheckItemsDutyuserDao.java
  42. 13 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/CheckItemsPartsDao.java
  43. 15 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/CheckTemplateDao.java
  44. 30 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/CheckTemplateItemsDao.java
  45. 17 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/DangerousDao.java
  46. 20 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/DataXApiDao.java
  47. 27 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/FsFileDataListDao.java
  48. 52 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/HiddenDangerTrackDao.java
  49. 261 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/PointCheckDao.java
  50. 22 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/PointCheckItemDao.java
  51. 72 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/SafetyObservationDao.java
  52. 47 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/SaveCheckCommonDao.java
  53. 15 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/ThemeCheckContentDao.java
  54. 14 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/ThemeCheckDao.java
  55. 52 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/ThemeCheckItemDao.java
  56. 15 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/ThemeCheckWorkparkDao.java
  57. 13 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/WarnLevelDao.java
  58. 22 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/AccidentObjectService.java
  59. 39 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/AccidentService.java
  60. 20 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/AccidentTrackPlanService.java
  61. 21 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/AccidentUserService.java
  62. 16 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/AspAccidentReportService.java
  63. 13 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/AspCheckDiscoveryItemService.java
  64. 11 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/AspEvaluationRecordHistoryService.java
  65. 11 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/AspEvaluationRecordService.java
  66. 11 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/AspRiskSourceHistoryService.java
  67. 16 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/AspRiskSourceService.java
  68. 16 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/AspSafeAttachmentsService.java
  69. 16 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/AspSafetyDrillProgrammeMsgNotifyRecordService.java
  70. 51 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/AspSafetyDrillProgrammeService.java
  71. 16 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/AspSafetyEmergencyPlanService.java
  72. 16 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/AspSafetyMeetingService.java
  73. 7 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/AspSafetyPerformanceAppraisalDetailService.java
  74. 10 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/AspSafetyPerformanceAppraisalService.java
  75. 8 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/AspSafetyProductObjectiveResultScoreDetailService.java
  76. 8 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/AspSafetyProductObjectiveResultService.java
  77. 8 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/AspSafetyProductObjectiveScoreDetailService.java
  78. 16 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/AspSafetyProductObjectiveService.java
  79. 12 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/AspSpecialEquipmentCertificateService.java
  80. 17 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/CheckItemContentService.java
  81. 27 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/CheckItemsDutyuserService.java
  82. 17 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/CheckItemsPartsService.java
  83. 32 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/CheckItemsService.java
  84. 26 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/CheckTemplateItemsService.java
  85. 28 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/CheckTemplateService.java
  86. 9 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/DataXApiService.java
  87. 25 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/EasyExcelService.java
  88. 18 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/FsFileDataListService.java
  89. 20 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/HiddenDangerTaskService.java
  90. 36 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/HiddenDangerTrackService.java
  91. 18 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/PointCheckItemService.java
  92. 36 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/PointCheckService.java
  93. 36 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/SafeCheckSendNotifyService.java
  94. 19 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/SafetyObservationService.java
  95. 25 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/SaveCheckItemService.java
  96. 17 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/ThemeCheckContentService.java
  97. 31 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/ThemeCheckItemService.java
  98. 38 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/ThemeCheckService.java
  99. 28 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/ThemeCheckWorkparkService.java
  100. 0 0
      js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/WarnLevelService.java

+ 86 - 0
js-common/pom.xml

@@ -0,0 +1,86 @@
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <groupId>com.rongwei</groupId>
+        <artifactId>js-security</artifactId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>js-common</artifactId>
+    <packaging>jar</packaging>
+
+    <name>js-common</name>
+    <url>http://maven.apache.org</url>
+
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-boot-starter</artifactId>
+            <version>3.1.2</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.rongwei</groupId>
+            <artifactId>rw-admin-common</artifactId>
+            <version>1.1-SNAPSHOT</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>commons-io</groupId>
+                    <artifactId>commons-io</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>easyexcel</artifactId>
+            <version>3.3.2</version>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>easyexcel-core</artifactId>
+            <version>3.3.2</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>easyexcel-core</artifactId>
+            <version>3.3.2</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-test</artifactId>
+        </dependency>
+        <!--        <dependency>-->
+        <!--            <groupId>commons-io</groupId>-->
+        <!--            <artifactId>commons-io</artifactId>-->
+        <!--            <version>2.11.0</version>-->
+        <!--        </dependency>-->
+        <!--        <dependency>-->
+        <!--            <groupId>org.apache.xmlbeans</groupId>-->
+        <!--            <artifactId>xmlbeans</artifactId>-->
+        <!--            <version>5.1.0</version>-->
+        <!--        </dependency>-->
+        <!--        <dependency>-->
+        <!--            <groupId>org.apache.poi</groupId>-->
+        <!--            <artifactId>poi-ooxml</artifactId>-->
+        <!--            <version>5.2.0</version>-->
+        <!--            <scope>compile</scope>-->
+        <!--        </dependency>-->
+        <!--        <dependency>-->
+        <!--            <groupId>org.apache.poi</groupId>-->
+        <!--            <artifactId>poi-ooxml-schemas</artifactId>-->
+        <!--            <version>3.17</version>-->
+        <!--        </dependency>-->
+    </dependencies>
+</project>

+ 177 - 0
js-common/src/main/java/com/rongwei/safecommon/config/BsMetaObjectHandler.java

@@ -0,0 +1,177 @@
+package com.rongwei.safecommon.config;
+
+import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
+import com.rongwei.commonservice.service.RedisService;
+import com.rongwei.rwadmincommon.system.domain.SysOrganizationDo;
+import com.rongwei.rwadmincommon.system.vo.SysOrganizationVo;
+import com.rongwei.rwadmincommon.system.vo.SysUserVo;
+import com.rongwei.rwcommon.utils.StringUtils;
+import com.rongwei.safecommon.utils.SaveConstans;
+import org.apache.ibatis.reflection.MetaObject;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Primary;
+import org.springframework.stereotype.Component;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Date;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+@Component
+@Primary
+public class BsMetaObjectHandler implements MetaObjectHandler {
+
+    private static final Logger logger = LoggerFactory.getLogger(BsMetaObjectHandler.class);
+
+    @Autowired
+    private RedisService redisService;
+
+    @Override
+    public void insertFill(MetaObject metaObject) {
+        try {
+            System.out.println("insert 拦截...");
+            SysUserVo sysUser = null;
+            ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
+            if (attributes == null) {
+                sysUser = new SysUserVo();
+                sysUser.setId("0");
+                sysUser.setName("系统操作");
+            } else {
+                HttpServletRequest request = attributes.getRequest();
+                if (request == null) {
+                    sysUser = new SysUserVo();
+                    sysUser.setId("0");
+                    sysUser.setName("系统操作");
+                } else {
+                    String token = request.getHeader("token");
+                    logger.info("token.... " + token);
+                    if (token == null || "".equals(token)) {
+                        sysUser = new SysUserVo();
+                        sysUser.setId("0");
+                        sysUser.setName("系统操作");
+                    } else {
+                        sysUser = redisService.getLoginUser(token);
+                        if (sysUser == null) {
+                            logger.info("当前token未查到对应的用户信息");
+                            sysUser = new SysUserVo();
+                        }
+                    }
+                }
+            }
+
+            logger.info("start insert fill ....");
+            Object tenantid = this.getFieldValByName("tenantid", metaObject);
+            if (null == tenantid && sysUser != null) {
+                // 所有组织机构
+                List<SysOrganizationDo> orgdos = (List<SysOrganizationDo>) redisService.getRedisCatchObj("allOrgs");
+                // 获取所属工厂
+                List<SysOrganizationVo> organizationDoList = sysUser.getOrganizationDoList();
+                if (organizationDoList != null && organizationDoList.size() > 0) {
+                    Set<String> tids = new HashSet<>();
+                    for (SysOrganizationVo org : organizationDoList) {
+                        // 当前部门即工厂级部门
+                        if (SaveConstans.ORGTYPE_FACTORY.equals(org.getOrgtype())) {
+                            tids.add(org.getId());
+                        }
+                        // 当前部门所有上级部门查找是否有工厂级部门
+                        else {
+                            String fullpid = org.getFullpid();
+                            if (StringUtils.isNotBlank(fullpid)) {
+                                String[] fullpids = fullpid.split(",");
+                                for (String pid : fullpids) {
+                                    for (SysOrganizationDo orgdo : orgdos) {
+                                        if (StringUtils.isNotBlank(pid) && pid.equals(orgdo.getId())) {
+                                            if (SaveConstans.ORGTYPE_FACTORY.equals(orgdo.getOrgtype())) {
+                                                tids.add(org.getId());
+                                            }
+                                            break;
+                                        }
+                                    }
+                                }
+                            }
+                        }
+                    }
+
+                    this.setFieldValByName("tenantid", String.join(",", tids), metaObject);
+                }
+            }
+
+            Date now = new Date();
+
+            Object createDate = this.getFieldValByName("createdate", metaObject);
+            if (null == createDate) {
+                /**
+                 * 设置实体属性setter进去的值,优先级要高于自动填充的值。
+                 * 如果实体没有设置该属性,就给默认值,防止entity的setter值被覆盖。
+                 */
+                this.setFieldValByName("createdate", now, metaObject);
+            }
+            Object modifyDate = this.getFieldValByName("modifydate", metaObject);
+            if (null == modifyDate) {
+                this.setFieldValByName("modifydate", now, metaObject);
+            }
+            Object createuserid = this.getFieldValByName("createuserid", metaObject);
+            if (null == createuserid && sysUser != null) {
+                this.setFieldValByName("createuserid", sysUser.getId(), metaObject);
+            }
+            Object createusername = this.getFieldValByName("createusername", metaObject);
+            if (null == createusername && sysUser != null) {
+                this.setFieldValByName("createusername", sysUser.getName(), metaObject);
+            }
+            Object modifyuserid = this.getFieldValByName("modifyuserid", metaObject);
+            if (null == modifyuserid && sysUser != null) {
+                this.setFieldValByName("modifyuserid", sysUser.getId(), metaObject);
+            }
+            Object modifyusername = this.getFieldValByName("modifyusername", metaObject);
+            if (null == modifyusername && sysUser != null) {
+                this.setFieldValByName("modifyusername", sysUser.getName(), metaObject);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    @Override
+    public void updateFill(MetaObject metaObject) {
+        try {
+            logger.info("start update fill ....");
+            ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
+            if (attributes == null) {
+                return;
+            }
+            HttpServletRequest request = attributes.getRequest();
+            if (request == null) {
+                return;
+            }
+            String token = request.getHeader("token");
+            if (token == null || "".equals(token)) {
+                return;
+            }
+            SysUserVo sysUser = redisService.getLoginUser(token);
+
+            Date now = new Date();
+
+            Object modifyDate = this.getFieldValByName("modifydate", metaObject);
+            if (null == modifyDate) {
+                this.setUpdateFieldValByName("modifydate", now, metaObject);
+            }
+            Object modifyuserid = this.getFieldValByName("modifyuserid", metaObject);
+            if (null == modifyuserid && sysUser != null) {
+                this.setUpdateFieldValByName("modifyuserid", sysUser.getId(), metaObject);
+            }
+            Object modifyusername = this.getFieldValByName("modifyusername", metaObject);
+            if (null == modifyusername && sysUser != null) {
+                this.setUpdateFieldValByName("modifyusername", sysUser.getName(), metaObject);
+            }
+            //this.setFieldValByName("operator", "Tom", metaObject);
+            //this.setUpdateFieldValByName("operator", "Tom", metaObject);//@since 快照:3.0.7.2-SNAPSHOT, @since 正式版暂未发布3.0.7
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+}

+ 81 - 0
js-common/src/main/java/com/rongwei/safecommon/config/CustomCellWriteWidthConfig.java

@@ -0,0 +1,81 @@
+package com.rongwei.safecommon.config;
+
+import com.alibaba.excel.enums.CellDataTypeEnum;
+import com.alibaba.excel.metadata.Head;
+import com.alibaba.excel.metadata.data.CellData;
+import com.alibaba.excel.metadata.data.WriteCellData;
+import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
+import com.alibaba.excel.write.style.column.AbstractColumnWidthStyleStrategy;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.Sheet;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * CustomCellWriteWidthConfig class
+ *
+ * @author XH
+ * @date 2024/02/02
+ */
+public class CustomCellWriteWidthConfig extends AbstractColumnWidthStyleStrategy {
+    private final Map<Integer, Map<Integer, Integer>> CACHE = new HashMap<>();
+
+    @Override
+    protected void setColumnWidth(WriteSheetHolder writeSheetHolder, List<WriteCellData<?>> cellDataList, Cell cell, Head head, Integer integer, Boolean isHead) {
+        boolean needSetWidth = isHead || !CollectionUtils.isEmpty(cellDataList);
+        if (needSetWidth) {
+            Map<Integer, Integer> maxColumnWidthMap = CACHE.computeIfAbsent(writeSheetHolder.getSheetNo(), k -> new HashMap<>());
+
+            Integer columnWidth = this.dataLength(cellDataList, cell, isHead);
+            // 单元格文本长度大于60换行
+            if (columnWidth >= 0) {
+                if (columnWidth > 60) {
+                    columnWidth = 60;
+                }
+                Integer maxColumnWidth = maxColumnWidthMap.get(cell.getColumnIndex());
+                if (maxColumnWidth == null || columnWidth > maxColumnWidth) {
+                    maxColumnWidthMap.put(cell.getColumnIndex(), columnWidth);
+                    Sheet sheet = writeSheetHolder.getSheet();
+                    sheet.setColumnWidth(cell.getColumnIndex(), columnWidth * 256);
+                }
+            }
+        }
+    }
+
+    /**
+     * 计算长度
+     *
+     * @param cellDataList
+     * @param cell
+     * @param isHead
+     * @return
+     */
+    private Integer dataLength(List<WriteCellData<?>> cellDataList, Cell cell, Boolean isHead) {
+        if (isHead) {
+            return cell.getStringCellValue().getBytes().length;
+        } else {
+            CellData<?> cellData = cellDataList.get(0);
+            CellDataTypeEnum type = cellData.getType();
+            if (type == null) {
+                return -1;
+            } else {
+                switch (type) {
+                    case STRING:
+                        // 换行符(数据需要提前解析好)
+                        int index = cellData.getStringValue().indexOf("\n");
+                        return index != -1 ?
+                                cellData.getStringValue().substring(0, index).getBytes().length + 1 : cellData.getStringValue().getBytes().length + 1;
+                    case BOOLEAN:
+                        return cellData.getBooleanValue().toString().getBytes().length;
+                    case NUMBER:
+                        return cellData.getNumberValue().toString().getBytes().length;
+                    default:
+                        return -1;
+                }
+            }
+        }
+    }
+}

+ 28 - 0
js-common/src/main/java/com/rongwei/safecommon/config/CxCommonRunnerImpl.java

@@ -0,0 +1,28 @@
+package com.rongwei.safecommon.config;
+
+import com.rongwei.commonservice.service.RedisService;
+import com.rongwei.rwadmincommon.system.domain.SysOrganizationDo;
+import com.rongwei.rwadmincommon.system.service.SysOrganizationService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.ApplicationArguments;
+import org.springframework.boot.ApplicationRunner;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+@Component
+public class CxCommonRunnerImpl implements ApplicationRunner {
+
+    @Autowired
+    private SysOrganizationService sysOrganizationService;
+    @Autowired
+    private RedisService redisService;
+
+    @Override
+    public void run(ApplicationArguments args) throws Exception {
+        System.out.println("服务启动公共初始化");
+        // 查询所有组织机构数据,并缓存到Redis中
+        List<SysOrganizationDo> orgdos = sysOrganizationService.list();
+        redisService.redisCatchInit("allOrgs", orgdos, 0);
+    }
+}

+ 34 - 0
js-common/src/main/java/com/rongwei/safecommon/config/ThreadPoolConfig.java

@@ -0,0 +1,34 @@
+package com.rongwei.safecommon.config;
+
+import cn.hutool.core.thread.ExecutorBuilder;
+import cn.hutool.core.thread.ThreadFactoryBuilder;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * ThreadPoolConfig class
+ *
+ * @author XH
+ * @date 2023/12/18
+ */
+
+@Configuration
+public class ThreadPoolConfig {
+    public static final String NAME_PRE = "custom-";
+
+    @Bean("customThreadPool")
+    public static ThreadPoolExecutor getExecutor() {
+        return ExecutorBuilder.create()
+                .setCorePoolSize(8)
+                .setMaxPoolSize(16)
+                .setKeepAliveTime(60, TimeUnit.SECONDS)
+                .setHandler(new ThreadPoolExecutor.CallerRunsPolicy())
+                .setAllowCoreThreadTimeOut(true)
+                .setThreadFactory(ThreadFactoryBuilder.create().setNamePrefix(NAME_PRE).build())
+                .build();
+    }
+
+}

+ 28 - 0
js-common/src/main/java/com/rongwei/safecommon/fegin/CXAdminFeginClient.java

@@ -0,0 +1,28 @@
+package com.rongwei.safecommon.fegin;
+
+import com.rongwei.rwcommon.base.R;
+import com.rongwei.rwcommon.vo.CriteriaQuery;
+import com.rongwei.rwcommon.vo.MailDo;
+import com.rongwei.rwcommon.vo.generalsql.BatchSaveVo;
+import com.rongwei.rwcommonentity.commonservers.vo.SysNotifyAnnounceVo;
+import com.rongwei.rwcommonentity.commonservers.vo.SysSerialVo;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.http.MediaType;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+import java.util.Map;
+
+@FeignClient(value = "rw-admin", fallback = CXAdminFeginClientError.class, contextId = "adminFeign")
+public interface CXAdminFeginClient {
+    @PostMapping("sys/generalCRUD/getDataBySql")
+    R getDataBySql(@RequestBody CriteriaQuery query);
+
+    @PostMapping("sys/generalCRUD/batchSaveList")
+    R batchSaveList(@RequestBody BatchSaveVo batchSaveVo);
+
+    @PostMapping("sys/generalCRUD/getSerialNumberCode")
+    R<Map<String, Object>> getSerialNumberCode(@RequestBody SysSerialVo sysSerialVo);
+}

+ 40 - 0
js-common/src/main/java/com/rongwei/safecommon/fegin/CXAdminFeginClientError.java

@@ -0,0 +1,40 @@
+package com.rongwei.safecommon.fegin;
+
+import com.rongwei.rwcommon.base.R;
+import com.rongwei.rwcommon.vo.CriteriaQuery;
+import com.rongwei.rwcommon.vo.generalsql.BatchSaveVo;
+import com.rongwei.rwcommonentity.commonservers.vo.SysSerialVo;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+
+/**
+ * Hysitx class
+ *
+ * @author XH
+ * @date 2023/05/30
+ */
+@Component
+public class CXAdminFeginClientError implements CXAdminFeginClient {
+    private final Logger log = LoggerFactory.getLogger(this.getClass().getName());
+
+    @Override
+    public R getDataBySql(CriteriaQuery query) {
+        log.error("执行自定义sql失败:{}", query);
+        return R.error();
+    }
+
+    @Override
+    public R batchSaveList(BatchSaveVo batchSaveVo) {
+        log.error("批量保存失败:{}", batchSaveVo);
+        return R.error();
+    }
+
+    @Override
+    public R getSerialNumberCode(SysSerialVo sysSerialVo) {
+        log.error("生成流水码失败:{}", sysSerialVo);
+        return R.error();
+    }
+
+
+}

+ 37 - 0
js-common/src/main/java/com/rongwei/safecommon/fegin/CXCommonFeginClient.java

@@ -0,0 +1,37 @@
+package com.rongwei.safecommon.fegin;
+
+import com.rongwei.rwcommon.base.R;
+import com.rongwei.rwcommon.vo.CriteriaQuery;
+import com.rongwei.rwcommon.vo.MailDo;
+import com.rongwei.rwcommonentity.commonservers.vo.SysNotifyAnnounceVo;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.http.MediaType;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+import java.util.Map;
+
+@FeignClient(value = "rw-common-server", fallback = CXHysitx.class, contextId = "commonFeign")
+public interface CXCommonFeginClient {
+    @PostMapping("sys/sysnotifyannounce/saveOrUpdate")
+    @Async("customThreadPool")
+    void sendNotify(@RequestBody SysNotifyAnnounceVo sysNotifyAnnounceVo);
+
+    @PostMapping("/mail/sendHtmlMail")
+    R sendHtmlMail(@RequestBody MailDo Mail);
+
+    @PostMapping("ws/socket/push/app")
+    R pushToWeb(@RequestParam String cid, @RequestParam(required = false) String message);
+
+    @RequestMapping("sys/sysnotifyannounce/list")
+    R list(@RequestParam Map<String, Object> params);
+
+    @PostMapping("sys/sysnotifyannounce/delete")
+    R delete(@RequestBody List<String> ids);
+
+    @PostMapping(value = "sys/sysfile/upload?platform=ic-pc&foldercode=file_system&relationid={relationid}"
+            , consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
+    R upload(@RequestPart(value = "file", required = true) MultipartFile file, @PathVariable("relationid") String relationid);
+}

+ 59 - 0
js-common/src/main/java/com/rongwei/safecommon/fegin/CXHysitx.java

@@ -0,0 +1,59 @@
+package com.rongwei.safecommon.fegin;
+
+import com.rongwei.rwcommon.base.R;
+import com.rongwei.rwcommon.vo.MailDo;
+import com.rongwei.rwcommonentity.commonservers.vo.SysNotifyAnnounceVo;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Hysitx class
+ *
+ * @author XH
+ * @date 2023/05/30
+ */
+@Component
+public class CXHysitx implements CXCommonFeginClient {
+    private final Logger log = LoggerFactory.getLogger(this.getClass().getName());
+
+    @Override
+    public void sendNotify(SysNotifyAnnounceVo sysNotifyAnnounceVo) {
+        log.error("发送消息通知失败!通知内容为:{}", sysNotifyAnnounceVo);
+    }
+
+    @Override
+    public R sendHtmlMail(MailDo mailDo) {
+        log.error("邮件发送失败,数据为{}", mailDo);
+        return R.error();
+    }
+
+    @Override
+    public R pushToWeb(String cid, String message) {
+        log.error("发送websocket通知失败!通知内容为:{}", message);
+        return R.error();
+    }
+
+    @Override
+    public R list(Map<String, Object> params) {
+        log.error("查询提醒失败,数据为{}", params);
+        return R.error();
+    }
+
+    @Override
+    public R delete(List<String> ids) {
+        log.error("删除提醒失败,数据为{}", ids);
+        return R.error();
+    }
+
+    @Override
+    public R upload(MultipartFile file, String relationid) {
+        return null;
+    }
+
+
+}

+ 359 - 0
js-common/src/main/java/com/rongwei/safecommon/utils/CXCommonUtils.java

@@ -0,0 +1,359 @@
+package com.rongwei.safecommon.utils;
+
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.json.JSONArray;
+import cn.hutool.json.JSONUtil;
+import com.alibaba.fastjson.JSONObject;
+import com.google.common.collect.Lists;
+import com.rongwei.commonservice.serial.service.SysSerialNumberService;
+import com.rongwei.commonservice.service.RedisService;
+import com.rongwei.rwadmincommon.system.domain.SysOrganizationDo;
+import com.rongwei.rwadmincommon.system.vo.SysOrganizationVo;
+import com.rongwei.rwadmincommon.system.vo.SysUserVo;
+import com.rongwei.rwcommon.base.R;
+import com.rongwei.rwcommon.utils.SecurityUtil;
+import com.rongwei.rwcommon.utils.StringUtils;
+import com.rongwei.rwcommon.vo.CriteriaQuery;
+import com.rongwei.rwcommon.vo.generalsql.BatchSaveVo;
+import com.rongwei.rwcommon.vo.generalsql.GeneralInsertVo;
+import com.rongwei.rwcommonentity.commonservers.vo.SysNotifyAnnounceVo;
+import com.rongwei.rwcommonentity.commonservers.vo.SysSerialVo;
+import com.rongwei.safecommon.fegin.CXAdminFeginClient;
+import com.rongwei.safecommon.fegin.CXCommonFeginClient;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.time.LocalDate;
+import java.util.*;
+import java.util.function.BooleanSupplier;
+import java.util.stream.Collectors;
+
+import static com.rongwei.safecommon.utils.SaveConstans.*;
+
+/**
+ * CXCommonUtils class
+ *
+ * @author XH
+ * @date 2023/12/15
+ */
+@Component
+public class CXCommonUtils {
+    public static final String DEFAULT_NOTIFY_STATUS = "3";
+    private static final Logger log = LoggerFactory.getLogger(CXCommonUtils.class.getName());
+    private static SysSerialNumberService sysSerialNumberService;
+    private static RedisService redisService;
+    private static CXCommonFeginClient commonFeginClient;
+    private static CXAdminFeginClient adminFeginClient;
+    @Autowired
+    private RedisService autoRedisService;
+    @Autowired
+    private CXCommonFeginClient autoCommonFeginClient;
+    @Resource
+    private CXAdminFeginClient autoAdminFeginClient;
+    @Autowired
+    private SysSerialNumberService autoSysSerialNumberService;
+
+    /**
+     * 发送消息提醒
+     *
+     * @param title         消息提醒标题
+     * @param content       消息提醒内容
+     * @param remark        消息提醒备注
+     * @param recipientIds  接收人ID
+     * @param roption       目前存的是业务数据ID
+     * @param notifyStatus  消息提醒类型
+     * @param pushWebsocket 是否向webSocket推送消息
+     */
+    public static void sendNotify(String title, String content, String remark,
+                                  List<String> recipientIds, String roption,
+                                  String notifyStatus, boolean pushWebsocket) {
+        sendNotify(SecurityUtil.getUUID(), null, title, content, remark, recipientIds, roption, notifyStatus, pushWebsocket);
+    }
+
+    /**
+     * 发送消息提醒
+     *
+     * @param notifyId      消息提醒ID
+     * @param tenantId      消息提醒公司信息
+     * @param title         消息提醒标题
+     * @param content       消息提醒内容
+     * @param remark        消息提醒备注
+     * @param recipientIds  接收人ID
+     * @param roption       目前存的是业务数据ID
+     * @param notifyStatus  消息提醒类型
+     * @param pushWebsocket 是否向webSocket推送消息
+     */
+    public static void sendNotify(String notifyId, String tenantId, String title, String content, String remark,
+                                  List<String> recipientIds, String roption,
+                                  String notifyStatus, boolean pushWebsocket) {
+        if (recipientIds == null || recipientIds.isEmpty()) {
+            log.debug("接收人ID为空");
+            return;
+        }
+        SysNotifyAnnounceVo sysNotifyAnnounceVo = new SysNotifyAnnounceVo();
+        sysNotifyAnnounceVo.setId(notifyId);
+        sysNotifyAnnounceVo.setSenderid("8672bf72ab274bec83052868ae336b38");
+        sysNotifyAnnounceVo.setNotifytype(notifyStatus);
+        sysNotifyAnnounceVo.setNotifystatus(DEFAULT_NOTIFY_STATUS);
+        sysNotifyAnnounceVo.setNotifytitle(title);
+        sysNotifyAnnounceVo.setNotifycontent(content.replace("null", " "));
+        sysNotifyAnnounceVo.setRemark(remark);
+        if (StringUtils.isNotBlank(tenantId)) {
+            sysNotifyAnnounceVo.setTenantid(tenantId);
+        }
+        // 特殊处理
+        if (StringUtils.isNotBlank(roption)) {
+            sysNotifyAnnounceVo.setRoption(roption);
+        }
+        sysNotifyAnnounceVo.setUserid(recipientIds.stream().distinct().collect(Collectors.joining(",")));
+        log.debug("开始通过fegin发送消息通知: {}", sysNotifyAnnounceVo);
+        commonFeginClient.sendNotify(sysNotifyAnnounceVo);
+        // 通过webSocket推送数据
+        if (pushWebsocket) {
+            //防止推送用户过多,导致调用接口报错,实行分流
+            Lists.partition(recipientIds, 10).forEach(userIds -> {
+                pushApp(title, content, userIds);
+            });
+        }
+    }
+
+    /**
+     * 发送消息提醒
+     *
+     * @param title        消息提醒标题
+     * @param content      消息提醒内容
+     * @param remark       消息提醒备注
+     * @param recipientIds 接收人ID
+     * @param roption      目前存的是业务数据ID
+     * @param notifyStatus 消息提醒类型
+     */
+    public static void sendNotify(String title, String content, String remark,
+                                  List<String> recipientIds, String roption,
+                                  String notifyStatus) {
+        sendNotify(title, content, remark, recipientIds, roption, notifyStatus, true);
+    }
+
+    public static void pushApp(String title, String content, List<String> recipientIds) {
+        if (recipientIds.size() <= 0) {
+            return;
+        }
+        BatchSaveVo batchSaveVo = new BatchSaveVo();
+        LinkedList<GeneralInsertVo> generalInserts = new LinkedList<>();
+        for (String recipientId : recipientIds) {
+            String uuid = SecurityUtil.getUUID();
+
+            Map<String, Object> map = new HashMap<>();
+            map.put("ID", uuid);
+            map.put("DELETED", "0");
+            map.put("CREATEDATE", DateUtil.now());
+            map.put("TITLE", title);
+            map.put("CONTENT", content);
+            map.put("USERID", recipientId);
+
+            GeneralInsertVo generalInsertVo = new GeneralInsertVo();
+            generalInsertVo.setTablename("app_push_message");
+            generalInsertVo.setInsertcolumns(map);
+            generalInsertVo.setAutoGenId(false);
+            generalInsertVo.setIdCol("ID");
+            generalInserts.add(generalInsertVo);
+        }
+        batchSaveVo.setGeneralInserts(generalInserts);
+        adminFeginClient.batchSaveList(batchSaveVo);
+
+        //推送websocket消息给app
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("title", title);
+        jsonObject.put("content", content);
+        jsonObject.put("userIds", recipientIds);
+        commonFeginClient.pushToWeb("app", jsonObject.toJSONString());
+    }
+
+    /**
+     * 发送消息提醒
+     *
+     * @param id            主键id
+     * @param title         消息提醒标题
+     * @param content       消息提醒内容
+     * @param remark        消息提醒备注
+     * @param recipientIds  接收人ID
+     * @param roption       目前存的是业务数据ID
+     * @param notifyStatus  消息提醒类型
+     * @param pushWebsocket 是否向webSocket推送消息
+     */
+    public static void sendNotify(String id, String title, String content, String remark,
+                                  List<String> recipientIds, String roption,
+                                  String notifyStatus, boolean pushWebsocket) {
+        if (recipientIds == null || recipientIds.isEmpty()) {
+            log.debug("接收人ID为空");
+            return;
+        }
+        SysNotifyAnnounceVo sysNotifyAnnounceVo = new SysNotifyAnnounceVo();
+        sysNotifyAnnounceVo.setId(id);
+        sysNotifyAnnounceVo.setSenderid("8672bf72ab274bec83052868ae336b38");
+        sysNotifyAnnounceVo.setNotifytype(notifyStatus);
+        sysNotifyAnnounceVo.setNotifystatus(DEFAULT_NOTIFY_STATUS);
+        sysNotifyAnnounceVo.setNotifytitle(title);
+        sysNotifyAnnounceVo.setNotifycontent(content.replace("null", " "));
+        sysNotifyAnnounceVo.setRemark(remark);
+        // 特殊处理
+        if (StringUtils.isNotBlank(roption)) {
+            sysNotifyAnnounceVo.setRoption(roption);
+        }
+        sysNotifyAnnounceVo.setUserid(recipientIds.stream().distinct().collect(Collectors.joining(",")));
+        log.debug("开始通过fegin发送消息通知: {}", sysNotifyAnnounceVo);
+        commonFeginClient.sendNotify(sysNotifyAnnounceVo);
+        // 通过webSocket推送数据
+        if (pushWebsocket) {
+            //防止推送用户过多,导致调用接口报错,实行分流
+            Lists.partition(recipientIds, 10).forEach(userIds -> {
+                pushApp(title, content, userIds);
+            });
+        }
+    }
+
+    /**
+     * 流水码生成
+     *
+     * @param moduleCode      流水码CODE
+     * @param ruleTemplateStr 流水码编码规则
+     * @param tenantId        租户id
+     * @return
+     */
+    public static String streamCodeGeneration(String moduleCode, String ruleTemplateStr, String tenantId) {
+        String orgCode = ORG_CODE_MAP.getOrDefault(tenantId, "");
+        log.info("开始生成流水码");
+        SysSerialVo sysSerialVo = new SysSerialVo();
+        sysSerialVo.setModulecode(String.format("%s_%s", moduleCode, orgCode));
+        sysSerialVo.setRuleTemplateStr(String.format("%s-%s", orgCode, ruleTemplateStr));
+        String streamCode = sysSerialNumberService.getCodeByTemplate(sysSerialVo);
+        log.info("流水码生成成功:{}", streamCode);
+        return streamCode;
+    }
+
+    /**
+     * 流水码生成
+     *
+     * @param moduleCode      流水码CODE
+     * @param ruleTemplateStr 流水码编码规则
+     * @param tenantId        租户id
+     * @return
+     */
+    public static String streamCodeGeneration(String moduleCode, String ruleTemplateStr, String resetRule, String tenantId) {
+
+        String orgCode = (moduleCode.contains("_aq") ? AQ_ORG_CODE_MAP : ORG_CODE_MAP).getOrDefault(tenantId, "");
+        log.info("开始生成流水码");
+        SysSerialVo sysSerialVo = new SysSerialVo();
+        sysSerialVo.setModulecode(String.format("%s_%s", moduleCode, orgCode));
+        sysSerialVo.setRuleTemplateStr(String.format("%s-%s", orgCode, ruleTemplateStr));
+        sysSerialVo.setResetrule(resetRule);
+        String streamCode = sysSerialNumberService.getCodeByTemplate(sysSerialVo);
+        log.info("流水码生成成功:{}", streamCode);
+        return streamCode;
+    }
+
+    public static SysUserVo getCurrentUser() {
+        // 获取当前登录人信息
+        SysUserVo currUser = null;
+        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
+        if (attributes != null) {
+            HttpServletRequest request = attributes.getRequest();
+            if (request != null) {
+                String token = request.getHeader("token");
+                if (com.rongwei.rwcommon.utils.StringUtils.isNotEmpty(token)) {
+                    currUser = redisService.getLoginUser(token);
+                }
+            }
+        }
+        return currUser;
+    }
+
+    public static String getCurrentUserFactoryId(SysUserVo currentUser) {
+        if (currentUser == null) {
+            currentUser = getCurrentUser();
+        }
+        List<SysOrganizationVo> organizationDoList = currentUser.getOrganizationDoList();
+        String factoryId = organizationDoList.stream()
+                .filter(org -> MINUS_ONE.equals(org.getPid()))
+                .map(SysOrganizationDo::getId)
+                .distinct()
+                .collect(Collectors.joining(","));
+        if (StringUtils.isBlank(factoryId)) {
+            factoryId = organizationDoList.stream().map(info -> info.getFullpid().split(",")[1]).distinct().collect(Collectors.joining(","));
+        }
+        return factoryId;
+    }
+
+    /**
+     * 计算时间和当前时间相差几天
+     *
+     * @param startDate
+     * @return
+     */
+    public static long aFewDaysApart(Date startDate) {
+        Calendar startInstance = Calendar.getInstance();
+        startInstance.setTime(startDate);
+        LocalDate startLocalDate = LocalDate.of(startInstance.get(Calendar.YEAR), startInstance.get(Calendar.MONTH) + 1, startInstance.get(Calendar.DAY_OF_MONTH));
+        return startLocalDate.toEpochDay() - LocalDate.now().toEpochDay();
+    }
+
+    /**
+     * 删除消息提醒
+     *
+     * @param notifyType
+     * @param roption
+     * @return
+     * @date 2024/1/29 17:12
+     * @author shangmi
+     */
+
+    public static void deleteSendNotify(String notifyType, String roption) {
+        JSONArray data = JSONUtil.parseArray(commonFeginClient.list(new HashMap<String, Object>() {{
+            this.put("NOTIFYTYPE", notifyType);
+            if (roption != null) {
+                this.put("ROPTION", roption);
+            }
+        }}).getData());
+
+        if (!data.isEmpty()) {
+            List<String> ids = data.stream().map(info -> JSONUtil.parseObj(info).get("id").toString()).collect(Collectors.toList());
+            commonFeginClient.delete(ids);
+        }
+    }
+
+    public static R upload(MultipartFile file, String relationid) {
+        return commonFeginClient.upload(file, relationid);
+    }
+
+    /**
+     * 参数校验
+     *
+     * @param booleanSupplier
+     * @param returnMsg
+     * @param errorMsg
+     * @param errorMsgParameter
+     */
+    public static void parameterCheck(BooleanSupplier booleanSupplier, String returnMsg, String errorMsg, Object... errorMsgParameter) {
+        if (booleanSupplier.getAsBoolean()) {
+            log.error(errorMsg, errorMsgParameter);
+            if (org.apache.commons.lang.StringUtils.isNotBlank(returnMsg)) {
+                throw new RuntimeException(returnMsg);
+            }
+        }
+    }
+
+    @PostConstruct
+    public void info() {
+        redisService = autoRedisService;
+        commonFeginClient = autoCommonFeginClient;
+        adminFeginClient = autoAdminFeginClient;
+        sysSerialNumberService = autoSysSerialNumberService;
+    }
+}

+ 212 - 0
js-common/src/main/java/com/rongwei/safecommon/utils/CommonEasyExcelUtils.java

@@ -0,0 +1,212 @@
+package com.rongwei.safecommon.utils;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.rongwei.rwadmincommon.system.dao.SysDictDao;
+import com.rongwei.rwadmincommon.system.domain.SysDictDo;
+import com.rongwei.rwcommon.base.BaseDo;
+import com.rongwei.rwcommonentity.commonservers.domain.SysFileFolderDo;
+import com.rongwei.safecommon.vo.CommonGenerateExcelVo;
+import com.rongwei.safecommon.vo.ExportExcelCommonVo;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.poi.ss.usermodel.CellType;
+import org.apache.poi.ss.usermodel.DataFormat;
+import org.apache.poi.ss.usermodel.HorizontalAlignment;
+import org.apache.poi.ss.usermodel.VerticalAlignment;
+import org.apache.poi.xssf.usermodel.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.PostConstruct;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+import static com.rongwei.safecommon.utils.SaveConstans.DatePattern.DATE_PATTERN_YMD;
+
+/**
+ * CommonEasyExcelUtils class
+ *
+ * @author XH
+ * @date 2024/02/01
+ */
+@Component
+public class CommonEasyExcelUtils {
+//    private static final Logger log = LoggerFactory.getLogger(CommonEasyExcelUtils.class.getClass().getName());
+//    private static final int MAX_COLUMN_WIDTH = 255 * 256;
+//    @Autowired
+//    private SysDictDao autoSysDictDao;
+//
+//    private static SysDictDao sysDictDao;
+//    private static SysFileFolderDo sysFileFolderDo;
+//
+//
+//    @PostConstruct
+//    public void init() {
+//        sysDictDao = autoSysDictDao;
+//    }
+//
+//    private static final Map<String, String> CONTENT_TYPE_MAP = new HashMap<String, String>(4) {{
+//        put(SaveConstans.FileSuffix.XLS, SaveConstans.ContentType.XLS);
+//        put(SaveConstans.FileSuffix.XLSX, SaveConstans.ContentType.XLSX);
+//
+//    }};
+//
+//    /**
+//     * 生成excel文件
+//     *
+//     * @param exportExcelCommonDTO
+//     * @param dataList
+//     * @param <T>
+//     */
+//    public static <T> void exportExcelUtil(ExportExcelCommonVo exportExcelCommonDTO, List<T> dataList) {
+//        log.info("开始导出excel");
+//        // excel文件名称
+//        String excelFileName = exportExcelCommonDTO.getExcelFileName();
+//        // excel 文件后缀
+//        String excelFileSuffix = exportExcelCommonDTO.getExcelFileSuffix();
+//        // 数据字典处理
+//        List<CommonGenerateExcelVo> excelFieldDescDTOList = getDictData(exportExcelCommonDTO.getExcelFieldDescDTOList());
+//
+//        String dateStr = new SimpleDateFormat(DATE_PATTERN_YMD).format(new Date());
+//
+//        String fileName = StringUtils.isBlank(excelFileName) ? dateStr : excelFileName + dateStr;
+//        try (FileOutputStream outputStream = new FileOutputStream(new File("指定目录/文件名"))) {
+////            OutputStream outputStream = response.getOutputStream();
+////            response.setHeader("Content-disposition", "attachment;fileName=" + URLEncoder.encode(fileName, "UTF-8"));
+////            response.setContentType(String.format("%s;%s", CONTENT_TYPE_MAP.get(excelFileSuffix), "charset=UTF-8"));
+//            XSSFWorkbook excelWorkBook = new XSSFWorkbook();
+//            /****************************设置单元格居中样式*********************************/
+//            XSSFCellStyle centerStyle = excelWorkBook.createCellStyle();
+//            // 水平居中
+//            centerStyle.setAlignment(HorizontalAlignment.CENTER);
+//            // 垂直居中
+//            centerStyle.setVerticalAlignment(VerticalAlignment.CENTER);
+//
+//            // 创建sheet
+//            XSSFSheet sheet = excelWorkBook.createSheet(StringUtils.isBlank(excelFileName) ? "sheet1" : excelFileName);
+//            /********************************创建标题行***********************************/
+////            if(StringUtils.isNotBlank(excelFileName)){
+////                XSSFRow firstRow = sheet.createRow(0);
+////                XSSFCell firstRowCell = firstRow.createCell(0);
+////                firstRowCell.setCellValue(excelFileName);
+////                firstRowCell.setCellStyle(centerStyle);
+////            }
+//
+//            /********************************创建描述行***********************************/
+//            List<String> fieldDescList = excelFieldDescDTOList.stream().map(CommonGenerateExcelVo::getFiledDesc).collect(Collectors.toList());
+//            XSSFCell cell;
+//            XSSFRow descRow = sheet.createRow(0);
+//            for (int i = 0; i < fieldDescList.size(); i++) {
+//                cell = descRow.createCell(i);
+//                cell.setCellValue(fieldDescList.get(i));
+//                cell.setCellType(CellType.STRING);
+//                cell.setCellStyle(centerStyle);
+//            }
+//            /********************************创建内容行***********************************/
+//            CommonGenerateExcelVo excelFieldDescDTO;
+//            String valueStr = null;
+//            Object fileValue;
+//            Function getFunction;
+//            DataFormat format = excelWorkBook.createDataFormat();
+//            // 样式
+//            XSSFCellStyle commonStyle = centerStyle;
+//            commonStyle.setDataFormat(format.getFormat("@"));
+//            XSSFRow valueRow;
+//            SimpleDateFormat simpleDateFormat;
+//            Map<String, Object> enumMap;
+//            for (int j = 0; j < dataList.size(); j++) {
+//                valueRow = sheet.createRow(j + 1);
+//                Object data = dataList.get(j);
+//                boolean isNumber;
+//                for (int i = 0; i < excelFieldDescDTOList.size(); i++) {
+//                    cell = valueRow.createCell(i);
+//                    isNumber = false;
+//                    excelFieldDescDTO = excelFieldDescDTOList.get(i);
+//                    getFunction = excelFieldDescDTO.getGetOrgNameFunction();
+//                    if (getFunction != null) {
+//                        fileValue = getFunction.apply(data);
+//                    } else {
+//                        fileValue = excelFieldDescDTO.getFileValue();
+//                    }
+//                    String datePattern = excelFieldDescDTO.getDatePattern();
+//                    if (fileValue == null) {
+//                        valueStr = "";
+//                    } else if (fileValue instanceof java.util.Date) {
+//                        simpleDateFormat = new SimpleDateFormat(StringUtils.isBlank(datePattern) ? DATE_PATTERN_YMD : datePattern);
+//                        // 日期格式处理
+//                        valueStr = simpleDateFormat.format(fileValue);
+//                    } else if (excelFieldDescDTO.getCustomDictMap() != null && !excelFieldDescDTO.getCustomDictMap().isEmpty()) {
+//                        // 数据字典处理
+//                        enumMap = excelFieldDescDTO.getCustomDictMap();
+//                        valueStr = enumMap == null ? "" : enumMap.getOrDefault(fileValue.toString(), "").toString();
+//                    } else if (fileValue instanceof java.math.BigDecimal) {
+//                        // 特殊处理 小数位数都是0的情况下 只显示整数部分
+//                        valueStr = ((BigDecimal) fileValue).stripTrailingZeros().toPlainString();
+//                        isNumber = true;
+//                    } else if (fileValue instanceof java.lang.Integer || fileValue instanceof java.lang.Long) {
+//                        valueStr = fileValue.toString();
+//                        isNumber = true;
+//                    } else {
+//                        isNumber = false;
+//                        valueStr = fileValue.toString();
+//                    }
+//                    if (isNumber) {
+//                        cell.setCellValue(Double.parseDouble(valueStr));
+//                        cell.setCellStyle(centerStyle);
+//                    } else {
+//                        cell.setCellStyle(commonStyle);
+//                        cell.setCellValue(valueStr);
+//                    }
+//                    cell.setCellType(isNumber ? CellType.NUMERIC : CellType.STRING);
+//
+//                }
+//            }
+//            for (int i = 0; i < fieldDescList.size(); i++) {
+//                sheet.autoSizeColumn(i, true);
+//                if (sheet.getColumnWidth(i) * 17 / 10 < MAX_COLUMN_WIDTH) {
+//                    sheet.setColumnWidth(i, Math.max(sheet.getColumnWidth(i) * 17 / 10, 3000));
+//                } else {
+//                    sheet.setColumnWidth(i, 6000);
+//                }
+//                sheet.setDefaultColumnStyle(i, centerStyle);
+//            }
+//
+//            excelWorkBook.write(outputStream);
+//        } catch (Exception e) {
+//            log.error("excel导出异常");
+//            e.printStackTrace();
+//            throw new RuntimeException("excel导出失败!请联系系统管理员");
+//        }
+//    }
+//
+//    public static List<CommonGenerateExcelVo> getDictData(List<CommonGenerateExcelVo> excelFieldDescDTOList) {
+//        if (excelFieldDescDTOList.isEmpty()) {
+//            return excelFieldDescDTOList;
+//        }
+//        List<String> dictTypeList = excelFieldDescDTOList.stream()
+//                .map(info -> info.getDictType())
+//                .filter(StringUtils::isNotBlank)
+//                .distinct()
+//                .collect(Collectors.toList());
+//        if (dictTypeList.isEmpty()) {
+//            return excelFieldDescDTOList;
+//        }
+//        List<SysDictDo> sysDictDos = sysDictDao.selectList(new LambdaQueryWrapper<SysDictDo>().eq(BaseDo::getDeleted, "0").in(SysDictDo::getDicttype, dictTypeList));
+//        excelFieldDescDTOList.forEach(data -> {
+//            if (StringUtils.isNotBlank(data.getDictType())) {
+//                data.setCustomDictMap(sysDictDos.stream().filter(dict -> dict.getDicttype().equals(data.getDictType()))
+//                        .collect(Collectors.toMap(SysDictDo::getValue, SysDictDo::getName)));
+//            }
+//        });
+//        return excelFieldDescDTOList;
+//    }
+}

+ 59 - 0
js-common/src/main/java/com/rongwei/safecommon/utils/ExportExcelByEasyExcel.java

@@ -0,0 +1,59 @@
+package com.rongwei.safecommon.utils;
+
+import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
+import com.rongwei.rwcommon.base.R;
+import com.rongwei.safecommon.config.CustomCellWriteWidthConfig;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.mock.web.MockMultipartFile;
+import org.springframework.stereotype.Component;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.ByteArrayOutputStream;
+import java.util.List;
+
+import static com.rongwei.safecommon.utils.SaveConstans.NotifyTitle.WEEK_HIDDEN_DANGER_TASK;
+
+/**
+ * ExportExceByEasyExcel class
+ *
+ * @author XH
+ * @date 2024/02/02
+ */
+@Component
+public class ExportExcelByEasyExcel {
+
+    private static final Logger log = LoggerFactory.getLogger(ExportExcelByEasyExcel.class.getName());
+
+    public static <T> String generateExcel(String file, String originalFilename, String notifyId, List<T> data, Class<T> className) {
+        String returnStr = "";
+        try (ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();) {
+            ExcelWriter excelWriter = EasyExcel.write(byteArrayOutputStream).build();
+            WriteSheet maintainSheet = EasyExcel.writerSheet(0, WEEK_HIDDEN_DANGER_TASK)
+                    .head(className)
+                    .registerWriteHandler(new CustomCellWriteWidthConfig())
+                    .build();
+            excelWriter.write(data, maintainSheet);
+            excelWriter.finish();
+
+            byte[] byteArray = byteArrayOutputStream.toByteArray();
+            MultipartFile multipartFile = new MockMultipartFile(file,
+                    originalFilename,
+                    SaveConstans.ContentType.XLSX, byteArray);
+            R upload = CXCommonUtils.upload(multipartFile, notifyId);
+
+            if ("200".equals(upload.getCode())) {
+                JSONObject jsonObject = JSONUtil.parseObj(upload.getData());
+                returnStr = jsonObject.get("filename").toString() + "-;-" + jsonObject.get("id").toString();
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("文件生成异常");
+        }
+        return returnStr;
+    }
+}

+ 885 - 0
js-common/src/main/java/com/rongwei/safecommon/utils/SaveConstans.java

@@ -0,0 +1,885 @@
+package com.rongwei.safecommon.utils;
+
+import java.util.*;
+
+public class SaveConstans {
+
+    // 部门类型:集团
+    public final static String ORGTYPE_GROUP = "group";
+    // 部门类型:分公司
+    public final static String ORGTYPE_BRANCHOFFICE = "Branch-Office";
+    // 部门类型:工厂
+    public final static String ORGTYPE_FACTORY = "factory";
+    // 部门类型:车间
+    public final static String ORGTYPE_CHEJIAN = "chejian";
+    // 部门类型:工段
+    public final static String ORGTYPE_GONGDUAN = "gongduan";
+    public static final Map<String, String> COMPANY_MAP = new HashMap<String, String>() {{
+        put("0001651000000015EFDD", "山东创新箔材科技有限公司");
+        put("0001651000000017DRZ1", "山东创新精铝金属制造有限公司");
+        put("0001S31000000000J0TR", "山东创新板材有限公司");
+    }};
+
+    /**
+     * 集团领导
+     */
+    public static final String GROUP_LEADER = "GroupLeader";
+
+    public static final String MINUS_ONE = "-1";
+    public static final String AND = "and";
+    public static final String DEFAULT_SEPARATOR = "-;-";
+
+    /**
+     * orgId和 code的对应关系
+     */
+    public static final Map<String, String> ORG_CODE_MAP = new HashMap<String, String>() {{
+        /**
+         * 山东创新箔材科技有限公司
+         */
+        put("0001651000000015EFDD", "CXLB");
+        /**
+         * 山东创新精铝金属制造有限公司
+         */
+        put("0001651000000017DRZ1", "CXJL");
+        /**
+         * 山东创新板材有限公司
+         */
+        put("0001S31000000000J0TR", "CXBC");
+    }};
+    /**
+     * orgId和 code的对应关系
+     */
+    public static final Map<String, String> AQ_ORG_CODE_MAP = new HashMap<String, String>() {{
+        /**
+         * 山东创新箔材科技有限公司
+         */
+        put("0001651000000015EFDD", "LB");
+        /**
+         * 山东创新精铝金属制造有限公司
+         */
+        put("0001651000000017DRZ1", "JL");
+        /**
+         * 山东创新板材有限公司
+         */
+        put("0001S31000000000J0TR", "BC");
+    }};
+    public static final List<String> MERGE_PRODUCE_PROCESS = new ArrayList<>();
+    /**
+     * 初始化数量单位
+     */
+    public static final Map<String, String> QUANTITY_UNIT_MAP = new HashMap<String, String>() {{
+        /**
+         * 公斤
+         */
+        put("kg", "公斤");
+        /**
+         * 吨
+         */
+        put("ton", "吨");
+    }};
+    /**
+     * 初始化月份代号
+     */
+    public static final List<String> MONTH_CODE_LIST = Arrays.asList("1", "2", "3", "4", "5", "6", "7", "8", "9", "X", "Y", "Z");
+    /**
+     * 高
+     */
+    public static final String HIGH = "高";
+    /**
+     * 中
+     */
+    public static final String MIDDLE = "中";
+    /**
+     * 低
+     */
+    public static final String LOW = "低";
+
+    static {
+        MERGE_PRODUCE_PROCESS.add("");
+    }
+
+    /**
+     * 问卷调查状态
+     */
+    public static class DemandState {
+        /**
+         * 已发布
+         */
+        public static final String RELEASE = "1";
+        /**
+         * 作废
+         */
+        public static final String CANCELLATION = "0";
+
+    }
+
+    public static class NotifyType {
+        /**
+         * 我的培训
+         */
+        public static final String TRAINING = "training";
+        /**
+         * 我的课程
+         */
+        public static final String COURSE = "course";
+        /**
+         * 培训需求调查表
+         */
+        public static final String TRAININGFORM = "trainingform";
+        /**
+         * 安全应急
+         */
+        public static final String SAFETYEMERGENCY = "safetyemergency";
+        /**
+         * 安全会议
+         */
+        public static final String SAFETYMEETING = "safetymeeting";
+        /**
+         * 特种设备提醒
+         */
+        public static final String SPECIALEQUIPMENT = "specialequipment";
+        /**
+         * 目标考核
+         */
+        public static final String TARGETASSESSMENT = "targetassessment";
+        /**
+         * 危险作业
+         */
+        public static final String DANGEROUS = "dangerous";
+        /**
+         * 问题跟踪与解决
+         */
+        public static final String ISSUETRACKING = "issuetracking";
+        /**
+         * 检查任务
+         */
+        public static final String INSPECTIONTASKS = "inspectiontasks";
+        /**
+         * 隐患任务
+         */
+        public static final String DANGERTASKS = "dangertasks";
+        /**
+         * 点巡检
+         */
+        public static final String INSPECTION = "inspection";
+
+        /**
+         * 保养检修
+         */
+        public static final String MAINTAIN = "maintain";
+        /**
+         * 保养检修
+         */
+        public static final String ACCEPTMAINTAINTASK = "acceptmaintaintask";
+        /**
+         * 润滑任务
+         */
+        public static final String LUBRICATION_TASK = "lubricationTask";
+
+        /**
+         * 移动端大修任务提醒
+         */
+        public static final String MOBILE_PLANNING_TASK = "mobilePlanningTask";
+
+        /**
+         * 设备部位重复故障问题提醒类型
+         */
+        public static final String DEVICE_REPEATEDLY_FAILS_NOTICETYPE = "device_repeatedly_fails";
+
+        /**
+         * 设备报废申请审批通过通知
+         */
+        public static final String EQU_SCRAP_TASK = "equscraptask";
+        /**
+         * 设备报废申请审批通过通知
+         */
+        public static final String PREVIOUS_UNFINISHED_TASK = "nextmonthmaintenance";
+        /**
+         * 设备报废申请审批通过通知
+         */
+        public static final String END_UNFINISHED_TASK = "endmonthmaintenance";
+
+        /**
+         * 故障停机提醒
+         */
+        public static final String FAUL_STOP_REMIND = "faultstopremind";
+
+
+        /**
+         * 每周点检异常问题提醒类型 生产
+         */
+        public static final String HIDDEN_DANGER_TASK_PRODUCTION = "productionHiddenDanger";
+        /**
+         * 每周点检异常问题提醒类型 维修
+         */
+        public static final String HIDDEN_DANGER_TASK_MAINTAIN = "maintainHiddenDanger";
+        /**
+         * 订单未及时评审提醒
+         */
+        public static final String ORDEROUTTIME_AUDIT = "orderouttimeaudit";
+        /**
+         * 辅料申购提醒
+         */
+        public static final String AUXILIARYMATERIAL_REMIND = "auxiliarymaterial";
+        /**
+         * 作业延期提醒
+         */
+        public static final String PROCESSDELAY_REMIND = "processdelay";
+        /**
+         * 报工不合格提醒
+         */
+        public static final String REPORTUNQUALIFY_REMIND = "reportunqualify";
+        /**
+         * 安全观察指标提醒
+         */
+        public static final String OBSERVATION_AUDIT = "observation";
+        /**
+         * 安全附件
+         */
+        public static final String SAFETY_ATTACHMENT_VERIFICATION = "safeAttachments";
+        /**
+         * 特种设备作业人员证书提醒
+         */
+        public static final String PERSONNEL_CERTIFICATES = "PersonnelCertificates";
+    }
+
+    public static class NotifyTitle {
+        /**
+         * 培训截止提醒
+         */
+        public static final String CUT_OFF_TRAIN_TITLE = "课程截止提醒";
+        /**
+         * 培训截止提醒
+         */
+        public static final String CUT_OFF_PAPER_TITLE = "考试截止提醒";
+        /**
+         * 我的培训
+         */
+        public static final String TRAIN_NOTIFY_TITLE = "考试提醒";
+
+        public static final String COURSE_NOTIFY_TITLE = "培训课程提醒";
+        /**
+         * 培训取消提醒
+         */
+        public static final String CANCEL_TRAIN_TITLE = "培训取消提醒";
+        /**
+         * 培训需求调查提醒
+         */
+        public static final String QUESTIONNAIRE_SURVEY_TITLE = "培训需求调查提醒";
+        /**
+         * 检查任务提醒
+         */
+        public static final String INSPECTION_TASKS_TITLE = "检查任务提醒";
+        /**
+         * 危险作业处罚提醒
+         */
+        public static final String DANGEROUS_TITLE = "危险作业处罚提醒";
+
+        /**
+         * 隐患任务提醒
+         */
+        public static final String DANGER_TASKS_TITLE = "隐患任务提醒";
+        /**
+         * 点巡检任务提醒
+         */
+        public static final String INSPECTION_TITLE = "点巡检任务提醒";
+
+        /**
+         * 隐患跟踪任务整改提现标题
+         */
+        public static final String RECTIFICATION_MAIL_TITLE = "隐患跟踪任务整改提醒";
+        /**
+         * 隐患跟踪任务验证提醒标题
+         */
+        public static final String VERIFICATION_MAIL_TITLE = "隐患跟踪任务验证提醒";
+        /**
+         * 隐患跟踪任务确认提醒标题
+         */
+        public static final String AFFIRM_MAIL_TITLE = "隐患跟踪任务确认提醒";
+        /**
+         * 保养检修工单提醒标题
+         */
+        public static final String MAINTAIN_SYSTEM_TITLE = "保养任务";
+
+        /**
+         * 保养检修工单提醒标题
+         */
+        public static final String ACCEPTANCE_SYSTEM_TITLE = "待验收保养任务";
+
+        /**
+         * 保养检修工单提醒标题
+         */
+        public static final String LUBRICATION_TASK_TITLE = "润滑任务提醒";
+
+        /**
+         * 大修任务超期提醒标题
+         */
+        public static final String PLANNING_TASK_TITLE = "大修任务超期提醒";
+        /**
+         * 设备部位重复故障问题提醒标题
+         */
+        public static final String DEVICE_REPEATEDLY_FAILS_TITLE = "设备部位重复故障问题提醒";
+
+
+        /**
+         * 设备报废申请审批通过通知
+         */
+        public static final String EQU_SCRAP_TITLE = "设备报废申请审批通过通知";
+
+        /**
+         * 故障停机提醒
+         */
+        public static final String FAUL_STOP_TITLE = "故障停机提醒";
+        /**
+         * 保养/润滑跨月未完成提醒
+         */
+        public static final String PREVIOUS_UNFINISHED_TASK_TITLE = "保养/润滑跨月未完成提醒";
+        /**
+         * 保养/润滑月末未完成提醒
+         */
+        public static final String END_UNFINISHED_TASK_TITLE = "保养/润滑月末未完成提醒";
+
+        /**
+         * 每周点检异常问题提醒
+         */
+        public static final String WEEK_HIDDEN_DANGER_TASK = "每周点检异常问题提醒";
+
+        /**
+         * 订单评审提醒
+         */
+        public static final String ORDEROUTTIMEAUDIT_TITLE = "订单评审提醒";
+
+        /**
+         * 辅料申购提醒
+         */
+        public static final String AUXILIARYMATERIAL_TITLE = "辅料申购提醒";
+
+        /**
+         * 作业延期提醒
+         */
+        public static final String PROCESSDELAY_TITLE = "订单作业未按计划完成";
+        /**
+         * 特种设备提醒
+         */
+        public static final String SPECIALEQUIPMENT_TITLE = "特种设备提醒";
+        /**
+         * 报工不合格提醒
+         */
+        public static final String REPORTUNQUALIFY_TITLE = "订单作业报工不合格";
+        /**
+         * 安全观察指标提醒
+         */
+        public static final String OBSERVATION_TITLE = "安全观察指标提醒";
+        /**
+         * 安全附件检验提醒
+         */
+        public static final String SAFETY_ATTACHMENT_VERIFICATION_TITLE = "安全附件检验提醒";
+        /**
+         * 特种设备作业人员证书提醒
+         */
+        public static final String PERSONNEL_CERTIFICATES_TITLE = "特种设备人员证书年检提醒";
+        /**
+         * 设备年检
+         */
+        public static final String EQUIPMENT_CHECK_TITLE = "设备年检提醒";
+    }
+
+    public static class NotifyContent {
+        /**
+         * 培训截止提醒内容
+         */
+        public static final String CUT_OFF_TRAIN_CONTENT = "【%s】,将于【%tF】截止,请及时完成培训!";
+        /**
+         * 培训截止提醒内容
+         */
+        public static final String CUT_OFF_PAPER_CONTENT = "【%s】,将于【%tF】截止,请及时完成考试!";
+        /**
+         * 考试试卷提醒内容
+         */
+        public static final String TRAIN_NOTIFY_CONTENT = "【%s】已发布,截止时间:【%tF】,请及时完成考试!";
+        /**
+         * 我的培训课程提醒内容
+         */
+        public static final String COURSE_NOTIFY_CONTENT = "培训课程:【%s】 已发布,培训时间:【%tF】至【%tF】,请及时完成培训!";
+        /**
+         * 培训课程取消提醒内容
+         */
+        public static final String CANCEL_TRAIN_CONTENT = "【%s】 已取消,请知悉!;";
+        /**
+         * 培训需求调查提醒内容
+         */
+        public static final String QUESTIONNAIRE_SURVEY_CONTENT = "【%s】年【%s】培训需求,已发布";
+        /**
+         * 检查任务提醒内容
+         */
+        public static final String INSPECTION_TASKS_CONTENT = "日常检查【%s】将于【%tF 】开始检查区域为%s-;-%s";
+        /**
+         * 危险作业处罚内容
+         */
+        public static final String DANGEROUS_CONTENT = "【%s】,作业时间:【%s】至【%s】,处罚金额:【%s】,处罚时间:【%s】";
+        /**
+         * 隐患任务提醒内容
+         */
+        public static final String DANGER_TASKS_CONTENT = "【%s】发现隐患任务请在【%tF】前整改完成";
+
+        /**
+         * 隐患任务确认提醒内容
+         */
+        public static final String DANGER_TASKS_CONFIRM_CONTENT = "隐患任务【%s】已整改请确认";
+        /**
+         * 隐患任务验证提醒内容
+         */
+        public static final String DANGER_TASKS_VERIFY_CONTENT = "隐患任务【%s】已整改并确认请验证";
+
+        /**
+         * 点巡检任务提醒
+         */
+        public static final String INSPECTION_CONTENT = "【%s】的【%s】【%s】【%s】任务请及时完成";
+        /**
+         * 保养检修工单提醒内容
+         */
+        public static final String MAINTAIN_SYSTEM_CONTENT = "请及时执行【%s】的【%s】的【%s】( 【%s】 )-【%s】的保养任务并登记保养结果,负责人:【%s】,其他保养工程师:【%s】";
+
+        /**
+         * 保养检修工单提醒内容
+         */
+        public static final String ACCEPTANCE_SYSTEM_CONTENT = "请及时对已完成保养登记的【%s-%s】的【%s】(【%s】 )【%s】的保养任务进行验收确认,(完成日期:【%s】,保养负责人:【%s】,其他保养工程师:【%s】";
+
+        /**
+         * 润滑任务提醒内容
+         */
+        public static final String LUBRICATION_TASK_CONTENT = "请及时执行【%d-%d】【%s】【%s】的【%s】(【%s 】 )的润滑任务,并及时登记润滑结果,润滑人:【%s】";
+
+        /**
+         * 大修任务超期提醒内容
+         */
+        public static final String PLANNING_TASK_CONTENT = "【%s】近一年大修任务有【%s】个大修任务现已超期未完成,请各车间相关负责人及时跟进处理并调促督协尽快完成,具体任务详见附件清单。";
+
+        /**
+         * 设备报废申请审批通过提醒内容
+         */
+        public static final String EQU_SCRAP_CONTENT = "【%s】于【%s】申请【%s】【%s】【%s】使用的设备进行报废处置申请已审批通过,系统已将该设备进行标记报废标记处理,此设备的相关保养、润滑相关计划请及时进行停用处理,请大家注意。";
+
+        /**
+         * 设备部位重复故障问题提醒内容
+         */
+        public static final String DEVICE_REPEATEDLY_FAILS_CONTEXT = "近三个月内设备部位重复故障问题提醒说明(含三个厂,各自独立),单个工厂对相同问题重复发生请大家互相学习解决方案并加以改进,具体信息详见提醒内容中附件表格。";
+
+        /**
+         * 故障停机提醒
+         */
+        public static final String FAUL_STOP_CONTEXT = "【%s】【%s】在【%s】发生停机故障(问题说明:【%s】),请及时安排维修工程跟进处理,(申请人/时间:【%s】【%s】)";
+
+
+        /**
+         * 保养/润滑跨月未完成提醒内容
+         */
+        public static final String PREVIOUS_UNFINISHED_TASK_CONTENT = "【%s】保养任务有【%s】个、润滑任务有【%s】个已经跨月未登记完成,请各车间相关保养负责人及时跟进处理,具体任务详见附件清单。";
+
+        /**
+         * 保养/润滑月末未完成提醒内容
+         */
+        public static final String END_UNFINISHED_TASK_CONTENT = "截止【%s】本月末【%s】有保养任务有【%s】个、润滑任务有【%s】个已经跨月未登记完成,请各车间相关保养负责人及时跟进处理,具体任务详见附件清单。";
+
+        public static final String HIDDEN_DANGER_TASK_CONTENT = "各车间在近一周内点巡检发现了【%d】个问题项,均已生成了隐患任务记录,请各部门车间及时安排人员对待整改问题及时跟踪处理,具体隐患信息详见附件清单";
+        /**
+         * 订单评审提醒内容
+         */
+        public static final String ORDEROUTTIME_AUDIT_CONTENT = "订单【%s】待评审,请及时处理";
+        /**
+         * 辅料申购提醒
+         */
+        public static final String AUXILIARYMATERIAL_CONTENT = "订单【%s】有辅料计划申购日期临近或到期,请及时申购";
+        /**
+         * 作业延期提醒
+         */
+        public static final String PROCESSDELAY_CONTENT = "订单【%s】有作业未按计划完工,请及时调整计划";
+        /**
+         * 特种设备提醒内容前缀
+         */
+        public static final String SPECIALEQUIPMENT_CONTENT_PREFIX = "【设备年检提醒】,您好,有如下设备即将年检到期,请及时处理";
+        /**
+         * 特种设备提醒内容
+         */
+        public static final String SPECIALEQUIPMENT_CONTENT = "设备类型:【%s】,设备编号:【%s】,设备名称:【%s】,年检日期:【%s】";
+        /**
+         * 报工不合格提醒
+         */
+        public static final String REPORTUNQUALIFY_CONTENT = "报工检验不合格,请及时调整计划,详情参见邮件提醒";
+
+        /**
+         * 安全观察指标提醒
+         */
+        public static final String OBSERVATION_CONTENT = "新的安全观察目标值【%s】已下达,请及时完成!";
+        /**
+         * 安全附件
+         */
+        public static final String SAFETY_ATTACHMENT_VERIFICATION_CONTENT = " 您好,有如下安全附件即将年检到期,请及时处理!  名称:【%s】,编号:【%s】,检验/更换日期:【%tF】,下次检验/更换日期:【%tF】,负责人:【%s】";
+        /**
+         * 特种设备作业人员证书提醒
+         */
+        public static final String PERSONNEL_CERTIFICATES_CONTENT = "您好,有如下人员证书即将到期,请及时处理 姓名:【%s】,所属部门:【%s】证书类别:【%s】,复审日期:【%tF】";
+
+        /**
+         * 设备年检
+         */
+        public static final String EQUIPMENT_CHECK_CONTENT = " 您好,有如下设备即将年检到期,请及时处理! 设备类型:【%s】,设备编号:【%s】,设备名称:【%s】,年检日期:【%tF】";
+    }
+
+    /**
+     * 模板路径
+     */
+    public static class TemplatePath {
+
+        /**
+         * 设备部位重复故障问题excel 模板名称
+         */
+        public static final String DEVICE_REPEATEDLY_FAILS_TEMPLATE_NAME = "template/设备部位重复故障问题.xls";
+
+
+    }
+
+    /**
+     * 模板路径
+     */
+    public static class FileName {
+
+
+        /**
+         * 设备部位重复故障问题 生成excel名称
+         */
+        public static final String DEVICE_REPEATEDLY_FAILS_FILE_NAME = "设备部位重复故障问题";
+
+        /**
+         * 大修任务超期未完成 生成excel名称
+         */
+        public static final String PLANNING_TASK_FILE_NAME = "大修任务超期未完成.xlsx";
+
+    }
+
+    public static class FileSuffix {
+        public static final String XLS = ".xls";
+        public static final String XLSX = ".xlsx";
+        public static final String DOC = ".doc";
+        public static final String DOCX = ".docx";
+    }
+
+    public static class ContentType {
+        public static final String XLS = "application/vnd.ms-excel";
+        public static final String XLSX = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
+        public static final String DOC = "application/msword";
+        public static final String ZIP = "application/octet-stream";
+        public static final String DOCX = "application/vnd.openxmlformats-officedocument.wordprocessingml.template";
+        public static final String XML = "text/xml";
+    }
+
+    /**
+     * 时间格式
+     */
+    public static class DatePattern {
+        public static final String DATE_PATTERN_YM_CN = "yyyy年MM月";
+        public static final String DATE_PATTERN_YM = "yyyy-MM";
+        public static final String DATE_PATTERN_YMD_CN = "yyyy年MM月dd日";
+        public static final String DATE_PATTERN_YMD = "yyyy-MM-dd";
+        public static final String DATE_PATTERN_YMDHMS = "yyyy-MM-dd HH:mm:ss";
+        public static final String DATE_PATTERN_YMD_SLASH = "yyyy/MM/dd";
+        public static final String DATE_PATTERN_YM_UNDERLINE = "yyyy_MM";
+        public static final String DATE_PATTERN_YMD_POINT = "yyyy.MM.dd";
+    }
+
+    /**
+     * 角色编码
+     */
+    public static class RoleCode {
+        /**
+         * 设备部部门长
+         */
+        public static final String HOED = "hoed";
+        /**
+         * 设备部维修主管
+         */
+        public static final String EDMS = "edms";
+        /**
+         * 车间主任
+         */
+        public static final String LCZG = "lczg";
+        /**
+         * 车间维修主管
+         */
+        public static final String WMS = "wms";
+
+    }
+
+    /**
+     * 数据字典
+     */
+    public static class DictType {
+        /**
+         * 隐患任务- 任务来源
+         */
+        public static final String TASK_SOURCE_TYPE = "task_source_type";
+        /**
+         * 隐患类型
+         */
+        public static final String HIDDEN_DANGER_TYPE = "hidden_danger_type";
+        /**
+         * 跟踪状态
+         */
+        public static final String HIDDEN_DANGER_STATUS = "hidden_danger_status";
+    }
+
+    /**
+     * 加工方式
+     */
+    public static class ProcessWay {
+        /**
+         * 合并加工
+         */
+        public static final String PROCESS_WAY_MERGE = "合并加工";
+        /**
+         * 逐批加工
+         */
+        public static final String PROCESS_WAY_BATCH = "逐批加工";
+    }
+
+    /**
+     * 工序类型
+     */
+    public static class ProcessType {
+        /**
+         * 成退
+         */
+        public static final String PROCESS_TYPE_CHENTUI = "成退";
+        /**
+         * 中退
+         */
+        public static final String PROCESS_TYPE_ZHONGTUI = "中退";
+    }
+
+    public static class SchedulstatusTyep {
+        /**
+         * 待排程
+         */
+        public static final String SCHEDULSTATUS_TOSCHEDULE = "10";
+        /**
+         * 待发布
+         */
+        public static final String SCHEDULSTATUS_TORELEASE = "20";
+        /**
+         * 已发布
+         */
+        public static final String SCHEDULSTATUS_HASRELEASE = "30";
+    }
+
+    /**
+     * 是否锁定
+     */
+    public static class LockmarkType {
+        /**
+         * 是
+         */
+        public static final String LOCKMARK_Y = "y";
+        /**
+         * 否
+         */
+        public static final String LOCKMARK_N = "n";
+
+    }
+
+    /**
+     * 坯料计划生产状态
+     */
+    public static class ProductionStatus {
+        /**
+         * 已完工
+         */
+        public static final String COMPLETED = "50";
+        /**
+         * 加工中
+         */
+        public static final String PROCESSING = "40";
+        /**
+         * 待开工
+         */
+        public static final String TO_BE_STARTED = "30";
+        /**
+         * 待发布
+         */
+        public static final String TO_BE_PUBLISHED = "20";
+        /**
+         * 待排程
+         */
+        public static final String TO_BE_SCHEDULED = "10";
+    }
+
+    /**
+     * 生产状态
+     */
+    public static class SchedulingStatus {
+        /**
+         * 已发布
+         */
+        public static final String PUBLISHED = "30";
+        /**
+         * 待发布
+         */
+        public static final String TO_BE_PUBLISHED = "20";
+        /**
+         * 待排程
+         */
+        public static final String TO_BE_SCHEDULED = "10";
+    }
+
+    /**
+     * 作业状态
+     */
+    public static class JobStatus {
+        /**
+         * 待开工
+         */
+        public static final String JOBSTATUS_TO_BE_START = "待开工";
+        /**
+         * 加工中
+         */
+        public static final String JOBSTATUS_TO_BE_STARTING = "加工中";
+        /**
+         * 已完工
+         */
+        public static final String JOBSTATUS_TO_BE_END = "已完工";
+    }
+
+    public static class CloseStatus {
+        /**
+         * 未完工
+         */
+        public static final String UNFINISHED = "未完工";
+        /**
+         * 已完工
+         */
+        public static final String COMPLETED = "已完工";
+    }
+
+    /**
+     * 强制冲突描述
+     */
+    public static class ForcedConflictsDescription {
+        /**
+         * 工序作业所需的设备必须在工序的可选设备之内
+         */
+        public static final String EQ_TYPE_SAME = "工序作业所需的设备必须在工序的可选设备之内";
+        /**
+         * 第一步工序作业要小于开始排程时间
+         */
+        public static final String NO_PRE_GB_AFTER_NOW = "第一步工序作业要小于开始排程时间";
+        /**
+         * 当前工序作业开始时间违反上一步工序作业最大等待时间限制
+         */
+        public static final String HAS_ONE_PRE_GB_AFTER_NOW = "当前工序作业开始时间违反上一步工序作业最大等待时间限制";
+        /**
+         * 加工设备该加工时间段不可用
+         */
+        public static final String EQUIPMENT_RUN_TIME = "加工设备该加工时间段不可用";
+        /**
+         * 上一工序作业流转时间不能大于上一工序作业最大等待时间
+         */
+        public static final String LZ_TIME_LESS_MAX_WAIT = "上一工序作业流转时间不能大于上一工序作业最大等待时间";
+        /**
+         * 与加工设备其他作业加工时间重叠
+         */
+        public static final String EQ_TIME_CROSS = "与加工设备其他作业加工时间重叠";
+
+    }
+
+    /**
+     * 非强制冲突描述
+     */
+    public static class UNForcedConflictsDescription {
+        /**
+         * 订单交货期不满足
+         */
+        public static final String DELIVERY_DATE = "订单交货期不满足";
+        /**
+         * 订单的连续生产要求不满足
+         */
+        public static final String SERIES_PRODUCE = "订单的连续生产要求不满足";
+    }
+
+    /**
+     * 产品类型的外观 字典ID
+     */
+    public static class ProductionType {
+        /**
+         * 铝板ID
+         */
+        public static final String LVBAN_ID = "4a30f22e8c574b568b0715021f4641e8";
+        /**
+         * 板锭ID
+         */
+        public static final String BANDING_ID = "cc22dafdf4d845d4b9b4de23a57ab473";
+
+    }
+
+    /**
+     * 枚举数量单位
+     */
+    public static class CountUnit {
+        /**
+         * 千克、公斤
+         */
+        public static final String KG = "kg";
+        /**
+         * 吨
+         */
+        public static final String TON = "ton";
+    }
+
+    /**
+     * 在制品状态
+     */
+    public static class WorkInProgressStatus {
+        /**
+         * 待检验
+         */
+        public static final String WAIT_CHECK = "待检验";
+        /**
+         * 加工中
+         */
+        public static final String WORKING = "加工中";
+        /**
+         * 待加工
+         */
+        public static final String WAIT_WORK = "待加工";
+        /**
+         * 备料中
+         */
+        public static final String WAITING = "备料中";
+        /**
+         * 待入库
+         */
+        public static final String TO_BE_PUT_INTO_STORAGE = "待入库";
+    }
+
+    public static class CheckLevel {
+        /**
+         * B级
+         */
+        public static final String B = "B级";
+        /**
+         * BC级
+         */
+        public static final String B_C = "BC级";
+        /**
+         * 待判
+         */
+        public static final String WAITING_JUDGMENT = "待判";
+    }
+
+    /**
+     * 外观类型
+     */
+    public static class BlankAppearanceType {
+        public static final String ALUMINUM_COIL = "铝卷";
+        public static final String ALUMINUM_PLATE = "铝板";
+        public static final String ALUMINUM_INGOT = "铝锭";
+    }
+}

+ 45 - 0
js-common/src/main/java/com/rongwei/safecommon/vo/CommonGenerateExcelVo.java

@@ -0,0 +1,45 @@
+package com.rongwei.safecommon.vo;
+
+import lombok.Data;
+
+import java.util.Map;
+import java.util.function.Function;
+
+/**
+ * CommonGenerateExcelVo class
+ *
+ * @author XH
+ * @date 2024/02/01
+ */
+@Data
+public class CommonGenerateExcelVo<T> {
+    /**
+     * 对应的字段描述
+     */
+    private String filedDesc;
+
+    /**
+     * 对应字段的get方法
+     */
+    private Function<T, Object> getOrgNameFunction;
+
+    /**
+     * 固定值
+     */
+    private Object fileValue;
+
+    /**
+     * 时间格式转化
+     */
+    private String datePattern;
+
+    /**
+     * 数据字典值集编号
+     */
+    private String dictType;
+
+    /**
+     * 数据字典集合
+     */
+    private Map<String, Object> customDictMap;
+}

+ 30 - 0
js-common/src/main/java/com/rongwei/safecommon/vo/ExportExcelCommonVo.java

@@ -0,0 +1,30 @@
+package com.rongwei.safecommon.vo;
+
+import com.rongwei.safecommon.utils.SaveConstans;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * ExportExcelCommonDTO class
+ *
+ * @author XH
+ * @date 2022/10/20
+ */
+@Data
+public class ExportExcelCommonVo {
+    /**
+     * excel文件名称
+     */
+    private String excelFileName;
+
+    /**
+     * excel文件后缀
+     */
+    private String excelFileSuffix = SaveConstans.FileSuffix.XLS;
+    ;
+    // 文件夹编码
+    private String folderCode;
+
+    private List<CommonGenerateExcelVo> excelFieldDescDTOList;
+}

+ 42 - 0
js-safe-check/cx-save-check-common/pom.xml

@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xmlns="http://maven.apache.org/POM/4.0.0"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>js-safe-check</artifactId>
+        <groupId>com.rongwei</groupId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>js-save-check-common</artifactId>
+
+    <dependencies>
+        <dependency>
+            <groupId>com.rongwei</groupId>
+            <artifactId>js-save-check-entity</artifactId>
+            <version>1.0-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-openfeign</artifactId>
+            <version>2.1.0.RELEASE</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-freemarker</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>easyexcel</artifactId>
+            <version>3.3.2</version>
+        </dependency>
+        <dependency>
+            <groupId>cn.afterturn</groupId>
+            <artifactId>easypoi-base</artifactId>
+            <version>4.4.0</version>
+            <scope>compile</scope>
+        </dependency>
+    </dependencies>
+
+</project>

+ 133 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/AccidentDao.java

@@ -0,0 +1,133 @@
+package com.rongwei.sfcommon.sys.dao;
+
+import com.rongwe.scentity.domian.AccidentDo;
+import com.rongwe.scentity.domian.AspAccidentReport;
+import com.rongwe.scentity.domian.CheckTemplateDo;
+import com.rongwe.scentity.vo.AccidentVo;
+import com.rongwei.rwcommon.base.BaseDao;
+import com.rongwei.rwcommon.base.R;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+import org.apache.ibatis.annotations.Update;
+
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 事故表
+ *
+ * @author chglee
+ * @email 1992lcg@163.com
+ * @date 2020-07-17 09:33:23
+ */
+public interface AccidentDao extends BaseDao<AccidentDo> {
+    @Select("SELECT MAX(aa.ACCIDENTCODE) FROM asp_accident aa")
+    String getCodeMAx();
+
+    @Select("select sfi.FULLPATH from sys_file_item sfi WHERE  sfi.DELETED='0' AND sfi.ID=#{id}")
+    AccidentVo getFilePathById(String id);
+
+    @Select("   select\n" +
+            "        sfi.FULLPATH\n" +
+            "    from\n" +
+            "        sys_file_item sfi LEFT JOIN\n" +
+            "\t\t\t\tsys_file_folder sff ON sff.ID=sfi.FILEFOLDERID\n" +
+            "\t\t\t\tWHERE sfi.DELETED='0'  AND  sff.FOLDERCODE='accident_word' ORDER BY sfi.MODIFYDATE DESC")
+    List<AccidentVo> getFileList();
+
+    @Select("select \n" +
+            "(select COUNT(1) from asp_hidden_danger_track where DELETED='0' and YEAR(CREATEDATE)=YEAR(NOW()) and (WARNSTATUS != '过期' or WARNSTATUS is NULL))/(select COUNT(1) from asp_hidden_danger_track where DELETED='0' and YEAR(CREATEDATE)=YEAR(NOW())) AS 'RERATE',\n" +
+            "(select COUNT(1) from asp_hidden_danger_track where DELETED='0' and YEAR(CREATEDATE)=YEAR(NOW()) AND HIDDENDANGERTYPE='20') AS 'ZDCOUNT'")
+    Map<String, Object> getDataXTaskQuato();
+
+    @Select("select (select COUNT(DISTINCT EMPID) from training_emp_exam a left join training_plan b on a.PLANID=b.ID " +
+            "where a.EXAMSTATUS = '考试通过' and a.DELETED='0' and b.DELETED='0'  and YEAR(b.TRAININGSTARTTIME)=YEAR(NOW()))/(select COUNT(DISTINCT EMPID) " +
+            "from training_emp_exam a left join training_plan b on a.PLANID=b.ID where a.DELETED='0' and b.DELETED='0' and YEAR(b.TRAININGSTARTTIME)=YEAR(NOW())) AS 'TRAINRATE'")
+    Map<String, BigDecimal> getDataXtrainRate();
+
+    @Select("select PLANNEDENDTIME from asp_contingency where STATE='1' and DELETED='0' and PARTICULARYEAR = YEAR(NOW())")
+    List<Map<String, Object>> getDataXEmergency();
+
+    @Select("<script>select COUNT(1) AS 'ACCIDENTCOUNT' from asp_accident " +
+            "where DELETED='0' AND DATE_FORMAT(CREATEDATE,'%Y-%m') = DATE_FORMAT(NOW(),'%Y-%m') " +
+            "<if test='accidenttype!=null'>" +
+            "and ACCIDENTTYPE in (${accidenttype})" +
+            "</if>" +
+            "</script>")
+    Map<String, Long> getDataXKjlAccident(@Param("accidenttype") String accidenttype);
+
+    @Select("select (select COUNT(*) AS HASCHECKNUM from asp_point_check where DELETED='0' and CHECKUSERID is not null and YEAR(CREATEDATE) = YEAR(NOW())) / (select COUNT(*) AS TOTALCHECKNUM from asp_point_check where DELETED='0' and YEAR(CREATEDATE) = YEAR(NOW())) AS 'pointCheckRate'")
+    Map<String, Double> getDataXPointCheck();
+
+    @Select("SELECT * FROM sys_organization where DELETED = 0 AND PID = '-1'")
+    List<Map<String, String>> selectFactory();
+
+    //    @Select({"<script>" +
+//            "SELECT\n" +
+//            "\tso.ID AS 'departid',\n" +
+//            "\tso.FULLNAME AS 'departname',\n" +
+//            "\tsum(IFNULL( suo.totalPeople, 0 )) AS 'departpeople',\n" +
+//            "\tsum(IFNULL( b.count, 0 )) AS 'count',\n" +
+//            "\tIFNULL(round( sum( IFNULL( b.count, 0 ))/ sum( IFNULL( suo.totalPeople, 0 ))* 100, 2 ),0.00) AS 'value'\n" +
+//            "FROM\n" +
+//            "\tsys_organization so\n" +
+//            "\tLEFT JOIN sys_organization so2 ON ( ( so2.FULLPID LIKE CONCAT( '%', so.ID, '%' )) OR so2.ID = so.ID ) \n" +
+//            "\tAND so2.DELETED = 0\n" +
+//            "\tLEFT JOIN (\n" +
+//            "\tSELECT\n" +
+//            "\t\taa.ACCIDENTDEPT,\n" +
+//            "\t\taa.ACCIDENTDEPTNAME,\n" +
+//            "\t\tcount( 1 ) AS 'count' \n" +
+//            "\tFROM\n" +
+//            "\t\tasp_accident aa \n" +
+//            "\tWHERE\n" +
+//            "\t\taa.DELETED = 0 \n" +
+//            "\t\tAND aa.DECLAREJOBINJURED = '1' \n" +
+//            "\t\t<if test = 'month != -1'>AND MONTH ( aa.HAPPENDATE ) = #{month}</if> \n" +
+//            "\t\tAND YEAR ( aa.HAPPENDATE ) = #{year} \n" +
+//            "\t\t<if test = 'tenantId != null and tenantId != \"\"'>AND aa.TENANTID = #{tenantId}</if>\n" +
+//            "\tGROUP BY\n" +
+//            "\t\taa.ACCIDENTDEPT \n" +
+//            "\t) b ON b.ACCIDENTDEPT = so2.ID \n" +
+//            "\tAND so.DELETED = 0\n" +
+//            "\tLEFT JOIN ( SELECT ORGID, count( 1 ) AS totalPeople FROM sys_user_org WHERE DELETED = 0 GROUP BY ORGID ) suo ON so2.ID = suo.ORGID \n" +
+//            "WHERE\n" +
+//            "\tso.ORGTYPE = 'chejian' \n" +
+//            "\t<if test = 'tenantId != null and tenantId != \"\"'>AND so.FULLPID like CONCAT('%',#{tenantId},'%')</if>\n" +
+//            "GROUP BY\n" +
+//            "\tso.ID"+
+//            "</script>"})
+    List<AspAccidentReport> selectReport(int year, int month, String tenantId);
+
+    @Select({"<script>" +
+            "SELECT\n" +
+            "\t* \n" +
+            "FROM\n" +
+            "\tasp_accident_report \n" +
+            "WHERE\n" +
+            "\tDELETED = 0 \n" +
+            "\tAND `YEAR` = #{year}" +
+            "\t<if test = 'tenantId != null and tenantId != \"\"'>and TENANTID = #{tenantId}</if>" +
+            "</script>"})
+    List<AspAccidentReport> selectReportByYear(Integer year, String tenantId);
+
+    @Select({"<script>" +
+            "SELECT\n" +
+            "\tso.ID AS 'departId',\n" +
+            "\tso.FULLNAME AS 'departName',\n" +
+            "\tCAST(ifnull(sum(suo.totalPeople),0) AS UNSIGNED) AS 'totalPeople'\n" +
+            "FROM\n" +
+            "\tsys_organization so\n" +
+            "\tLEFT JOIN sys_organization so2 ON ( ( so2.FULLPID LIKE CONCAT( '%', so.ID, '%' )) OR so2.ID = so.ID ) \n" +
+            "\tAND so2.DELETED = 0\n" +
+            "\tLEFT JOIN ( SELECT ORGID, count( 1 ) AS totalPeople FROM sys_user_org WHERE DELETED = 0 GROUP BY ORGID ) suo ON so2.ID = suo.ORGID \n" +
+            "WHERE\n" +
+            "\tso.ORGTYPE = 'chejian' \n" +
+            "\t<if test = 'tenantId != null and tenantId != \"\"'>AND so.FULLPID like CONCAT('%',#{tenantId},'%')</if>\n" +
+            "GROUP BY\n" +
+            "\tso.ID" +
+            "</script>"})
+    List<Map<String, Object>> getOrgMap(@Param("tenantId") String tenantId);
+
+}

+ 15 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/AccidentObjectDao.java

@@ -0,0 +1,15 @@
+package com.rongwei.sfcommon.sys.dao;
+
+import com.rongwe.scentity.domian.AccidentObjectDo;
+import com.rongwe.scentity.domian.AccidentUserDo;
+import com.rongwe.scentity.vo.AccidentUserVo;
+import com.rongwei.rwcommon.base.BaseDao;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
+
+public interface AccidentObjectDao extends BaseDao<AccidentObjectDo> {
+    @Select("SELECT a.* FROM asp_accident_object a WHERE a.ACCIDENTID=#{id}")
+    List<AccidentObjectDo> getByAccidentId(String id);
+
+}

+ 30 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/AccidentTrackPlanDao.java

@@ -0,0 +1,30 @@
+package com.rongwei.sfcommon.sys.dao;
+
+import com.rongwe.scentity.domian.AccidentTrackPlanDo;
+import com.rongwe.scentity.vo.AccidentTrackPlanVo;
+import com.rongwei.rwcommon.base.BaseDao;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
+
+/**
+ * 事故跟踪计划表
+ *
+ * @author chglee
+ * @email 1992lcg@163.com
+ * @date 2020-08-04 18:39:10
+ */
+public interface AccidentTrackPlanDao extends BaseDao<AccidentTrackPlanDo> {
+    @Select("SELECT\n" +
+            "\ta.*,\n" +
+            "\tb.FINISHDATE \n" +
+            "FROM\n" +
+            "\tasp_accident_track_plan a\n" +
+            "\tLEFT JOIN asp_hidden_danger_track b ON a.ID = b.RELATIONID \n" +
+            "\tAND b.`STATUS` = '10' \n" +
+            "\tAND b.DELETED = '0' \n" +
+            "WHERE\n" +
+            "\ta.DELETED = '0' \n" +
+            "\tAND a.ACCIDENTID = #{id}")
+    List<AccidentTrackPlanVo> getByAccidentId(String id);
+}

+ 15 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/AccidentUserDao.java

@@ -0,0 +1,15 @@
+package com.rongwei.sfcommon.sys.dao;
+
+import com.rongwe.scentity.domian.AccidentUserDo;
+import com.rongwe.scentity.vo.AccidentUserVo;
+import com.rongwei.rwcommon.base.BaseDao;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
+
+public interface AccidentUserDao extends BaseDao<AccidentUserDo> {
+    @Select("SELECT a.* FROM asp_accident_user a WHERE a.ACCIDENTID=#{id}")
+    List<AccidentUserVo> getByAccidentId(String id);
+
+
+}

+ 8 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/AspAccidentReportDao.java

@@ -0,0 +1,8 @@
+package com.rongwei.sfcommon.sys.dao;
+
+import com.rongwe.scentity.domian.AspAccidentReport;
+import com.rongwei.rwcommon.base.BaseDao;
+
+public interface AspAccidentReportDao extends BaseDao<AspAccidentReport> {
+
+}

+ 8 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/AspCheckDiscoveryItemDao.java

@@ -0,0 +1,8 @@
+package com.rongwei.sfcommon.sys.dao;
+
+import com.rongwe.scentity.domian.AspCheckDiscoveryItemDo;
+import com.rongwei.rwcommon.base.BaseDao;
+
+public interface AspCheckDiscoveryItemDao extends BaseDao<AspCheckDiscoveryItemDo> {
+
+}

+ 15 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/AspEvaluationRecordDao.java

@@ -0,0 +1,15 @@
+package com.rongwei.sfcommon.sys.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.rongwe.scentity.domian.AspEvaluationRecordDo;
+
+/**
+ * @Entity com.rongwei.training.domain.AspEvaluationRecord
+ */
+public interface AspEvaluationRecordDao extends BaseMapper<AspEvaluationRecordDo> {
+
+}
+
+
+
+

+ 18 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/AspEvaluationRecordHistoryDao.java

@@ -0,0 +1,18 @@
+package com.rongwei.sfcommon.sys.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.rongwe.scentity.domian.AspEvaluationRecordHistoryDo;
+import org.apache.ibatis.annotations.Delete;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * @Entity com.rongwei.training.domain.AspEvaluationRecordHistory
+ */
+public interface AspEvaluationRecordHistoryDao extends BaseMapper<AspEvaluationRecordHistoryDo> {
+    @Delete("DELETE from asp_evaluation_record_history where MASTERID = #{masterId}")
+    void removeByMasterId(@Param("masterId") String masterId);
+}
+
+
+
+

+ 9 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/AspRiskSourceDao.java

@@ -0,0 +1,9 @@
+package com.rongwei.sfcommon.sys.dao;
+
+
+import com.rongwe.scentity.domian.AspRiskSourceDo;
+import com.rongwei.rwcommon.base.BaseDao;
+
+public interface AspRiskSourceDao extends BaseDao<AspRiskSourceDo> {
+
+}

+ 19 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/AspRiskSourceHistoryDao.java

@@ -0,0 +1,19 @@
+package com.rongwei.sfcommon.sys.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.rongwe.scentity.domian.AspRiskSourceHistoryDo;
+import org.apache.ibatis.annotations.Delete;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * @Entity com.rongwei.training.domain.AspRiskSourceHistory
+ */
+public interface AspRiskSourceHistoryDao extends BaseMapper<AspRiskSourceHistoryDo> {
+
+    @Delete("DELETE from asp_risk_source_history where ID = #{id}")
+    void removeById(@Param("id") String id);
+}
+
+
+
+

+ 15 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/AspSafeAttachmentsDao.java

@@ -0,0 +1,15 @@
+package com.rongwei.sfcommon.sys.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.rongwe.scentity.domian.AspSafeAttachmentsDo;
+
+/**
+ * @Entity com.rongwei.training.domain.AspSafeAttachments
+ */
+public interface AspSafeAttachmentsDao extends BaseMapper<AspSafeAttachmentsDo> {
+
+}
+
+
+
+

+ 43 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/AspSafetyDrillProgrammeDao.java

@@ -0,0 +1,43 @@
+package com.rongwei.sfcommon.sys.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.rongwe.scentity.domian.*;
+import com.rongwe.scentity.vo.AspSafetyEmergencyDrillPlanVo;
+import com.rongwe.scentity.vo.AspSafetyTeamMemberVo;
+import com.rongwe.scentity.vo.AspSafetyTeamVo;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 安全应急-演练方案 Mapper 接口
+ * </p>
+ *
+ * @author wm
+ * @since 2023-11-13
+ */
+public interface AspSafetyDrillProgrammeDao extends BaseMapper<AspSafetyDrillProgrammeDo> {
+
+    @Select("select a.*,b.`NAME` AS 'drillCategoryName' from asp_safety_emergency_drill_plan a LEFT JOIN (select * from sys_dict where DELETED = 0 AND DICTTYPE='satefy_drill_type') b ON a.DRILLCATEGORY = b.`VALUE` where a.DELETED = 0 AND DRILLDATE >= #{startDate} AND DRILLDATE <= #{endDate}")
+    List<AspSafetyEmergencyDrillPlanVo> selectSafetyEmergencyDrillPlanByDate(String startDate, String endDate);
+
+    @Select("select * from asp_safety_onsite_disposal_plan where DELETED = 0 order by NO")
+    List<AspSafetyOnsiteDisposalPlan> selectOnsiteDisposalPlan();
+
+    @Select("select * from asp_safety_annual_drill_plan where DELETED = 0 AND ID = #{id}")
+    AspSafetyAnnualDrillPlan selectAnnualDrillPlanById(String id);
+
+    @Select("select * from asp_safety_annual_drill_plan_month where DELETED = 0 AND ANNUALDRILLPLANID = #{id}")
+    List<AspSafetyAnnualDrillPlanMonth> selectAnnualDrillPlanMonthById(String id);
+
+    @Select("select ID,TEAMNAME AS 'teamName',ORGPOSITION AS 'content' from asp_safety_team where DELETED = 0")
+    List<AspSafetyTeamVo> selectTeam();
+
+    @Select("select TEAMPOSITION AS 'roleName',GROUP_CONCAT(TEAMMEMBERNAME) AS 'name' from asp_safety_team_member where DELETED = 0 AND TEAMID=#{id} GROUP BY TEAMPOSITION")
+    List<AspSafetyTeamMemberVo> selectTeamMemberByTeamId(String id);
+
+    @Select("select GROUP_CONCAT(a.`name`) from (SELECT CONCAT(ITEMNAME,ITEMQTY) as 'name' FROM asp_safety_drill_programme_item where DELETED = 0 AND PROGRAMMEID = #{mainId}) a")
+    String selectEquimentByMainId(String mainId);
+}

+ 16 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/AspSafetyDrillProgrammeMsgNotifyRecordDao.java

@@ -0,0 +1,16 @@
+package com.rongwei.sfcommon.sys.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.rongwe.scentity.domian.AspSafetyDrillProgrammeMsgNotifyRecordDo;
+
+/**
+ * <p>
+ * 安全应急-演练方案-消息提醒记录 Mapper 接口
+ * </p>
+ *
+ * @author wm
+ * @since 2023-12-28
+ */
+public interface AspSafetyDrillProgrammeMsgNotifyRecordDao extends BaseMapper<AspSafetyDrillProgrammeMsgNotifyRecordDo> {
+
+}

+ 16 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/AspSafetyEmergencyPlanDao.java

@@ -0,0 +1,16 @@
+package com.rongwei.sfcommon.sys.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.rongwe.scentity.domian.AspSafetyEmergencyPlan;
+
+/**
+ * <p>
+ * 安全应急-预案管理 Mapper 接口
+ * </p>
+ *
+ * @author wm
+ * @since 2023-12-27
+ */
+public interface AspSafetyEmergencyPlanDao extends BaseMapper<AspSafetyEmergencyPlan> {
+
+}

+ 12 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/AspSafetyMeetingDao.java

@@ -0,0 +1,12 @@
+package com.rongwei.sfcommon.sys.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.rongwe.scentity.domian.AspSafetyMeeting;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
+
+public interface AspSafetyMeetingDao extends BaseMapper<AspSafetyMeeting> {
+    @Select("select * from asp_safety_meeting where DELETED = 0 AND MEETINGDATE >= CURDATE() AND MEETINGDATE <= DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL 1 DAY),'%Y-%m-%d 23:59:59') AND ISSTAGING = 1")
+    List<AspSafetyMeeting> selectNeedReportMessage();
+}

+ 7 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/AspSafetyPerformanceAppraisalDao.java

@@ -0,0 +1,7 @@
+package com.rongwei.sfcommon.sys.dao;
+
+import com.rongwe.scentity.domian.AspSafetyPerformanceAppraisal;
+import com.rongwei.rwcommon.base.BaseDao;
+
+public interface AspSafetyPerformanceAppraisalDao extends BaseDao<AspSafetyPerformanceAppraisal> {
+}

+ 8 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/AspSafetyPerformanceAppraisalDetailDao.java

@@ -0,0 +1,8 @@
+package com.rongwei.sfcommon.sys.dao;
+
+
+import com.rongwe.scentity.domian.AspSafetyPerformanceAppraisalDetail;
+import com.rongwei.rwcommon.base.BaseDao;
+
+public interface AspSafetyPerformanceAppraisalDetailDao extends BaseDao<AspSafetyPerformanceAppraisalDetail> {
+}

+ 31 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/AspSafetyProductObjectiveDao.java

@@ -0,0 +1,31 @@
+package com.rongwei.sfcommon.sys.dao;
+
+import com.rongwe.scentity.domian.AspSafetyProductObjective;
+import com.rongwe.scentity.vo.RoleIdAndUserIdsVo;
+import com.rongwei.rwcommon.base.BaseDao;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
+
+public interface AspSafetyProductObjectiveDao extends BaseDao<AspSafetyProductObjective> {
+    @Select("SELECT\n" +
+            "\tsr.ID AS 'id',\n" +
+            "\tGROUP_CONCAT( sur.USERID ) AS 'userIds' \n" +
+            "FROM\n" +
+            "\tsys_role sr\n" +
+            "\tLEFT JOIN sys_user_role sur ON sr.ID = sur.ROLEID \n" +
+            "\tAND sur.DELETED = 0\n" +
+            "\tLEFT JOIN sys_user_org suo ON suo.USERID = sur.USERID \n" +
+            "\tAND suo.DELETED = 0\n" +
+            "\tLEFT JOIN sys_organization so ON suo.ORGID = so.ID \n" +
+            "\tAND so.DELETED = 0 \n" +
+            "WHERE\n" +
+            "\tsr.DELETED = 0 \n" +
+            "\tAND sr.ID IN ( '77a13d95b53e42068e6f0c1d60f07df7', 'b104293d47e34df8847d1634c29ab031', '16963f62b94149d9ae16eabc9248999b', '104ac71c72704bbd953da6d7c167ed3a', 'efed8df42bde46c9970c1476e74d6374' ) \n" +
+            "\tAND (\n" +
+            "\t\tso.ID = #{tenantId} \n" +
+            "\tOR so.FULLPID LIKE CONCAT( '%', #{tenantId}, '%' )) \n" +
+            "GROUP BY\n" +
+            "\tsr.ID")
+    List<RoleIdAndUserIdsVo> selectManagerByTenantId(String tenantId);
+}

+ 7 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/AspSafetyProductObjectiveResultDao.java

@@ -0,0 +1,7 @@
+package com.rongwei.sfcommon.sys.dao;
+
+import com.rongwe.scentity.domian.AspSafetyProductObjectiveResult;
+import com.rongwei.rwcommon.base.BaseDao;
+
+public interface AspSafetyProductObjectiveResultDao extends BaseDao<AspSafetyProductObjectiveResult> {
+}

+ 8 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/AspSafetyProductObjectiveResultScoreDetailDao.java

@@ -0,0 +1,8 @@
+package com.rongwei.sfcommon.sys.dao;
+
+
+import com.rongwe.scentity.domian.AspSafetyProductObjectiveResultScoreDetail;
+import com.rongwei.rwcommon.base.BaseDao;
+
+public interface AspSafetyProductObjectiveResultScoreDetailDao extends BaseDao<AspSafetyProductObjectiveResultScoreDetail> {
+}

+ 7 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/AspSafetyProductObjectiveScoreDetailDao.java

@@ -0,0 +1,7 @@
+package com.rongwei.sfcommon.sys.dao;
+
+import com.rongwe.scentity.domian.AspSafetyProductObjectiveScoreDetail;
+import com.rongwei.rwcommon.base.BaseDao;
+
+public interface AspSafetyProductObjectiveScoreDetailDao extends BaseDao<AspSafetyProductObjectiveScoreDetail> {
+}

+ 15 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/AspSpecialEquipmentCertificateDao.java

@@ -0,0 +1,15 @@
+package com.rongwei.sfcommon.sys.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.rongwe.scentity.domian.AspSpecialEquipmentCertificateDo;
+
+/**
+ * @Entity com.rongwei.training.domain.AspSpecialEquipmentCertificate
+ */
+public interface AspSpecialEquipmentCertificateDao extends BaseMapper<AspSpecialEquipmentCertificateDo> {
+
+}
+
+
+
+

+ 15 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/CheckItemContentDao.java

@@ -0,0 +1,15 @@
+package com.rongwei.sfcommon.sys.dao;
+
+import com.rongwe.scentity.domian.CheckItemContentDo;
+import com.rongwei.rwcommon.base.BaseDao;
+
+/**
+ * 检查项内容
+ *
+ * @author chglee
+ * @email 1992lcg@163.com
+ * @date 2020-08-03 19:02:04
+ */
+public interface CheckItemContentDao extends BaseDao<CheckItemContentDo> {
+
+}

+ 55 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/CheckItemsDao.java

@@ -0,0 +1,55 @@
+package com.rongwei.sfcommon.sys.dao;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.rongwe.scentity.domian.CheckItemsDo;
+import com.rongwe.scentity.vo.CheckItemsTypeVo;
+import com.rongwei.rwcommon.base.BaseDao;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
+
+/**
+ * 检查对象表
+ *
+ * @author chglee
+ * @email 1992lcg@163.com
+ * @date 2020-07-17 09:33:23
+ */
+public interface CheckItemsDao extends BaseDao<CheckItemsDo> {
+
+    @Select("select *  from asp_check_items WHERE DELETED='0' and STANDBY='y' and (ENABLED is NULL  or ENABLED ='enable' or ENABLED='')")
+    IPage<CheckItemsDo> spareList(Page page);
+
+    @Select("SELECT\n" +
+            "\taci.*,\n" +
+            "\tb.`NAME` AS typeName \n" +
+            "FROM\n" +
+            "\tasp_check_items aci\n" +
+            "\tLEFT JOIN ( SELECT * FROM sys_dict WHERE DELETED = 0 AND DICTTYPE = 'asp_check_item_type' ) b ON aci.CHECKITEMTYPE = b.`VALUE` \n" +
+            "WHERE\n" +
+            "\taci.DELETED = 0 \n" +
+            "\tAND DATE_FORMAT( aci.WARNDATE, '%Y-%m-%d' ) <= DATE_FORMAT(\n" +
+            "\tNOW(),\n" +
+            "\t'%Y-%m-%d')")
+    List<CheckItemsTypeVo> selectNeedReportEqu();
+
+    //特种设备管理员的ID:08e111e9dbc04706a3eb8367a65a3dc5
+    @Select("SELECT\n" +
+            "\tsu.ID \n" +
+            "FROM\n" +
+            "\tsys_user su\n" +
+            "\tLEFT JOIN sys_user_role sur ON su.ID = sur.USERID \n" +
+            "\tAND sur.DELETED = 0\n" +
+            "\tLEFT JOIN sys_user_org suo ON suo.USERID = su.ID \n" +
+            "\tAND suo.DELETED = 0\n" +
+            "\tLEFT JOIN sys_organization so ON suo.ORGID = so.ID \n" +
+            "\tAND so.DELETED = 0 \n" +
+            "WHERE\n" +
+            "\tsu.DELETED = 0 \n" +
+            "\tAND sur.ROLEID = '08e111e9dbc04706a3eb8367a65a3dc5' \n" +
+            "\tAND (\n" +
+            "\tso.ID = #{tenantId} \n" +
+            "\tOR so.FULLPID LIKE CONCAT( '%', #{tenantId}, '%' ))")
+    List<String> selectUserByTenantId(String tenantId);
+}

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

@@ -0,0 +1,27 @@
+package com.rongwei.sfcommon.sys.dao;
+
+import com.rongwe.scentity.domian.CheckItemsDutyuserDo;
+import com.rongwe.scentity.vo.CheckItemsVo;
+import com.rongwei.rwcommon.base.BaseDao;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+import org.apache.ibatis.annotations.Update;
+
+import java.util.List;
+
+/**
+ * 设备责任人表
+ *
+ * @author chglee
+ * @email 1992lcg@163.com
+ * @date 2020-08-21 15:34:06
+ */
+public interface CheckItemsDutyuserDao extends BaseDao<CheckItemsDutyuserDo> {
+
+    @Select("select * from (select a.DUTYUSERID,b.*, b.MODIFYDATE AS SORTDATE from asp_check_items_dutyuser a left join asp_check_items b on a.CHECKITEMID = b.id where a.DUTYUSERID = #{userId} and a.DELETED = '0' and b.DELETED = '0') t1 order by SORTDATE desc")
+    List<CheckItemsVo> getCheckItemsByUserId(@Param("userId") String userId);
+
+    @Update("update asp_check_items_dutyuser set DELETED = '1',MODIFYDATE = NOW() where DUTYUSERID = #{userId} and CHECKITEMID in (${checkItemsIds})")
+    void relieveCheckItems(@Param("userId") String userId, @Param("checkItemsIds") String checkItemsIds);
+
+}

+ 13 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/CheckItemsPartsDao.java

@@ -0,0 +1,13 @@
+package com.rongwei.sfcommon.sys.dao;
+
+import com.rongwe.scentity.domian.CheckItemsPartsDo;
+import com.rongwei.rwcommon.base.BaseDao;
+
+/**
+ * @author chglee
+ * @email 1992lcg@163.com
+ * @date 2020-08-04 18:39:10
+ */
+public interface CheckItemsPartsDao extends BaseDao<CheckItemsPartsDo> {
+
+}

+ 15 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/CheckTemplateDao.java

@@ -0,0 +1,15 @@
+package com.rongwei.sfcommon.sys.dao;
+
+import com.rongwe.scentity.domian.CheckTemplateDo;
+import com.rongwei.rwcommon.base.BaseDao;
+
+/**
+ * 检查模板表
+ *
+ * @author chglee
+ * @email 1992lcg@163.com
+ * @date 2020-07-17 09:33:23
+ */
+public interface CheckTemplateDao extends BaseDao<CheckTemplateDo> {
+
+}

+ 30 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/CheckTemplateItemsDao.java

@@ -0,0 +1,30 @@
+package com.rongwei.sfcommon.sys.dao;
+
+import com.rongwe.scentity.domian.CheckTemplateItemsDo;
+import com.rongwei.rwcommon.base.BaseDao;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+import org.apache.ibatis.annotations.Update;
+
+import java.util.List;
+
+/**
+ * 检查模板检查项明细表
+ *
+ * @author chglee
+ * @email 1992lcg@163.com
+ * @date 2020-07-17 09:33:23
+ */
+public interface CheckTemplateItemsDao extends BaseDao<CheckTemplateItemsDo> {
+
+    @Select("select a.* from asp_check_template_items a left join asp_check_template b on a.CHECKTEMPLATEID=b.ID " +
+            "where a.DELETED='0' and b.DELETED='0' and a.CHECKITEMCONTENTID in (${id})")
+    List<CheckTemplateItemsDo> getItemByContentId(@Param("id") String id);
+
+    @Update("update asp_check_template_items set DELETED = '0',MODIFYDATE = NOW() where ID in (${ids}) and DELETED = '1'")
+    void templateItemsDeleteResolve(@Param("ids") String ids);
+
+    @Select("select * from asp_check_template_items a left join asp_check_template b on a.CHECKTEMPLATEID=b.ID \n" +
+            "where b.ENABLESTATUS = '10' and a.CHECKITEMCONTENTID = #{checkitemcontentid} and a.DELETED='0' and b.DELETED='0'")
+    List<CheckTemplateItemsDo> getNewTemplateItems(@Param("checkitemcontentid") String checkitemcontentid);
+}

+ 17 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/DangerousDao.java

@@ -0,0 +1,17 @@
+package com.rongwei.sfcommon.sys.dao;
+
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
+import java.util.Map;
+
+public interface DangerousDao {
+    @Select("SELECT a.*, b.JOBTYPE, b.ASSIGNMENTTIMESTART, b.ASSIGNMENTTIMEEND FROM asp_inspectrecords a LEFT JOIN asp_job_management b ON a.JOBID = b.ID WHERE a.deleted = 0 AND a.PUNISHPERSONNELID IS NOT NULL AND a.STATUS = '1' AND a.GENERATEPENALTYORNOT = 'y'")
+    List<Map<String, Object>> getDangerousDailyNotify();
+
+    @Select("SELECT a.*, b.JOBTYPE, b.ASSIGNMENTTIMESTART, b.ASSIGNMENTTIMEEND FROM asp_inspectrecords a LEFT JOIN asp_job_management b ON a.JOBID = b.ID WHERE a.deleted = 0 AND a.ID = #{id}")
+    Map<String, Object> getDangerousNotify(@Param("id") String id);
+
+
+}

+ 20 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/DataXApiDao.java

@@ -0,0 +1,20 @@
+package com.rongwei.sfcommon.sys.dao;
+
+import org.apache.ibatis.annotations.Insert;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.Map;
+
+public interface DataXApiDao {
+
+    @Insert("${insertSql}")
+    void addDataSyn(@Param("insertSql") String insertSql);
+
+    @Insert("${updateSql}")
+    void updateDataSyn(@Param("updateSql") String updateSql);
+
+    @Select("${selectSql}")
+    Map<String, Object> selectByTableNameId(@Param("selectSql") String selectSql);
+
+}

+ 27 - 0
js-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);
+}

+ 52 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/HiddenDangerTrackDao.java

@@ -0,0 +1,52 @@
+package com.rongwei.sfcommon.sys.dao;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.rongwe.scentity.domian.HiddenDangerTrackDo;
+import com.rongwe.scentity.vo.HiddenDangerTrackVo;
+import com.rongwei.rwadmincommon.system.domain.SysRoleDo;
+import com.rongwei.rwadmincommon.system.domain.SysUserRoleDo;
+import com.rongwei.rwcommon.base.BaseDao;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 隐患跟踪表
+ *
+ * @author chglee
+ * @email 1992lcg@163.com
+ * @date 2020-08-04 18:39:10
+ */
+public interface HiddenDangerTrackDao extends BaseDao<HiddenDangerTrackDo> {
+
+    @Select("<script>select t3.SHIFT, t1.* from asp_hidden_danger_track t1 " +
+            "LEFT JOIN asp_point_check_item t2 ON t1.RELATIONID = t2.ID " +
+            "LEFT JOIN asp_point_check t3 ON t3.ID = t2.POINTCHECKID " +
+            "where t1.TRACKUSERID like '%${userid}%' \n" +
+//            "where (t1.TRACKUSERID like '%${userid}%' \n" +
+//            "or EXISTS (select a.ID,c.ORGID from sys_user_role a left join sys_role b on a.ROLEID=b.ID \n" +
+//            "left join sys_user_org c on c.USERID=a.USERID \n" +
+//            "where b.CODE='gdzg' " +
+//            "<if test='userid != null'>" +
+//            "and a.USERID = #{userid} " +
+//            "</if>"+
+//            "and a.DELETED='0' and b.DELETED='0' and c.DELETED='0' and c.ORGID = t1.DANGERWORKPARK)) " +
+            "and t1.DELETED = '0' and t1.STATUS = #{status} " +
+            "order by t1.CODE desc" +
+            "</script>")
+    IPage<HiddenDangerTrackVo> checkTaskList(Page page, @Param("userid") String userid, @Param("status") String status);
+
+    @Select("select DISTINCT b.ORGID,GROUP_CONCAT(a.USERID) AS USERID,GROUP_CONCAT(c.NAME) AS USERNAME \n" +
+            "from sys_user_role a left join sys_user_org b on a.USERID=b.USERID \n" +
+            "left join sys_user c on a.USERID=c.ID left join sys_role d on a.ROLEID=d.ID  \n" +
+            "where a.DELETED='0' and b.DELETED='0' and c.DELETED='0' and d.DELETED='0' and d.CODE='GDZG' \n" +
+            "GROUP BY b.ORGID")
+    List<Map<String, Object>> getAllDeptZGSPA();
+
+    @Select("select b.* from sys_user_role a left JOIN sys_role b on a.ROLEID=b.ID where a.DELETED='0' and b.DELETED='0' and a.USERID=#{userid}")
+    List<SysRoleDo> getTrackUserRoles(@Param("userid") String userid);
+
+}

+ 261 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/PointCheckDao.java

@@ -0,0 +1,261 @@
+package com.rongwei.sfcommon.sys.dao;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.rongwe.scentity.domian.PointCheckDo;
+import com.rongwe.scentity.vo.PointCheckItemVo;
+import com.rongwe.scentity.vo.PointCheckVo;
+import com.rongwei.rwcommon.base.BaseDao;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 点检任务表
+ *
+ * @author chglee
+ * @email 1992lcg@163.com
+ * @date 2020-07-17 09:33:23
+ */
+public interface PointCheckDao extends BaseDao<PointCheckDo> {
+
+    @Select("select DISTINCT a.*,e.NAME 'USERNAME' from sys_user_role a left join sys_user_org b on a.USERID=b.USERID join \n" +
+            "(select * from sys_user_org where USERID=#{userId}) c on c.ORGID=b.ORGID \n" +
+            "left join sys_user e on e.ID=a.USERID " +
+            "left join sys_role d on d.ID=a.ROLEID where d.CODE='gdzg' and d.DELETED='0' and a.DELETED='0' and b.DELETED='0'")
+    List<Map<String, Object>> getGdzgByUserId(@Param("userId") String userId);
+
+    @Select("select DISTINCT b.USERID from sys_role a left join sys_user_role b on a.ID=b.ROLEID left join sys_user_org c on b.USERID=c.USERID\n" +
+            "where a.CODE='gdzg' and c.ORGID=#{orgId} and a.DELETED='0' and b.DELETED='0' and c.DELETED='0'")
+    List<Map<String, Object>> getGdzgByOrgId(@Param("orgId") String orgId);
+
+    @Select("<script>select * from (select a.*,b.CHECKITEMNAME,b.CHECKITEMCODE,b.CHECKITEMTYPE,c.NAME AS CHECKITEMTYPENAME, \n" +
+            " b.CHARGEORGID,b.CHARGEORGNAME,b.CHARGEORGPID,b.CHARGEORGPNAME,d.NAME AS SHIFTNAME \n" +
+            " from asp_point_check a left join asp_check_items b on a.CHECKITEMID=b.ID \n" +
+            " left join sys_dict c on c.DICTTYPE='asp_check_item_type' \n" +
+            " left join sys_dict d on d.DICTTYPE='check-shift'  \n" +
+            " where a.DELETED='0' and b.DELETED='0' and d.VALUE = a.SHIFT and c.VALUE = b.CHECKITEMTYPE and a.CHECKITEMID is not null \n" +
+            " and EXISTS (select ID from asp_check_items_dutyuser where CHECKITEMID = b.ID and DUTYUSERID = #{checkuserid} and DELETED='0' and DUTYUSERATTRIBUTE='production') \n" +
+            "<if test='checkstatus!=null'>" +
+            " and a.CHECKSTATUS = #{checkstatus} " +
+            "</if> " +
+            "<if test='shift!=null'>" +
+            " and a.SHIFT = #{shift} " +
+            "</if> " +
+            "<if test='checkitemid!=null'>" +
+            " and a.CHECKITEMID = #{checkitemid} " +
+            "</if> " +
+            " union \n" +
+            " select a.*,b.CHECKITEMNAME,b.CHECKITEMCODE,b.CHECKITEMTYPE,c.NAME AS CHECKITEMTYPENAME, \n" +
+            " b.CHARGEORGID,b.CHARGEORGNAME,b.CHARGEORGPID,b.CHARGEORGPNAME,d.NAME AS SHIFTNAME \n" +
+            " from asp_point_check a left join asp_check_items b on a.CHECKITEMID=b.ID \n" +
+            " left join sys_dict c on c.DICTTYPE='asp_check_item_type' \n" +
+            " left join sys_dict d on d.DICTTYPE='check-shift'  \n" +
+            " where a.DELETED='0' and b.DELETED='0' and d.VALUE = a.SHIFT and c.VALUE = b.CHECKITEMTYPE  and a.CHECKITEMID is not null " +
+            " and not EXISTS (select ID from asp_check_items_dutyuser where CHECKITEMID = b.ID and DUTYUSERID = #{checkuserid} and DELETED='0' and DUTYUSERATTRIBUTE='production')\n" +
+            " and EXISTS (select ID from sys_user_org where ORGID = b.CHARGEORGCID and USERID = #{checkuserid} and DELETED='0') " +
+            "<if test='checkstatus!=null'>" +
+            "and a.CHECKSTATUS = #{checkstatus} " +
+            "</if> " +
+            "<if test='shift!=null'>" +
+            " and a.SHIFT = #{shift} " +
+            "</if> " +
+            "<if test='checkitemid!=null'>" +
+            " and a.CHECKITEMID = #{checkitemid} " +
+            "</if> " +
+            ") tb " +
+            " order by tb.CREATEDATE desc,tb.SHIFT asc" +
+            "</script>")
+    IPage<PointCheckVo> pointCheckSUlist(Page page, @Param("checkstatus") String checkstatus, @Param("checkuserid") String checkuserid, @Param("shift") String shift, @Param("checkitemid") String checkitemid);
+
+    @Select("<script>select a.*,b.CHECKITEMNAME,b.CHECKITEMCODE,b.CHECKITEMTYPE,c.NAME AS CHECKITEMTYPENAME, \n" +
+            " b.CHARGEORGID,b.CHARGEORGNAME,b.CHARGEORGPID,b.CHARGEORGPNAME,d.NAME AS SHIFTNAME \n" +
+            " from asp_point_check a left join asp_check_items b on a.CHECKITEMID=b.ID \n" +
+            " left join sys_dict c on c.DICTTYPE='asp_check_item_type' \n" +
+            " left join sys_dict d on d.DICTTYPE='check-shift'  \n" +
+            " left join (select USERID,GROUP_CONCAT(ORGID) AS 'CHECKUSERORGID' from sys_user_org where DELETED='0' GROUP BY USERID) e on e.USERID=a.CHECKUSERID " +
+            " where a.DELETED='0' and b.DELETED='0' and d.VALUE = a.SHIFT and c.VALUE = b.CHECKITEMTYPE \n" +
+            "<if test='checkuserid!=null'>" +
+            " and a.CHECKUSERID=#{checkuserid} " +
+            "</if> " +
+            "<if test='checkuserorgid!=null'>" +
+            " and e.CHECKUSERORGID like '%${checkuserorgid}%' " +
+            "</if> " +
+            "<if test='checkstatus!=null'>" +
+            " and a.CHECKSTATUS = #{checkstatus} " +
+            "</if> " +
+
+            "<if test='checkitemname!=null'>" +
+            " and b.CHECKITEMNAME like '%${checkitemname}%' " +
+            "</if> " +
+            "<if test='checkitemtypename!=null'>" +
+            " and c.NAME like '%${checkitemtypename}%' " +
+            "</if> " +
+            "<if test='shift!=null'>" +
+            " and a.SHIFT = #{shift} " +
+            "</if> " +
+            "<if test='checktime!=null'>" +
+            " and a.CHECKTIME = #{checktime} " +
+            "</if> " +
+            "<if test='checkitemid!=null'>" +
+            " and a.CHECKITEMID = #{checkitemid} " +
+            "</if> " +
+
+            " order by a.CREATEDATE desc,a.SHIFT asc" +
+            "</script>")
+    IPage<PointCheckVo> pointHasCheckSUlist(Page page, @Param("checkstatus") String checkstatus, @Param("checkuserid") String checkuserid, @Param("checkuserorgid") String checkuserorgid
+            , @Param("checkitemtypename") String checkitemtypename, @Param("checkitemname") String checkitemname, @Param("shift") String shift, @Param("checktime") String checktime, @Param("checkitemid") String checkitemid);
+
+    @Select("<script>select a.*,b.CHECKITEMNAME,b.CHECKITEMCODE,b.CHECKITEMTYPE,c.NAME AS CHECKITEMTYPENAME," +
+            "b.CHARGEORGID,b.CHARGEORGNAME,b.CHARGEORGPID,b.CHARGEORGPNAME,d.NAME AS SHIFTNAME " +
+            "from asp_point_check a left join asp_check_items b on a.CHECKITEMID=b.ID \n" +
+            "left join sys_dict c on c.DICTTYPE='asp_check_item_type' " +
+            "left join sys_dict d on d.DICTTYPE='check-shift' " +
+            "where a.DELETED='0' and b.DELETED='0' and c.VALUE = b.CHECKITEMTYPE and d.VALUE = a.SHIFT " +
+            "<if test='id!=null'>" +
+            "and a.ID = #{id}" +
+            "</if>" +
+            "</script>")
+    PointCheckVo pointCheckSUInfo(@Param("id") String id);
+
+    @Select("select a.*,b.NAME AS MANAGEMENTNAME from asp_point_check_item a " +
+            "left join sys_dict b on a.MANAGEMENT=b.VALUE and b.DICTTYPE='point_check_manage'" +
+            "where a.POINTCHECKID = #{pointcheckid}")
+    List<PointCheckItemVo> pointCheckItemList(@Param("pointcheckid") String pointcheckid);
+
+    @Select("select a.*,b.CHECKITEMNAME,b.CHECKITEMCODE,b.CHECKITEMTYPE,b.CHECKITEMAREAID,b.CHARGEORGID,b.CHARGEORGNAME,b.CHARGEORGPID,b.CHARGEORGPNAME,c.NAME AS SHIFTNAME \n" +
+            "from asp_point_check a left join asp_check_items b on a.CHECKITEMID=b.id left join sys_dict c on a.SHIFT = c.VALUE " +
+            "where a.DELETED='0' and c.DICTTYPE='check-shift' and DATE_FORMAT(a.CREATEDATE,'%Y-%m-%d') < DATE_FORMAT(NOW(),'%Y-%m-%d')  and a.CHECKSTATUS='10'")
+    List<PointCheckVo> getDelays();
+
+    @Select("select * from asp_point_check where CHECKITEMID=#{checkitemid} and CHECKSTATUS='20' and SHIFT !=#{shift} ORDER BY CHECKTIME DESC")
+    List<PointCheckDo> getLastPointChecks(@Param("checkitemid") String checkitemid, @Param("shift") String shift);
+
+    @Select("<script>select " +
+            "a.*," +
+            "b.CHECKITEMNAME, " +
+            "b.CHECKITEMCODE, " +
+            "b.CHECKITEMTYPE, " +
+            "b.CHECKITEMAREAID, " +
+            "b.CHARGEORGID, " +
+            "b.CHARGEORGNAME, " +
+            "b.CHARGEORGPID, " +
+            "b.CHARGEORGPNAME, " +
+            "b.CHARGEORGCID, " +
+            "b.CHARGEORGCNAME " +
+            "from " +
+            "asp_point_check a " +
+            "left join " +
+            "asp_check_items b " +
+            "on a.CHECKITEMID=b.id " +
+            " left join (select USERID,GROUP_CONCAT(ORGID) AS 'CHECKUSERORGID' from sys_user_org where DELETED='0' GROUP BY USERID) e on e.USERID=a.CHECKUSERID " +
+            "where a.DELETED = '0' and CHECKSTATUS = '20' and CHECKWARNSTATUS='20' " +
+            "<if test='checkuserid!=null'>" +
+            " and a.CHECKUSERID=#{checkuserid} " +
+            "</if> " +
+            "<if test='checkuserorgid!=null'>" +
+            " and (e.CHECKUSERORGID like '%${checkuserorgid}%' or b.CHARGEORGID like '%${checkuserorgid}%') " +
+            "</if> " +
+            "<if test='beginDate!=null'>" +
+            "and a.CREATEDATE <![CDATA[ >= ]]> #{beginDate}" +
+            "</if>" +
+            "<if test='endDate!=null'>" +
+            "and a.CREATEDATE <![CDATA[ <= ]]> #{endDate}" +
+            "</if>" +
+            "<if test='checkitemid!=null'>" +
+            " and a.CHECKITEMID = #{checkitemid} " +
+            "</if> " +
+            "order by a.CREATEDATE desc,a.SHIFT asc " +
+            "</script>")
+    IPage<PointCheckVo> notPointCheckList(Page page, @Param("beginDate") String beginDate, @Param("endDate") String endDate
+            , @Param("checkuserid") String checkuserid, @Param("checkuserorgid") String checkuserorgid, @Param("checkitemid") String checkitemid);
+
+
+    @Select("SELECT\n" +
+            "\ta.*,\n" +
+            "\tb.CHECKITEMNAME,\n" +
+            "\tb.CHECKITEMCODE,\n" +
+            "\tb.CHECKITEMTYPE,\n" +
+            "\tc.NAME AS CHECKITEMTYPENAME,\n" +
+            "\tb.CHARGEORGID,\n" +
+            "\tb.CHARGEORGNAME,\n" +
+            "\tb.CHARGEORGPID,\n" +
+            "\tb.CHARGEORGPNAME,\n" +
+            "\td.NAME AS SHIFTNAME \n" +
+            "FROM\n" +
+            "\tasp_point_check a\n" +
+            "\tLEFT JOIN asp_check_items b ON a.CHECKITEMID = b.ID\n" +
+            "\tLEFT JOIN sys_dict c ON c.DICTTYPE = 'asp_check_item_type'\n" +
+            "\tLEFT JOIN sys_dict d ON d.DICTTYPE = 'check-shift' \n" +
+            "WHERE\n" +
+            "\ta.DELETED = '0' \n" +
+            "\tAND b.DELETED = '0' \n" +
+            "\tAND d.VALUE = a.SHIFT \n" +
+            "\tAND c.VALUE = b.CHECKITEMTYPE \n" +
+            "\tAND a.CHECKSTATUS = #{checkstatus} \n" +
+            "\tAND a.CHECKITEMID = #{checkitemid}\n" +
+            "\tORDER BY CREATEDATE DESC")
+    IPage<PointCheckVo> sparePointHasCheckSUlist(Page page, @Param("checkstatus") String checkstatus, @Param("checkitemid") String checkitemid);
+
+
+    @Select("SELECT\n" +
+            "\ta.*,\n" +
+            "\tb.CHECKITEMNAME,\n" +
+            "\tb.CHECKITEMCODE,\n" +
+            "\tb.CHECKITEMTYPE,\n" +
+            "\tc.NAME AS CHECKITEMTYPENAME,\n" +
+            "\tb.CHARGEORGID,\n" +
+            "\tb.CHARGEORGNAME,\n" +
+            "\tb.CHARGEORGPID,\n" +
+            "\tb.CHARGEORGPNAME,\n" +
+            "\td.NAME AS SHIFTNAME \n" +
+            "FROM\n" +
+            "\tasp_point_check a\n" +
+            "\tLEFT JOIN asp_check_items b ON a.CHECKITEMID = b.ID\n" +
+            "\tLEFT JOIN sys_dict c ON c.DICTTYPE = 'asp_check_item_type'\n" +
+            "\tLEFT JOIN sys_dict d ON d.DICTTYPE = 'check-shift' \n" +
+            "WHERE\n" +
+            "\ta.DELETED = '0' \n" +
+            "\tAND b.DELETED = '0' \n" +
+            "\tAND d.VALUE = a.SHIFT \n" +
+            "\tAND c.VALUE = b.CHECKITEMTYPE \n" +
+            "\tAND a.CHECKITEMID IS NOT NULL \n" +
+            "\tAND a.CHECKSTATUS = #{checkstatus} \n" +
+            "\tAND a.SHIFT = #{shift} \n" +
+            "\tAND a.CHECKITEMID = #{checkitemid}")
+    IPage<PointCheckVo> sparePointCheckSUlist(Page page, @Param("checkstatus") String checkstatus, @Param("shift") String shift, @Param("checkitemid") String checkitemid);
+
+
+    @Select("<script>select " +
+            "a.*," +
+            "b.CHECKITEMNAME, " +
+            "b.CHECKITEMCODE, " +
+            "b.CHECKITEMTYPE, " +
+            "b.CHECKITEMAREAID, " +
+            "b.CHARGEORGID, " +
+            "b.CHARGEORGNAME, " +
+            "b.CHARGEORGPID, " +
+            "b.CHARGEORGPNAME, " +
+            "b.CHARGEORGCID, " +
+            "b.CHARGEORGCNAME " +
+            "from " +
+            "asp_point_check a " +
+            "left join " +
+            "asp_check_items b " +
+            "on a.CHECKITEMID=b.id " +
+            "where a.DELETED = '0' and CHECKSTATUS = '20' and CHECKWARNSTATUS='20' " +
+            "<if test='beginDate!=null'>" +
+            "and a.CREATEDATE <![CDATA[ >= ]]> #{beginDate}" +
+            "</if>" +
+            "<if test='endDate!=null'>" +
+            "and a.CREATEDATE <![CDATA[ <= ]]> #{endDate}" +
+            "</if>" +
+            "<if test='checkitemid!=null'>" +
+            " and a.CHECKITEMID = #{checkitemid} " +
+            "</if> " +
+            "order by a.CREATEDATE desc,a.SHIFT asc " +
+            "</script>")
+    IPage<PointCheckVo> spareNotPointCheckList(Page<PointCheckVo> page, @Param("beginDate") String beginDate, @Param("endDate") String endDate, @Param("checkitemid") String checkitemid);
+}

+ 22 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/PointCheckItemDao.java

@@ -0,0 +1,22 @@
+package com.rongwei.sfcommon.sys.dao;
+
+import com.rongwe.scentity.domian.PointCheckItemDo;
+import com.rongwei.rwcommon.base.BaseDao;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
+
+/**
+ * 点检任务明细表
+ *
+ * @author chglee
+ * @email 1992lcg@163.com
+ * @date 2020-07-17 09:33:23
+ */
+public interface PointCheckItemDao extends BaseDao<PointCheckItemDo> {
+
+    @Select("select * from asp_point_check_item where deleted = '0' and POINTCHECKID=#{pointcheckid} order by ITEMSORT asc")
+    List<PointCheckItemDo> getItemList(@Param("pointcheckid") String pointcheckid);
+
+}

+ 72 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/SafetyObservationDao.java

@@ -0,0 +1,72 @@
+package com.rongwei.sfcommon.sys.dao;
+
+import com.rongwe.scentity.domian.SafetyObservationDo;
+import com.rongwei.rwadmincommon.system.domain.SysUserDo;
+import com.rongwei.rwcommon.base.BaseDao;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
+
+/**
+ * 安全观察表
+ *
+ * @author chglee
+ * @email 1992lcg@163.com
+ * @date 2020-09-11 14:21:07
+ */
+public interface SafetyObservationDao extends BaseDao<SafetyObservationDo> {
+    @Select("SELECT COUNT(*) from asp_safety_observation a WHERE a.DELETED='0'")
+    int countSafe();
+
+    @Select("SELECT \n" +
+            "        c.SYSUSERORGIDS, \n" +
+            "        c.SYSUSERORGNAMES, \n" +
+            "        e.SYSUSERROLEIDS, \n" +
+            "        e.SYSUSERROLENAMES, \n" +
+            "        f.`NAME` 'RCREATEUSERNAME', \n" +
+            "        g.`NAME` 'RMODIFYUSERNAME', \n" +
+            "        a.* \n" +
+            "        FROM \n" +
+            "        sys_user a \n" +
+            "        LEFT JOIN ( \n" +
+            "        SELECT \n" +
+            "        GROUP_CONCAT( t3.`ID` ) 'SYSUSERORGIDS', \n" +
+            "        GROUP_CONCAT( t3.`SHORTNAME` ) 'SYSUSERORGNAMES', \n" +
+            "        t1.ID 'USERID' \n" +
+            "        FROM \n" +
+            "        sys_user t1 \n" +
+            "        LEFT JOIN sys_user_org t2 ON t1.ID = t2.USERID \n" +
+            "        AND t2.DELETED = '0' \n" +
+            "        LEFT JOIN sys_organization t3 ON t2.ORGID = t3.ID \n" +
+            "        AND t3.DELETED = '0' \n" +
+            "        WHERE \n" +
+            "        t1.DELETED = '0' \n" +
+            "        GROUP BY \n" +
+            "        t1.ID \n" +
+            "        ) c ON c.USERID = a.ID \n" +
+            "        LEFT JOIN sys_user f ON a.CREATEUSERID = f.id \n" +
+            "        AND f.DELETED = '0' \n" +
+            "        LEFT JOIN sys_user g ON a.MODIFYUSERID = g.id \n" +
+            "        AND g.DELETED = '0' \n" +
+            "        LEFT JOIN ( \n" +
+            "        SELECT \n" +
+            "        GROUP_CONCAT( e.`id` ) 'SYSUSERROLEIDS', \n" +
+            "        GROUP_CONCAT( e.`NAME` ) 'SYSUSERROLENAMES', \n" +
+            "        a.ID USERID \n" +
+            "        FROM \n" +
+            "        sys_user a \n" +
+            "        LEFT JOIN sys_user_role d ON a.ID = d.USERID \n" +
+            "        AND d.DELETED = '0'  \n" +
+            "        LEFT JOIN sys_role e ON d.ROLEID = e.id  \n" +
+            "        AND e.DELETED = '0'  \n" +
+            "        WHERE  \n" +
+            "        a.DELETED = '0'  \n" +
+            "        GROUP BY  \n" +
+            "        a.ID \n" +
+            "        ) e ON e.USERID = a.ID \n" +
+            "       where \n" +
+            "          a.DELETED = '0' and a.SAFEOBSERVEINDICATOR >0 and a.SAFEOBSERVEINDICATOR <#{count} \n" +
+            "        GROUP BY \n" +
+            "            a.ID")
+    List<SysUserDo> listSafe(int count);
+}

+ 47 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/SaveCheckCommonDao.java

@@ -0,0 +1,47 @@
+package com.rongwei.sfcommon.sys.dao;
+
+
+import com.rongwe.scentity.vo.CheckAreaVo;
+import com.rongwe.scentity.vo.UserMailOrgVo;
+import com.rongwei.rwadmincommon.system.domain.SysOrganizationDo;
+import com.rongwei.rwadmincommon.system.domain.SysUserDo;
+import com.rongwei.rwcommonentity.commonservers.domain.SysFileItemDo;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
+
+/**
+ * SaveCheckCommonDao class
+ *
+ * @author XH
+ * @date 2023/10/13
+ */
+public interface SaveCheckCommonDao {
+    List<UserMailOrgVo> getUserInfoByOrgIdAndRoleCode(@Param("orgIds") List<String> orgIds,
+                                                      @Param("roleCode") String roleCode);
+
+    SysUserDo getSafetyManager();
+
+    List<UserMailOrgVo> getUserInfoByDeptCode(@Param("roleCode") String roleCode);
+
+    List<UserMailOrgVo> getSafetyPromoter(@Param("deptIds") List<String> deptIds);
+
+    void updateNotifyState(@Param("notifyType") String notifyType, @Param("tenantId") String tenantId);
+
+    List<String> getUserIdByRoleCodeAndOrgIdAndTenantId(@Param("roleCodes") List<String> roleCode,
+                                                        @Param("orgIds") List<String> orgIds,
+                                                        @Param("tenantId") String tenantId);
+
+    List<UserMailOrgVo> getUserInfoByTenantIdAndRoleCode(@Param("tenantId") String tenantId, @Param("roleCodes") List<String> roleCodes);
+
+    @Select("select * from sys_file_item where ID = #{id}")
+    SysFileItemDo getFileItemByID(@Param("id") String id);
+
+
+    List<CheckAreaVo> getCheckArea(@Param("tenantid") String tenantid);
+
+    List<SysOrganizationDo> getOrgByTenantId(@Param("tenantid") String tenantid);
+
+    List<SysUserDo> getUserInfoByTenantId(@Param("tenantid") String tenantid);
+}

+ 15 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/ThemeCheckContentDao.java

@@ -0,0 +1,15 @@
+package com.rongwei.sfcommon.sys.dao;
+
+import com.rongwe.scentity.domian.ThemeCheckContentDo;
+import com.rongwei.rwcommon.base.BaseDao;
+
+/**
+ * 主题检查检查任务的检查内容明细表
+ *
+ * @author chglee
+ * @email 1992lcg@163.com
+ * @date 2020-07-17 09:33:23
+ */
+public interface ThemeCheckContentDao extends BaseDao<ThemeCheckContentDo> {
+
+}

+ 14 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/ThemeCheckDao.java

@@ -0,0 +1,14 @@
+package com.rongwei.sfcommon.sys.dao;
+
+import com.rongwe.scentity.domian.ThemeCheckDo;
+import com.rongwei.rwcommon.base.BaseDao;
+
+/**
+ * 专项检查和每天检查表
+ *
+ * @author chglee
+ * @email 1992lcg@163.com
+ * @date 2020-07-17 09:33:23
+ */
+public interface ThemeCheckDao extends BaseDao<ThemeCheckDo> {
+}

+ 52 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/ThemeCheckItemDao.java

@@ -0,0 +1,52 @@
+package com.rongwei.sfcommon.sys.dao;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.rongwe.scentity.domian.ThemeCheckItemDo;
+import com.rongwe.scentity.vo.ThemeCheckItemVo;
+import com.rongwei.rwcommon.base.BaseDao;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 主题检查检查任务表
+ *
+ * @author chglee
+ * @email 1992lcg@163.com
+ * @date 2020-07-17 09:33:23
+ */
+public interface ThemeCheckItemDao extends BaseDao<ThemeCheckItemDo> {
+
+    @Select("<script>select DISTINCT a.USERID,a.ROLEID,c.NAME AS USERNAME,d.CODE,d.NAME AS ROLENAME,c.EMAIL from sys_user_role a left join sys_user_org b on a.USERID=b.USERID " +
+            "left join sys_user c on a.USERID=c.ID left join sys_role d on a.ROLEID=d.ID " +
+            "where a.DELETED='0' and b.DELETED='0' and c.DELETED='0' and d.DELETED='0' " +
+            "<if test='orgId!=null'>" +
+            "and b.ORGID=#{orgId}" +
+            "</if>" +
+            "<if test='roleCode!=null'>" +
+            "and d.CODE=#{roleCode}" +
+            "</if>" +
+            "</script>")
+    List<Map<String, Object>> getGdzgByUserId(@Param("orgId") String orgId, @Param("roleCode") String roleCode);
+
+    @Select("select * from asp_theme_check_item where (GROUPLEADER like '%${userid}%' or GROUPUSERS like '%${userid}%') and CHECKSTATUS = 'prepare' and DELETED = '0' order by CREATEDATE desc")
+    IPage<ThemeCheckItemVo> themeChecktodoList(Page page, @Param("userid") String userid);
+
+    @Select("select * from asp_theme_check_item where (GROUPLEADER like '%${userid}%' or GROUPUSERS like '%${userid}%') and CHECKSTATUS = 'done' and DELETED = '0' order by CREATEDATE desc")
+    IPage<ThemeCheckItemVo> themeCheckdoneList(Page page, @Param("userid") String userid);
+
+
+    @Select("SELECT\n" +
+            "\tcount(atci.ID) as count\n" +
+            "FROM\n" +
+            "\t asp_theme_check_item atci \n" +
+            "\tLEFT JOIN  asp_theme_check atc on atci.THEMECHECKID =atc.ID\n" +
+            "WHERE\n" +
+            "\tatci.DELETED = '0' \n" +
+            "\tAND atci.ID in ('${id}') \n" +
+            "\tAND atc.CHECKTYPE='20'")
+    int checkSendMail(@Param("id") String id);
+}

+ 15 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/ThemeCheckWorkparkDao.java

@@ -0,0 +1,15 @@
+package com.rongwei.sfcommon.sys.dao;
+
+import com.rongwe.scentity.domian.ThemeCheckWorkparkDo;
+import com.rongwei.rwcommon.base.BaseDao;
+
+/**
+ * 主题检查工段明细表
+ *
+ * @author chglee
+ * @email 1992lcg@163.com
+ * @date 2020-07-17 09:33:23
+ */
+public interface ThemeCheckWorkparkDao extends BaseDao<ThemeCheckWorkparkDo> {
+
+}

+ 13 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/dao/WarnLevelDao.java

@@ -0,0 +1,13 @@
+package com.rongwei.sfcommon.sys.dao;
+
+import com.rongwe.scentity.domian.WarnLevelDo;
+import com.rongwei.rwcommon.base.BaseDao;
+
+/**
+ * @author chglee
+ * @email 1992lcg@163.com
+ * @date 2020-12-28 18:02:23
+ */
+public interface WarnLevelDao extends BaseDao<WarnLevelDo> {
+
+}

+ 22 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/AccidentObjectService.java

@@ -0,0 +1,22 @@
+package com.rongwei.sfcommon.sys.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwe.scentity.domian.AccidentObjectDo;
+import com.rongwe.scentity.domian.AccidentUserDo;
+import com.rongwe.scentity.vo.AccidentUserVo;
+
+import java.util.List;
+
+/**
+ * 事故物体表
+ *
+ * @author chglee
+ * @email 1992lcg@163.com
+ * @date 2020-08-04 18:39:10
+ */
+public interface AccidentObjectService extends IService<AccidentObjectDo> {
+    List<AccidentObjectDo> getByAccidentId(String id);
+
+
+}
+

+ 39 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/AccidentService.java

@@ -0,0 +1,39 @@
+package com.rongwei.sfcommon.sys.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwe.scentity.domian.AccidentDo;
+import com.rongwe.scentity.vo.AccidentVo;
+import com.rongwe.scentity.vo.AspAccidentReportVo;
+import com.rongwei.rwcommon.base.R;
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 事故表
+ *
+ * @author chglee
+ * @email 1992lcg@163.com
+ * @date 2020-07-21 09:33:23
+ */
+public interface AccidentService extends IService<AccidentDo> {
+
+    R getCode(Map<String, Object> map);
+
+    String getCodeMAx();
+
+    void createHiddenTask(Map<String, Object> map);
+
+    R word(Map<String, Object> map);
+
+
+    AccidentVo getFilePathById(String fileId);
+
+    List<AccidentVo> getFileList();
+
+    R report();
+
+    List<AspAccidentReportVo> selectReport(Integer year, String tenantId);
+}
+

+ 20 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/AccidentTrackPlanService.java

@@ -0,0 +1,20 @@
+package com.rongwei.sfcommon.sys.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwe.scentity.domian.AccidentTrackPlanDo;
+import com.rongwe.scentity.vo.AccidentTrackPlanVo;
+
+import java.util.List;
+
+/**
+ * 事故跟踪计划表
+ *
+ * @author chglee
+ * @email 1992lcg@163.com
+ * @date 2020-08-04 18:39:10
+ */
+public interface AccidentTrackPlanService extends IService<AccidentTrackPlanDo> {
+
+    List<AccidentTrackPlanVo> getByAccidentId(String id);
+}
+

+ 21 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/AccidentUserService.java

@@ -0,0 +1,21 @@
+package com.rongwei.sfcommon.sys.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwe.scentity.domian.AccidentUserDo;
+import com.rongwe.scentity.vo.AccidentUserVo;
+
+import java.util.List;
+
+/**
+ * 事故受伤员工表
+ *
+ * @author chglee
+ * @email 1992lcg@163.com
+ * @date 2020-08-04 18:39:10
+ */
+public interface AccidentUserService extends IService<AccidentUserDo> {
+    List<AccidentUserVo> getByAccidentId(String id);
+
+
+}
+

+ 16 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/AspAccidentReportService.java

@@ -0,0 +1,16 @@
+package com.rongwei.sfcommon.sys.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwe.scentity.domian.AccidentDo;
+import com.rongwe.scentity.domian.AspAccidentReport;
+import com.rongwe.scentity.vo.AccidentVo;
+import com.rongwei.rwcommon.base.R;
+
+import java.util.List;
+import java.util.Map;
+
+
+public interface AspAccidentReportService extends IService<AspAccidentReport> {
+
+}
+

+ 13 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/AspCheckDiscoveryItemService.java

@@ -0,0 +1,13 @@
+package com.rongwei.sfcommon.sys.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwe.scentity.domian.AspCheckDiscoveryItemDo;
+
+/**
+ * AspCheckDiscoveryItemService class
+ *
+ * @author XH
+ * @date 2023/10/12
+ */
+public interface AspCheckDiscoveryItemService extends IService<AspCheckDiscoveryItemDo> {
+}

+ 11 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/AspEvaluationRecordHistoryService.java

@@ -0,0 +1,11 @@
+package com.rongwei.sfcommon.sys.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwe.scentity.domian.AspEvaluationRecordHistoryDo;
+
+/**
+ *
+ */
+public interface AspEvaluationRecordHistoryService extends IService<AspEvaluationRecordHistoryDo> {
+
+}

+ 11 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/AspEvaluationRecordService.java

@@ -0,0 +1,11 @@
+package com.rongwei.sfcommon.sys.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwe.scentity.domian.AspEvaluationRecordDo;
+
+/**
+ *
+ */
+public interface AspEvaluationRecordService extends IService<AspEvaluationRecordDo> {
+
+}

+ 11 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/AspRiskSourceHistoryService.java

@@ -0,0 +1,11 @@
+package com.rongwei.sfcommon.sys.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwe.scentity.domian.AspRiskSourceHistoryDo;
+
+/**
+ *
+ */
+public interface AspRiskSourceHistoryService extends IService<AspRiskSourceHistoryDo> {
+
+}

+ 16 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/AspRiskSourceService.java

@@ -0,0 +1,16 @@
+package com.rongwei.sfcommon.sys.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwe.scentity.domian.AspRiskSourceDo;
+import com.rongwei.rwcommon.base.R;
+
+
+public interface AspRiskSourceService extends IService<AspRiskSourceDo> {
+
+    void test(Boolean haveJob, String filePath, String category);
+
+    void resetInfo();
+
+    R updateHistory(String id);
+}
+

+ 16 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/AspSafeAttachmentsService.java

@@ -0,0 +1,16 @@
+package com.rongwei.sfcommon.sys.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwe.scentity.domian.AspSafeAttachmentsDo;
+import com.rongwei.rwcommon.base.R;
+
+import java.util.Map;
+
+/**
+ *
+ */
+public interface AspSafeAttachmentsService extends IService<AspSafeAttachmentsDo> {
+    R stateUpdateScheduledTasks();
+
+    R importExcel(Map<String, String> queryParameter);
+}

+ 16 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/AspSafetyDrillProgrammeMsgNotifyRecordService.java

@@ -0,0 +1,16 @@
+package com.rongwei.sfcommon.sys.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwe.scentity.domian.AspSafetyDrillProgrammeMsgNotifyRecordDo;
+
+/**
+ * <p>
+ * 安全应急-演练方案-消息提醒记录 服务类
+ * </p>
+ *
+ * @author wm
+ * @since 2023-12-28
+ */
+public interface AspSafetyDrillProgrammeMsgNotifyRecordService extends IService<AspSafetyDrillProgrammeMsgNotifyRecordDo> {
+
+}

+ 51 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/AspSafetyDrillProgrammeService.java

@@ -0,0 +1,51 @@
+package com.rongwei.sfcommon.sys.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwe.scentity.domian.AspSafetyDrillProgrammeDo;
+import com.rongwei.rwcommon.base.R;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 安全应急-演练方案 服务类
+ * </p>
+ *
+ * @author wm
+ * @since 2023-11-13
+ */
+public interface AspSafetyDrillProgrammeService extends IService<AspSafetyDrillProgrammeDo> {
+
+    /**
+     * 发布演练方案(定时处理)
+     */
+    void publish();
+
+    /**
+     * 消息发布
+     *
+     * @param id
+     */
+    void sendMsg(String id);
+
+    /**
+     * 前三天和当天提醒
+     */
+    void notify3Day();
+
+    /**
+     * 由于存在定时修改状态,需要提醒当天已演练和未演练
+     */
+    void notifyCurrentDay();
+
+    void exportEmergencyDrillPlanWord(String startDate, String endDate, HttpServletResponse response) throws Exception;
+
+    void exportAnnualDrillPlanWord(String id, HttpServletResponse response) throws Exception;
+
+    void exportDrillProgramme(String id, HttpServletResponse response) throws Exception;
+
+}

+ 16 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/AspSafetyEmergencyPlanService.java

@@ -0,0 +1,16 @@
+package com.rongwei.sfcommon.sys.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwe.scentity.domian.AspSafetyEmergencyPlan;
+
+/**
+ * <p>
+ * 安全应急-预案管理 服务类
+ * </p>
+ *
+ * @author wm
+ * @since 2023-12-27
+ */
+public interface AspSafetyEmergencyPlanService extends IService<AspSafetyEmergencyPlan> {
+
+}

+ 16 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/AspSafetyMeetingService.java

@@ -0,0 +1,16 @@
+package com.rongwei.sfcommon.sys.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwe.scentity.domian.AspSafetyMeeting;
+
+
+/**
+ * 安全会议
+ */
+public interface AspSafetyMeetingService extends IService<AspSafetyMeeting> {
+
+
+    void reportMessage();
+
+}
+

+ 7 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/AspSafetyPerformanceAppraisalDetailService.java

@@ -0,0 +1,7 @@
+package com.rongwei.sfcommon.sys.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwe.scentity.domian.AspSafetyPerformanceAppraisalDetail;
+
+public interface AspSafetyPerformanceAppraisalDetailService extends IService<AspSafetyPerformanceAppraisalDetail> {
+}

+ 10 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/AspSafetyPerformanceAppraisalService.java

@@ -0,0 +1,10 @@
+package com.rongwei.sfcommon.sys.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwe.scentity.domian.AspSafetyPerformanceAppraisal;
+import com.rongwei.rwcommon.base.R;
+import org.springframework.web.multipart.MultipartFile;
+
+public interface AspSafetyPerformanceAppraisalService extends IService<AspSafetyPerformanceAppraisal> {
+    R importFile(MultipartFile file, String type);
+}

+ 8 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/AspSafetyProductObjectiveResultScoreDetailService.java

@@ -0,0 +1,8 @@
+package com.rongwei.sfcommon.sys.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwe.scentity.domian.AspSafetyProductObjective;
+import com.rongwe.scentity.domian.AspSafetyProductObjectiveResultScoreDetail;
+
+public interface AspSafetyProductObjectiveResultScoreDetailService extends IService<AspSafetyProductObjectiveResultScoreDetail> {
+}

+ 8 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/AspSafetyProductObjectiveResultService.java

@@ -0,0 +1,8 @@
+package com.rongwei.sfcommon.sys.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwe.scentity.domian.AspSafetyProductObjective;
+import com.rongwe.scentity.domian.AspSafetyProductObjectiveResult;
+
+public interface AspSafetyProductObjectiveResultService extends IService<AspSafetyProductObjectiveResult> {
+}

+ 8 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/AspSafetyProductObjectiveScoreDetailService.java

@@ -0,0 +1,8 @@
+package com.rongwei.sfcommon.sys.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwe.scentity.domian.AspSafetyProductObjective;
+import com.rongwe.scentity.domian.AspSafetyProductObjectiveScoreDetail;
+
+public interface AspSafetyProductObjectiveScoreDetailService extends IService<AspSafetyProductObjectiveScoreDetail> {
+}

+ 16 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/AspSafetyProductObjectiveService.java

@@ -0,0 +1,16 @@
+package com.rongwei.sfcommon.sys.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwe.scentity.domian.AspSafetyProductObjective;
+
+import java.util.List;
+import java.util.Map;
+
+public interface AspSafetyProductObjectiveService extends IService<AspSafetyProductObjective> {
+    void safetyResult();
+
+    /**
+     * 安全观察指标提醒
+     */
+    void reportObservationConfig(List<String> list);
+}

+ 12 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/AspSpecialEquipmentCertificateService.java

@@ -0,0 +1,12 @@
+package com.rongwei.sfcommon.sys.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwe.scentity.domian.AspSpecialEquipmentCertificateDo;
+import com.rongwei.rwcommon.base.R;
+
+/**
+ *
+ */
+public interface AspSpecialEquipmentCertificateService extends IService<AspSpecialEquipmentCertificateDo> {
+    R stateUpdateScheduledTasks();
+}

+ 17 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/CheckItemContentService.java

@@ -0,0 +1,17 @@
+package com.rongwei.sfcommon.sys.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwe.scentity.domian.CheckItemContentDo;
+
+
+/**
+ * 检查项内容
+ *
+ * @author chglee
+ * @email 1992lcg@163.com
+ * @date 2020-08-03 19:02:04
+ */
+public interface CheckItemContentService extends IService<CheckItemContentDo> {
+
+}
+

+ 27 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/CheckItemsDutyuserService.java

@@ -0,0 +1,27 @@
+package com.rongwei.sfcommon.sys.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwe.scentity.domian.CheckItemsDutyuserDo;
+import com.rongwe.scentity.vo.CheckItemsVo;
+import com.rongwei.rwadmincommon.system.vo.SysUserVo;
+
+import java.util.List;
+
+
+/**
+ * 设备责任人表
+ *
+ * @author chglee
+ * @email 1992lcg@163.com
+ * @date 2020-08-21 15:34:06
+ */
+public interface CheckItemsDutyuserService extends IService<CheckItemsDutyuserDo> {
+
+    List<CheckItemsVo> getCheckItemsByUserId(String userId);
+
+    void unbindCheckItemsByUseridAndCheckItemsIds(String userid, String checkItemsIds);
+
+    List<CheckItemsDutyuserDo> bindCheckItemsByUserAndCheckItemsIds(SysUserVo sysUserVo, String checkItemsIds);
+
+}
+

+ 17 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/CheckItemsPartsService.java

@@ -0,0 +1,17 @@
+package com.rongwei.sfcommon.sys.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwe.scentity.domian.CheckItemsPartsDo;
+
+
+/**
+ * @author chglee
+ * @email 1992lcg@163.com
+ * @date 2020-08-04 18:39:10
+ */
+public interface CheckItemsPartsService extends IService<CheckItemsPartsDo> {
+
+    void partExpireWarn();
+
+}
+

+ 32 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/CheckItemsService.java

@@ -0,0 +1,32 @@
+package com.rongwei.sfcommon.sys.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwe.scentity.domian.CheckItemsDo;
+import com.rongwei.rwcommon.base.R;
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 检查对象表
+ *
+ * @author chglee
+ * @email 1992lcg@163.com
+ * @date 2020-07-17 09:33:23
+ */
+public interface CheckItemsService extends IService<CheckItemsDo> {
+
+    String deleteValidate(List<String> ids);
+
+    IPage<CheckItemsDo> spareList(Page page);
+
+    void reportEquMessage();
+
+    R stateUpdateScheduledTasks();
+
+    R importExcel(Map<String, String> queryParameter);
+}
+

+ 26 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/CheckTemplateItemsService.java

@@ -0,0 +1,26 @@
+package com.rongwei.sfcommon.sys.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwe.scentity.domian.CheckItemContentDo;
+import com.rongwe.scentity.domian.CheckTemplateItemsDo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 检查模板检查项明细表
+ *
+ * @author chglee
+ * @email 1992lcg@163.com
+ * @date 2020-07-17 09:33:23
+ */
+public interface CheckTemplateItemsService extends IService<CheckTemplateItemsDo> {
+
+    List<CheckTemplateItemsDo> getItemByContentId(List<String> ids);
+
+    void templateItemsDeleteResolve(List<String> ids);
+
+    void updateTemplateContent(CheckItemContentDo checkItemContent);
+
+}
+

+ 28 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/CheckTemplateService.java

@@ -0,0 +1,28 @@
+package com.rongwei.sfcommon.sys.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwe.scentity.domian.CheckTemplateDo;
+import com.rongwe.scentity.vo.CheckTemplateVo;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 检查模板表
+ *
+ * @author chglee
+ * @email 1992lcg@163.com
+ * @date 2020-07-17 09:33:23
+ */
+public interface CheckTemplateService extends IService<CheckTemplateDo> {
+
+    CheckTemplateVo mapToCheckTemplateVo(Map<String, Object> map);
+
+    void saveByVersion(CheckTemplateVo checkTemplateVo);
+
+    void pointCheckCreate(Map<String, Object> map);
+
+    void updateStatusByHiId(Map<String, Object> map);
+
+}
+

+ 9 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/DataXApiService.java

@@ -0,0 +1,9 @@
+package com.rongwei.sfcommon.sys.service;
+
+public interface DataXApiService {
+
+    Integer getWarnLevel();
+
+    void outDataSyn();
+
+}

+ 25 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/EasyExcelService.java

@@ -0,0 +1,25 @@
+package com.rongwei.sfcommon.sys.service;
+
+
+import java.io.InputStream;
+
+/**
+ * easyexcel导出
+ *
+ * @author 往事,优雅而已
+ * @date 2019-07-27
+ */
+public interface EasyExcelService {
+
+
+    /**
+     * 获取模板、或附件路径
+     *
+     * @param type
+     * @param fileName
+     * @return
+     */
+    InputStream getFilePath(Integer type, String fileName);
+
+
+}

+ 18 - 0
js-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();
+}

+ 20 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/HiddenDangerTaskService.java

@@ -0,0 +1,20 @@
+package com.rongwei.sfcommon.sys.service;
+
+import com.rongwei.rwcommon.base.R;
+
+import java.util.Map;
+
+/**
+ * HiddenDangerTaskService class
+ *
+ * @author XH
+ * @date 2023/10/20
+ */
+public interface HiddenDangerTaskService {
+
+    R rectificationMail(Map<String, String> map);
+
+    void verifyMail();
+
+    R sendBackMail(Map<String, String> map);
+}

+ 36 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/HiddenDangerTrackService.java

@@ -0,0 +1,36 @@
+package com.rongwei.sfcommon.sys.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwe.scentity.domian.HiddenDangerTrackDo;
+import com.rongwe.scentity.vo.HiddenDangerTrackVo;
+import com.rongwei.rwcommon.base.QueryPar;
+import com.rongwei.rwcommon.base.R;
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 隐患跟踪表
+ *
+ * @author chglee
+ * @email 1992lcg@163.com
+ * @date 2020-08-04 18:39:10
+ */
+public interface HiddenDangerTrackService extends IService<HiddenDangerTrackDo> {
+
+    void limitedRectificationWarn();
+
+    IPage<HiddenDangerTrackVo> checkTaskList(QueryPar<Map<String, Object>> queryMap);
+
+    void sendMailAfterClose(Map<String, Object> dataMap);
+
+    List<Map<String, Object>> getAllDeptZGSPA();
+
+    Map<String, Object> getTrackUserRoles(List<String> ids);
+
+    R sendMailTostalker(Map<String, Object> dataMap);
+
+}
+

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

@@ -0,0 +1,18 @@
+package com.rongwei.sfcommon.sys.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwe.scentity.domian.PointCheckItemDo;
+
+import java.util.List;
+
+/**
+ * 点检任务明细表
+ *
+ * @author chglee
+ * @email 1992lcg@163.com
+ * @date 2020-07-17 09:33:23
+ */
+public interface PointCheckItemService extends IService<PointCheckItemDo> {
+    List<PointCheckItemDo> getListByPointCheckId(String pointCheckId);
+}
+

+ 36 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/PointCheckService.java

@@ -0,0 +1,36 @@
+package com.rongwei.sfcommon.sys.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwe.scentity.domian.PointCheckDo;
+import com.rongwe.scentity.vo.PointCheckVo;
+import com.rongwei.rwcommon.base.QueryPar;
+
+import java.util.Map;
+
+/**
+ * 点检任务表
+ *
+ * @author chglee
+ * @email 1992lcg@163.com
+ * @date 2020-07-17 09:33:23
+ */
+public interface PointCheckService extends IService<PointCheckDo> {
+
+    IPage<PointCheckVo> pointCheckList(QueryPar<PointCheckVo> pointCheckVo);
+
+    IPage<PointCheckVo> notPointCheckList(QueryPar<PointCheckVo> pointCheckVo);
+
+    void createHiddenDangerTask(Map<String, Object> map);
+
+    PointCheckVo ydPointCheckInfo(PointCheckDo pointCheckDo);
+
+    PointCheckVo queryLastCheckInfo(String pointCheckId);
+
+    void pointCheckSave(PointCheckVo pointCheckVo);
+
+    void pintCheckDelayReminder();
+
+    IPage<PointCheckVo> sparePointCheckList(QueryPar<PointCheckVo> pointCheckVo);
+}
+

+ 36 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/SafeCheckSendNotifyService.java

@@ -0,0 +1,36 @@
+package com.rongwei.sfcommon.sys.service;
+
+import com.rongwei.rwcommon.base.R;
+
+import java.util.Map;
+
+/**
+ * SendNotifyService class
+ *
+ * @author XH
+ * @date 2023/12/15
+ */
+public interface SafeCheckSendNotifyService {
+
+    /**
+     * 检查任务
+     */
+    void inspectionTasks();
+
+
+    R sendDangerousTimelyNotify(String id);
+
+
+    void rectificationSystem();
+
+    void verifySystem();
+
+    void affirmSystem();
+
+    R sendBackSystem(Map<String, String> map);
+
+    R submitSystem(Map<String, String> map);
+
+
+    R hiddenDangerTask();
+}

+ 19 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/SafetyObservationService.java

@@ -0,0 +1,19 @@
+package com.rongwei.sfcommon.sys.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwe.scentity.domian.SafetyObservationDo;
+
+/**
+ * 安全观察表
+ *
+ * @author chglee
+ * @email 1992lcg@163.com
+ * @date 2020-09-11 14:21:07
+ */
+public interface SafetyObservationService extends IService<SafetyObservationDo> {
+
+    int countSafe();
+
+
+}
+

+ 25 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/SaveCheckItemService.java

@@ -0,0 +1,25 @@
+package com.rongwei.sfcommon.sys.service;
+
+import com.rongwe.scentity.domian.AspCheckDiscoveryItemDo;
+import com.rongwe.scentity.domian.ThemeCheckDo;
+import com.rongwe.scentity.domian.ThemeCheckItemDo;
+import com.rongwei.rwcommon.base.R;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.CompletableFuture;
+
+
+/**
+ * SaveCheckItemService class
+ *
+ * @author XH
+ * @date 2023/10/18
+ */
+
+public interface SaveCheckItemService {
+
+    R checkItemSave(Map<String, String> parameter);
+
+}

+ 17 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/ThemeCheckContentService.java

@@ -0,0 +1,17 @@
+package com.rongwei.sfcommon.sys.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwe.scentity.domian.ThemeCheckContentDo;
+
+
+/**
+ * 主题检查检查任务的检查内容明细表
+ *
+ * @author chglee
+ * @email 1992lcg@163.com
+ * @date 2020-07-17 09:33:23
+ */
+public interface ThemeCheckContentService extends IService<ThemeCheckContentDo> {
+
+}
+

+ 31 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/ThemeCheckItemService.java

@@ -0,0 +1,31 @@
+package com.rongwei.sfcommon.sys.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwe.scentity.domian.ThemeCheckItemDo;
+import com.rongwe.scentity.vo.ThemeCheckItemVo;
+import com.rongwei.rwcommon.base.QueryPar;
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 主题检查检查任务表
+ *
+ * @author chglee
+ * @email 1992lcg@163.com
+ * @date 2020-07-17 09:33:23
+ */
+public interface ThemeCheckItemService extends IService<ThemeCheckItemDo> {
+
+    IPage<ThemeCheckItemVo> themeCheckList(QueryPar<ThemeCheckItemVo> themeCheckItemVo);
+
+    ThemeCheckItemVo themeCheckInfo(ThemeCheckItemVo themeCheckItemVo);
+
+    void themeCheckSave(ThemeCheckItemVo themeCheckItemVo);
+
+    void createHiddenDangerTask(Map<String, Object> map);
+
+}
+

+ 38 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/ThemeCheckService.java

@@ -0,0 +1,38 @@
+package com.rongwei.sfcommon.sys.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwe.scentity.domian.ThemeCheckDo;
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 专项检查和每天检查表
+ *
+ * @author chglee
+ * @email 1992lcg@163.com
+ * @date 2020-07-17 09:33:23
+ */
+public interface ThemeCheckService extends IService<ThemeCheckDo> {
+
+    void themeCheckSplit(Map<String, Object> map);
+
+    void sendMailByCheckId(String themeCheckId);
+
+    void dayCheckCreateTask();
+
+    void weekChecksafeTask();
+
+    /**
+     * 查询未生成任务的检查模板
+     *
+     * @param createTask
+     * @return {@link List< ThemeCheckDo>}
+     * @date 2023/12/27 13:44
+     * @author shangmi
+     */
+
+    List<ThemeCheckDo> getListByCreateTask(int createTask);
+}
+

+ 28 - 0
js-safe-check/cx-save-check-common/src/main/java/com/rongwei/sfcommon/sys/service/ThemeCheckWorkparkService.java

@@ -0,0 +1,28 @@
+package com.rongwei.sfcommon.sys.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwe.scentity.domian.ThemeCheckWorkparkDo;
+
+import java.util.List;
+
+
+/**
+ * 主题检查工段明细表
+ *
+ * @author chglee
+ * @email 1992lcg@163.com
+ * @date 2020-07-17 09:33:23
+ */
+public interface ThemeCheckWorkparkService extends IService<ThemeCheckWorkparkDo> {
+
+    /**
+     * 根据themeCheckIds查询集合
+     *
+     * @param themeCheckIdList
+     * @return {@link List< ThemeCheckWorkparkDo>}
+     * @date 2023/12/27 13:43
+     * @author shangmi
+     */
+    List<ThemeCheckWorkparkDo> getListBytheneCheckIds(List<String> themeCheckIdList);
+}
+

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


Some files were not shown because too many files changed in this diff