Browse Source

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

jingyuanchao 2 years ago
parent
commit
6e0c5d20c6
51 changed files with 662 additions and 269 deletions
  1. 0 1
      soc-api/soc-api-system/src/main/java/com/xunmei/system/api/domain/SysArea.java
  2. 6 0
      soc-api/soc-api-system/src/main/java/com/xunmei/system/api/domain/SysUser.java
  3. 56 56
      soc-api/soc-api-system/src/main/java/com/xunmei/system/api/enums/OrgType.java
  4. 2 1
      soc-api/soc-api-system/src/main/java/com/xunmei/system/api/vo/SysOrgVO.java
  5. 2 1
      soc-common/soc-common-core/src/main/java/com/xunmei/common/core/web/domain/PageDto.java
  6. 4 3
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/controller/ApiPlanController.java
  7. 10 3
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/controller/AppRuleController.java
  8. 3 4
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/controller/AppRuleItemController.java
  9. 0 5
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/controller/ProtectionController.java
  10. 5 1
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/domain/AppPlan.java
  11. 47 0
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/dto/plan/CoreResumptionPlanPageDto.java
  12. 1 1
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/dto/rule/AppRuleEditDto.java
  13. 1 1
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/dto/rule/AppRuleListForOrgDto.java
  14. 1 4
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/dto/rule/AppRulePageDto.java
  15. 2 2
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/dto/ruleItem/AppRuleItemDetailDto.java
  16. 2 3
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/dto/ruleItem/AppRuleItemDto.java
  17. 1 1
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/dto/ruleItem/AppRuleItemPageDto.java
  18. 1 1
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/dto/ruleItem/AppRulePointSelectPageDto.java
  19. 1 1
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/dto/rulePoint/AppRulePointDetailDto.java
  20. 1 3
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/dto/rulePoint/AppRulePointDto.java
  21. 1 1
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/dto/rulePoint/AppRulePointInfoDto.java
  22. 13 5
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/mapper/AppPlanMapper.java
  23. 1 1
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/mapper/AppRuleItemMapper.java
  24. 1 4
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/mapper/AppRuleMapper.java
  25. 3 4
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/mapper/AppRulePointMapper.java
  26. 1 1
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/mapper/CoreResumptionDataProtectionMapper.java
  27. 2 1
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/service/AppPlanService.java
  28. 4 4
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/service/IAppRuleItemService.java
  29. 6 3
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/service/IAppRuleService.java
  30. 26 21
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/service/ResumptionBusiness.java
  31. 74 9
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/service/impl/AppPlanServiceImpl.java
  32. 6 7
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/service/impl/AppRuleItemServiceImpl.java
  33. 49 3
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/service/impl/AppRuleServiceImpl.java
  34. 1 2
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/service/impl/CoreResumptionDataProtectionServiceImpl.java
  35. 1 1
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/vo/ResumptionPointVo.java
  36. 8 3
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/vo/appPlan/AppPlanVo.java
  37. 1 1
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/vo/appRuleItem/AppRuleItemPageVo.java
  38. 126 24
      soc-modules/soc-modules-core/src/main/resources/mapper/resumption/AppPlanMapper.xml
  39. 3 3
      soc-modules/soc-modules-core/src/main/resources/mapper/resumption/AppRulePointMapper.xml
  40. 8 6
      soc-modules/soc-modules-core/src/main/resources/mapper/resumption/CoreResumptionDataProtectionMapper.xml
  41. 63 13
      soc-modules/soc-modules-sync/src/main/java/com/xunmei/sync/service/impl/FJNXSyncServiceImpl.java
  42. 11 6
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/controller/SysDeptController.java
  43. 2 0
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/controller/SysOrgController.java
  44. 2 1
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/controller/SysRoleController.java
  45. 2 16
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/controller/SysUserController.java
  46. 10 1
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/mapper/SysUserMapper.java
  47. 1 1
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/ISysDeptService.java
  48. 10 4
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysDeptServiceImpl.java
  49. 10 27
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysUserServiceImpl.java
  50. 2 1
      soc-modules/soc-modules-system/src/main/resources/mapper/system/SysOrgMapper.xml
  51. 68 3
      soc-modules/soc-modules-system/src/main/resources/mapper/system/SysUserMapper.xml

+ 0 - 1
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/domain/SysArea.java

@@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.xunmei.common.core.web.domain.BaseEntity;
-import com.xunmei.system.api.enums.OrgType;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;

+ 6 - 0
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/domain/SysUser.java

@@ -218,6 +218,12 @@ public class SysUser extends BaseEntity {
     @ApiModelProperty(value = "同步人员的编码")
     private String code;
 
+    /**
+     * 原始机构编码
+     */
+    @ApiModelProperty(value = "原始机构编码")
+    private Long originalOrgId;
+
 
     /** 机构对象 */
     @TableField(exist = false)

+ 56 - 56
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/enums/OrgType.java

@@ -1,56 +1,56 @@
-package com.xunmei.system.api.enums;
-
-/**
- * @author :LuoWei
- * @date : 2023/8/14
- */
-
-import com.fasterxml.jackson.databind.annotation.JsonSerialize;
-import com.fasterxml.jackson.databind.ser.std.EnumSerializer;
-import com.xunmei.common.core.utils.StringUtils;
-import lombok.Getter;
-import lombok.extern.slf4j.Slf4j;
-
-/**
- * 机构类型
- */
-@Slf4j
-@JsonSerialize(using = EnumSerializer.class)
-public enum OrgType {
-    YJFX("一级分行", "5a6a1ca2-c55b-4473-abb7-44ae302caf8c"),
-    EJFX("二级分行", "e226dd02-cb0d-45aa-9034-59fa6566239e"),
-    YJZX("一级支行", "87a6b4a5-cd72-4beb-b136-2299d6a85add"),
-    WD("营业网点", "28f4be66-af08-4064-9407-b5b8346bb5af"),
-    ZZ("离行式自助nh", ""),
-    JK("金库", ""),
-    BGDL("办公大楼", ""),
-    JKZX("视频监控中心", ""),
-    YQ("园区", ""),
-    OTHER("其他", ""),
-    XJZX("现金中心","");
-    @Getter
-    private final String text;
-
-    private final String guid;
-
-    OrgType(final String text, final String guid) {
-        this.text = text;
-        this.guid = guid;
-    }
-
-    public static OrgType findByGuid(final String guid) {
-        if (StringUtils.isBlank(guid)) {
-            return null;
-        }
-        for (final OrgType orgType : OrgType.values()) {
-            if (StringUtils.equalsIgnoreCase(orgType.name(), guid)) {
-                return orgType;
-            }
-            if (StringUtils.equalsIgnoreCase(orgType.guid, guid)) {
-                return orgType;
-            }
-        }
-        //ORGLOG.warn("[ {} ]没有对应机构类型", guid);
-        return null;
-    }
-}
+//package com.xunmei.system.api.enums;
+//
+///**
+// * @author :LuoWei
+// * @date : 2023/8/14
+// */
+//
+//import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+//import com.fasterxml.jackson.databind.ser.std.EnumSerializer;
+//import com.xunmei.common.core.utils.StringUtils;
+//import lombok.Getter;
+//import lombok.extern.slf4j.Slf4j;
+//
+///**
+// * 机构类型
+// */
+//@Slf4j
+//@JsonSerialize(using = EnumSerializer.class)
+//public enum OrgType {
+//    YJFX("一级分行", "5a6a1ca2-c55b-4473-abb7-44ae302caf8c"),
+//    EJFX("二级分行", "e226dd02-cb0d-45aa-9034-59fa6566239e"),
+//    YJZX("一级支行", "87a6b4a5-cd72-4beb-b136-2299d6a85add"),
+//    WD("营业网点", "28f4be66-af08-4064-9407-b5b8346bb5af"),
+//    ZZ("离行式自助nh", ""),
+//    JK("金库", ""),
+//    BGDL("办公大楼", ""),
+//    JKZX("视频监控中心", ""),
+//    YQ("园区", ""),
+//    OTHER("其他", ""),
+//    XJZX("现金中心","");
+//    @Getter
+//    private final String text;
+//
+//    private final String guid;
+//
+//    OrgType(final String text, final String guid) {
+//        this.text = text;
+//        this.guid = guid;
+//    }
+//
+//    public static OrgType findByGuid(final String guid) {
+//        if (StringUtils.isBlank(guid)) {
+//            return null;
+//        }
+//        for (final OrgType orgType : OrgType.values()) {
+//            if (StringUtils.equalsIgnoreCase(orgType.name(), guid)) {
+//                return orgType;
+//            }
+//            if (StringUtils.equalsIgnoreCase(orgType.guid, guid)) {
+//                return orgType;
+//            }
+//        }
+//        //ORGLOG.warn("[ {} ]没有对应机构类型", guid);
+//        return null;
+//    }
+//}

+ 2 - 1
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/vo/SysOrgVO.java

@@ -22,7 +22,8 @@ public class SysOrgVO {
     private Long id;
     private String name;
     private String path;
-    public Long parentId;
+    private Long parentId;
+    private Integer type;
     private List<SysOrgVO> children = new ArrayList<SysOrgVO>();
 
     @Override

+ 2 - 1
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/web/domain/PageDto.java

@@ -22,7 +22,8 @@ public class PageDto<T> {
     @ApiModelProperty(value = "每页大小")
     private Long pageSize=10L;
 
-
+    @ApiModelProperty(value = "是否下穿查询")
+    private Boolean checkSub = false;
 
     public Page<T> getPageDto(){
         Page<T> mePage = new Page<>();

+ 4 - 3
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/controller/ApiPlanController.java

@@ -7,6 +7,7 @@ import com.xunmei.common.core.web.domain.AjaxResult;
 import com.xunmei.common.security.annotation.RequiresPermissions;
 import com.xunmei.core.resumption.domain.AppPlan;
 import com.xunmei.core.resumption.dto.DistributeDto;
+import com.xunmei.core.resumption.dto.plan.CoreResumptionPlanPageDto;
 import com.xunmei.core.resumption.service.AppPlanService;
 import com.xunmei.core.resumption.vo.appPlan.AppPlanVo;
 import com.xunmei.core.resumption.vo.appPlan.RuleItemVo;
@@ -47,10 +48,10 @@ public class ApiPlanController {
      */
     @PostMapping("/find")
     @RequiresPermissions("core:plan:find")
-    public AjaxResult hostList(@RequestBody AppPlanVo info) {
+    public AjaxResult hostList(@RequestBody CoreResumptionPlanPageDto info) {
 
-        Page<AppPlan> result = appPlanService.selectPage(info);
-        return AjaxResult.success(result);
+//        Page<AppPlan> result = ;
+        return AjaxResult.success(appPlanService.selectPage(info));
     }
 
     @PostMapping("/distribute")

+ 10 - 3
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/controller/AppRuleController.java

@@ -5,9 +5,10 @@ import com.xunmei.common.core.web.controller.BaseController;
 import com.xunmei.common.core.web.domain.AjaxResult;
 import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.common.security.annotation.RequiresPermissions;
-import com.xunmei.core.resumption.dto.appRule.AppRuleEditDto;
-import com.xunmei.core.resumption.dto.appRule.AppRuleListForOrgDto;
-import com.xunmei.core.resumption.dto.appRule.AppRulePageDto;
+import com.xunmei.common.security.utils.SecurityUtils;
+import com.xunmei.core.resumption.dto.rule.AppRuleEditDto;
+import com.xunmei.core.resumption.dto.rule.AppRuleListForOrgDto;
+import com.xunmei.core.resumption.dto.rule.AppRulePageDto;
 import com.xunmei.core.resumption.service.IAppRuleService;
 import com.xunmei.core.resumption.vo.appRule.AppRulePageVo;
 import io.swagger.annotations.ApiOperation;
@@ -77,4 +78,10 @@ public class AppRuleController  extends BaseController {
        List<IdNameVo> list=  appRuleService.ruleListForOrg(dto);
        return success(list);
     }
+
+    @ApiOperation(value = "获取")
+    @GetMapping("/orgtree")
+    public AjaxResult getRuleTree() {
+        return success(appRuleService.getRuleTree(SecurityUtils.getLoginUser().getSysUser().getOrgId()));
+    }
 }

+ 3 - 4
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/controller/AppRuleItemController.java

@@ -6,10 +6,9 @@ import com.xunmei.common.core.web.domain.AjaxResult;
 import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.common.security.annotation.RequiresPermissions;
 import com.xunmei.common.security.utils.SecurityUtils;
-import com.xunmei.core.resumption.domain.AppRuleItem;
-import com.xunmei.core.resumption.dto.appRuleItem.AppRuleItemDto;
-import com.xunmei.core.resumption.dto.appRuleItem.AppRuleItemPageDto;
-import com.xunmei.core.resumption.dto.appRuleItem.AppRulePointSelectPageDto;
+import com.xunmei.core.resumption.dto.ruleItem.AppRuleItemDto;
+import com.xunmei.core.resumption.dto.ruleItem.AppRuleItemPageDto;
+import com.xunmei.core.resumption.dto.ruleItem.AppRulePointSelectPageDto;
 import com.xunmei.core.resumption.service.IAppRuleItemService;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.web.bind.annotation.*;

+ 0 - 5
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/controller/ProtectionController.java

@@ -1,22 +1,17 @@
 package com.xunmei.core.resumption.controller;
 
-import cn.hutool.core.date.DateTime;
 import com.xunmei.common.core.web.controller.BaseController;
 import com.xunmei.common.core.web.domain.AjaxResult;
 import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.common.security.annotation.RequiresPermissions;
 import com.xunmei.core.resumption.domain.Protection;
-import com.xunmei.core.resumption.dto.appRule.AppRuleEditDto;
 import com.xunmei.core.resumption.dto.protection.ProtectionEditDto;
 import com.xunmei.core.resumption.dto.protection.ProtectionLogPageDto;
 import com.xunmei.core.resumption.dto.protection.ProtectionPageDto;
 import com.xunmei.core.resumption.service.IProtectionService;
-import com.xunmei.core.resumption.vo.protection.ProtectionPageVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.domain.Page;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;

+ 5 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/domain/AppPlan.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.activerecord.Model;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModelProperty;
+import io.swagger.models.auth.In;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
@@ -12,6 +13,7 @@ import lombok.experimental.Accessors;
 
 import java.io.Serializable;
 import java.util.Date;
+import java.util.List;
 
 /**
  * 履职,安全检查计划表(core_resumption_plan)实体类
@@ -27,7 +29,8 @@ import java.util.Date;
 @AllArgsConstructor
 public class AppPlan extends Model<AppPlan> implements Serializable {
     private static final long serialVersionUID = 1L;
-
+    @TableField(exist = false)
+    private Integer orgType;
     /**
      * 主键
      */
@@ -38,6 +41,7 @@ public class AppPlan extends Model<AppPlan> implements Serializable {
      */
 
     private String planName;
+    private List<AppPlan> children;
     /**
      * 计划类型 0:履职计划,1,安全检查,2教育培训
      */

+ 47 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/dto/plan/CoreResumptionPlanPageDto.java

@@ -0,0 +1,47 @@
+package com.xunmei.core.resumption.dto.plan;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.xunmei.common.core.web.domain.PageDto;
+import com.xunmei.core.resumption.domain.AppPlan;
+import lombok.Data;
+
+import java.util.List;
+@Data
+public class CoreResumptionPlanPageDto extends PageDto<AppPlan> {
+    /**
+     * 计划名称
+     */
+    private String planName;
+
+    /**
+     * 计划状态
+     */
+    private Integer planStatus;
+
+    /**
+     * 计划周期
+     */
+    private Integer planCycle;
+
+    /**
+     * 执行时刻
+     */
+    private Integer planExec;
+
+    /**
+     * 执行机构类型
+     */
+    private Integer orgType;
+
+    /**
+     * 执行角色
+     */
+    private List<Long> roleList;
+
+    /**
+     * 执行机构id
+     */
+
+    private Long orgId;
+}

+ 1 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/dto/appRule/AppRuleEditDto.java → soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/dto/rule/AppRuleEditDto.java

@@ -1,4 +1,4 @@
-package com.xunmei.core.resumption.dto.appRule;
+package com.xunmei.core.resumption.dto.rule;
 
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;

+ 1 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/dto/appRule/AppRuleListForOrgDto.java → soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/dto/rule/AppRuleListForOrgDto.java

@@ -1,4 +1,4 @@
-package com.xunmei.core.resumption.dto.appRule;
+package com.xunmei.core.resumption.dto.rule;
 
 import lombok.Data;
 

+ 1 - 4
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/dto/appRule/AppRulePageDto.java → soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/dto/rule/AppRulePageDto.java

@@ -1,6 +1,5 @@
-package com.xunmei.core.resumption.dto.appRule;
+package com.xunmei.core.resumption.dto.rule;
 
-import com.baomidou.mybatisplus.annotation.TableField;
 import com.xunmei.common.core.web.domain.PageDto;
 import com.xunmei.core.resumption.vo.appRule.AppRulePageVo;
 import io.swagger.annotations.ApiModelProperty;
@@ -19,6 +18,4 @@ public class AppRulePageDto extends PageDto<AppRulePageVo> {
 
     private Long orgId;
 
-    @ApiModelProperty(value = "是否下穿查询")
-    private Boolean checkSub = false;
 }

+ 2 - 2
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/dto/appRuleItem/AppRuleItemDetailDto.java → soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/dto/ruleItem/AppRuleItemDetailDto.java

@@ -1,8 +1,8 @@
-package com.xunmei.core.resumption.dto.appRuleItem;
+package com.xunmei.core.resumption.dto.ruleItem;
 
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
-import com.xunmei.core.resumption.dto.appRulePoint.AppRulePointDetailDto;
+import com.xunmei.core.resumption.dto.rulePoint.AppRulePointDetailDto;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 

+ 2 - 3
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/dto/appRuleItem/AppRuleItemDto.java → soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/dto/ruleItem/AppRuleItemDto.java

@@ -1,10 +1,9 @@
-package com.xunmei.core.resumption.dto.appRuleItem;
+package com.xunmei.core.resumption.dto.ruleItem;
 
-import com.xunmei.core.resumption.dto.appRulePoint.AppRulePointDto;
+import com.xunmei.core.resumption.dto.rulePoint.AppRulePointDto;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
-import javax.validation.constraints.NotNull;
 import java.util.List;
 
 /**

+ 1 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/dto/appRuleItem/AppRuleItemPageDto.java → soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/dto/ruleItem/AppRuleItemPageDto.java

@@ -1,4 +1,4 @@
-package com.xunmei.core.resumption.dto.appRuleItem;
+package com.xunmei.core.resumption.dto.ruleItem;
 
 import com.xunmei.common.core.web.domain.PageDto;
 import com.xunmei.core.resumption.domain.AppRuleItem;

+ 1 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/dto/appRuleItem/AppRulePointSelectPageDto.java → soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/dto/ruleItem/AppRulePointSelectPageDto.java

@@ -1,4 +1,4 @@
-package com.xunmei.core.resumption.dto.appRuleItem;
+package com.xunmei.core.resumption.dto.ruleItem;
 
 import com.xunmei.common.core.web.domain.PageDto;
 import com.xunmei.core.resumption.vo.appRuleItem.AppRulePointSelectVo;

+ 1 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/dto/appRulePoint/AppRulePointDetailDto.java → soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/dto/rulePoint/AppRulePointDetailDto.java

@@ -1,4 +1,4 @@
-package com.xunmei.core.resumption.dto.appRulePoint;
+package com.xunmei.core.resumption.dto.rulePoint;
 
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;

+ 1 - 3
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/dto/appRulePoint/AppRulePointDto.java → soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/dto/rulePoint/AppRulePointDto.java

@@ -1,10 +1,8 @@
-package com.xunmei.core.resumption.dto.appRulePoint;
+package com.xunmei.core.resumption.dto.rulePoint;
 
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
-import javax.validation.constraints.NotNull;
-
 /**
  * @author jingyuanchao
  * @date 2022/4/27 16:59

+ 1 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/dto/appRulePoint/AppRulePointInfoDto.java → soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/dto/rulePoint/AppRulePointInfoDto.java

@@ -1,4 +1,4 @@
-package com.xunmei.core.resumption.dto.appRulePoint;
+package com.xunmei.core.resumption.dto.rulePoint;
 
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;

+ 13 - 5
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/mapper/AppPlanMapper.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.xunmei.common.core.vo.IdNameVo;
 import com.xunmei.core.resumption.domain.AppPlan;
+import com.xunmei.core.resumption.dto.plan.CoreResumptionPlanPageDto;
 import com.xunmei.core.resumption.vo.appPlan.AppPlanVo;
 import com.xunmei.core.resumption.vo.appPlan.ObjectDataClass;
 import com.xunmei.core.resumption.vo.appPlan.RuleItemVo;
@@ -17,37 +18,44 @@ import java.util.List;
  * 履职,安全检查计划表(core_resumption_plan)数据Mapper
  *
  * @author 高雄
- * @since 2022-04-27 16:38:43
  * @description 由 Mybatisplus Code Generator 创建
-*/
+ * @since 2022-04-27 16:38:43
+ */
 @Repository
 @Mapper
 public interface AppPlanMapper extends BaseMapper<AppPlan> {
 
     /**
      * 自定义分页查询
+     *
      * @param page
      * @param plan
      * @return
      */
-    Page<AppPlan> selectPage(Page<AppPlan> page, @Param("info") AppPlanVo plan);
+    Page<AppPlan> selectPage(Page<AppPlan> page, @Param("info") CoreResumptionPlanPageDto plan);
+
+    List<AppPlan> selectAll(@Param("info") CoreResumptionPlanPageDto plan);
 
     /**
-     *通过履职计划id获取履职任务执行机构
+     * 通过履职计划id获取履职任务执行机构
+     *
      * @param plan_id
      * @return
      */
     List<Long> findExecOrgByPlan(Long plan_id);
+
     /**
      * 获取检查要点分页查询
+     *
      * @param page
      * @param item
      * @return
      */
-    Page<RuleItemVo> selectItemPage(Page<RuleItemVo> page, @Param("info")  RuleItemVo item);
+    Page<RuleItemVo> selectItemPage(Page<RuleItemVo> page, @Param("info") RuleItemVo item);
 
     /**
      * 获取计划下的履职要点
+     *
      * @param id
      * @return List<com.isp.plan.vo.RuleItemVo>
      * @author 高雄

+ 1 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/mapper/AppRuleItemMapper.java

@@ -4,7 +4,7 @@ package com.xunmei.core.resumption.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.xunmei.core.resumption.domain.AppRuleItem;
-import com.xunmei.core.resumption.dto.appRuleItem.AppRuleItemPageDto;
+import com.xunmei.core.resumption.dto.ruleItem.AppRuleItemPageDto;
 import com.xunmei.core.resumption.vo.appRuleItem.AppRuleItemPageVo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;

+ 1 - 4
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/mapper/AppRuleMapper.java

@@ -3,12 +3,9 @@ package com.xunmei.core.resumption.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.xunmei.core.resumption.domain.AppRule;
-import com.xunmei.core.resumption.dto.appRule.AppRulePageDto;
-import com.xunmei.core.resumption.dto.appRuleItem.AppRulePointSelectPageDto;
+import com.xunmei.core.resumption.dto.rule.AppRulePageDto;
 import com.xunmei.core.resumption.vo.appRule.AppRuleGroupVo;
-import com.xunmei.core.resumption.vo.appRule.AppRuleInfoVo;
 import com.xunmei.core.resumption.vo.appRule.AppRulePageVo;
-import com.xunmei.core.resumption.vo.appRuleItem.AppRulePointSelectVo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;

+ 3 - 4
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/mapper/AppRulePointMapper.java

@@ -3,10 +3,9 @@ package com.xunmei.core.resumption.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.xunmei.core.resumption.domain.AppRulePoint;
-import com.xunmei.core.resumption.dto.appRuleItem.AppRulePointSelectPageDto;
-import com.xunmei.core.resumption.dto.appRulePoint.AppRulePointDetailDto;
-import com.xunmei.core.resumption.dto.appRulePoint.AppRulePointInfoDto;
-import com.xunmei.core.resumption.domain.AppResumptionDataRemarkimg;
+import com.xunmei.core.resumption.dto.ruleItem.AppRulePointSelectPageDto;
+import com.xunmei.core.resumption.dto.rulePoint.AppRulePointDetailDto;
+import com.xunmei.core.resumption.dto.rulePoint.AppRulePointInfoDto;
 import com.xunmei.core.resumption.vo.AppRulePointTaskVo;
 import com.xunmei.core.resumption.vo.ResumptionPointVo;
 import com.xunmei.core.resumption.vo.appRuleItem.AppRulePointSelectVo;

+ 1 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/mapper/CoreResumptionDataProtectionMapper.java

@@ -32,7 +32,7 @@ public interface CoreResumptionDataProtectionMapper extends BaseMapper<CoreResum
 
     List<ResumptionDataProtectionVo> selectProtection(@Param("orgId")Long orgId,@Param("resumptionDataId") Long resumptionDataId);
 
-    List<ResumptionDataProtectionVo> selectProtectionByResumption(@Param("resumptionId") Long resumptionId);
+    List<ResumptionDataProtectionVo> selectRegisteredProtection(@Param("resumptionId") Long resumptionId);
     /**
      * 新增【请填写功能名称】
      *

+ 2 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/service/AppPlanService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.xunmei.core.resumption.domain.AppPlan;
 import com.xunmei.core.resumption.dto.DistributeDto;
+import com.xunmei.core.resumption.dto.plan.CoreResumptionPlanPageDto;
 import com.xunmei.core.resumption.vo.appPlan.AppPlanVo;
 import com.xunmei.core.resumption.vo.appPlan.RuleItemVo;
 import com.xunmei.core.resumption.vo.appPlan.RuleRequestVo;
@@ -18,7 +19,7 @@ public interface AppPlanService extends IService<AppPlan> {
      *
      * @return
      */
-    Page<AppPlan> selectPage(AppPlanVo info);
+    Page<AppPlan> selectPage(CoreResumptionPlanPageDto info);
 
     List<Long> selectItemIdsByPlanId(Long id);
 

+ 4 - 4
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/service/IAppRuleItemService.java

@@ -3,10 +3,10 @@ package com.xunmei.core.resumption.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.core.resumption.domain.AppRuleItem;
-import com.xunmei.core.resumption.dto.appRuleItem.AppRuleItemDetailDto;
-import com.xunmei.core.resumption.dto.appRuleItem.AppRuleItemDto;
-import com.xunmei.core.resumption.dto.appRuleItem.AppRuleItemPageDto;
-import com.xunmei.core.resumption.dto.appRuleItem.AppRulePointSelectPageDto;
+import com.xunmei.core.resumption.dto.ruleItem.AppRuleItemDetailDto;
+import com.xunmei.core.resumption.dto.ruleItem.AppRuleItemDto;
+import com.xunmei.core.resumption.dto.ruleItem.AppRuleItemPageDto;
+import com.xunmei.core.resumption.dto.ruleItem.AppRulePointSelectPageDto;
 import com.xunmei.core.resumption.vo.appRuleItem.RuleTreeItem;
 
 import java.util.List;

+ 6 - 3
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/service/IAppRuleService.java

@@ -5,11 +5,12 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.xunmei.common.core.vo.IdNameVo;
 import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.core.resumption.domain.AppRule;
-import com.xunmei.core.resumption.dto.appRule.AppRuleEditDto;
-import com.xunmei.core.resumption.dto.appRule.AppRuleListForOrgDto;
-import com.xunmei.core.resumption.dto.appRule.AppRulePageDto;
+import com.xunmei.core.resumption.dto.rule.AppRuleEditDto;
+import com.xunmei.core.resumption.dto.rule.AppRuleListForOrgDto;
+import com.xunmei.core.resumption.dto.rule.AppRulePageDto;
 import com.xunmei.core.resumption.vo.appRule.AppRuleInfoVo;
 import com.xunmei.core.resumption.vo.appRule.AppRulePageVo;
+import com.xunmei.core.resumption.vo.appRuleItem.RuleTreeItem;
 
 import java.util.List;
 
@@ -38,4 +39,6 @@ public interface IAppRuleService extends IService<AppRule> {
     AppRuleInfoVo get(Long id);
 
     List<IdNameVo> ruleListForOrg(AppRuleListForOrgDto dto);
+
+    List<RuleTreeItem> getRuleTree(Long orgId);
 }

+ 26 - 21
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/service/ResumptionBusiness.java

@@ -514,24 +514,29 @@ public class ResumptionBusiness {
         List<AppResumptionDataRemarkimg> allImgs = appResumptionTaskDataRemarkimgService
                 .list(new LambdaUpdateWrapper<AppResumptionDataRemarkimg>()
                         .eq(AppResumptionDataRemarkimg::getResumptionId, request.getTaskId()));
-        try {
-            for (ResumptionPointVo pointVo : pointList) {
-                List<ResumptionNfcVo> nfclista = nfclist.stream().filter(r -> r.getPointId().equals(pointVo.getPointid())).collect(Collectors.toList());
-                if (nfclista != null && nfclista.size() > 0) {
-                    nfclista.forEach(r -> r.setNfcdataid(IDHelper.id()));
-                }
-                pointVo.setPointnfclist(nfclista == null ? new ArrayList<>() : nfclista);
+        nfclist.forEach(nfc -> {
+            if (ObjectUtil.isNull(nfc.getNfcdataid())) {
+                nfc.setNfcdataid(IDHelper.id());
+            }
+        });
+//        try {
+//            for (ResumptionPointVo pointVo : pointList) {
+//                List<ResumptionNfcVo> nfclista = nfclist.stream().filter(r -> r.getPointId().equals(pointVo.getPointid())).collect(Collectors.toList());
+//                if (nfclista != null && nfclista.size() > 0) {
+//                    nfclista.forEach(r -> r.setNfcdataid(IDHelper.id()));
+//                }
+//                pointVo.setPointnfclist(nfclista == null ? new ArrayList<>() : nfclista);
                 //如果是布撤防数据要显示默认时间
 
 
-                DateTime datetime = new DateTime();
-                datetime.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
-                Date startTime = datetime.setField(DateField.HOUR_OF_DAY, 0).setField(DateField.MINUTE, 0).setField(DateField.SECOND, 0);
-                Date endTime = DateUtil.endOfDay(datetime).offset(DateField.MILLISECOND, -999);
-                SimpleDateFormat sdftb = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-                sdftb.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
-                String strStartTime = sdftb.format(startTime);
-                String strEndTime = sdftb.format(endTime);
+//                DateTime datetime = new DateTime();
+//                datetime.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
+//                Date startTime = datetime.setField(DateField.HOUR_OF_DAY, 0).setField(DateField.MINUTE, 0).setField(DateField.SECOND, 0);
+//                Date endTime = DateUtil.endOfDay(datetime).offset(DateField.MILLISECOND, -999);
+//                SimpleDateFormat sdftb = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+//                sdftb.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
+//                String strStartTime = sdftb.format(startTime);
+//                String strEndTime = sdftb.format(endTime);
 //                //撤防时间
 //                ProtectionLog log = null;
 //                if ((pointVo.getPointid().equals("3916620810321920") || pointVo.getPointname().equals("入侵报警撤防时间")) && pointVo.getTimeType() == 1) {
@@ -551,11 +556,11 @@ public class ResumptionBusiness {
 //                    dealWithPointBusinessData(pointVo,resumption,plan);
 //                }
 
-            }
-
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
+//            }
+//
+//        } catch (Exception e) {
+//            e.printStackTrace();
+//        }
         //将数据按区域分组
         Map<Long, List<ResumptionPointVo>> pointListMap = pointList.stream().collect(Collectors.groupingBy(r -> r.getAreaid()));
         for (Long key : pointListMap.keySet()) {
@@ -710,7 +715,7 @@ public class ResumptionBusiness {
         }
         //获取履职数据异常的数据个数
         int exceptionCount = (int) appResumptionDataService.count((new QueryWrapper<AppResumptionData>()).lambda().eq(AppResumptionData::getResumptionId, request.getResumptionId()).eq(AppResumptionData::getResValue, 1));
-        if(CollectionUtil.isNotEmpty(resumptionProtections)){
+        if (CollectionUtil.isNotEmpty(resumptionProtections)) {
             coreResumptionDataProtectionService.saveBatch(resumptionProtections);
         }
         resumption.setExceptionCount(exceptionCount);

+ 74 - 9
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/service/impl/AppPlanServiceImpl.java

@@ -10,12 +10,14 @@ import com.xunmei.common.security.utils.SecurityUtils;
 import com.xunmei.core.resumption.domain.*;
 import com.xunmei.core.resumption.dto.DistributeDto;
 import com.xunmei.core.resumption.dto.DistributeStatusDto;
+import com.xunmei.core.resumption.dto.plan.CoreResumptionPlanPageDto;
 import com.xunmei.core.resumption.mapper.*;
 import com.xunmei.core.resumption.service.AppPlanService;
 import com.xunmei.core.resumption.vo.appPlan.AppPlanVo;
 import com.xunmei.core.resumption.vo.appPlan.RuleItemVo;
 import com.xunmei.core.resumption.vo.appPlan.RuleRequestVo;
 import com.xunmei.system.api.RemoteOrgService;
+import com.xunmei.system.api.domain.SysDept;
 import com.xunmei.system.api.domain.SysOrg;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
@@ -67,16 +69,76 @@ public class AppPlanServiceImpl extends ServiceImpl<AppPlanMapper, AppPlan> impl
     RedisTemplate redisTemplate;
 
     @Override
-    public Page<AppPlan> selectPage(AppPlanVo info) {
-        Page<AppPlan> page = new Page<>();
-        long current = info.getPageNum();
-        long size = info.getPageSize();
-        page.setCurrent(current);
-        page.setSize(size);
-        Page<AppPlan> result = baseMapper.selectPage(page, info);
+    public Page<AppPlan> selectPage(CoreResumptionPlanPageDto info) {
+        //获取选择机构id
+        Long orgid = info.getOrgId();
+        //下穿计算
+//        if (info.isCheckSub()) {
+//            List<Long> ids = orgService.selectCheckSubOrgIdList(info.getOrgId(), SecurityConstants.INNER);
+//            info.setIds(ids);
+//            info.setOrgId(null);
+//
+//        }
+        //获取前段对应的数据库页数
+        int current = Math.toIntExact(info.getPageNum() - 1);
+        int size = Math.toIntExact(info.getPageSize());
+        Page<AppPlan> result = new Page<>();
+        //查询所有数据
+        List<AppPlan> sel = baseMapper.selectAll(info);
+        //list转树结构
+        List<AppPlan> appPlans = recursionDept(sel,orgid);
+        //计算分页所需数组起始位置
+        int start = current * size;
+        int end = Math.min(start + size, appPlans.size());
+        //封装前端需要的分页数据
+        result.setRecords(appPlans.subList(start, end));
+
+        //计算最外层数量
+        long total = appPlans.size();
+        result.setTotal(total);
+        result.setPages(total / info.getPageSize());
         return result;
     }
 
+    /**
+     * dept递归方法转换成树形结构
+     *
+     * @param treeList
+     * @return
+     */
+    public static List<AppPlan> recursionDept(List<AppPlan> treeList,Long orgid) {
+        List<AppPlan> trees = new ArrayList<>();
+        for (AppPlan tree : treeList) {
+            // 找出父节点
+            if (-1 == tree.getParentId()) {
+                // 调用递归方法填充子节点列表
+                trees.add(findChildren(tree, treeList));
+            }
+        }
+        return trees;
+    }
+
+    /**
+     * dept递归方法
+     *
+     * @param tree     父节点对象
+     * @param treeList 所有的List
+     * @return
+     */
+    public static AppPlan findChildren(AppPlan tree, List<AppPlan> treeList) {
+        for (AppPlan node : treeList) {
+            if (tree.getId().equals(node.getParentId())) {
+                if (tree.getChildren() == null) {
+                    tree.setChildren(new ArrayList<>());
+                }
+                // 递归 调用自身
+                tree.getChildren().add(findChildren(node, treeList));
+            }
+        }
+        return tree;
+    }
+
+
     @Override
     public List<Long> findExecOrgByPlan(Long plan_id) {
         return baseMapper.findExecOrgByPlan(plan_id);
@@ -94,6 +156,7 @@ public class AppPlanServiceImpl extends ServiceImpl<AppPlanMapper, AppPlan> impl
 
             AppPlan plan = baseMapper.selectById(dto.getId());
             plan.setOrgId(d.getOrgId().toString());
+            plan.setDistributeStatus("1");
             plan.setPlanOfOrgId(d.getOrgId().toString());
             plan.setPlanStatus(d.getStatus());
             plan.setDistributePlanStatus(d.getStatus().toString());
@@ -165,6 +228,8 @@ public class AppPlanServiceImpl extends ServiceImpl<AppPlanMapper, AppPlan> impl
     public void saveOrUpdatePlan(AppPlanVo app) throws Exception {
         AppPlan plan = convertToAppPlan(app);
         if (app.getId() == null) {
+            plan.setParentId(-1L);
+            plan.setDeleted(0);
             //新增
             plan.setPlanOfOrgId(app.getPlanCreateOrgId());
             plan.setPlanOfOrgName(app.getPlanCreateOrgName());
@@ -227,7 +292,7 @@ public class AppPlanServiceImpl extends ServiceImpl<AppPlanMapper, AppPlan> impl
 //
 //            }
         } else {
-            if(app.getRoleList()==null){
+            if (app.getRoleList() == null) {
                 app.setRoleList(new ArrayList<>());
             }
             //修改
@@ -245,7 +310,7 @@ public class AppPlanServiceImpl extends ServiceImpl<AppPlanMapper, AppPlan> impl
             baseMapper.updateById(plan);
 
             Long id = plan.getId();
-            if(app.getRoleList().size()>0){
+            if (app.getRoleList().size() > 0) {
                 QueryWrapper<AppPlanToRole> apr = new QueryWrapper<>();
                 apr.lambda().eq(AppPlanToRole::getPlanId, id);
                 appPlanToRoleMapper.delete(apr);

+ 6 - 7
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/service/impl/AppRuleItemServiceImpl.java

@@ -6,21 +6,20 @@ import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.xunmei.common.core.constant.SecurityConstants;
 import com.xunmei.common.core.utils.IDHelper;
 import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.core.resumption.domain.AppRule;
 import com.xunmei.core.resumption.domain.AppRuleItem;
 import com.xunmei.core.resumption.domain.AppRulePoint;
-import com.xunmei.core.resumption.dto.appRuleItem.AppRuleItemDetailDto;
-import com.xunmei.core.resumption.dto.appRuleItem.AppRuleItemPageDto;
-import com.xunmei.core.resumption.dto.appRuleItem.AppRulePointSelectPageDto;
-import com.xunmei.core.resumption.dto.appRulePoint.AppRulePointDetailDto;
+import com.xunmei.core.resumption.dto.ruleItem.AppRuleItemDetailDto;
+import com.xunmei.core.resumption.dto.ruleItem.AppRuleItemPageDto;
+import com.xunmei.core.resumption.dto.ruleItem.AppRulePointSelectPageDto;
+import com.xunmei.core.resumption.dto.rulePoint.AppRulePointDetailDto;
 import com.xunmei.core.resumption.mapper.AppRuleItemMapper;
 import com.xunmei.core.resumption.mapper.AppRuleMapper;
 import com.xunmei.core.resumption.mapper.AppRulePointMapper;
-import com.xunmei.core.resumption.dto.appRuleItem.AppRuleItemDto;
-import com.xunmei.core.resumption.dto.appRulePoint.AppRulePointDto;
+import com.xunmei.core.resumption.dto.ruleItem.AppRuleItemDto;
+import com.xunmei.core.resumption.dto.rulePoint.AppRulePointDto;
 import com.xunmei.core.resumption.service.IAppRuleItemService;
 import com.xunmei.core.resumption.service.IAppRulePointService;
 import com.xunmei.core.resumption.vo.appRuleItem.AppRuleItemPageVo;

+ 49 - 3
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/service/impl/AppRuleServiceImpl.java

@@ -1,5 +1,7 @@
 package com.xunmei.core.resumption.service.impl;
 
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -8,14 +10,17 @@ import com.xunmei.common.core.vo.IdNameVo;
 import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.common.security.utils.SecurityUtils;
 import com.xunmei.core.resumption.domain.AppRule;
-import com.xunmei.core.resumption.dto.appRule.AppRuleListForOrgDto;
-import com.xunmei.core.resumption.dto.appRule.AppRulePageDto;
+import com.xunmei.core.resumption.dto.rule.AppRuleListForOrgDto;
+import com.xunmei.core.resumption.dto.rule.AppRulePageDto;
 import com.xunmei.core.resumption.mapper.AppRuleMapper;
-import com.xunmei.core.resumption.dto.appRule.AppRuleEditDto;
+import com.xunmei.core.resumption.dto.rule.AppRuleEditDto;
 import com.xunmei.core.resumption.service.IAppRuleService;
 import com.xunmei.core.resumption.vo.appRule.AppRuleInfoVo;
 import com.xunmei.core.resumption.vo.appRule.AppRulePageVo;
+import com.xunmei.core.resumption.vo.appRuleItem.RuleTreeItem;
+import com.xunmei.system.api.Eto.OrgListByTypesConditionEto;
 import com.xunmei.system.api.RemoteOrgService;
+import com.xunmei.system.api.domain.SysOrg;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
@@ -24,7 +29,9 @@ import com.xunmei.common.core.utils.IDHelper;
 
 import javax.annotation.Resource;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 /**
@@ -119,4 +126,43 @@ public class AppRuleServiceImpl extends ServiceImpl<AppRuleMapper, AppRule> impl
 
         return list;
     }
+
+    @Override
+    public List<RuleTreeItem> getRuleTree(Long orgId) {
+        List<RuleTreeItem> tree = new ArrayList<>();
+        List<SysOrg> orgs = remoteOrgService
+                .listByTypes(OrgListByTypesConditionEto.builder().orgId(orgId).orgTypes(Arrays.asList("1", "2", "3", "4", "11")).build())
+                .getData();
+        if (ObjectUtil.isEmpty(orgs)) {
+            return tree;
+        }
+        Map<Long, SysOrg> orgMap = orgs.stream().collect(Collectors.toMap(o -> o.getId(), o -> o));
+        List<SysOrg> tops = orgs.stream().filter(o -> !orgMap.containsKey(o.getParentId())).collect(Collectors.toList());
+        if (CollectionUtil.isEmpty(tops)) {
+            return tree;
+        }
+        List<Long> orgIds = orgs.stream().map(o -> o.getId()).collect(Collectors.toList());
+        List<AppRule> rules = appRuleMapper.selectList(new LambdaQueryWrapper<AppRule>().in(AppRule::getOrgId, orgIds));
+
+        tree = tops.stream().map(o -> generateTree(o, orgs, rules)).collect(Collectors.toList());
+
+        return tree;
+    }
+
+    private RuleTreeItem generateTree(SysOrg parent, List<SysOrg> allOrg, List<AppRule> allRule) {
+        RuleTreeItem item = RuleTreeItem.builder().isRule(0).id(parent.getId()).label(parent.getName()).children(new ArrayList<>()).build();
+        List<RuleTreeItem> ruleItems = allRule.stream().filter(r -> ObjectUtil.equal(r.getOrgId(), parent.getId()))
+                .map(o -> RuleTreeItem.builder().isRule(1).id(o.getId()).label(o.getName()).orgType(parent.getType().toString()).build())
+                .collect(Collectors.toList());
+        item.getChildren().addAll(ruleItems);
+
+        List<SysOrg> children = allOrg.stream()
+                .filter(o -> ObjectUtil.equal(o.getParentId(), parent.getId()))
+                .collect(Collectors.toList());
+        for (SysOrg child : children) {
+            item.getChildren().add(generateTree(child, allOrg, allRule));
+        }
+
+        return item;
+    }
 }

+ 1 - 2
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/service/impl/CoreResumptionDataProtectionServiceImpl.java

@@ -6,7 +6,6 @@ import com.xunmei.core.resumption.domain.CoreResumptionDataProtection;
 import com.xunmei.core.resumption.mapper.CoreResumptionDataProtectionMapper;
 import com.xunmei.core.resumption.service.ICoreResumptionDataProtectionService;
 import com.xunmei.core.resumption.vo.resumptionRegister.ResumptionDataProtectionVo;
-import com.xunmei.system.api.RemoteOrgService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -82,7 +81,7 @@ public class CoreResumptionDataProtectionServiceImpl extends ServiceImpl<CoreRes
 
     @Override
     public List<ResumptionDataProtectionVo> selectProtection(Long resumptionId) {
-        return baseMapper.selectProtectionByResumption(resumptionId);
+        return baseMapper.selectRegisteredProtection(resumptionId);
     }
 
     /**

+ 1 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/vo/ResumptionPointVo.java

@@ -44,7 +44,7 @@ public class ResumptionPointVo {
     private Integer submitBy;
     private String resremark;
     private Date submitTime;
-    private List<ResumptionNfcVo> pointnfclist;
+//    private List<ResumptionNfcVo> pointnfclist;
     private String rectificationDeadline;
 }
 

+ 8 - 3
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/vo/appPlan/AppPlanVo.java

@@ -3,6 +3,7 @@ package com.xunmei.core.resumption.vo.appPlan;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.xunmei.common.core.web.domain.PageDto;
+import com.xunmei.core.resumption.domain.AppPlan;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
@@ -18,9 +19,9 @@ import java.util.List;
 @Data
 @NoArgsConstructor
 @AllArgsConstructor
-public class AppPlanVo extends PageDto {
-
+public class AppPlanVo extends PageDto<AppPlan> {
 
+private List<Long> ids;
     private Long id;
 
     /**
@@ -55,6 +56,7 @@ public class AppPlanVo extends PageDto {
      * 执行机构类型
      */
     private Integer orgType;
+
     @JsonSerialize(using = ToStringSerializer.class)
     private Integer planType;
 
@@ -72,7 +74,10 @@ public class AppPlanVo extends PageDto {
     private String count;
     private String planCreateOrgId;
     private String planCreateOrgName;
-
+    /**
+     * 是否下穿
+     */
+    private boolean checkSub;
     /**
      * 备注
      */

+ 1 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/vo/appRuleItem/AppRuleItemPageVo.java

@@ -2,7 +2,7 @@ package com.xunmei.core.resumption.vo.appRuleItem;
 
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
-import com.xunmei.core.resumption.dto.appRulePoint.AppRulePointDetailDto;
+import com.xunmei.core.resumption.dto.rulePoint.AppRulePointDetailDto;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 

+ 126 - 24
soc-modules/soc-modules-core/src/main/resources/mapper/resumption/AppPlanMapper.xml

@@ -6,7 +6,8 @@
     </sql>
 
     <sql id="baseColumn">
-        id,plan_name,plan_type,plan_cycle,plan_exec,exec_org_type,check_org_type,check_type,exec_type,plan_status,description,create_time,modified_name,update_time,modified_by
+        id
+        ,plan_name,plan_type,plan_cycle,plan_exec,exec_org_type,check_org_type,check_type,exec_type,plan_status,description,create_time,modified_name,update_time,modified_by
     </sql>
 
     <resultMap id="appPlans" type="com.xunmei.core.resumption.domain.AppPlan">
@@ -31,7 +32,7 @@
     </resultMap>
 
 
-    <select id="selectPage" parameterType="com.xunmei.core.resumption.vo.appPlan.AppPlanVo" resultMap="appPlans">
+    <select id="selectPage" parameterType="com.xunmei.core.resumption.dto.plan.CoreResumptionPlanPageDto" resultMap="appPlans">
         SELECT
         a.*,
         d.roleNames,
@@ -82,6 +83,9 @@
             <if test="info.orgType != null">
                 and a.exec_org_type = #{info.orgType}
             </if>
+            <if test="info.orgId != null">
+                and a.plan_of_org_id = #{info.orgId}
+            </if>
             <if test="info.roleList != null and info.roleList.size > 0">
                 and a.id in (select plan_id from core_resumption_plan_to_role where role_id in
                 <foreach collection="info.roleList" item="roleId" index="index" open="(" separator="," close=")">
@@ -89,16 +93,33 @@
                 </foreach>
                 )
             </if>
-            <if test="info.orgList != null and info.orgList.size > 0">
-                and a.id in (select plan_id from core_resumption_plan_to_exec_org where org_id in
-                <foreach collection="info.orgList" item="orgId" index="index" open="(" separator="," close=")">
+<!--            <if test="info.orgList != null and info.orgList.size > 0">-->
+<!--                and a.id in (select plan_id from core_resumption_plan_to_exec_org where org_id in-->
+<!--                (select id from sys_org-->
+<!--                where path like concat((select path from sys_org where id=#{info.orgId}),'%')-->
+<!--                )-->
+<!--            </if>-->
+            and a.id in (
+                select if(parent_id=-1,id,parent_id ) as id from core_resumption_plan
+                where 1=1
+                <if test="info.checkSub==false">
+                    and plan_of_org_id=#{info.orgId}
+                </if>
+                <if test="info.checkSub=true">
+                    and plan_of_org_id in (select id from sys_org
+                                            where path like concat((select path from sys_org where id=#{info.orgId}),'%'))
+                </if>
+            )
+            <if test="info.ids!=null and info.ids.size > 0">
+                and a.plan_of_org_id in
+                <foreach collection="info.ids" item="orgId" index="index" open="(" separator="," close=")">
                     #{orgId}
                 </foreach>
-                )
             </if>
         </where>
     </select>
-    <select id="selectItemPage" parameterType="com.xunmei.core.resumption.vo.appPlan.RuleItemVo" resultType="com.xunmei.core.resumption.vo.appPlan.RuleItemVo">
+    <select id="selectItemPage" parameterType="com.xunmei.core.resumption.vo.appPlan.RuleItemVo"
+            resultType="com.xunmei.core.resumption.vo.appPlan.RuleItemVo">
         select
         a.id,
         a.item_id,
@@ -131,18 +152,17 @@
 
 
     <select id="selectByPlanId" resultType="com.xunmei.core.resumption.vo.appPlan.RuleItemVo">
-        SELECT
-            h.point_id as id,
-            a.item_id,
-            b.NAME AS item_name,
-            b.DESC AS item_desc,--                b.item_num,
+        SELECT h.point_id      as id,
+               a.item_id,
+               b.NAME          AS item_name,
+               b.DESC          AS item_desc,--                b.item_num,
 --                a.safe_type,
-            c.`name` area_name,
-            a.NAME AS point_name,--                a.point_num,
-            h.point_scan,
-            h.required,
-            d.NAME AS ruleName,
-            a.business_type AS businessType
+               c.`name`           area_name,
+               a.NAME          AS point_name,--                a.point_num,
+               h.point_scan,
+               h.required,
+               d.NAME          AS ruleName,
+               a.business_type AS businessType
         FROM (SELECT point_id, point_scan, required FROM core_resumption_plan_to_point WHERE plan_id = #{planId}) h
                  LEFT JOIN core_resumption_rule_point a ON h.point_id = a.id
                  LEFT JOIN core_resumption_rule_item b ON a.item_id = b.id
@@ -154,7 +174,7 @@
     <select id="findExecOrgByPlan" parameterType="Long" resultType="Long">
         select org_id
         from core_resumption_plan_to_exec_org a
-        INNER JOIN sys_org o on a.org_id=o.id and o.deleted=0 and o.is_lock=0
+                 INNER JOIN sys_org o on a.org_id = o.id and o.deleted = 0 and o.is_lock = 0
         where a.plan_id = #{plan_id}
     </select>
     <select id="findRoleByPlan" parameterType="Long" resultType="Long">
@@ -212,17 +232,99 @@
     <select id="selectPlanByName" resultMap="appPlans">
         select *
         from core_resumption_plan
-        where plan_name like CONCAT('%', #{planName}, '%') and deleted=0
+        where plan_name like CONCAT('%', #{planName}, '%')
+          and deleted = 0
         limit 1
     </select>
     <select id="selectPlanNameById" resultType="java.lang.String">
-        select plan_name from core_resumption_plan where id = #{planId}
+        select plan_name
+        from core_resumption_plan
+        where id = #{planId}
     </select>
     <select id="selectPlanNames" resultType="com.xunmei.common.core.vo.IdNameVo">
         select id, plan_name as name from core_resumption_plan where id in
-            <foreach collection="ids" item="id" open="(" close=")" separator=",">
-                #{id}
-            </foreach>
+        <foreach collection="ids" item="id" open="(" close=")" separator=",">
+            #{id}
+        </foreach>
         and deleted=0
     </select>
+    <select id="selectAll" resultType="com.xunmei.core.resumption.domain.AppPlan">
+        SELECT
+        a.*,
+        d.roleNames,
+        b.orgId,
+        b.orgNames,
+        o.name as plan_of_org_name,
+        g.name as plan_create_org_name,
+        g.type as org_type
+        FROM
+        core_resumption_plan a
+        LEFT JOIN (
+        SELECT
+        m.plan_id,
+        GROUP_CONCAT( n.`name` ) orgNames,
+        GROUP_CONCAT( n.id ) orgId
+        FROM
+        core_resumption_plan_to_exec_org m
+        LEFT JOIN sys_org n ON m.org_id = n.id
+
+        GROUP BY
+        m.plan_id
+        ) b ON a.id = b.plan_id
+        LEFT JOIN (
+        SELECT
+        r.plan_id,
+        group_concat( t.`role_name` ) roleNames
+        FROM
+        core_resumption_plan_to_role r
+        LEFT JOIN sys_role t ON r.role_id = t.id
+        GROUP BY
+        r.plan_id
+        ) d ON a.id = d.plan_id
+        LEFT JOIN sys_org o ON a.plan_of_org_id = o.id
+        LEFT JOIN sys_org g ON a.plan_create_org_id = g.id
+
+        <where>
+            a.deleted=0
+            <if test="info.planName != '' and info.planName != null">
+                and a.plan_name LIKE CONCAT('%', #{info.planName}, '%' )
+            </if>
+            <if test="info.planStatus != null">
+                and a.plan_status = #{info.planStatus}
+            </if>
+            <if test="info.planCycle != null">
+                and a.plan_cycle = #{info.planCycle}
+            </if>
+            <if test="info.planExec != null">
+                and a.plan_exec = #{info.planExec}
+            </if>
+            <if test="info.orgType != null">
+                and a.exec_org_type = #{info.orgType}
+            </if>
+            <if test="info.orgId != null">
+                and a.plan_of_org_id = #{info.orgId}
+            </if>
+            <if test="info.roleList != null and info.roleList.size > 0">
+                and a.id in (select plan_id from core_resumption_plan_to_role where role_id in
+                <foreach collection="info.roleList" item="roleId" index="index" open="(" separator="," close=")">
+                    #{roleId}
+                </foreach>
+                )
+            </if>
+            <if test="info.orgList != null and info.orgList.size > 0">
+                and a.id in (select plan_id from core_resumption_plan_to_exec_org where org_id in
+                <foreach collection="info.orgList" item="orgId" index="index" open="(" separator="," close=")">
+                    #{orgId}
+                </foreach>
+                )
+            </if>
+            <if test="info.ids!=null and info.ids.size > 0">
+                and a.plan_of_org_id in
+                <foreach collection="info.ids" item="orgId" index="index" open="(" separator="," close=")">
+                    #{orgId}
+                </foreach>
+            </if>
+        </where>
+
+    </select>
 </mapper>

+ 3 - 3
soc-modules/soc-modules-core/src/main/resources/mapper/resumption/AppRulePointMapper.xml

@@ -1,14 +1,14 @@
 <?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.xunmei.core.resumption.mapper.AppRulePointMapper">
-    <select id="selectDataListByItemId" resultType="com.xunmei.core.resumption.dto.appRulePoint.AppRulePointDetailDto">
+    <select id="selectDataListByItemId" resultType="com.xunmei.core.resumption.dto.rulePoint.AppRulePointDetailDto">
         select p.*,a.name as areaName
         from core_resumption_rule_point p
                  inner join sys_area a on p.area_id = a.id
         where item_id = #{id}
           and p.deleted = 0
     </select>
-<!--    <select id="selectDataListByIdList" resultType="com.xunmei.core.resumption.dto.appRulePoint.AppRulePointInfoDto"-->
+<!--    <select id="selectDataListByIdList" resultType="com.xunmei.core.resumption.dto.rulePoint.AppRulePointInfoDto"-->
 <!--            parameterType="java.util.List">-->
 <!--        select-->
 <!--        ri.id as itemId,-->
@@ -54,7 +54,7 @@
                  LEFT JOIN core_resumption_plan c ON b.plan_id = c.id
         WHERE c.id = #{planid}
     </select>
-    <select id="selectPointListByIdList" resultType="com.xunmei.core.resumption.dto.appRulePoint.AppRulePointInfoDto"
+    <select id="selectPointListByIdList" resultType="com.xunmei.core.resumption.dto.rulePoint.AppRulePointInfoDto"
             parameterType="java.util.List">
         select
         ri.id as itemId,

+ 8 - 6
soc-modules/soc-modules-core/src/main/resources/mapper/resumption/CoreResumptionDataProtectionMapper.xml

@@ -61,13 +61,15 @@
           and cp.all_Hour = 0
           and cp.deleted = 0
     </select>
-    <select id="selectProtectionByResumption"
+    <select id="selectRegisteredProtection"
             resultType="com.xunmei.core.resumption.vo.resumptionRegister.ResumptionDataProtectionVo">
-        SELECT dp.id                as id,
-               cp.id                as protectionId,
-               cp.name              as protectionName,
-               dp.protection_status as protectionStatus,
-               dp.protection_time   as protectionTime
+        SELECT dp.id                 as id,
+               dp.resumption_data_id as resumptionDataId,
+               dp.resumption_id      as resumptionId,
+               cp.id                 as protectionId,
+               cp.name               as protectionName,
+               dp.protection_status  as protectionStatus,
+               dp.protection_time    as protectionTime
         FROM core_resumption_data_protection dp
                  LEFT JOIN core_protection cp ON cp.id = dp.protection_id
         where dp.resumption_id = #{resumptionId}

+ 63 - 13
soc-modules/soc-modules-sync/src/main/java/com/xunmei/sync/service/impl/FJNXSyncServiceImpl.java

@@ -90,9 +90,11 @@ public class FJNXSyncServiceImpl implements IFJNXSyncService {
         }
         List<SysOrg> existOrgList = existAllOrgResult.getData();
 
+        List<FjnxOrg> existFjnxOrgList = ifjnxOrgService.list();
+
         //将FJNXUser 转换为SysUser 并保存
         if (ObjectUtil.isEmpty(existUserList)) {
-            final R<Boolean> booleanR = remoteUserService.batchSaveSyncUser(FjnxUsersConvertToUsers(fjnxXmlUserDto.getUserVos(), existOrgList), SecurityConstants.INNER);
+            final R<Boolean> booleanR = remoteUserService.batchSaveSyncUser(FjnxUsersConvertToUsers(fjnxXmlUserDto.getUserVos(), existOrgList,existFjnxOrgList), SecurityConstants.INNER);
             if (booleanR != null && booleanR.getCode() != 200) {
                 log.error("调用远程服务接口remoteUserService.batchSaveSyncOrg 失败:{}", booleanR.getMsg());
                 return "remoteUserService.batchSaveSyncUser 调用失败:" + booleanR.getMsg();
@@ -107,18 +109,27 @@ public class FJNXSyncServiceImpl implements IFJNXSyncService {
         fjnxXmlUserDto.getUserVos().forEach(fjnxUser -> {
             String orgCode = fjnxUser.getDepCode();
             if (!StringUtil.isNullOrEmpty(orgCode) && !StringUtil.isNullOrEmpty(fjnxUser.getUserId())) {
+                fjnxUserCodeList.add(fjnxUser.getUserId());
+
                 Optional<SysOrg> optionalOrg = existOrgList.stream().filter(x -> orgCode.equals(x.getCode())).findFirst();
-                if (optionalOrg.isPresent()) {
+
+                SysOrg userBusinessSysOrg= getUserBusinessFjnxOrg(existFjnxOrgList,existOrgList,fjnxUser);
+                if (optionalOrg.isPresent() && ObjectUtil.isNotEmpty(userBusinessSysOrg)) {
+//                    final Optional<SysOrg> businessSysOrgOptional = existOrgList.stream().filter(x -> userBusinessFjnxOrg.getOrgCode().equals(x.getCode())).findFirst();
+//                    if(!businessSysOrgOptional.isPresent())
+//                    {
+//                        return;
+//                    }
                     Optional<SysUser> optionalUser = existUserList.stream().filter(x -> fjnxUser.getUserId().equals(x.getCode())).findFirst();
                     if (optionalUser.isPresent()) {
-                        updateList.add(FjnxUserConvertToUser(fjnxUser, optionalUser.get(), optionalOrg.get()));
+                        updateList.add(FjnxUserConvertToUser(fjnxUser, optionalUser.get(), optionalOrg.get(),userBusinessSysOrg));
                     } else {
-                        addList.add(FjnxUserConvertToUser(fjnxUser, optionalOrg.get()));
+                        addList.add(FjnxUserConvertToUser(fjnxUser, optionalOrg.get(),userBusinessSysOrg));
                     }
                 } else {
                     log.error("同步人员【{}】所属机构编码【{}】在当前数据库中未找到,{}", fjnxUser.getUserId() + fjnxUser.getUserName(), fjnxUser.getDepCode(), fjnxUser);
                 }
-                fjnxUserCodeList.add(fjnxUser.getUserId());
+
             }
         });
 
@@ -512,13 +523,14 @@ public class FJNXSyncServiceImpl implements IFJNXSyncService {
     }
 
 
-    private List<SysUser> FjnxUsersConvertToUsers(List<FJNXUserDto> fjnxUserDtoList, List<SysOrg> orgList) {
+    private List<SysUser> FjnxUsersConvertToUsers(List<FJNXUserDto> fjnxUserDtoList, List<SysOrg> orgList,List<FjnxOrg> fjnxOrgList) {
         List<SysUser> result = new ArrayList<>();
         if (ObjectUtil.isNotEmpty(fjnxUserDtoList)) {
             fjnxUserDtoList.forEach(x -> {
+                SysOrg userBusinessSysOrg= getUserBusinessFjnxOrg(fjnxOrgList,orgList,x);
                 Optional<SysOrg> optionalOrg = orgList.stream().filter(org -> org.getCode().equals(x.getDepCode())).findFirst();
-                if (optionalOrg.isPresent()) {
-                    result.add(FjnxUserConvertToUser(x, optionalOrg.get()));
+                if (optionalOrg.isPresent() && ObjectUtil.isNotEmpty(userBusinessSysOrg)) {
+                    result.add(FjnxUserConvertToUser(x, optionalOrg.get(),userBusinessSysOrg));
                 } else {
                     log.error("同步人员【{}】所属机构编码【{}】在当前数据库中未找到,{}", x.getUserId() + x.getUserName(), x.getDepCode(), x);
                 }
@@ -528,7 +540,7 @@ public class FJNXSyncServiceImpl implements IFJNXSyncService {
         return result;
     }
 
-    private SysUser FjnxUserConvertToUser(FJNXUserDto fjnxUserDto, SysOrg org) {
+    private SysUser FjnxUserConvertToUser(FJNXUserDto fjnxUserDto, SysOrg org,SysOrg businessOrg) {
         SysUser user = new SysUser();
         user.setCode(fjnxUserDto.getUserId());
         user.setName(fjnxUserDto.getUserName());
@@ -539,9 +551,9 @@ public class FJNXSyncServiceImpl implements IFJNXSyncService {
         user.setJobNumber(fjnxUserDto.getTeller());
 //        user.setApproveStatus(ApproveStatus.PASS);
         user.setUpdateTime(fjnxUserDto.getUpdateTime());
-        user.setOrgId(org.getId());
-        user.setOrgName(org.getName());
-        user.setOrgPath(org.getPath());
+        user.setOrgId(businessOrg.getId());
+        user.setOrgName(businessOrg.getName());
+        user.setOrgPath(businessOrg.getPath());
         //0 禁用 1 启用已改密码 2 启用未改密码
         user.setIsLock(fjnxUserDto.getUserStatus());
         user.setSource(1);
@@ -551,7 +563,7 @@ public class FJNXSyncServiceImpl implements IFJNXSyncService {
 
     }
 
-    private SysUser FjnxUserConvertToUser(FJNXUserDto fjnxUserDto, SysUser user, SysOrg org) {
+    private SysUser FjnxUserConvertToUser(FJNXUserDto fjnxUserDto, SysUser user, SysOrg org,SysOrg businessOrg) {
         user.setCode(fjnxUserDto.getUserId());
         user.setName(fjnxUserDto.getUserName());
         user.setUsername(fjnxUserDto.getLoginName());
@@ -573,6 +585,44 @@ public class FJNXSyncServiceImpl implements IFJNXSyncService {
 
     }
 
+    /**
+     * 获取用户的业务机构
+     * @return
+     */
+    private SysOrg getUserBusinessFjnxOrg(List<FjnxOrg> fjnxOrgList,List<SysOrg> existOrgList,FJNXUserDto fjnxUserDto){
+        final Optional<FjnxOrg> fjnxOrgOptional = fjnxOrgList.stream().filter(x -> x.getOrgCode().equals(fjnxUserDto.getDepCode())).findFirst();
+        if(fjnxOrgOptional.isPresent())
+        {
+           if("0001".equals(fjnxOrgOptional.get().getOrgType()))
+           {
+               final Optional<FjnxOrg> corporCodeOptional = fjnxOrgList.stream().filter(x -> x.getOrgCode().equals(fjnxUserDto.getCorporCode())).findFirst();
+               if(corporCodeOptional.isPresent())
+               {
+                   return getSysOrgByFjnxOrg(existOrgList, corporCodeOptional.get());
+               }else {
+                   log.error("同步人员【{}】所属法人机构编码【{}】在当前fjnx_org中未找到对应法人机构,{}", fjnxUserDto.getUserId() + fjnxUserDto.getUserName(), fjnxUserDto.getCorporCode(), fjnxUserDto);
+               }
+           }
+           else {
+               return getSysOrgByFjnxOrg(existOrgList,fjnxOrgOptional.get());
+//               return fjnxOrgOptional.get();
+           }
+        }
+        else {
+            log.error("同步人员【{}】所属机构编码【{}】在当前fjnx_org中未找到对应机构,{}", fjnxUserDto.getUserId() + fjnxUserDto.getUserName(), fjnxUserDto.getDepCode(), fjnxUserDto);
+        }
+        return  null;
+    }
+
+    private SysOrg getSysOrgByFjnxOrg(List<SysOrg> existOrgList,FjnxOrg fjnxOrg)
+    {
+        final Optional<SysOrg> businessSysOrgOptional = existOrgList.stream().filter(x -> fjnxOrg.getOrgCode().equals(x.getCode())).findFirst();
+        if(businessSysOrgOptional.isPresent())
+            return  businessSysOrgOptional.get();
+
+        return null;
+    }
+
     private List<FjnxOrg> ConvertXmlOrgDtoToOrgJinx(List<FJNXOrgDto> list) {
         if (ObjectUtil.isEmpty(list)) {
             return new ArrayList<>();

+ 11 - 6
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/controller/SysDeptController.java

@@ -26,10 +26,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 
 /**
  * 部门信息
@@ -137,12 +134,20 @@ public class SysDeptController extends BaseController {
      */
     @GetMapping("/deptTree")
     public AjaxResult deptTree(SysOrg dept) {
-        return success(deptService.selectDeptTreeList(dept));
+        return success(deptService.selectDeptTreeList(new ArrayList<>()));
+    }
+
+    /**
+     * 获取部门树列表(机构)
+     */
+    @GetMapping("/deptTree/hangshe")
+    public AjaxResult hangsheDeptTree() {
+        return success(deptService.selectDeptTreeList(Arrays.asList(1,2,3)));
     }
 
     /**
      * @param dept
-     * @return 获取部门树(真部门)
+     * @return 获取部门树(全量信息
      */
     @GetMapping("/sysDeptTree")
     public AjaxResult sysDeptTree(SysDept dept) {

+ 2 - 0
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/controller/SysOrgController.java

@@ -154,6 +154,7 @@ public class SysOrgController extends BaseController {
      * @return
      */
     @GetMapping("/getUpOrgs/{orgId}")
+    @InnerAuth
     public List<Long> getUpOrgs(@PathVariable("orgId") Long orgId) {
         SysOrg org=sysOrgMapper.selectById(orgId);
         if(ObjectUtil.isNull(org)){
@@ -178,6 +179,7 @@ public class SysOrgController extends BaseController {
      * @return
      */
     @PostMapping("/getParentNames")
+    @InnerAuth
     public R<List<IdNameVo>> getParentName(@RequestBody List<Long> ids) {
         return R.ok(sysOrgMapper.getParentName(ids));
     }

+ 2 - 1
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/controller/SysRoleController.java

@@ -23,6 +23,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -196,7 +197,7 @@ public class SysRoleController extends BaseController {
     public AjaxResult deptTree(@PathVariable("roleId") Long roleId) {
         AjaxResult ajax = AjaxResult.success();
         ajax.put("checkedKeys", deptService.selectDeptListByRoleId(roleId));
-        ajax.put("depts", deptService.selectDeptTreeList(new SysOrg()));
+        ajax.put("depts", deptService.selectDeptTreeList(new ArrayList<>()));
         return ajax;
     }
 

+ 2 - 16
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/controller/SysUserController.java

@@ -209,19 +209,8 @@ public class SysUserController extends BaseController {
         final String salt = SaltHelper.salt();
         user.setSalt(salt);
         user.setPassword(SaltHelper.exec(user.getPassword(), salt));
+        user.setOriginalOrgId(user.getOrgId());
         userService.insertUser(user);
-//        if (user.getId()!=null&&user.getRoleIds()!=null&&user.getRoleIds().length > 0) {
-//            for (Long roleId :
-//                    user.getRoleIds()) {
-//                SysUserRole sysUserRole = new SysUserRole();
-//                sysUserRole.setUserId(user.getId());
-//                sysUserRole.setRoleId(roleId);
-//                sysUserRoleService.insertSysUserRole(sysUserRole);
-//            }
-//
-//        }
-
-//        user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
         return AjaxResult.success();
     }
 
@@ -239,10 +228,7 @@ public class SysUserController extends BaseController {
         } else if (StringUtils.isNotEmpty(user.getPhone()) && !userService.checkPhoneUnique(user)) {
             return error("修改用户'" + user.getUsername() + "'失败,手机号码已存在");
         }
-//        else if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user))
-//        {
-//            return error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在");
-//        }
+
         if (user.getRoleIds() != null && user.getRoleIds().length > 0) {
             sysUserRoleService.remove(new QueryWrapper<SysUserRole>().eq("user_id", user.getId()));
             for (Long roleId :

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

@@ -1,6 +1,7 @@
 package com.xunmei.system.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.xunmei.system.api.domain.SysOrg;
 import com.xunmei.system.api.domain.SysUser;
 import com.xunmei.system.domain.vo.SysUserVO;
@@ -10,7 +11,7 @@ import java.util.List;
 
 /**
  * 用户表 数据层
- * 
+ *
  * @author xunmei
  */
 public interface SysUserMapper extends BaseMapper<SysUser>
@@ -24,6 +25,14 @@ public interface SysUserMapper extends BaseMapper<SysUser>
      List<SysUser> selectUserList(SysUser sysUser);
 
     /**
+     * sql重写分页数据
+     * @param page
+     * @param info
+     * @return
+     */
+     Page<SysUser> getPage(Page<SysUser> page,@Param("info") SysUser info);
+
+    /**
      * 根据条件分页查询已配用户角色列表
      *
      * @param user 用户信息

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

@@ -29,7 +29,7 @@ public interface ISysDeptService extends IService<SysDept> {
      * @param dept 部门信息
      * @return 部门树信息集合
      */
-    List<SysOrgVO> selectDeptTreeList(SysOrg dept);
+    List<SysOrgVO> selectDeptTreeList(List<Integer> orgTypes);
 
     /**
      * 部门管理

+ 10 - 4
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysDeptServiceImpl.java

@@ -108,11 +108,11 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
     /**
      * 查询部门树结构信息
      *
-     * @param dept 部门信息
+     * @param orgTypes 机构类型
      * @return 部门树信息集合
      */
     @Override
-    public List<SysOrgVO> selectDeptTreeList(SysOrg dept) {
+    public List<SysOrgVO> selectDeptTreeList(List<Integer> orgTypes) {
         Long s = System.currentTimeMillis();
         Long userId = SecurityUtils.getUserId();
         SysOrg sysOrg = orgMapper.selectSysOrgByUserId(userId);
@@ -129,9 +129,15 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
         List<SysOrgVO> orgs = new ArrayList<>();
         for (SysOrgVO org : cacheList) {
             String path = org.getPath();
-            if (StringUtils.isNotEmpty(path) && path.startsWith(sysOrg.getPath())) {
-                orgs.add(org);
+            if(StringUtils.isEmpty(path) || !path.startsWith(sysOrg.getPath())){
+                continue;
+            }
+
+            if(CollectionUtils.isNotEmpty(orgTypes) && !orgTypes.contains(org.getType())){
+                continue;
             }
+
+            orgs.add(org);
         }
         Long parentId = Constants.TOP_ORG_PARENT_ID;
         if (ObjectUtil.notEqual(Constants.TOP_ORG_PARENT_ID, sysOrg.getParentId())) {

+ 10 - 27
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysUserServiceImpl.java

@@ -91,38 +91,21 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         } else {
             page = new Page<>();
         }
+
         //查询条件
-        QueryWrapper<SysUser> query = new QueryWrapper<>(user);
-        QueryWrapper queryWrapper = new QueryWrapper();
-        queryWrapper.eq("parent_id", -1);
-        SysOrg sysOrg1 = sysOrgMapper.selectOne(queryWrapper);
+        QueryWrapper<SysOrg> queryWrapper = new QueryWrapper<>();
+        SysOrg org = null;
         if (null == user.getOrgId()) {
-            user.setOrgId(sysOrg1.getId());
+            queryWrapper.eq("parent_id", -1);
+            org = sysOrgMapper.selectOne(queryWrapper);
+        }else{
+            org = sysOrgMapper.selectById(user.getOrgId());
         }
-        //下穿
-        if (user.getCheckSub()) {
-            List<Long> ids = orgService.selectCheckSubOrgIdList(user.getOrgId());
-            //清空前端传递的org_id
-            user.setOrgId(null);
-            //添加in条件
-            query.in("org_id", ids);
+        user.setOrgPath(org.getPath());
 
-        }
-        //时间范围查询
-        if (user.getParams().get("beginTime") != null && user.getParams().get("endTime") != null) {
-            query.between("create_time", user.getParams().get("beginTime"), user.getParams().get("endTime"));
-        }
-        //模糊查询
-        if (StringUtils.isNotNull(user.getUsername())) {
-            query.like("username", user.getUsername());
-            user.setUsername(null);
-        }
         //获取数据
-        page = userMapper.selectPage(page, query);
-        for (SysUser u :
-                page.getRecords()) {
-            u.setOrgName(orgService.selectSysOrgById(u.getOrgId()).getName());
-        }
+        page = userMapper.getPage(page,user);
+
         //抓换为TableDataInfo适配前端
         return TableDataInfo.build(page);
 

+ 2 - 1
soc-modules/soc-modules-system/src/main/resources/mapper/system/SysOrgMapper.xml

@@ -598,7 +598,8 @@
         SELECT id,
                `name`,
                path,
-               parent_id
+               parent_id,
+                type
         FROM sys_org
         WHERE deleted = 0
     </select>

+ 68 - 3
soc-modules/soc-modules-system/src/main/resources/mapper/system/SysUserMapper.xml

@@ -84,6 +84,7 @@
                u.create_by,
                u.create_time,
                u.remark,
+               u.original_org_id,
                d.dept_id,
                d.parent_id,
                d.ancestors,
@@ -137,7 +138,7 @@
     </select>
 
     <select id="selectAllocatedList" parameterType="com.xunmei.system.domain.vo.SysUserVO"
-            resultType="com.xunmei.system.domain.vo.SysUserVO">
+            resultType="com.xunmei.system.api.domain.SysUser">
         select distinct u.name as name,u.is_lock as isLock, u.id as id, u.dept_id as deptId, u.username as username,
         u.phone as phone, u.create_time as createTime
         from sys_user u
@@ -156,7 +157,7 @@
     </select>
 
     <select id="selectUnallocatedList" parameterType="com.xunmei.system.domain.vo.SysUserVO"
-            resultType="com.xunmei.system.domain.vo.SysUserVO">
+            resultType="com.xunmei.system.api.domain.SysUser">
         select distinct u.id, u.dept_id, u.username, u.name, u.phone, u.is_lock, u.create_time
         from sys_user u
         left join sys_dept d on u.dept_id = d.dept_id
@@ -388,4 +389,68 @@
                  inner join sys_user u on o.id = u.org_id
         where u.id = #{userId}
     </select>
-</mapper>
+
+    <select id="getPage" resultType="com.xunmei.system.api.domain.SysUser">
+        select
+        u.id,
+        u.dept_id,
+        u.is_lock,
+        u.job_id,
+        u.name,
+        u.username,
+        u.org_id,
+        u.phone,
+        u.create_time,
+        u.modified_name,
+        u.update_time,
+        u.modified_id,
+        u.password,
+        u.salt,
+        u.deleted,
+        u.last_ip,
+        u.last_time,
+        o.name as org_name,
+        o.path as org_path,
+        u.image,
+        u.card,
+        u.gender,
+        u.job_number,
+        u.note,
+        u.is_sign,
+        u.sign_time,
+        u.agreement_id,
+        u.sign_version,
+        u.approve_status,
+        u.locked,
+        u.create_by,
+        u.update_by,
+        u.code,
+        u.source,
+        u.original_org_id
+        from sys_user u
+        left join  sys_org o on u.original_org_id = o.id
+        where 1=1
+        <choose>
+            <when test="info.checkSub">
+                AND o.path like concat('%', #{info.orgPath}, '%')
+            </when>
+            <otherwise>
+                AND o.id = #{info.orgId}
+            </otherwise>
+        </choose>
+        <if test="info.isLock != null and info.isLock != ''">
+            AND u.is_lock = #{isLock}
+        </if>
+        <if test="info.username != null and info.username != ''">
+            AND u.username like concat('%', #{info.username}, '%')
+        </if>
+        <if test="info.params.beginTime != null and info.params.beginTime != ''">
+            <!-- 开始时间检索 -->
+            AND date_format(u.create_time,'%y%m%d') &gt;= date_format(#{params.beginTime},'%y%m%d')
+        </if>
+        <if test="info.params.endTime != null and info.params.endTime != ''">
+            <!-- 结束时间检索 -->
+            AND date_format(u.create_time,'%y%m%d') &lt;= date_format(#{params.endTime},'%y%m%d')
+        </if>
+    </select>
+</mapper>