Browse Source

Merge remote-tracking branch 'origin/master'

xiahan 11 months ago
parent
commit
3b07161e4f
17 changed files with 1071 additions and 26 deletions
  1. 8 0
      js-security/security-common/src/main/java/com/rongwei/sfcommon/sys/dao/AspAnnouncementBoardLargeScreenDao.java
  2. 106 0
      js-security/security-common/src/main/java/com/rongwei/sfcommon/sys/dao/AspBoardLargeManualMaintenanceDao.java
  3. 12 0
      js-security/security-common/src/main/java/com/rongwei/sfcommon/sys/dao/DepartmentAndPersonnelDao.java
  4. 18 0
      js-security/security-common/src/main/java/com/rongwei/sfcommon/sys/service/AspAnnouncementBoardLargeScreenService.java
  5. 10 0
      js-security/security-common/src/main/java/com/rongwei/sfcommon/sys/service/DepartmentAndPersonnelService.java
  6. 123 0
      js-security/security-common/src/main/java/com/rongwei/sfcommon/sys/service/impl/AspAnnouncementBoardLargeScreenServiceImpl.java
  7. 213 0
      js-security/security-common/src/main/java/com/rongwei/sfcommon/sys/service/impl/DepartmentAndPersonnelServiceImpl.java
  8. 17 0
      js-security/security-common/src/main/resources/mybatis/DepartmentAndPersonnelDao.xml
  9. 262 0
      js-security/security-entity/src/main/java/com/rongwe/scentity/domian/AspAnnouncementBoardLargeScreenDo.java
  10. 148 0
      js-security/security-entity/src/main/java/com/rongwe/scentity/domian/AspBoardLargeManualMaintenanceDo.java
  11. 18 0
      js-security/security-entity/src/main/java/com/rongwe/scentity/vo/BaoAnShiDaPingDataVo.java
  12. 18 0
      js-security/security-entity/src/main/java/com/rongwe/scentity/vo/DepartmentAndPersonnelReq.java
  13. 25 0
      js-security/security-entity/src/main/java/com/rongwe/scentity/vo/DepartmentVo.java
  14. 22 0
      js-security/security-entity/src/main/java/com/rongwe/scentity/vo/PersonnelVo.java
  15. 32 0
      js-security/security-server/src/main/java/com/rongwei/savecheck/controller/DepartmentAndPersonnelController.java
  16. 39 0
      js-security/security-server/src/main/java/com/rongwei/savecheck/controller/LargeScreenController.java
  17. 0 26
      js-training/training-common/src/main/java/com/rongwei/trainingcommon/sys/dao/DangerousDao.java

+ 8 - 0
js-security/security-common/src/main/java/com/rongwei/sfcommon/sys/dao/AspAnnouncementBoardLargeScreenDao.java

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

+ 106 - 0
js-security/security-common/src/main/java/com/rongwei/sfcommon/sys/dao/AspBoardLargeManualMaintenanceDao.java

@@ -0,0 +1,106 @@
+package com.rongwei.sfcommon.sys.dao;
+
+import com.rongwe.scentity.domian.AspBoardLargeManualMaintenanceDo;
+import com.rongwe.scentity.vo.BaoAnShiDaPingDataVo;
+import com.rongwei.rwcommon.base.BaseDao;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
+
+public interface AspBoardLargeManualMaintenanceDao extends BaseDao<AspBoardLargeManualMaintenanceDo> {
+    @Select("WITH RankedRecords AS (\n" +
+            "    SELECT \n" +
+            "        *,\n" +
+            "        ROW_NUMBER() OVER (PARTITION BY TENANTID ORDER BY MODIFYDATE DESC) AS rn\n" +
+            "    FROM\n" +
+            "        asp_board_large_manual_maintenance\n" +
+            "    WHERE\n" +
+            "        DELETED = '0' \n" +
+            "\t\t\t\tAND ISITENABLED = 'y'\n" +
+            ")\n" +
+            "SELECT\n" +
+            "    *\n" +
+            "FROM\n" +
+            "    RankedRecords\n" +
+            "WHERE\n" +
+            "    rn = 1;")
+    List<AspBoardLargeManualMaintenanceDo> getLastest();
+
+    @Select("WITH RankedRecords AS (\n" +
+            "    SELECT \n" +
+            "        *,\n" +
+            "        ROW_NUMBER() OVER (PARTITION BY TENANTID ORDER BY MODIFYDATE DESC) AS rn\n" +
+            "    FROM\n" +
+            "        asp_board_large_manual_maintenance\n" +
+            "    WHERE\n" +
+            "        DELETED = '0'  AND TENANTID = #{tenantId}\n" +
+            "\t\t\t\tAND ISITENABLED = 'y'\n" +
+            ")\n" +
+            "SELECT\n" +
+            "    *\n" +
+            "FROM\n" +
+            "    RankedRecords\n" +
+            "WHERE\n" +
+            "    rn = 1;")
+    List<AspBoardLargeManualMaintenanceDo> getLastestByTenantId(String tenantId);
+
+    @Select("SELECT \n" +
+            "    dhzy.dhzycount, \n" +
+            "    tjdhzy.tjdhzycount,\n" +
+            "\t\tyjdhzy.yjdhzycount,\n" +
+            "\t\tejdhzy.ejdhzycount,\n" +
+            "\t\tsxkjzy.sxkjzycount,\n" +
+            "\t\tlsydzy.lsydzycount,\n" +
+            "\t\tgczy.gczycount,\n" +
+            "\t\tdzzy.dzzycount,\n" +
+            "\t\tmbcdzy.mbcdzycount,\n" +
+            "\t\tdtzy.dtzycount,\n" +
+            "\t\tdlzz.dlzzcount\n" +
+            "FROM \n" +
+            "    (SELECT COUNT(*) AS dhzycount\n" +
+            "     FROM asp_dhzy \n" +
+            "     WHERE DELETED = 0 AND DQZT = '3' AND TENANTID = #{tenantId} AND DATE(ZYSQSJ) = CURDATE()) AS dhzy\n" +
+            "CROSS JOIN \n" +
+            "    (SELECT COUNT(*) AS tjdhzycount \n" +
+            "     FROM asp_dhzy \n" +
+            "     WHERE DELETED = 0 AND DQZT = '3' AND TENANTID = #{tenantId} AND DATE(ZYSQSJ) = CURDATE() AND DHZYJB = '1') AS tjdhzy\n" +
+            "CROSS JOIN \n" +
+            "    (SELECT COUNT(*) AS yjdhzycount \n" +
+            "     FROM asp_dhzy \n" +
+            "     WHERE DELETED = 0 AND DQZT = '3' AND TENANTID = #{tenantId} AND DATE(ZYSQSJ) = CURDATE() AND DHZYJB = '2') AS yjdhzy\n" +
+            "CROSS JOIN \n" +
+            "    (SELECT COUNT(*) AS ejdhzycount \n" +
+            "     FROM asp_dhzy \n" +
+            "     WHERE DELETED = 0 AND DQZT = '3' AND TENANTID = #{tenantId} AND DATE(ZYSQSJ) = CURDATE() AND DHZYJB = '3') AS ejdhzy\n" +
+            "CROSS JOIN \n" +
+            "    (SELECT COUNT(*) AS sxkjzycount \n" +
+            "     FROM asp_sxkjzy \n" +
+            "     WHERE DELETED = 0 AND DQZT = '3' AND TENANTID = #{tenantId} AND DATE(ZYSQSJ) = CURDATE()) AS sxkjzy\n" +
+            "CROSS JOIN \n" +
+            "    (SELECT COUNT(*) AS lsydzycount \n" +
+            "     FROM asp_lsydzy\n" +
+            "     WHERE DELETED = 0 AND DQZT = '3' AND TENANTID = #{tenantId} AND DATE(ZYSQSJ) = CURDATE()) AS lsydzy\n" +
+            "CROSS JOIN \n" +
+            "    (SELECT COUNT(*) AS gczycount \n" +
+            "     FROM asp_gczy \n" +
+            "     WHERE DELETED = 0 AND DQZT = '3' AND TENANTID = #{tenantId} AND DATE(ZYSQSJ) = CURDATE()) AS gczy\n" +
+            "CROSS JOIN \n" +
+            "    (SELECT COUNT(*) AS dzzycount \n" +
+            "     FROM asp_dzzy\n" +
+            "     WHERE DELETED = 0 AND DQZT = '3' AND TENANTID = #{tenantId} AND DATE(ZYSQSJ) = CURDATE()) AS dzzy\n" +
+            "CROSS JOIN \n" +
+            "    (SELECT COUNT(*) AS mbcdzycount \n" +
+            "     FROM asp_mbcdzy\n" +
+            "     WHERE DELETED = 0 AND DQZT = '3' AND TENANTID = #{tenantId} AND DATE(ZYSQSJ) = CURDATE()) AS mbcdzy\n" +
+            "CROSS JOIN \n" +
+            "    (SELECT COUNT(*) AS dtzycount \n" +
+            "     FROM asp_dtzy\n" +
+            "     WHERE DELETED = 0 AND DQZT = '3' AND TENANTID = #{tenantId} AND DATE(ZYSQSJ) = CURDATE()) AS dtzy\n" +
+            "CROSS JOIN \n" +
+            "    (SELECT COUNT(*) AS dlzzcount \n" +
+            "     FROM asp_dlzz \n" +
+            "     WHERE DELETED = 0 AND DQZT = '3' AND TENANTID = #{tenantId} AND DATE(ZYSQSJ) = CURDATE()) AS dlzz;")
+    BaoAnShiDaPingDataVo getDaPingData(String tenantId);
+
+
+}

+ 12 - 0
js-security/security-common/src/main/java/com/rongwei/sfcommon/sys/dao/DepartmentAndPersonnelDao.java

@@ -0,0 +1,12 @@
+package com.rongwei.sfcommon.sys.dao;
+
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface DepartmentAndPersonnelDao {
+
+    void deleteOrgByIds(@Param("deleteDepartIdList") List<String> deleteDepartIdList);
+
+    void deleteUserById(@Param("deleteUserIdList") List<String> deleteUserIdList);
+}

+ 18 - 0
js-security/security-common/src/main/java/com/rongwei/sfcommon/sys/service/AspAnnouncementBoardLargeScreenService.java

@@ -0,0 +1,18 @@
+package com.rongwei.sfcommon.sys.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwe.scentity.domian.AspAnnouncementBoardLargeScreenDo;
+
+/**
+ * AspCheckDiscoveryItemService class
+ *
+ * @author XH
+ * @date 2023/10/12
+ */
+public interface AspAnnouncementBoardLargeScreenService extends IService<AspAnnouncementBoardLargeScreenDo> {
+    void announcement();
+
+    void announcementByTenantId(String tenantId);
+
+
+}

+ 10 - 0
js-security/security-common/src/main/java/com/rongwei/sfcommon/sys/service/DepartmentAndPersonnelService.java

@@ -0,0 +1,10 @@
+package com.rongwei.sfcommon.sys.service;
+
+import com.rongwei.rwcommon.base.R;
+import com.rongwe.scentity.vo.DepartmentAndPersonnelReq;
+
+public interface DepartmentAndPersonnelService {
+
+    R departmentAndPersonnel(DepartmentAndPersonnelReq req);
+}
+

+ 123 - 0
js-security/security-common/src/main/java/com/rongwei/sfcommon/sys/service/impl/AspAnnouncementBoardLargeScreenServiceImpl.java

@@ -0,0 +1,123 @@
+package com.rongwei.sfcommon.sys.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.rongwe.scentity.domian.AspAnnouncementBoardLargeScreenDo;
+import com.rongwe.scentity.domian.AspBoardLargeManualMaintenanceDo;
+import com.rongwe.scentity.vo.BaoAnShiDaPingDataVo;
+import com.rongwei.rwcommon.utils.SecurityUtil;
+import com.rongwei.sfcommon.sys.dao.AspAnnouncementBoardLargeScreenDao;
+import com.rongwei.sfcommon.sys.dao.AspBoardLargeManualMaintenanceDao;
+import com.rongwei.sfcommon.sys.service.AspAnnouncementBoardLargeScreenService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+@Service
+public class AspAnnouncementBoardLargeScreenServiceImpl extends ServiceImpl<AspAnnouncementBoardLargeScreenDao, AspAnnouncementBoardLargeScreenDo> implements AspAnnouncementBoardLargeScreenService {
+    private static final Logger logger = LoggerFactory.getLogger(CheckTemplateServiceImpl.class);
+
+    @Autowired
+    private AspBoardLargeManualMaintenanceDao aspBoardLargeManualMaintenanceDao;
+
+    @Override
+    public void announcement() {
+        logger.info("开始定时生成公告栏数据.....");
+        //获取表asp_board_large_manual_maintenance数据
+        List<AspBoardLargeManualMaintenanceDo> list = aspBoardLargeManualMaintenanceDao.getLastest();
+        if(list.size() > 0){
+            //遍历 list  根据其中字段tenantid 去asp_announcement_board_large_screen 表中保存数据
+            for(AspBoardLargeManualMaintenanceDo item : list){
+                AspAnnouncementBoardLargeScreenDo boardLargeScreenDo = new AspAnnouncementBoardLargeScreenDo();
+                boardLargeScreenDo.setId(SecurityUtil.getUUID());
+                boardLargeScreenDo.setTenantid(item.getTenantid());
+                //修改时间 date 类型
+                boardLargeScreenDo.setModifydate(new Date());
+                //创建时间
+                boardLargeScreenDo.setCreatedate(new Date());
+                //创建人
+                boardLargeScreenDo.setCreateuserid("系统生产");
+                //修改人
+                boardLargeScreenDo.setModifyuserid("系统生产");
+                //手动维护数据
+                boardLargeScreenDo.setShengchanzhuangzhi(item.getShengchanzhuangzhi());
+                boardLargeScreenDo.setYunxingzhong(item.getYunxingzhong());
+                boardLargeScreenDo.setTingchan(item.getTingchan());
+                boardLargeScreenDo.setJianxiu(item.getJianxiu());
+                boardLargeScreenDo.setGongshishenming(item.getGongshishenming());
+
+                boardLargeScreenDo.setShifoupanshichishengchan(item.getShifoupanshichishengchan());
+                boardLargeScreenDo.setShifoupankaidingtingche(item.getShifoupankaidingtingche());
+                boardLargeScreenDo.setGuanqucangkudazhongweixianyuanshifouanquan(item.getGuanqucangkudazhongweixianyuanshifouanquan());
+
+                //计算数据
+                BaoAnShiDaPingDataVo dataVo = aspBoardLargeManualMaintenanceDao.getDaPingData(item.getTenantid());
+                boardLargeScreenDo.setDonghuozuoye(dataVo.getDhzyCount());
+                boardLargeScreenDo.setDonghuozuoyeshengqiteshuzuoyeshu(dataVo.getTjdhzyCount());
+                boardLargeScreenDo.setDonghuozuoyeyijishu(dataVo.getYjdhzyCount());
+                boardLargeScreenDo.setDonghuozuoyeerjishu(dataVo.getEjdhzyCount());
+                boardLargeScreenDo.setShuxiankongjianzuoye(dataVo.getSxkjzyCount());
+                boardLargeScreenDo.setLinshiyongdianzuoye(dataVo.getLsydzyCount());
+                boardLargeScreenDo.setGaochuzuoye(dataVo.getGczyCount());
+                boardLargeScreenDo.setDiaozhuangzuoye(dataVo.getDzzyCount());
+                boardLargeScreenDo.setMangbanchouduzuoye(dataVo.getMbcdzyCount());
+                boardLargeScreenDo.setDongtuzuoye(dataVo.getDtzyCount());
+                boardLargeScreenDo.setDuanluzuoye(dataVo.getDlzzCount());
+                //生成数据插入到表中
+                this.save(boardLargeScreenDo);
+            }
+        }
+    }
+
+
+    public void announcementByTenantId(String tenantId) {
+        logger.info("开始定时生成公告栏数据.....");
+        //获取表asp_board_large_manual_maintenance数据
+        List<AspBoardLargeManualMaintenanceDo> listByTenantId = aspBoardLargeManualMaintenanceDao.getLastestByTenantId(tenantId);
+        if(listByTenantId.size() > 0){
+            //遍历 list  根据其中字段tenantid 去asp_announcement_board_large_screen 表中保存数据
+            for(AspBoardLargeManualMaintenanceDo item : listByTenantId){
+                AspAnnouncementBoardLargeScreenDo boardLargeScreenDo = new AspAnnouncementBoardLargeScreenDo();
+                boardLargeScreenDo.setId(SecurityUtil.getUUID());
+                boardLargeScreenDo.setTenantid(item.getTenantid());
+                //修改时间 date 类型
+                boardLargeScreenDo.setModifydate(new Date());
+                //创建时间
+                boardLargeScreenDo.setCreatedate(new Date());
+                //创建人
+                boardLargeScreenDo.setCreateuserid("系统生产");
+                //修改人
+                boardLargeScreenDo.setModifyuserid("系统生产");
+                //手动维护数据
+                boardLargeScreenDo.setShengchanzhuangzhi(item.getShengchanzhuangzhi());
+                boardLargeScreenDo.setYunxingzhong(item.getYunxingzhong());
+                boardLargeScreenDo.setTingchan(item.getTingchan());
+                boardLargeScreenDo.setJianxiu(item.getJianxiu());
+                boardLargeScreenDo.setGongshishenming(item.getGongshishenming());
+
+                boardLargeScreenDo.setShifoupanshichishengchan(item.getShifoupanshichishengchan());
+                boardLargeScreenDo.setShifoupankaidingtingche(item.getShifoupankaidingtingche());
+                boardLargeScreenDo.setGuanqucangkudazhongweixianyuanshifouanquan(item.getGuanqucangkudazhongweixianyuanshifouanquan());
+
+                //计算数据
+                BaoAnShiDaPingDataVo dataVo = aspBoardLargeManualMaintenanceDao.getDaPingData(item.getTenantid());
+                boardLargeScreenDo.setDonghuozuoye(dataVo.getDhzyCount());
+                boardLargeScreenDo.setDonghuozuoyeshengqiteshuzuoyeshu(dataVo.getTjdhzyCount());
+                boardLargeScreenDo.setDonghuozuoyeyijishu(dataVo.getYjdhzyCount());
+                boardLargeScreenDo.setDonghuozuoyeerjishu(dataVo.getEjdhzyCount());
+                boardLargeScreenDo.setShuxiankongjianzuoye(dataVo.getSxkjzyCount());
+                boardLargeScreenDo.setLinshiyongdianzuoye(dataVo.getLsydzyCount());
+                boardLargeScreenDo.setGaochuzuoye(dataVo.getGczyCount());
+                boardLargeScreenDo.setDiaozhuangzuoye(dataVo.getDzzyCount());
+                boardLargeScreenDo.setMangbanchouduzuoye(dataVo.getMbcdzyCount());
+                boardLargeScreenDo.setDongtuzuoye(dataVo.getDtzyCount());
+                boardLargeScreenDo.setDuanluzuoye(dataVo.getDlzzCount());
+                //生成数据插入到表中
+                this.save(boardLargeScreenDo);
+            }
+        }
+    }
+}

+ 213 - 0
js-security/security-common/src/main/java/com/rongwei/sfcommon/sys/service/impl/DepartmentAndPersonnelServiceImpl.java

@@ -0,0 +1,213 @@
+package com.rongwei.sfcommon.sys.service.impl;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.rongwe.scentity.vo.DepartmentAndPersonnelReq;
+import com.rongwe.scentity.vo.DepartmentVo;
+import com.rongwe.scentity.vo.PersonnelVo;
+import com.rongwei.rwadmincommon.system.domain.SysOrganizationDo;
+import com.rongwei.rwadmincommon.system.domain.SysUserDo;
+import com.rongwei.rwadmincommon.system.domain.SysUserOrgDo;
+import com.rongwei.rwadmincommon.system.domain.SysUserRoleDo;
+import com.rongwei.rwadmincommon.system.service.SysOrganizationService;
+import com.rongwei.rwadmincommon.system.service.SysUserOrgService;
+import com.rongwei.rwadmincommon.system.service.SysUserRoleService;
+import com.rongwei.rwadmincommon.system.service.SysUserService;
+import com.rongwei.rwcommon.base.R;
+import com.rongwei.rwcommon.utils.SecurityUtil;
+import com.rongwei.sfcommon.sys.dao.DepartmentAndPersonnelDao;
+import com.rongwei.sfcommon.sys.service.DepartmentAndPersonnelService;
+import lombok.extern.log4j.Log4j2;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.LinkedList;
+import java.util.List;
+
+@Service
+@Log4j2
+public class DepartmentAndPersonnelServiceImpl implements DepartmentAndPersonnelService {
+    @Autowired
+    private SysOrganizationService sysOrganizationService;
+    @Autowired
+    private SysUserService sysUserService;
+    @Autowired
+    private SysUserOrgService sysUserOrgService;
+    @Autowired
+    private SysUserRoleService sysUserRoleService;
+    @Resource
+    private DepartmentAndPersonnelDao departmentAndPersonnelDao;
+
+    @Override
+    public R departmentAndPersonnel(DepartmentAndPersonnelReq req) {
+        //部门数据
+        List<DepartmentVo> departmentList = req.getDepartmentList();
+        log.info("接收到部门数据:{}条", departmentList.size());
+        //员工数据
+        List<PersonnelVo> personnelList = req.getPersonnelList();
+        log.info("接收到员工数据:{}条", personnelList.size());
+
+        List<SysOrganizationDo> insertDepartList = new LinkedList<>();
+        List<SysOrganizationDo> updateDepartList = new LinkedList<>();
+        List<String> deleteDepartIdList = new LinkedList<>();
+        //=======================开始处理部门数据======================
+        if (ObjectUtil.isNotEmpty(departmentList)) {
+            //查询本系统中已有的部门信息
+            List<SysOrganizationDo> sysOrganizationDoList = sysOrganizationService.list();
+            //遍历入参部门 判断新增、修改、删除
+
+            for (DepartmentVo departmentVo : departmentList) {
+                //筛选部门ID
+                SysOrganizationDo sysOrganizationDo = sysOrganizationDoList.stream().filter(item -> item.getId().equals(departmentVo.getDepartmentid())).findFirst().orElse(null);
+                //如果不存在 并且没有被冻结使用,则新增
+                if (ObjectUtil.isEmpty(sysOrganizationDo) && departmentVo.getCanceled() != 1) {
+                    SysOrganizationDo insertSysOrganization = new SysOrganizationDo();
+                    insertSysOrganization.setId(departmentVo.getDepartmentid());
+                    insertSysOrganization.setCode(departmentVo.getDepartmentcode());
+                    insertSysOrganization.setFullname(departmentVo.getDepartmentname());
+                    insertSysOrganization.setShortname(departmentVo.getDepartmentname());
+                    if (ObjectUtil.isNotEmpty(departmentVo.getSupdepid())) {
+                        insertSysOrganization.setPid(departmentVo.getSupdepid());
+                    } else {
+                        insertSysOrganization.setPid("-1");
+                    }
+                    //TODO:补充平台构造部门字段
+                    insertSysOrganization.setIsleaf("n");
+                    //如果名字中带有“有限公司”
+                    if (departmentVo.getDepartmentname().contains("有限公司")) {
+                        insertSysOrganization.setOrgtype("Branch-Office");
+                    }
+                    insertSysOrganization.setEnabled("y");
+
+                    insertDepartList.add(insertSysOrganization);
+                } else {
+                    //冻结,则删除
+                    if (departmentVo.getCanceled() == 1) {
+                        deleteDepartIdList.add(departmentVo.getDepartmentid());
+                    } else {
+                        sysOrganizationDo.setCode(departmentVo.getDepartmentcode());
+                        sysOrganizationDo.setPid(departmentVo.getSupdepid());
+                        sysOrganizationDo.setFullname(departmentVo.getDepartmentname());
+                        sysOrganizationDo.setShortname(departmentVo.getDepartmentname());
+                        if (ObjectUtil.isNotEmpty(departmentVo.getSupdepid())) {
+                            sysOrganizationDo.setPid(departmentVo.getSupdepid());
+                        } else {
+                            sysOrganizationDo.setPid("-1");
+                        }
+                        //TODO:补充平台构造部门字段
+                        sysOrganizationDo.setIsleaf("n");
+                        //如果名字中带有“有限公司”
+                        if (departmentVo.getDepartmentname().contains("有限公司")) {
+                            sysOrganizationDo.setOrgtype("Branch-Office");
+                        }
+                        sysOrganizationDo.setEnabled("y");
+
+                        updateDepartList.add(sysOrganizationDo);
+                    }
+                }
+            }
+
+        }
+        //=======================开始处理员工数据======================
+        List<SysUserDo> insertUserList = new LinkedList<>();
+        List<SysUserDo> updateUserList = new LinkedList<>();
+        List<String> deleteUserIdList = new LinkedList<>();
+        //员工-部门关系
+        List<String> deleteUserOrgByUserIdList = new LinkedList<>();//根据用户ID批量删除
+        List<SysUserOrgDo> insertUserOrgList = new LinkedList<>();
+        //员工-角色关系(新增的员工,给予一个默认的角色)
+        List<SysUserRoleDo> insertUserRoleList = new LinkedList<>();
+        if (ObjectUtil.isNotEmpty(personnelList)) {
+            //查询本系统中已有的员工数据
+            List<SysUserDo> sysUserDoList = sysUserService.list();
+            for (PersonnelVo personnelVo : personnelList) {
+                SysUserDo sysUserDo = sysUserDoList.stream().filter(item -> item.getAccount().equals(personnelVo.getWorkcode())).findFirst().orElse(null);
+                //不存在 并且在职,则新增
+                if (ObjectUtil.isEmpty(sysUserDo) && personnelVo.getStatus() == 1) {
+                    SysUserDo insertUser = new SysUserDo();
+                    insertUser.setId(SecurityUtil.getUUID());
+                    insertUser.setAccount(personnelVo.getWorkcode());
+                    insertUser.setName(personnelVo.getLastname());
+                    //TODO:待完善平台用户其他字段
+                    insertUser.setCode(personnelVo.getWorkcode());
+                    insertUser.setPassword(SecurityUtil.getSaltMd5AndSha("000000", insertUser.getId()));//新增用户初始化密码为“000000”
+                    insertUserList.add(insertUser);
+
+                    SysUserOrgDo insertUserOrg = new SysUserOrgDo();
+                    insertUserOrg.setId(SecurityUtil.getUUID());
+                    insertUserOrg.setUserid(insertUser.getId());
+                    insertUserOrg.setOrgid(personnelVo.getDepartmentid());
+                    insertUserOrgList.add(insertUserOrg);
+
+                    //新增用户给予默认角色
+                    SysUserRoleDo insertUserRole = new SysUserRoleDo();
+                    insertUserRole.setId(SecurityUtil.getUUID());
+                    insertUserRole.setUserid(insertUser.getId());
+                    insertUserRole.setRoleid("58fb8df3bebb48d58e8a2be261c32774");//普通员工 角色
+                    insertUserRoleList.add(insertUserRole);
+                } else {
+                    //不是在职,则删除
+                    if (personnelVo.getStatus() != 1) {
+                        deleteUserIdList.add(sysUserDo.getId());
+                        deleteUserOrgByUserIdList.add(sysUserDo.getId());
+                    } else {
+                        sysUserDo.setAccount(personnelVo.getWorkcode());
+                        sysUserDo.setName(personnelVo.getLastname());
+                        sysUserDo.setCode(personnelVo.getWorkcode());
+                        updateUserList.add(sysUserDo);
+
+                        deleteUserOrgByUserIdList.add(personnelVo.getWorkcode());
+
+                        SysUserOrgDo insertUserOrg = new SysUserOrgDo();
+                        insertUserOrg.setId(SecurityUtil.getUUID());
+                        insertUserOrg.setUserid(personnelVo.getWorkcode());
+                        insertUserOrg.setOrgid(personnelVo.getDepartmentid());
+                        insertUserOrgList.add(insertUserOrg);
+                    }
+                }
+            }
+
+        }
+        //批量导入/修改部门
+        if (ObjectUtil.isNotEmpty(deleteDepartIdList)) {
+//            sysOrganizationService.removeByIds(deleteDepartIdList);
+            departmentAndPersonnelDao.deleteOrgByIds(deleteDepartIdList);
+        }
+
+        if (ObjectUtil.isNotEmpty(updateDepartList)) {
+            sysOrganizationService.updateBatchById(updateDepartList);
+        }
+        if (ObjectUtil.isNotEmpty(insertDepartList)) {
+            sysOrganizationService.saveBatch(insertDepartList);
+        }
+
+        //批量导入/修改用户
+        if (ObjectUtil.isNotEmpty(deleteUserIdList)) {
+            sysUserService.removeByIds(deleteUserIdList);
+//            departmentAndPersonnelDao.deleteUserById(deleteUserIdList);
+        }
+        if (ObjectUtil.isNotEmpty(updateUserList)) {
+            sysUserService.updateBatchById(updateUserList);
+        }
+        if (ObjectUtil.isNotEmpty(insertUserList)) {
+            sysUserService.saveBatch(insertUserList);
+        }
+
+        //批量导入/修改 用户-部门
+        if (ObjectUtil.isNotEmpty(deleteUserOrgByUserIdList)) {
+            sysUserOrgService.remove(new QueryWrapper<SysUserOrgDo>().lambda().in(SysUserOrgDo::getUserid, deleteUserOrgByUserIdList));
+        }
+        if (ObjectUtil.isNotEmpty(insertUserOrgList)) {
+            sysUserOrgService.saveBatch(insertUserOrgList);
+        }
+
+        //初始化批量导入/修改 用户-角色
+        if (ObjectUtil.isNotEmpty(insertUserRoleList)) {
+            sysUserRoleService.saveBatch(insertUserRoleList);
+        }
+
+        String res = "成功,部门新增" + insertDepartList.size() + "个,更新" + updateDepartList.size() + "个,删除" + deleteDepartIdList.size() + "个,员工新增" + insertUserList.size() + "个,更新" + updateUserList.size() + "个,删除" + deleteUserIdList.size() + "个";
+        return R.ok(res);
+    }
+}

+ 17 - 0
js-security/security-common/src/main/resources/mybatis/DepartmentAndPersonnelDao.xml

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.rongwei.sfcommon.sys.dao.DepartmentAndPersonnelDao">
+
+    <delete id="deleteOrgByIds">
+        delete from sys_organization where ID IN
+        <foreach collection="deleteDepartIdList" item="item" open="(" close=")" separator=",">
+            #{item}
+        </foreach>
+    </delete>
+    <delete id="deleteUserById">
+        delete from sys_user where ID IN
+        <foreach collection="deleteUserIdList" item="item" open="(" close=")" separator=",">
+            #{item}
+        </foreach>
+    </delete>
+</mapper>

+ 262 - 0
js-security/security-entity/src/main/java/com/rongwe/scentity/domian/AspAnnouncementBoardLargeScreenDo.java

@@ -0,0 +1,262 @@
+package com.rongwe.scentity.domian;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 安全应急-预案管理
+ * </p>
+ *
+ * @author wm
+ * @since 2023-12-27
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("asp_announcement_board_large_screen")
+public class AspAnnouncementBoardLargeScreenDo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId("ID")
+    private String id;
+
+    /**
+     * 租户ID
+     */
+    @TableField("TENANTID")
+    private String tenantid;
+
+    /**
+     * 扩展预留
+     */
+    @TableField("ROPTION")
+    private String roption;
+
+    /**
+     * 删除标记
+     */
+    @TableField("DELETED")
+    private String deleted;
+
+    /**
+     * 备注
+     */
+    @TableField("REMARK")
+    private String remark;
+
+    /**
+     * 创建人ID
+     */
+    @TableField("CREATEUSERID")
+    private String createuserid;
+
+    /**
+     * 创建人姓名
+     */
+    @TableField("CREATEUSERNAME")
+    private String createusername;
+
+    /**
+     * 创建日期
+     */
+    @TableField("CREATEDATE")
+    private Date createdate;
+
+    /**
+     * 修改人ID
+     */
+    @TableField("MODIFYUSERID")
+    private String modifyuserid;
+
+    /**
+     * 修改人姓名
+     */
+    @TableField("MODIFYUSERNAME")
+    private String modifyusername;
+
+    /**
+     * 修改日期
+     */
+    @TableField("MODIFYDATE")
+    private Date modifydate;
+
+    /**
+     * 动火作业
+     */
+    @TableField("DONGHUOZUOYE")
+    private Integer donghuozuoye;
+
+    /**
+     * 动火作业涉及其他特殊作业数
+     */
+    @TableField("DONGHUOZUOYESHENGQITESHUZUOYESHU")
+    private Integer donghuozuoyeshengqiteshuzuoyeshu;
+
+    /**
+     * 动火作业一级数
+     */
+    @TableField("DONGHUOZUOYEYIJISHU")
+    private Integer donghuozuoyeyijishu;
+
+    /**
+     * 动火作业二级数
+     */
+    @TableField("DONGHUOZUOYEERJISHU")
+    private Integer donghuozuoyeerjishu;
+
+    /**
+     * 受限空间作业
+     */
+    @TableField("SHUXIANKONGJIANZUOYE")
+    private Integer shuxiankongjianzuoye;
+
+    /**
+     * 受限空间作业涉及其他特殊作业数
+     */
+    @TableField("SHUXIANKONGJIANZUOYESHENGQITESHUZUOYESHU")
+    private Integer shuxiankongjianzuoyeshengqiteshuzuoyeshu;
+
+    /**
+     * 临时用电作业
+     */
+    @TableField("LINSHIYONGDIANZUOYE")
+    private Integer linshiyongdianzuoye;
+
+    /**
+     * 临时用电作业涉及其他特殊作业数
+     */
+    @TableField("LINSHIYONGDIANZUOYESHENGQITESHUZUOYESHU")
+    private Integer linshiyongdianzuoyeshengqiteshuzuoyeshu;
+
+    /**
+     * 高处作业
+     */
+    @TableField("GAOCHUZUOYE")
+    private Integer gaochuzuoye;
+
+    /**
+     * 高处作业涉及其他特殊作业数
+     */
+    @TableField("GAOCHUZUOYESHENGQITESHUZUOYESHU")
+    private Integer gaochuzuoyeshengqiteshuzuoyeshu;
+
+    /**
+     * 吊装作业
+     */
+    @TableField("DIAOZHUANGZUOYE")
+    private Integer diaozhuangzuoye;
+
+    /**
+     * 吊装作业涉及其他特殊作业数
+     */
+    @TableField("DIAOZHUANGZUOYESHENGQITESHUZUOYESHU")
+    private Integer diaozhuangzuoyeshengqiteshuzuoyeshu;
+
+    /**
+     * 盲板抽堵作业
+     */
+    @TableField("MANGBANCHOUDUZUOYE")
+    private Integer mangbanchouduzuoye;
+
+    /**
+     * 盲板抽堵作业涉及其他特殊作业数
+     */
+    @TableField("MANGBANCHOUDUZUOYESHENGQITESHUZUOYESHU")
+    private Integer mangbanchouduzuoyeshengqiteshuzuoyeshu;
+
+    /**
+     * 动土作业
+     */
+    @TableField("DONGTUZUOYE")
+    private Integer dongtuzuoye;
+
+    /**
+     * 动土作业涉及其他特殊作业数
+     */
+    @TableField("DONGTUZUOYESHENGQITESHUZUOYESHU")
+    private Integer dongtuzuoyeshengqiteshuzuoyeshu;
+
+    /**
+     * 断路作业
+     */
+    @TableField("DUANLUZUOYE")
+    private Integer duanluzuoye;
+
+    /**
+     * 断路作业涉及其他特殊作业数
+     */
+    @TableField("DUANLUZUOYESHENGQITESHUZUOYESHU")
+    private Integer duanluzuoyeshengqiteshuzuoyeshu;
+
+    /**
+     * 承诺信息
+     */
+    @TableField("GONGSHISHENMING")
+    private String gongshishenming;
+
+    /**
+     * 主要负责人签名
+     */
+    @TableField("ZHUYAOFUZERANQIANMING")
+    private String zhuyaofuzeranqianming;
+
+    /**
+     * 签名日期
+     */
+    @TableField("QIANMINGRIQI")
+    private Date qianmingriqi;
+
+    /**
+     * 生产装置
+     */
+    @TableField("SHENGCHANZHUANGZHI")
+    private String shengchanzhuangzhi;
+
+    /**
+     * 运行中
+     */
+    @TableField("YUNXINGZHONG")
+    private String yunxingzhong;
+
+    /**
+     * 停产
+     */
+    @TableField("TINGCHAN")
+    private String tingchan;
+
+    /**
+     * 检修
+     */
+    @TableField("JIANXIU")
+    private String jianxiu;
+
+    /**
+     * 是否处于试生产
+     */
+    @TableField("SHIFOUPANSHICHISHENGCHAN")
+    private String shifoupanshichishengchan;
+
+    /**
+     *  是否处于正常开停车状态
+     */
+    @TableField("SHIFOUPANKAIDINGTINGCHE")
+    private String shifoupankaidingtingche;
+
+    /**
+     * 罐区、仓库等重大危险源是否处于安全状态
+     */
+    @TableField("GUANQUCANGKUDAZHONGWEIXIANYUANSHIFOUANQUAN")
+    private String guanqucangkudazhongweixianyuanshifouanquan;
+}

+ 148 - 0
js-security/security-entity/src/main/java/com/rongwe/scentity/domian/AspBoardLargeManualMaintenanceDo.java

@@ -0,0 +1,148 @@
+package com.rongwe.scentity.domian;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 安全应急-预案管理
+ * </p>
+ *
+ * @author wm
+ * @since 2023-12-27
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("board_large_manual_maintenance")
+public class AspBoardLargeManualMaintenanceDo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId("ID")
+    private String id;
+
+    /**
+     * 租户ID
+     */
+    @TableField("TENANTID")
+    private String tenantid;
+
+    /**
+     * 扩展预留
+     */
+    @TableField("ROPTION")
+    private String roption;
+
+    /**
+     * 删除标记
+     */
+    @TableField("DELETED")
+    private String deleted;
+
+    /**
+     * 备注
+     */
+    @TableField("REMARK")
+    private String remark;
+
+    /**
+     * 创建人ID
+     */
+    @TableField("CREATEUSERID")
+    private String createuserid;
+
+    /**
+     * 创建人姓名
+     */
+    @TableField("CREATEUSERNAME")
+    private String createusername;
+
+    /**
+     * 创建日期
+     */
+    @TableField("CREATEDATE")
+    private Date createdate;
+
+    /**
+     * 修改人ID
+     */
+    @TableField("MODIFYUSERID")
+    private String modifyuserid;
+
+    /**
+     * 修改人姓名
+     */
+    @TableField("MODIFYUSERNAME")
+    private String modifyusername;
+
+    /**
+     * 修改日期
+     */
+    @TableField("MODIFYDATE")
+    private Date modifydate;
+
+    /**
+     * 生产装置
+     */
+    @TableField("SHENGCHANZHUANGZHI")
+    private String shengchanzhuangzhi;
+
+    /**
+     * 运行中
+     */
+    @TableField("YUNXINGZHONG")
+    private String yunxingzhong;
+
+    /**
+     * 停产
+     */
+    @TableField("TINGCHAN")
+    private String tingchan;
+
+    /**
+     * 检修
+     */
+    @TableField("JIANXIU")
+    private String jianxiu;
+
+    /**
+     * 是否处于试生产
+     */
+    @TableField("SHIFOUPANSHICHISHENGCHAN")
+    private String shifoupanshichishengchan;
+
+    /**
+     * 是否处于正常开停车状态
+     */
+    @TableField("SHIFOUPANKAIDINGTINGCHE")
+    private String shifoupankaidingtingche;
+
+    /**
+     * 罐区、仓库等重大危险源是否处于安全状态
+     */
+    @TableField("GUANQUCANGKUDAZHONGWEIXIANYUANSHIFOUANQUAN")
+    private String guanqucangkudazhongweixianyuanshifouanquan;
+
+    /**
+     * 是否启用
+     */
+    @TableField("ISITENABLED")
+    private String isitenabled;
+
+    /**
+     * 承诺信息
+     */
+    @TableField("GONGSHISHENMING")
+    private String gongshishenming;
+}

+ 18 - 0
js-security/security-entity/src/main/java/com/rongwe/scentity/vo/BaoAnShiDaPingDataVo.java

@@ -0,0 +1,18 @@
+package com.rongwe.scentity.vo;
+
+import lombok.Data;
+
+@Data
+public class BaoAnShiDaPingDataVo {
+    private int dhzyCount;
+    private int tjdhzyCount;
+    private int yjdhzyCount;
+    private int ejdhzyCount;
+    private int sxkjzyCount;
+    private int lsydzyCount;
+    private int gczyCount;
+    private int dzzyCount;
+    private int mbcdzyCount;
+    private int dtzyCount;
+    private int dlzzCount;
+}

+ 18 - 0
js-security/security-entity/src/main/java/com/rongwe/scentity/vo/DepartmentAndPersonnelReq.java

@@ -0,0 +1,18 @@
+package com.rongwe.scentity.vo;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author :sc
+ * @since :2024/8/29
+ */
+@Data
+public class DepartmentAndPersonnelReq {
+    //部门数组
+    private List<DepartmentVo> departmentList;
+
+    //员工信息数组
+    private List<PersonnelVo> personnelList;
+}

+ 25 - 0
js-security/security-entity/src/main/java/com/rongwe/scentity/vo/DepartmentVo.java

@@ -0,0 +1,25 @@
+package com.rongwe.scentity.vo;
+
+import lombok.Data;
+
+/**
+ * @author :sc
+ * @since :2024/8/29
+ */
+@Data
+public class DepartmentVo {
+    //部门ID,我们系统的部门ID
+    private String departmentid;
+
+    //部门编码 值也是唯一的
+    private String departmentcode;
+
+    //部门名称
+    private String departmentname;
+
+    //上级部门ID
+    private String supdepid;
+
+    //状态:canceled = 1  部门冻结使用
+    private Integer canceled;
+}

+ 22 - 0
js-security/security-entity/src/main/java/com/rongwe/scentity/vo/PersonnelVo.java

@@ -0,0 +1,22 @@
+package com.rongwe.scentity.vo;
+
+import lombok.Data;
+
+/**
+ * @author :sc
+ * @since :2024/8/29
+ */
+@Data
+public class PersonnelVo {
+    //工号 KEY值
+    private String workcode;
+
+    //姓名
+    private String lastname;
+
+    //部门ID
+    private String departmentid;
+
+    //状态 1:在职,5:离职  7:无效
+    private Integer status;
+}

+ 32 - 0
js-security/security-server/src/main/java/com/rongwei/savecheck/controller/DepartmentAndPersonnelController.java

@@ -0,0 +1,32 @@
+package com.rongwei.savecheck.controller;
+
+import com.rongwei.rwcommon.base.R;
+import com.rongwe.scentity.vo.DepartmentAndPersonnelReq;
+import com.rongwei.sfcommon.sys.service.DepartmentAndPersonnelService;
+import lombok.extern.log4j.Log4j2;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author :sc
+ * @since :2024/9/3
+ */
+@RestController
+@RequestMapping("/dataSync")
+@Log4j2
+public class DepartmentAndPersonnelController {
+    @Autowired
+    private DepartmentAndPersonnelService departmentAndPersonnelService;
+
+    /**
+     * 同步部门和用户信息
+     */
+    @PostMapping("/departmentAndPersonnel")
+    public R departmentAndPersonnel(@RequestBody DepartmentAndPersonnelReq req){
+        log.info("开始同步部门和用户信息,入参:{}",req);
+        return departmentAndPersonnelService.departmentAndPersonnel(req);
+    }
+}

+ 39 - 0
js-security/security-server/src/main/java/com/rongwei/savecheck/controller/LargeScreenController.java

@@ -0,0 +1,39 @@
+package com.rongwei.savecheck.controller;
+
+
+import com.rongwei.rwcommon.base.R;
+import com.rongwei.sfcommon.sys.service.AspAnnouncementBoardLargeScreenService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * 大屏接口
+ */
+@RestController
+@RequestMapping("largescreen")
+@Slf4j
+public class LargeScreenController {
+    @Autowired
+    private AspAnnouncementBoardLargeScreenService aspAnnouncementBoardLargeScreenService;
+
+    /**
+     * 公告栏数据定时生成
+     */
+    @Scheduled(cron = "0 0 8 ? * *")
+    @PostMapping("/bulletinBoardData")
+    public R bulletinBoardData() {
+        log.info("公告栏数据定时生成");
+        aspAnnouncementBoardLargeScreenService.announcement();
+        return R.ok();
+    }
+
+    @PostMapping("/bulletinBoardDataByTenantId")
+    public R bulletinBoardDataByTenantId(@RequestBody String tenantid) {
+        log.info("手动数据生成");
+        aspAnnouncementBoardLargeScreenService.announcementByTenantId(tenantid);
+        return R.ok();
+    }
+
+}

+ 0 - 26
js-training/training-common/src/main/java/com/rongwei/trainingcommon/sys/dao/DangerousDao.java

@@ -1,26 +0,0 @@
-package com.rongwei.trainingcommon.sys.dao;
-
-import com.rongwei.training.vo.DemandUserVo;
-import com.rongwei.training.vo.WordEmpInfoVo;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * CommonDao class
- *
- * @author XH
- * @date 2020/12/18
- */
-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);
-
-
-}