ソースを参照

Merge remote-tracking branch 'origin/V0.0.2' into V0.0.2

jingyuanchao 2 年 前
コミット
437d0480d8
19 ファイル変更426 行追加210 行削除
  1. 9 2
      project_data/sql/0.0.2/soc/soc.sql
  2. 24 10
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/TaskCreatingServiceImplBase.java
  3. 13 13
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/controller/TaskController.java
  4. 142 48
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/task/ResumptionTaskBusiness.java
  5. 39 36
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/controller/CoreSafecheckPlanController.java
  6. 79 6
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/job/SafetyCheckJobBusiness.java
  7. 1 1
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/service/ICoreSafecheckPlanService.java
  8. 27 32
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/service/impl/CoreSafecheckPlanServiceImpl.java
  9. 9 2
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/controller/SysAreaCheckController.java
  10. 9 3
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/controller/SysNfcBindController.java
  11. 3 9
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/domain/SysAreaCheck.java
  12. 1 0
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/dto/SysAreaCheckDTO.java
  13. 1 1
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/mapper/SysAreaCheckMapper.java
  14. 1 1
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/ISysAreaCheckService.java
  15. 21 12
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysAreaCheckServiceImpl.java
  16. 23 12
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysAreaServiceImpl.java
  17. 8 0
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysDeviceServiceImpl.java
  18. 6 3
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysNfcBindServiceImpl.java
  19. 10 19
      soc-modules/soc-modules-system/src/main/resources/mapper/system/SysAreaCheckMapper.xml

+ 9 - 2
project_data/sql/0.0.2/soc/soc.sql

@@ -971,6 +971,13 @@ IF
 			ALTER TABLE `sync_fjnx_org_business_relation` ADD COLUMN `org_type` INT NULL DEFAULT NULL COMMENT '同步配置表自定义机构类型 1:省联社 2:办事处 3: 地区行社' AFTER `tree_show_parent_code`;
 
 	END IF;
+
+	IF
+NOT EXISTS ( SELECT * FROM information_schema.COLUMNS WHERE table_schema = DATABASE () AND table_name = 'sys_area_check' AND column_name = 'org_type' ) THEN
+ALTER TABLE sys_area_check ADD org_type VARCHAR(64) NULL COMMENT '机构类型';
+
+END IF;
+
 	IF
 		NOT EXISTS ( SELECT * FROM information_schema.COLUMNS WHERE table_schema = DATABASE () AND table_name = 'sync_fjnx_org_business_relation' AND column_name = 'dqhs_org_code' ) THEN
 			ALTER TABLE `sync_fjnx_org_business_relation` ADD COLUMN `dqhs_org_code` VARCHAR ( 255 ) CHARACTER
@@ -1302,10 +1309,10 @@ INSERT INTO `sys_menu`(`id`, `menu_name`, `parent_id`, `order_num`, `path`, `com
 INSERT INTO `sys_menu`(`id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `platform_type`, `icon`, `image_path`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2211, '删除公告通知', 2196, 4, '', NULL, NULL, 1, 0, 'F', '0', '0', 'core:notification:remove', '1', '#', NULL, '超级管理员', '2023-09-19 15:18:42', '', NULL, '');
 INSERT INTO `sys_menu`(`id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `platform_type`, `icon`, `image_path`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2212, '发布公告通知', 2196, 5, '', NULL, NULL, 1, 0, 'F', '0', '0', 'core:notification:publish', '1', '#', NULL, '超级管理员', '2023-09-19 15:19:03', '', NULL, '');
 INSERT INTO `sys_menu`(`id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `platform_type`, `icon`, `image_path`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2213, '取消发布', 2196, 6, '', NULL, NULL, 1, 0, 'F', '0', '0', 'core:notification:cancelPublish', '1', '#', NULL, '超级管理员', '2023-09-19 15:19:25', '', NULL, '');
-delete from sys_role_menu where menu_id in(1714247486990786561) ;
+delete from sys_role_menu where menu_id in(1714247486990786561,2201) ;
 INSERT INTO `sys_role_menu`(`role_id`, `menu_id`) VALUES (116, 1714247486990786561);
 INSERT INTO `sys_role_menu`(`role_id`, `menu_id`) VALUES (120, 1714247486990786561);
-
+INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (116, 2201);
 delete from sys_role_menu where menu_id in(2208,2209,2210,2211,2212,2213,2196) ;
 
 INSERT INTO `sys_role_menu`(`role_id`, `menu_id`) VALUES (116, 2196);

+ 24 - 10
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/TaskCreatingServiceImplBase.java

@@ -5,6 +5,7 @@ import cn.hutool.core.date.DateField;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.xunmei.common.core.constant.Constants;
@@ -73,16 +74,26 @@ public abstract class TaskCreatingServiceImplBase<M extends BaseMapper<T>, T> ex
     }
 
     /**
-     * 生成周期内所有任务
+     * 一个入口,生成多种组合
      *
-     * @param dateTime
+     * @param execOrgIds 执行机构类型
+     * @param planIds    计划类型
+     * @param date       要生成的周期中的某个日期
      * @param cycle
-     * @return
      */
-    public int buildTaskByCycle(DateTime dateTime, CycleCommonEnum cycle) {
+    public int buildTask(List<Long> execOrgIds, List<Long> planIds, Date date, CycleCommonEnum cycle) {
         return 0;
     }
 
+//    /**
+//     * 生成周期内所有任务
+//     *
+//     * @param dateTime
+//     * @param cycle
+//     * @return
+//     */
+//    public abstract int buildTaskByCycle(DateTime dateTime, CycleCommonEnum cycle);
+
     private Boolean containCurrentCycle(List<SysWorkTime> workTimes, CycleCommonEnum cycle) {
         DateRange range = DateUtils.getStartAndEnd(new Date(), cycle);
         Date start = range.getStartTime();
@@ -103,17 +114,17 @@ public abstract class TaskCreatingServiceImplBase<M extends BaseMapper<T>, T> ex
         }
     }
 
-    public abstract void rebuildDayTask(List<Long> orgIds, SysWorkTime workTime) ;
+    public abstract void rebuildDayTask(List<Long> orgIds, SysWorkTime workTime);
 
-    public abstract void rebuildWeeklyTask(List<Long> orgIds, Date startDate, Date endDate) ;
+    public abstract void rebuildWeeklyTask(List<Long> orgIds, Date startDate, Date endDate);
 
-    public abstract void rebuildMonthTask(List<Long> orgIds, Date startDate, Date endDate) ;
+    public abstract void rebuildMonthTask(List<Long> orgIds, Date startDate, Date endDate);
 
     public abstract void rebuildQuarterTask(List<Long> orgIds, Date startDate, Date endDate);
 
-    public abstract void rebuildHalfYearTask(List<Long> orgIds, Date startDate, Date endDate) ;
+    public abstract void rebuildHalfYearTask(List<Long> orgIds, Date startDate, Date endDate);
 
-    public abstract void rebuildYearTask(List<Long> orgIds, Date startDate, Date endDate) ;
+    public abstract void rebuildYearTask(List<Long> orgIds, Date startDate, Date endDate);
 
     public abstract Boolean updateTaskStatus();
 
@@ -123,7 +134,7 @@ public abstract class TaskCreatingServiceImplBase<M extends BaseMapper<T>, T> ex
      * @param appPlan
      * @return
      */
-    protected List<Long> getPlanOrgIds(AppPlan appPlan) {
+    protected List<Long> getPlanOrgIds(AppPlan appPlan, List<Long> restrictOrgIds) {
         List<Long> orgIds = null;
 //        if (appPlan.getExecType()!=null&&appPlan.getExecType() == 0) {//0机构类型需要安类型去机构里查询所以的机构
         OrgListByTypesConditionEto cond = new OrgListByTypesConditionEto();
@@ -140,6 +151,9 @@ public abstract class TaskCreatingServiceImplBase<M extends BaseMapper<T>, T> ex
 //             orgIds = sysOrgs.stream().map(SysOrg::getId).collect(Collectors.toList());
 ////            orgIds = appPlanService.findExecOrgByPlan(appPlan.getId());
 //        }
+        if (CollectionUtil.isNotEmpty(restrictOrgIds)) {
+            return orgIds.stream().filter(id -> restrictOrgIds.contains(id)).collect(Collectors.toList());
+        }
 
         return orgIds;
     }

+ 13 - 13
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/controller/TaskController.java

@@ -59,7 +59,7 @@ public class TaskController {
 
         DateTime datetime = new DateTime();
         datetime.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
-        createResumptionTaskBusiness.buildTaskByCycle(datetime, CycleCommonEnum.DAILY);
+        createResumptionTaskBusiness.buildTask(null,null,datetime, CycleCommonEnum.DAILY);
         return AjaxResult.success();
     }
 
@@ -67,7 +67,7 @@ public class TaskController {
     public AjaxResult weekTask() {
         DateTime datetime = new DateTime();
         datetime.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
-        createResumptionTaskBusiness.buildTaskByCycle(datetime, CycleCommonEnum.WEEKLY);
+        createResumptionTaskBusiness.buildTask(null,null,datetime, CycleCommonEnum.WEEKLY);
         return AjaxResult.success();
     }
 
@@ -80,23 +80,23 @@ public class TaskController {
         int day = dateHelper.getDay();
         if (month == 1 && day == 1) {
             //1.1日获取执行周期为每月,每季,每半年,每年的履职计划Plan_cycle=2,3,4,5
-            createResumptionTaskBusiness.buildTaskByCycle(datetime, CycleCommonEnum.MONTHLY);
-            createResumptionTaskBusiness.buildTaskByCycle(datetime, CycleCommonEnum.QUARTERLY);
-            createResumptionTaskBusiness.buildTaskByCycle(datetime, CycleCommonEnum.HALF_YEARLY);
-            createResumptionTaskBusiness.buildTaskByCycle(datetime, CycleCommonEnum.YEARLY);
+            createResumptionTaskBusiness.buildTask(null,null,datetime, CycleCommonEnum.MONTHLY);
+            createResumptionTaskBusiness.buildTask(null,null,datetime, CycleCommonEnum.QUARTERLY);
+            createResumptionTaskBusiness.buildTask(null,null,datetime, CycleCommonEnum.HALF_YEARLY);
+            createResumptionTaskBusiness.buildTask(null,null,datetime, CycleCommonEnum.YEARLY);
         } else if ((month == 4 && day == 1) || (month == 10 && day == 1)) {
             //4.1||10.1日获取执行周期为每月,每季的履职计划Plan_cycle=2,3
-            createResumptionTaskBusiness.buildTaskByCycle(datetime, CycleCommonEnum.MONTHLY);
-            createResumptionTaskBusiness.buildTaskByCycle(datetime, CycleCommonEnum.QUARTERLY);
+            createResumptionTaskBusiness.buildTask(null,null,datetime, CycleCommonEnum.MONTHLY);
+            createResumptionTaskBusiness.buildTask(null,null,datetime, CycleCommonEnum.QUARTERLY);
         } else if (month == 7 && day == 1) {
             //7.1日获取执行周期为每月,每季,每半年的履职计划Plan_cycle=2,3,4
-            createResumptionTaskBusiness.buildTaskByCycle(datetime, CycleCommonEnum.MONTHLY);
-            createResumptionTaskBusiness.buildTaskByCycle(datetime, CycleCommonEnum.QUARTERLY);
-            createResumptionTaskBusiness.buildTaskByCycle(datetime, CycleCommonEnum.HALF_YEARLY);
+            createResumptionTaskBusiness.buildTask(null,null,datetime, CycleCommonEnum.MONTHLY);
+            createResumptionTaskBusiness.buildTask(null,null,datetime, CycleCommonEnum.QUARTERLY);
+            createResumptionTaskBusiness.buildTask(null,null,datetime, CycleCommonEnum.HALF_YEARLY);
 
         } else {
             //其他获取每月履职计划Plan_cycle=2
-            createResumptionTaskBusiness.buildTaskByCycle(datetime, CycleCommonEnum.MONTHLY);
+            createResumptionTaskBusiness.buildTask(null,null,datetime, CycleCommonEnum.MONTHLY);
         }
         return AjaxResult.success();
     }
@@ -115,7 +115,7 @@ public class TaskController {
         //当有周期存在时保持原有接口不变(doTask),否则按照新的接口创建
         CycleCommonEnum cycle=    CycleCommonEnum.getEnum(request.getPlancycle()) ;
         if (cycle != null) {
-            createResumptionTaskBusiness.buildTaskByCycle(datetime, cycle);
+            createResumptionTaskBusiness.buildTask(null,null,datetime, cycle);
         } else {
             //按照新的接口创建
             List<Long> orgIds = request.getOrgIds();

+ 142 - 48
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/task/ResumptionTaskBusiness.java

@@ -32,6 +32,8 @@ import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Component;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -61,52 +63,37 @@ public class ResumptionTaskBusiness extends TaskCreatingServiceImplBase<Resumpti
      * @return
      */
 
+    /**
+     * 一个入口,生成多种组合
+     *
+     * @param execOrgIds 执行机构类型
+     * @param planIds    计划类型
+     * @param date       要生成的周期中的某个日期
+     * @param cycle
+     */
     @Override
     @Transactional
-    public int buildTaskByCycle(DateTime dateTime, CycleCommonEnum cycle) {
-        List<AppPlan> AppPlanList = queryPlans(getHangsheOrgIds(), cycle, null);
-        return createTaskByPlan(AppPlanList);
-    }
-
-    /*
-     * 按计划重新生成。为保持通用,参数使用object.只支持同属一个父计划的子计划
-     * */
-    @Override
-    @Transactional
-    public void rebuildCurrentCycleTask(List<Object> plans) {
-        if (CollectionUtils.isEmpty(plans)) {
-            return;
-        }
-
-        List<AppPlan> appPlans = new ArrayList<>();
-        for (Object plan : plans) {
-            if (plan.getClass() == AppPlan.class) {
-                appPlans.add((AppPlan) plan);
-            }
-        }
-        if (CollectionUtils.isEmpty(appPlans)) {
-            return;
+    public int buildTask(List<Long> execOrgIds, List<Long> planIds, @NotNull Date date, @NotNull CycleCommonEnum cycle) {
+        List<Long> hsOrgIds = null;
+        if (CollectionUtils.isEmpty(execOrgIds)) {
+            hsOrgIds = getHangsheOrgIds();
+        } else {
+            hsOrgIds = remoteOrgService.selectParentHs(execOrgIds, SecurityConstants.INNER).stream()
+                    .map(SysOrg::getId)
+                    .collect(Collectors.toList());
         }
 
-        AppPlan plan = appPlans.get(0);
-        CycleCommonEnum cycle = CycleCommonEnum.getEnum(plan.getPlanCycle());
-        DateRange range = DateUtils.getStartAndEnd(new Date(), cycle);
+        List<AppPlan> appPlanList = queryPlans(hsOrgIds, cycle, null, planIds);
 
-        List<Resumption> resumptionList = queryTask(range.getStartTime(), cycle, null, appPlans.stream().map(AppPlan::getId).collect(Collectors.toList()));
-        List<Long> deleteIds = resumptionList.stream()
-                .filter(r -> (ObjectUtil.equal(r.getStatus(), 1) || ObjectUtil.equal(r.getStatus(), 2)))
-                .map(Resumption::getId).collect(Collectors.toList());
-        if (CollectionUtils.isNotEmpty(deleteIds)) {
-            baseMapper.deleteBatchIds(deleteIds);
-        }
-
-        createTaskByPlan(appPlans);
+        return buildTask(execOrgIds, appPlanList, date);
     }
 
-
-    private int createTaskByPlan(List<AppPlan> appPlanList) {
+    public int buildTask(List<Long> execOrgIds, @NotEmpty List<AppPlan> plans, @NotNull Date date) {
         List<Resumption> resumptions = new ArrayList<>();
-        for (AppPlan appPlan : appPlanList) {
+        for (AppPlan appPlan : plans) {
+            if(ObjectUtil.notEqual(appPlan.getPlanStatus(),1)){
+                continue;
+            }
             //获取履职计划中对应的检查要点
             List<AppRulePointTaskVo> pointList = appRulePointService.findPointByPlan(appPlan.getId());
             if (pointList.size() <= 0) {//没有检查项不生成履职任务
@@ -114,21 +101,23 @@ public class ResumptionTaskBusiness extends TaskCreatingServiceImplBase<Resumpti
                 continue;
             }
 
-            List<Long> orgIdList = getPlanOrgIds(appPlan);
-            if (CollectionUtils.isEmpty(orgIdList)) {//没有检查项不生成履职任务
-                log.info("error:该计划ID:{}没有执行机构", appPlan.getId());
-                continue;
-            }
             //获取履职角色
             List<Long> roleIds = appPlanService.findRoleByPlan(appPlan.getId());
             if (CollectionUtils.isEmpty(roleIds)) {//没有检查项不生成履职任务
                 log.info("error:该计划ID:{}没有履职角色", appPlan.getId());
                 continue;
             }
+
+            List<Long> orgIds = getPlanOrgIds(appPlan, execOrgIds);
+            if (CollectionUtils.isEmpty(orgIds)) {
+                log.info("error:该计划ID:{}没有执行机构", appPlan.getId());
+                continue;
+            }
+
             CycleCommonEnum cycleCommonEnum = CycleCommonEnum.getEnum(appPlan.getPlanCycle());
-            DateRange range = DateUtils.getStartAndEnd(new Date(), cycleCommonEnum);
-            Map<Long, SysWorkTime> workTimes = orgSingleWorkTimeMap(new Date(), cycleCommonEnum, orgIdList);
-            for (Long orgId : orgIdList) {
+            DateRange range = DateUtils.getStartAndEnd(date, cycleCommonEnum);
+            Map<Long, SysWorkTime> workTimes = orgSingleWorkTimeMap(new Date(), cycleCommonEnum, orgIds);
+            for (Long orgId : orgIds) {
                 if (!workTimes.containsKey(orgId) || ObjectUtil.isNull(workTimes.get(orgId)) || ObjectUtil.notEqual(workTimes.get(orgId).getIsEnable(), 1L)) {
                     continue;
                 }
@@ -154,6 +143,108 @@ public class ResumptionTaskBusiness extends TaskCreatingServiceImplBase<Resumpti
         }
     }
 
+//    @Override
+//    @Transactional
+//    public int buildTaskByCycle(DateTime dateTime, CycleCommonEnum cycle) {
+//        List<AppPlan> AppPlanList = queryPlans(getHangsheOrgIds(), cycle, null, null);
+//        return createTaskByPlan(AppPlanList);
+//    }
+
+    /*
+     * 按计划重新生成。为保持通用,参数使用object.只支持同属一个父计划的子计划
+     * */
+    @Override
+    @Transactional
+    public void rebuildCurrentCycleTask(List<Object> plans) {
+        if (CollectionUtils.isEmpty(plans)) {
+            return;
+        }
+        List<Long> hsOrgIds = getHangsheOrgIds();
+        List<AppPlan> appPlans = new ArrayList<>();
+        for (Object plan : plans) {
+            if (plan.getClass() != AppPlan.class) {
+                continue;
+            }
+
+            AppPlan p = (AppPlan) plan;
+            if (!hsOrgIds.contains(p.getPlanOfOrgId())) {
+                continue;
+            }
+            appPlans.add(p);
+        }
+
+        if (CollectionUtils.isEmpty(appPlans)) {
+            return;
+        }
+
+        AppPlan plan = appPlans.get(0);
+        Date workDate = new Date();
+        CycleCommonEnum cycle = CycleCommonEnum.getEnum(plan.getPlanCycle());
+        DateRange range = DateUtils.getStartAndEnd(workDate, cycle);
+
+        List<Resumption> resumptionList = queryTask(range.getStartTime(), cycle, null, appPlans.stream().map(AppPlan::getId).collect(Collectors.toList()));
+        List<Long> deleteIds = resumptionList.stream()
+                .filter(r -> (ObjectUtil.equal(r.getStatus(), 1) || ObjectUtil.equal(r.getStatus(), 2)))
+                .map(Resumption::getId).collect(Collectors.toList());
+        if (CollectionUtils.isNotEmpty(deleteIds)) {
+            baseMapper.deleteBatchIds(deleteIds);
+        }
+
+        buildTask(null, appPlans, workDate);
+
+    }
+
+
+//    private int createTaskByPlan(List<AppPlan> appPlanList) {
+//        List<Resumption> resumptions = new ArrayList<>();
+//        for (AppPlan appPlan : appPlanList) {
+//            //获取履职计划中对应的检查要点
+//            List<AppRulePointTaskVo> pointList = appRulePointService.findPointByPlan(appPlan.getId());
+//            if (pointList.size() <= 0) {//没有检查项不生成履职任务
+//                log.info("error:该计划ID:" + appPlan.getId() + "没有检查项");
+//                continue;
+//            }
+//
+//            List<Long> orgIdList = getPlanOrgIds(appPlan, null);
+//            if (CollectionUtils.isEmpty(orgIdList)) {//没有检查项不生成履职任务
+//                log.info("error:该计划ID:{}没有执行机构", appPlan.getId());
+//                continue;
+//            }
+//            //获取履职角色
+//            List<Long> roleIds = appPlanService.findRoleByPlan(appPlan.getId());
+//            if (CollectionUtils.isEmpty(roleIds)) {//没有检查项不生成履职任务
+//                log.info("error:该计划ID:{}没有履职角色", appPlan.getId());
+//                continue;
+//            }
+//            CycleCommonEnum cycleCommonEnum = CycleCommonEnum.getEnum(appPlan.getPlanCycle());
+//            DateRange range = DateUtils.getStartAndEnd(new Date(), cycleCommonEnum);
+//            Map<Long, SysWorkTime> workTimes = orgSingleWorkTimeMap(new Date(), cycleCommonEnum, orgIdList);
+//            for (Long orgId : orgIdList) {
+//                if (!workTimes.containsKey(orgId) || ObjectUtil.isNull(workTimes.get(orgId)) || ObjectUtil.notEqual(workTimes.get(orgId).getIsEnable(), 1L)) {
+//                    continue;
+//                }
+//                SysWorkTime workTime = workTimes.get(orgId);
+//
+//                List<Resumption> tasks;
+//                if (ObjectUtil.equal(CycleCommonEnum.DAILY.getCode(), appPlan.getPlanCycle())) {
+//                    tasks = buildResumptions(appPlan, orgId, workTime);
+//                } else {
+//                    tasks = buildResumptions(appPlan, orgId, range.getStartTime(), range.getEndTime(), 0L);
+//                }
+//
+//                if (CollectionUtils.isNotEmpty(tasks)) {
+//                    resumptions.addAll(tasks);
+//                }
+//            }
+//        }
+//
+//        if (this.saveBatch(resumptions)) {
+//            return resumptions.size();
+//        } else {
+//            return 0;
+//        }
+//    }
+
     @Override
     public void rebuildDayTask(List<Long> orgIds, SysWorkTime workTime) {
         rebuildTask(orgIds, workTime.getYmdDate(), workTime.getYmdDate(), CycleCommonEnum.DAILY, workTime);
@@ -224,7 +315,7 @@ public class ResumptionTaskBusiness extends TaskCreatingServiceImplBase<Resumpti
             List<Long> hsOrgIds = remoteOrgService.selectParentHs(ListUtil.toList(orgId), SecurityConstants.INNER)
                     .stream().map(SysOrg::getId)
                     .collect(Collectors.toList());
-            List<AppPlan> listPlans = queryPlans(hsOrgIds, cycle, ListUtil.toList(org.getType()));
+            List<AppPlan> listPlans = queryPlans(hsOrgIds, cycle, ListUtil.toList(org.getType()), null);
             if (CollectionUtils.isEmpty(listPlans)) {
                 continue;
             }
@@ -355,7 +446,7 @@ public class ResumptionTaskBusiness extends TaskCreatingServiceImplBase<Resumpti
      * @param cycle
      * @return
      */
-    private List<AppPlan> queryPlans(List<Long> planOfOrgId, CycleCommonEnum cycle, List<Integer> execOrgTypes) {
+    private List<AppPlan> queryPlans(List<Long> planOfOrgId, CycleCommonEnum cycle, List<Integer> execOrgTypes, List<Long> planIds) {
         if (CollectionUtils.isEmpty(planOfOrgId)) {
             return new ArrayList<>();
         }
@@ -367,6 +458,9 @@ public class ResumptionTaskBusiness extends TaskCreatingServiceImplBase<Resumpti
         if (CollectionUtils.isNotEmpty(execOrgTypes)) {
             qw.lambda().in(AppPlan::getExecOrgType, execOrgTypes);
         }
+        if (CollectionUtils.isNotEmpty(planIds)) {
+            qw.lambda().in(AppPlan::getId, planIds);
+        }
         List<AppPlan> listPlans = appPlanMapper.selectList(qw);
 
         return listPlans;

+ 39 - 36
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/controller/CoreSafecheckPlanController.java

@@ -6,6 +6,7 @@ import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 
 import cn.hutool.core.date.DateTime;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.xunmei.common.core.utils.DateHelper;
 import com.xunmei.core.resumption.dto.DistributeDto;
 import com.xunmei.core.safetyCheck.domain.CoreSafecheckPlan;
@@ -52,35 +53,25 @@ public class CoreSafecheckPlanController extends BaseController {
         coreSafecheckPlanService.cheHui(id);
         return AjaxResult.success();
     }
+
     @ApiOperation(value = "撤回后下发")
     @GetMapping(value = "/distributeCheHui/{id}")
 //    @RequiresPermissions("core:plan:findById")
-    public AjaxResult distributeCheHui(@PathVariable Long id) {
+    public AjaxResult distributeCheHui(@PathVariable Long id) throws Exception {
         int i = coreSafecheckPlanService.distributeCheHui(id);
         CoreSafecheckPlan plan = coreSafecheckPlanService.getById(id);
         //撤回后的下发如果是无周期或者勾选立即执行也需要生成任务
-        if(plan.isBuildTaskNow()||plan.getPlanCycle()==6){
-            int cycle = Math.toIntExact(plan.getPlanCycle());
-            DateTime datetime = new DateTime();
-            datetime.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
-            DateHelper dateHelper = new DateHelper(datetime);
-            Map<String, Date> map=null;
-            //如果无周期
-            if(cycle==6){
-                map = DateHelper.getStartAndEnd(dateHelper, null);
-                map.put("start", plan.getStartDate());
-                map.put("end", plan.getEndDate());
-            }else{
-                map = DateHelper.getStartAndEnd(dateHelper, cycle);
-            }
-            try {
-                jobBusiness.createTask(datetime, cycle, map.get("start"), map.get("end"));
-            } catch (Exception e) {
-                e.printStackTrace();
+        if (plan.isBuildTaskNow() || plan.getPlanCycle() == 6) {
+//获取父计划下面所有父id相等并且未删除并且已启用的计划
+            List<CoreSafecheckPlan> plans = coreSafecheckPlanService.list(new LambdaQueryWrapper<CoreSafecheckPlan>().eq(CoreSafecheckPlan::getParentId, plan.getId()).eq(CoreSafecheckPlan::getIsDeleted, 0).eq(CoreSafecheckPlan::getPlanStatus, 1));
+            if(plan.getPlanOfOrgType()==3) {
+                plans.add(plan);
             }
+            jobBusiness.createTaskByPlans(plans);
         }
         return AjaxResult.success(i);
     }
+
     /**
      * 查询常规安全检查计划列表
      */
@@ -114,15 +105,35 @@ public class CoreSafecheckPlanController extends BaseController {
      */
     @ApiOperation(value = "新增CoreSafecheckPlan")
     @RequiresPermissions("core:checkplan:add")
+
     @Log(title = "常规安全检查计划", businessType = BusinessType.INSERT)
     @PostMapping
-    public AjaxResult add(@RequestBody CoreSafecheckPlan coreSafecheckPlan) {
-        coreSafecheckPlanService.insertCoreSafecheckPlan(coreSafecheckPlan);
+    public AjaxResult add(@RequestBody CoreSafecheckPlan coreSafecheckPlan) throws Exception {
+        Long returnId = coreSafecheckPlanService.insertCoreSafecheckPlan(coreSafecheckPlan);
+        //判断是否是编辑并且计划所属任务不存在已完成或者逾期,需要删除所有任务重新生成
+        boolean isEditAll = coreSafecheckPlan.getHasEdit() == null && coreSafecheckPlan.getId() != null;
+        //如果是新增计划并且勾选立即执行并且是行社或者无周期,立即生成计划
+        if (coreSafecheckPlan.getId() == null && coreSafecheckPlan.isBuildTaskNow() && (coreSafecheckPlan.getPlanOfOrgType() == 3 || coreSafecheckPlan.getPlanCycle() == 6)) {
+            CoreSafecheckPlan plan = coreSafecheckPlanService.getById(returnId);
+            //获取父计划下面所有父id相等并且未删除并且已启用的计划
+            List<CoreSafecheckPlan> plans = coreSafecheckPlanService.list(new LambdaQueryWrapper<CoreSafecheckPlan>().eq(CoreSafecheckPlan::getParentId, plan.getId()).eq(CoreSafecheckPlan::getIsDeleted, 0).eq(CoreSafecheckPlan::getDistribute, 1));
+            plans.add(plan);
+            jobBusiness.createTaskByPlans(plans);
+        }
+        if (isEditAll) {
+            CoreSafecheckPlan plan = coreSafecheckPlanService.getById(returnId);
+//获取父计划下面所有父id相等并且未删除并且已启用的计划
+            List<CoreSafecheckPlan> plans = coreSafecheckPlanService.list(new LambdaQueryWrapper<CoreSafecheckPlan>().eq(CoreSafecheckPlan::getParentId, plan.getId()).eq(CoreSafecheckPlan::getIsDeleted, 0).eq(CoreSafecheckPlan::getPlanStatus, 1));
+            if(plan.getPlanOfOrgType()==3) {
+                plans.add(plan);
+            }
+            jobBusiness.createTaskByPlans(plans);
+        }
         return success();
     }
 
     /**
-     * 修改常规安全检查计划
+     * 修改常规安全检查计划(废弃)
      */
     @ApiOperation(value = "修改CoreSafecheckPlan")
     @RequiresPermissions("core:checkplan:edit")
@@ -140,21 +151,13 @@ public class CoreSafecheckPlanController extends BaseController {
             //下发完成生成任务
             CoreSafecheckPlan plan = coreSafecheckPlanService.getById(dto.getId());
             //如果选择了立即生效或者无周期
-            if(plan.isBuildTaskNow()||plan.getPlanCycle()==6){
-                int cycle = Math.toIntExact(plan.getPlanCycle());
-                DateTime datetime = new DateTime();
-                datetime.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
-                DateHelper dateHelper = new DateHelper(datetime);
-                Map<String, Date> map=null;
-                //如果无周期
-                if(cycle==6){
-                    map = DateHelper.getStartAndEnd(dateHelper, null);
-                    map.put("start", plan.getStartDate());
-                    map.put("end", plan.getEndDate());
-                }else{
-                    map = DateHelper.getStartAndEnd(dateHelper, cycle);
+            if (plan.isBuildTaskNow() || plan.getPlanCycle() == 6) {
+//获取父计划下面所有父id相等并且未删除并且已启用的计划
+                List<CoreSafecheckPlan> plans = coreSafecheckPlanService.list(new LambdaQueryWrapper<CoreSafecheckPlan>().eq(CoreSafecheckPlan::getParentId, plan.getId()).eq(CoreSafecheckPlan::getIsDeleted, 0).eq(CoreSafecheckPlan::getPlanStatus, 1));
+                if(plan.getPlanOfOrgType()==3) {
+                    plans.add(plan);
                 }
-                jobBusiness.createTask(datetime, cycle, map.get("start"), map.get("end"));
+                jobBusiness.createTaskByPlans(plans);
             }
 
             return AjaxResult.success();

+ 79 - 6
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/job/SafetyCheckJobBusiness.java

@@ -8,16 +8,15 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.xunmei.common.core.constant.SecurityConstants;
+import com.xunmei.common.core.domain.worktime.domain.SysWorkTime;
 import com.xunmei.common.core.utils.DateHelper;
 import com.xunmei.common.core.utils.IDHelper;
+import com.xunmei.core.TaskCreatingServiceImplBase;
 import com.xunmei.core.retrieval.service.ICoreMonitoringRetrievalTaskService;
 import com.xunmei.core.safetyCheck.domain.*;
 import com.xunmei.core.safetyCheck.domain.CoreSafecheckPlan;
 import com.xunmei.core.safetyCheck.dto.SafetyTaskBuildDto;
-import com.xunmei.core.safetyCheck.mapper.CoreSafecheckPlanMapper;
-import com.xunmei.core.safetyCheck.mapper.CoreSafecheckPlanToCheckOrgMapper;
-import com.xunmei.core.safetyCheck.mapper.CoreSafecheckPlanToExecOrgMapper;
-import com.xunmei.core.safetyCheck.mapper.CoreSafecheckPlanToRoleMapper;
+import com.xunmei.core.safetyCheck.mapper.*;
 import com.xunmei.core.safetyCheck.service.ICoreSafetyTaskService;
 import com.xunmei.core.safetyCheck.vo.PlanTaskBuildVo;
 import com.xunmei.system.api.RemoteOrgService;
@@ -43,7 +42,7 @@ import java.util.stream.Collectors;
 
 @Slf4j
 @Component
-public class SafetyCheckJobBusiness {
+public class SafetyCheckJobBusiness extends TaskCreatingServiceImplBase<CoreSafetyTaskMapper,CoreSafetyTask> {
     @Resource
     CoreSafecheckPlanMapper planMapper;
     @Resource
@@ -93,7 +92,13 @@ public class SafetyCheckJobBusiness {
         buildTask(dateTime, planTask, start, end, isNeedSendTodo, sourceType);
     }
 
-    //检查指定机构有无作息
+    /**
+     * 检查指定机构有无作息
+     * @param workstartTime
+     * @param workendTime
+     * @param orgId
+     * @return
+     */
     private boolean checkWorkTime(Date workstartTime, Date workendTime, Long orgId) {
         Map<String, Object> map = new HashMap<>();
         map.put("workstartTime", DateUtil.format(workstartTime, "yyyy-MM-dd"));
@@ -144,6 +149,39 @@ public class SafetyCheckJobBusiness {
     }
 
     /**
+     * 指定计划生成任务
+     * @param plans
+     * @throws Exception
+     */
+    @Async
+    public void createTaskByPlans(List<CoreSafecheckPlan> plans) throws Exception {
+        if(plans!=null&&plans.size()>0){
+            int cycle = Math.toIntExact(plans.get(0).getPlanCycle());
+            DateTime datetime = new DateTime();
+            datetime.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
+            DateHelper dateHelper = new DateHelper(datetime);
+            Map<String, Date> map=null;
+            //如果无周期
+            if(cycle==6){
+                map = DateHelper.getStartAndEnd(dateHelper, null);
+                map.put("start", plans.get(0).getStartDate());
+                map.put("end", plans.get(0).getEndDate());
+            }else{
+                map = DateHelper.getStartAndEnd(dateHelper, cycle);
+            }
+            List<PlanTaskBuildVo> tasks = new ArrayList<>();
+            for (CoreSafecheckPlan plan : plans) {
+                List<PlanTaskBuildVo> planTask = createPlanTask(plan);
+                tasks.addAll(planTask);
+            }
+
+            //生成具体任务
+            buildTask(datetime, tasks, map.get("start"), map.get("end"), true, 0);
+        }
+
+    }
+
+    /**
      * 生成每个计划的任务
      *
      * @param plan
@@ -585,4 +623,39 @@ public class SafetyCheckJobBusiness {
         return list;
 
     }
+
+    @Override
+    public void rebuildDayTask(List<Long> orgIds, SysWorkTime workTime) {
+
+    }
+
+    @Override
+    public void rebuildWeeklyTask(List<Long> orgIds, Date startDate, Date endDate) {
+
+    }
+
+    @Override
+    public void rebuildMonthTask(List<Long> orgIds, Date startDate, Date endDate) {
+
+    }
+
+    @Override
+    public void rebuildQuarterTask(List<Long> orgIds, Date startDate, Date endDate) {
+
+    }
+
+    @Override
+    public void rebuildHalfYearTask(List<Long> orgIds, Date startDate, Date endDate) {
+
+    }
+
+    @Override
+    public void rebuildYearTask(List<Long> orgIds, Date startDate, Date endDate) {
+
+    }
+
+    @Override
+    public Boolean updateTaskStatus() {
+        return null;
+    }
 }

+ 1 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/service/ICoreSafecheckPlanService.java

@@ -37,7 +37,7 @@ public interface ICoreSafecheckPlanService extends IService<CoreSafecheckPlan> {
      * @param coreSafecheckPlan 常规安全检查计划
      * @return 结果
      */
-    void insertCoreSafecheckPlan(CoreSafecheckPlan coreSafecheckPlan);
+    Long insertCoreSafecheckPlan(CoreSafecheckPlan coreSafecheckPlan);
 
     /**
      * 修改常规安全检查计划

+ 27 - 32
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/service/impl/CoreSafecheckPlanServiceImpl.java

@@ -280,7 +280,8 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
      * @return 结果
      */
     @Override
-    public void insertCoreSafecheckPlan(CoreSafecheckPlan coreSafecheckPlan) {
+    public Long insertCoreSafecheckPlan(CoreSafecheckPlan coreSafecheckPlan) {
+        Long returnId = 0L;
         if (coreSafecheckPlan.getRulePointList().size() == 0) {
             throw new RuntimeException("未选择检查项!");
         }
@@ -295,19 +296,21 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
             coreSafecheckPlan.setDistribute("0");
             //计划所属机构类型
             coreSafecheckPlan.setPlanOfOrgType(orgService.selectSysOrgById(coreSafecheckPlan.getPlanOfOrgId(), SecurityConstants.INNER).getType());
-            if (coreSafecheckPlan.getPlanOfOrgType()==3){
+            if (coreSafecheckPlan.getPlanOfOrgType() == 3) {
                 coreSafecheckPlan.setPlanStatus(1L);
-            }else{
+            } else {
                 coreSafecheckPlan.setPlanStatus(0L);
             }
             coreSafecheckPlanMapper.insert(coreSafecheckPlan);
-
+            returnId = coreSafecheckPlan.getId();
         } else {
             coreSafecheckPlan.setUpdateTime(DateUtils.getNowDate());
             coreSafecheckPlan.setModifiedBy(SecurityUtils.getUserId());
             coreSafecheckPlan.setPlanStatus(null);
             coreSafecheckPlan.setPlanCreateOrgId(null);
             coreSafecheckPlanMapper.updateById(coreSafecheckPlan);
+            returnId = coreSafecheckPlan.getId();
+
         }
 
 
@@ -349,29 +352,7 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
             }
         }
 
-        //如果是新增计划并且勾选立即执行并且是行社或者无周期,立即生成计划
-        if (pid == null && coreSafecheckPlan.isBuildTaskNow() && (coreSafecheckPlan.getPlanOfOrgType() == 3 || coreSafecheckPlan.getPlanCycle() == 6)) {
-            DateTime datetime = new DateTime();
-            datetime.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
-            DateHelper dateHelper = new DateHelper(datetime);
-            int cycle = Math.toIntExact(coreSafecheckPlan.getPlanCycle());
-//        SCHEDULEDTASKSLOG.info("开始生成每周常规安全检查任务!");
-            try {
-                Map<String, Date> map = null;
-                //如果无周期
-                if (cycle == 6) {
-                    map = DateHelper.getStartAndEnd(dateHelper, null);
-                    map.put("start", coreSafecheckPlan.getStartDate());
-                    map.put("end", coreSafecheckPlan.getEndDate());
-                } else {
-                    map = DateHelper.getStartAndEnd(dateHelper, cycle);
-                }
 
-                safetyCheckJobBusiness.createTask(datetime, cycle, map.get("start"), map.get("end"));
-            } catch (Exception e) {
-                throw new RuntimeException("生成常规安全检查任务失败!");
-            }
-        }
 //如果编辑需要处理子计划
         if (pid != null) {
             //处理子计划
@@ -437,15 +418,29 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
 
                     }
                 }
-                CoreSafetyTask tem = new CoreSafetyTask();
-                tem.setTitle(coreSafecheckPlan.getPlanName());
-                coreSafetyTaskMapper.update(tem, new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getPlanId, p.getId()).in(CoreSafetyTask::getStatus, 1, 2));
+                //如果计划是编辑全部,代表不存在已完成或者逾期的任务,需要删除重新生成
+                if (coreSafecheckPlan.getHasEdit() == null) {
+                    coreSafetyTaskMapper.delete(new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getPlanId, p.getId()));
+                } else {
+                    //否则代表编辑名称,需要同步未进行的任务名称
+                    CoreSafetyTask temp = new CoreSafetyTask();
+                    temp.setTitle(coreSafecheckPlan.getPlanName());
+                    coreSafetyTaskMapper.update(temp, new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getPlanId, p.getId()).in(CoreSafetyTask::getStatus, 1, 2));
+
+                }
+            }
+            //如果计划是编辑全部,代表不存在已完成或者逾期的任务,需要删除重新生成
+            if (coreSafecheckPlan.getHasEdit() == null) {
+                coreSafetyTaskMapper.delete(new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getPlanId, coreSafecheckPlan.getId()));
+            } else {
+                //否则代表编辑名称,需要同步未进行的任务名称
+                CoreSafetyTask temp = new CoreSafetyTask();
+                temp.setTitle(coreSafecheckPlan.getPlanName());
+                coreSafetyTaskMapper.update(temp, new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getPlanId, coreSafecheckPlan.getId()).in(CoreSafetyTask::getStatus, 1, 2));
 
             }
-            CoreSafetyTask temp = new CoreSafetyTask();
-            temp.setTitle(coreSafecheckPlan.getPlanName());
-            coreSafetyTaskMapper.update(temp, new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getPlanId, coreSafecheckPlan.getId()).in(CoreSafetyTask::getStatus, 1, 2));
         }
+        return returnId;
     }
 
     /**

+ 9 - 2
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/controller/SysAreaCheckController.java

@@ -3,8 +3,10 @@ package com.xunmei.system.controller;
 import java.util.List;
 
 import com.xunmei.system.api.domain.SysArea;
+import com.xunmei.system.api.domain.SysOrg;
 import com.xunmei.system.domain.vo.SysAreaCheckVO;
 import com.xunmei.system.dto.SysAreaCheckDTO;
+import com.xunmei.system.mapper.SysOrgMapper;
 import com.xunmei.system.service.ISysAreaService;
 import com.xunmei.system.service.ISysNfcBindService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -41,14 +43,15 @@ public class SysAreaCheckController extends BaseController {
     private ISysAreaCheckService sysAreaCheckService;
     @Autowired
     private ISysAreaService sysAreaService;
-
+    @Autowired
+    private SysOrgMapper sysOrgMapper;
     /**
      * 查询区域采集点列表
      */
     @ApiOperation(value = "查询SysAreaCheck列表")
     @RequiresPermissions("system:check:list")
     @GetMapping("/list")
-    public TableDataInfo<SysAreaCheckVO> list(SysAreaCheckDTO sysAreaCheck) {
+    public TableDataInfo<SysAreaCheck> list(SysAreaCheckDTO sysAreaCheck) {
         return sysAreaCheckService.selectPage(sysAreaCheck);
     }
 
@@ -119,6 +122,10 @@ public class SysAreaCheckController extends BaseController {
     @GetMapping(value = "/getAreaCheckInfoByOrg/{orgId}")
     public AjaxResult getAreaCheckInfoByOrg(@PathVariable(value = "orgId", required = false) Long orgId) {
         AjaxResult ajax = AjaxResult.success();
+        SysOrg sysOrg = sysOrgMapper.selectSysOrgById(orgId);
+        if (null==sysOrg.getType()){
+            return error("该机构没有机构类型,请维护!");
+        }
         List<SysAreaCheck> sysAreaChecks = sysAreaCheckService.selectByOrgId(orgId);
         ajax.put(AjaxResult.DATA_TAG, sysAreaChecks);
         return ajax;

+ 9 - 3
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/controller/SysNfcBindController.java

@@ -2,6 +2,7 @@ package com.xunmei.system.controller;
 
 import java.util.List;
 
+import com.xunmei.common.core.utils.StringUtils;
 import com.xunmei.system.api.domain.SysArea;
 import com.xunmei.system.domain.SysAreaCheck;
 import com.xunmei.system.service.ISysAreaCheckService;
@@ -56,11 +57,16 @@ public class SysNfcBindController extends BaseController {
     /**
      * 获取【请填写功能名称】详细信息
      */
-    @ApiOperation(value = "app获取SysNfcBind详细信息")
+    @ApiOperation(value = "app获取SysNfcBind详细信息,传入code")
     @RequiresPermissions("system:bind:query")
-    @GetMapping(value = {"/appGetInfo", "/{code}"})
+    @GetMapping(value = {"/appGetInfo/{code}"})
     public AjaxResult appGetInfo(@PathVariable(value = "code", required = false) String code) {
-        return success(sysNfcBindService.selectSysNfcBindByCode(code));
+        AjaxResult ajax = AjaxResult.success();
+        if (StringUtils.isEmpty(code)){
+            ajax.put(AjaxResult.DATA_TAG, null);
+        }
+        ajax.put(AjaxResult.DATA_TAG, sysNfcBindService.selectSysNfcBindByCode(code));
+        return ajax;
     }
 
     /**

+ 3 - 9
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/domain/SysAreaCheck.java

@@ -40,13 +40,9 @@ public class SysAreaCheck extends BaseEntity {
     @ApiModelProperty(value = "采集点名称")
     private String checkName;
     @ApiModelProperty(value = "机构路径")
-private String orgPath;
-    /**
-     * 区域id
-     */
-  /*  @ApiModelProperty(value = "区域id")
-    @JsonSerialize(using = ToStringSerializer.class)
-    private Long areaId;*/
+    private String orgPath;
+    @ApiModelProperty(value = "机构类型")
+    private String orgType;
 
     /**
      * 机构id
@@ -78,8 +74,6 @@ private String orgPath;
                 .append("checkName", getCheckName())
 
 
-
-
                 .append("orgId", getOrgId())
 
 

+ 1 - 0
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/dto/SysAreaCheckDTO.java

@@ -22,6 +22,7 @@ public class SysAreaCheckDTO extends PageRequest {
      */
     @ApiModelProperty(value = "采集点名称")
     private String checkName;
+    private String orgType;
 
     /**
      * 区域id

+ 1 - 1
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/mapper/SysAreaCheckMapper.java

@@ -37,7 +37,7 @@ public interface SysAreaCheckMapper extends BaseMapper<SysAreaCheck> {
      * @param sysArea
      * @return
      */
-    Page<SysAreaCheckVO> selectSysAreaVO(Page<SysAreaCheckVO> page, @Param("sysAreaCheck") SysAreaCheckDTO sysAreaCheck);
+    Page<SysAreaCheck> selectSysAreaVO(Page<SysAreaCheck> page, @Param("sysAreaCheck") SysAreaCheckDTO sysAreaCheck);
     /**
      * 查询区域采集点列表
      *

+ 1 - 1
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/ISysAreaCheckService.java

@@ -70,7 +70,7 @@ public interface ISysAreaCheckService extends IService<SysAreaCheck> {
      * @param sysAreaCheck 查询条件对象
      * @return Page
      */
-    TableDataInfo<SysAreaCheckVO> selectPage(SysAreaCheckDTO sysAreaCheck);
+    TableDataInfo<SysAreaCheck> selectPage(SysAreaCheckDTO sysAreaCheck);
 
     /**
      * 根据id获取区域

+ 21 - 12
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysAreaCheckServiceImpl.java

@@ -17,9 +17,7 @@ import com.xunmei.system.api.vo.SysOrgVO;
 import com.xunmei.system.domain.SysNfcBind;
 import com.xunmei.system.domain.vo.SysAreaCheckVO;
 import com.xunmei.system.dto.SysAreaCheckDTO;
-import com.xunmei.system.mapper.ISysAreaMapper;
-import com.xunmei.system.mapper.SysNfcBindMapper;
-import com.xunmei.system.mapper.SysOrgMapper;
+import com.xunmei.system.mapper.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.xunmei.system.service.ISysOrgService;
@@ -27,7 +25,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.xunmei.common.core.web.page.TableDataInfo;
-import com.xunmei.system.mapper.SysAreaCheckMapper;
 import com.xunmei.system.domain.SysAreaCheck;
 import com.xunmei.system.service.ISysAreaCheckService;
 
@@ -45,19 +42,27 @@ public class SysAreaCheckServiceImpl extends ServiceImpl<SysAreaCheckMapper, Sys
     private SysNfcBindMapper sysNfcBindMapper;
     @Autowired
     private ISysOrgService orgService;
+    @Autowired
+    private SysDictDataMapper sysDictDataMapper;
+    @Autowired
+    private SysOrgMapper sysOrgMapper;
     @Override
-    public TableDataInfo<SysAreaCheckVO> selectPage(SysAreaCheckDTO sysAreaCheck) {
+    public TableDataInfo<SysAreaCheck> selectPage(SysAreaCheckDTO sysAreaCheck) {
         //未删除
         sysAreaCheck.setDelFlag("0");
-        if (sysAreaCheck.getCheckSub()){
+/*        if (sysAreaCheck.getCheckSub()){
             SysOrg sysOrg = orgService.selectSysOrgById(sysAreaCheck.getOrgId());
             //清空前端传递的org_id
             sysAreaCheck.setOrgId(null);
             //添加in条件
             sysAreaCheck.setOrgPath(sysOrg.getPath());
-        }
+        }*/
         //获取数据
-        Page<SysAreaCheckVO> sysAreaCheckVOPage = sysAreaCheckMapper.selectSysAreaVO(sysAreaCheck.getPageRequest(), sysAreaCheck);
+        Page<SysAreaCheck> sysAreaCheckVOPage = sysAreaCheckMapper.selectSysAreaVO(sysAreaCheck.getPageRequest(), sysAreaCheck);
+        sysAreaCheckVOPage.getRecords().forEach(e -> {
+            String dictLabel = sysDictDataMapper.selectDictLabel("sys_org_type", e.getOrgType());
+            e.setOrgType(dictLabel);
+        });
         return TableDataInfo.build(sysAreaCheckVOPage);
 
 
@@ -74,9 +79,13 @@ public class SysAreaCheckServiceImpl extends ServiceImpl<SysAreaCheckMapper, Sys
 
     @Override
     public List<SysAreaCheck> selectByOrgId(Long orgId) {
+        SysOrg sysOrg = sysOrgMapper.selectSysOrgById(orgId);
+        if (null == sysOrg.getType()) {
+            throw new ServiceException("该机构没有机构类型,请维护!");
+        }
         SysAreaCheck areaCheck = new SysAreaCheck();
         areaCheck.setDelFlag("0");
-        areaCheck.setOrgId(orgId);
+        areaCheck.setOrgType(sysOrg.getOrgType());
         return baseMapper.selectSysAreaCheckList(areaCheck);
     }
 
@@ -114,14 +123,14 @@ public class SysAreaCheckServiceImpl extends ServiceImpl<SysAreaCheckMapper, Sys
     public int insertSysAreaCheck(SysAreaCheck sysAreaCheck) {
         QueryWrapper queryWrapper = new QueryWrapper();
         queryWrapper.eq("check_name", sysAreaCheck.getCheckName());
-        queryWrapper.eq("org_id", sysAreaCheck.getOrgId());
+        queryWrapper.eq("org_type", sysAreaCheck.getOrgType());
         queryWrapper.eq("del_flag", 0);
         Long aLong = baseMapper.selectCount(queryWrapper);
         if (aLong > 0) {
             throw new ServiceException("名称不能重复");
         }
-        SysOrg sysOrg = orgService.selectSysOrgById(sysAreaCheck.getOrgId());
-        sysAreaCheck.setOrgPath(sysOrg.getPath());
+      //  SysOrg sysOrg = orgService.selectSysOrgById(sysAreaCheck.getOrgId());
+      //  sysAreaCheck.setOrgPath(sysOrg.getPath());
         sysAreaCheck.setCreateTime(DateUtils.getNowDate());
         sysAreaCheck.setCreateBy(SecurityUtils.getUsername());
         sysAreaCheck.setUpdateBy(SecurityUtils.getUsername());

+ 23 - 12
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysAreaServiceImpl.java

@@ -2,6 +2,7 @@ package com.xunmei.system.service.impl;
 
 import java.util.List;
 
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.xunmei.common.core.exception.ServiceException;
 import com.xunmei.common.core.utils.DateUtils;
 import com.xunmei.common.core.utils.StringUtils;
@@ -42,8 +43,9 @@ public class SysAreaServiceImpl extends ServiceImpl<ISysAreaMapper, SysArea> imp
     private SysAreaCheckMapper sysAreaCheckMapper;
     @Autowired
     private SysNfcBindMapper sysNfcBindMapper;
-@Autowired
-private SysOrgMapper sysOrgMapper;
+    @Autowired
+    private SysOrgMapper sysOrgMapper;
+
     @Override
     public TableDataInfo<SysArea> selectPage(SysArea sysArea) {
         //未删除
@@ -59,9 +61,9 @@ private SysOrgMapper sysOrgMapper;
         QueryWrapper<SysArea> query = new QueryWrapper<>(sysArea);
         //下穿
         String name = sysArea.getName();
-        if (StringUtils.isNotEmpty(name)){
+        if (StringUtils.isNotEmpty(name)) {
             sysArea.setName(null);
-            query.like("name",name);
+            query.like("name", name);
         }
         //时间范围查询
         if (sysArea.getParams().get("beginTime") != null && sysArea.getParams().get("endTime") != null) {
@@ -69,6 +71,14 @@ private SysOrgMapper sysOrgMapper;
         }
         //获取数据
         page = sysAreaMapper.selectPage(page, query);
+        if (CollectionUtils.isEmpty(page.getRecords()) && page.getTotal() > 0) {
+            if (sysArea.getPageNum() != null && sysArea.getPageSize() != null) {
+                page = new Page<>(sysArea.getPageNum() - 1, sysArea.getPageSize());
+            } else {
+                page = new Page<>();
+            }
+            page = sysAreaMapper.selectPage(page, query);
+        }
         page.getRecords().forEach(e -> {
             String dictLabel = sysDictDataMapper.selectDictLabel("sys_org_type", e.getOrgType());
             e.setOrgType(dictLabel);
@@ -94,12 +104,12 @@ private SysOrgMapper sysOrgMapper;
     @Override
     public List<SysArea> getAreaByOrg(Long orgId) {
         SysOrg sysOrg = sysOrgMapper.selectSysOrgById(orgId);
-        if (null==sysOrg.getType()){
+        if (null == sysOrg.getType()) {
             throw new ServiceException("该机构没有机构类型,请维护!");
         }
-        QueryWrapper queryWrapper=new QueryWrapper();
-        queryWrapper.eq("org_type",sysOrg.getType());
-        queryWrapper.eq("del_flag",0);
+        QueryWrapper queryWrapper = new QueryWrapper();
+        queryWrapper.eq("org_type", sysOrg.getType());
+        queryWrapper.eq("del_flag", 0);
         List list = baseMapper.selectList(queryWrapper);
         return list;
     }
@@ -154,7 +164,7 @@ private SysOrgMapper sysOrgMapper;
         queryWrapper.eq("name", sysArea.getName());
         queryWrapper.eq("del_flag", 0);
         SysArea sysArea1 = baseMapper.selectOne(queryWrapper);
-        if (null!=sysArea1&&sysArea1.getId()!=sysArea.getId()) {
+        if (null != sysArea1 && sysArea1.getId() != sysArea.getId()) {
             throw new ServiceException("名称不能重复");
         }
         sysArea.setUpdateTime(DateUtils.getNowDate());
@@ -178,11 +188,12 @@ private SysOrgMapper sysOrgMapper;
     public int deleteSysAreaByIds(Long[] ids) {
         //查询是否有采集点在用
         SysAreaCheck sysAreaCheck = new SysAreaCheck();
-        QueryWrapper<SysAreaCheck> query = new QueryWrapper<>(sysAreaCheck);
+        QueryWrapper<SysNfcBind> query = new QueryWrapper<>();
         query.eq("del_flag", "0");
         query.in("area_id", ids);
-        List<SysAreaCheck> sysAreaChecks = sysAreaCheckMapper.selectList(query);
-        if (null == sysAreaChecks || sysAreaChecks.size() > 0) {
+        // List<SysAreaCheck> sysAreaChecks = sysAreaCheckMapper.selectList(query);
+        List<SysNfcBind> sysNfcBinds = sysNfcBindMapper.selectList(query);
+        if (null == sysNfcBinds || sysNfcBinds.size() > 0) {
             throw new ServiceException("数据使用中,不能删除");
         }
         int i = 0;

+ 8 - 0
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysDeviceServiceImpl.java

@@ -94,6 +94,14 @@ public class SysDeviceServiceImpl extends ServiceImpl<SysDeviceMapper, SysDevice
         }
         //获取数据
         page = sysDeviceMapper.selectPage(page, query);
+        if (com.baomidou.mybatisplus.core.toolkit.CollectionUtils.isEmpty(page.getRecords()) && page.getTotal() > 0) {
+            if (sysDevice.getPageNum() != null && sysDevice.getPageSize() != null) {
+                page = new Page<>(sysDevice.getPageNum() - 1, sysDevice.getPageSize());
+            } else {
+                page = new Page<>();
+            }
+            page = sysDeviceMapper.selectPage(page, query);
+        }
         //抓换为TableDataInfo适配前端
         return TableDataInfo.build(page);
 

+ 6 - 3
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysNfcBindServiceImpl.java

@@ -93,6 +93,9 @@ public class SysNfcBindServiceImpl extends ServiceImpl<SysNfcBindMapper, SysNfcB
 
     @Override
     public SysNfcBind selectSysNfcBindByCode(String code) {
+        if (StringUtils.isEmpty(code)){
+         return new SysNfcBind();
+        }
         return sysNfcBindMapper.selectSysNfcBindByCode(code);
     }
 
@@ -116,15 +119,15 @@ public class SysNfcBindServiceImpl extends ServiceImpl<SysNfcBindMapper, SysNfcB
     @Transactional
     @Override
     public int insertSysNfcBind(SysNfcBind sysNfcBind) {
-        QueryWrapper queryWrapper = new QueryWrapper();
+/*        QueryWrapper queryWrapper = new QueryWrapper();
         queryWrapper.eq("area_id", sysNfcBind.getAreaId());
         queryWrapper.eq("org_id", sysNfcBind.getOrgId());
         queryWrapper.eq("check_id", sysNfcBind.getCheckId());
         queryWrapper.eq("del_flag", 0);
         Long aLong = baseMapper.selectCount(queryWrapper);
         if (aLong > 0) {
-            throw new ServiceException("该区域和采集点已绑定标签,请勿重复添加");
-        }
+            throw new ServiceException("该区域和采集点已绑定标签,请勿重复添加");贾武先
+        }*/
         sysNfcBind.setUpdateTime(DateUtils.getNowDate());
         sysNfcBind.setCreateTime(DateUtils.getNowDate());
         sysNfcBind.setDelFlag("0");

+ 10 - 19
soc-modules/soc-modules-system/src/main/resources/mapper/system/SysAreaCheckMapper.xml

@@ -38,9 +38,9 @@
             <if test="checkName != null  and checkName != ''">
                 and check_name like concat('%', #{checkName}, '%')
             </if>
-        <!--    <if test="areaId != null ">
-                and area_id = #{areaId}
-            </if>-->
+            <if test="orgType != null ">
+                and org_type = #{orgType}
+            </if>
             <if test="orgId != null ">
                 and org_id = #{orgId}
             </if>
@@ -67,29 +67,20 @@
         WHERE sac.id = #{id}
 
     </select>
-    <select id="selectSysAreaVO" resultType="com.xunmei.system.domain.vo.SysAreaCheckVO">
+    <select id="selectSysAreaVO" resultType="com.xunmei.system.domain.SysAreaCheck">
         SELECT
-        sac.*,
-      /*  sa.`name` AS areaName,*/
-        so.short_name AS orgName
+       *
         FROM
-        sys_area_check sac
-       /* LEFT JOIN sys_area sa ON sa.id = sac.area_id*/
-        LEFT JOIN sys_org so ON so.id = sac.org_id
+        sys_area_check
         where 1=1
-       and sac.del_flag='0'
+       and del_flag='0'
         <if test="sysAreaCheck.checkName !=null">
             and check_name like concat('%', #{sysAreaCheck.checkName}, '%')
         </if>
-  <!--      <if test="sysAreaCheck.areaId !=null">
-            and area_id=#{sysAreaCheck.areaId}
-        </if>-->
-        <if test="sysAreaCheck.orgId !=null">
-            and org_id=#{sysAreaCheck.orgId}
+        <if test="sysAreaCheck.orgType !=null">
+            and org_type=#{sysAreaCheck.orgType}
         </if>
-<if test="sysAreaCheck.orgPath !=null">
-    and org_path like concat(#{sysAreaCheck.orgPath}, '%')
-</if>
+
     </select>