Compare commits

...

1 Commits
master ... dev

Author SHA1 Message Date
luyan ba55e8b439 增加政策找人功能; 2 years ago
  1. 1
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/Constant.java
  2. 1
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/DictTypeEnum.java
  3. 75
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcPolicyCategoryDTO.java
  4. 77
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcPolicyDTO.java
  5. 82
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcPolicyRuleDTO.java
  6. 120
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcPolicyRuleDetailDTO.java
  7. 101
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/policy/IcPolicyFormDTO.java
  8. 38
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/policy/IcPolicyPageFormDTO.java
  9. 94
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/policy/IcPolicyRuleDetailDTO.java
  10. 45
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/policy/IcPolicyRuleFormDTO.java
  11. 73
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/resi/ResisByPolicyRulesFormDTO.java
  12. 79
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/policy/IcPolicyItemResultDTO.java
  13. 189
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPolicyController.java
  14. 17
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/HeartAttachmentDao.java
  15. 17
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcPolicyCategoryDao.java
  16. 36
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcPolicyDao.java
  17. 17
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcPolicyRuleDao.java
  18. 17
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcPolicyRuleDetailDao.java
  19. 82
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/HeartAttachmentEntity.java
  20. 41
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcPolicyCategoryEntity.java
  21. 63
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcPolicyEntity.java
  22. 110
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcPolicyRuleDetailEntity.java
  23. 41
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcPolicyRuleEntity.java
  24. 78
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPolicyCategoryService.java
  25. 78
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPolicyRuleDetailService.java
  26. 78
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPolicyRuleService.java
  27. 64
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPolicyService.java
  28. 82
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPolicyCategoryServiceImpl.java
  29. 81
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPolicyRuleDetailServiceImpl.java
  30. 82
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPolicyRuleServiceImpl.java
  31. 340
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPolicyServiceImpl.java
  32. 30
      epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/HeartAttachmentDao.xml
  33. 23
      epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcPolicyCategoryDao.xml
  34. 92
      epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcPolicyDao.xml
  35. 23
      epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcPolicyRuleDao.xml
  36. 33
      epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcPolicyRuleDetailDao.xml

1
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/Constant.java

@ -174,4 +174,5 @@ public interface Constant {
String OPITON_SOURCE_REMOTE = "remote";
String OPITON_SOURCE_LOCAL = "local";
String AUTO_PASSED="auto_passed";
}

1
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/DictTypeEnum.java

@ -27,6 +27,7 @@ public enum DictTypeEnum {
IC_EVENT_SOURCE_TYPE("ic_event_source_type","事件管理",19),
IC_SERVICE_TYPE("ic_service_type","服务类别",20),
IC_DANGER_TYPE("ic_danger_type","危化品种类",24),
POLICY_LEVEL("policy_level","政策级别",25),
;
private final String code;

75
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcPolicyCategoryDTO.java

@ -0,0 +1,75 @@
package com.epmet.dto;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 政策匹配资源类型
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-07-18
*/
@Data
public class IcPolicyCategoryDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
private String id;
/**
* 客户ID
*/
private String customerId;
/**
* 政策id
*/
private String icPolicyId;
/**
* 分类编码
*/
private String categoryCode;
/**
* 分类全路径,包含CATEGORY_CODE,英文逗号隔开
*/
private String codePath;
/**
* 删除标记 0未删除1已删除
*/
private String delFlag;
/**
* 乐观锁
*/
private Integer revision;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
}

77
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcPolicyDTO.java

@ -0,0 +1,77 @@
package com.epmet.dto;
import com.epmet.commons.tools.dto.form.FileCommonDTO;
import com.epmet.dto.form.policy.IcPolicyRuleFormDTO;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* 政策表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-07-18
*/
@Data
public class IcPolicyDTO implements Serializable {
private static final long serialVersionUID = 1L;
private String policyId;
/**
* 政策创建人所属组织id
*/
private String orgId;
/**
* AGENCY_ID的全路径含agency_id
*/
private String orgIdPath;
/**
* 政策级别0市级1区级2街道级
*/
private String policyLevel;
/**
* 政策级别0市级1区级2街道级
*/
private String policyLevelName;
/**
* 生效起止日期
*/
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date startDate;
/**
* 截止日期
*/
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date endDate;
/**
* 政策标题
*/
private String title;
/**
* 政策内容
*/
private String content;
/**
* 是否过期1已过期0未过期
*/
private String expiredFlag;
//以下三个详情接口返回
private List<IcPolicyCategoryDTO> categoryList;
private List<FileCommonDTO> attachmentList;
private List<IcPolicyRuleFormDTO> ruleList;
}

82
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcPolicyRuleDTO.java

@ -0,0 +1,82 @@
package com.epmet.dto;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 政策匹配规则
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-07-18
*/
@Data
public class IcPolicyRuleDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
private String id;
/**
* 客户ID
*/
private String customerId;
/**
* 政策id
*/
private String icPolicyId;
/**
* 规则名称
*/
private String ruleName;
/**
* 排序字段
*/
private Integer sort;
/**
* 删除标记 0未删除1已删除
*/
@JsonIgnore
private String delFlag;
/**
* 乐观锁
*/
@JsonIgnore
private Integer revision;
/**
* 创建人
*/
@JsonIgnore
private String createdBy;
/**
* 创建时间
*/
@JsonIgnore
private Date createdTime;
/**
* 更新人
*/
@JsonIgnore
private String updatedBy;
/**
* 更新时间
*/
@JsonIgnore
private Date updatedTime;
}

120
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcPolicyRuleDetailDTO.java

@ -0,0 +1,120 @@
package com.epmet.dto;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 政策匹配规则明细
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-07-18
*/
@Data
public class IcPolicyRuleDetailDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
private String id;
/**
* 客户ID
*/
private String customerId;
/**
* 政策id
*/
private String icPolicyId;
/**
* 规则id
*/
private String ruleId;
/**
* 规则描述文字例如基础信息性别等于女
*/
private String ruleDesc;
/**
* resi:人员信息,house:房屋信息stat:统计信息
*/
private String groupType;
/**
* 与上一条的关系andor
*/
private String nextLogicalRel;
/**
* 分组id人员信息有值
*/
private String itemGroupId;
/**
* 组件id人员信息有值
*/
private String itemId;
/**
* 查询类型等于不等于....;来源于字典表sql_query_type
*/
private String queryType;
/**
* 表名人员信息有值
*/
private String colTable;
/**
* 人员信息存储组件对应的列名房屋信息存储ic_house表的列名统计信息应该是定义到字典表这里存储字典key就行吧
*/
private String colKey;
/**
* 参数值
*/
private String colVal;
/**
* 排序字段;同一group_type升序
*/
private Integer sort;
/**
* 删除标记 0未删除1已删除
*/
private String delFlag;
/**
* 乐观锁
*/
private Integer revision;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
}

101
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/policy/IcPolicyFormDTO.java

@ -0,0 +1,101 @@
package com.epmet.dto.form.policy;
import com.epmet.commons.tools.dto.form.FileCommonDTO;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import com.epmet.dto.IcPolicyCategoryDTO;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* @Description
* @Author yzm
* @Date 2022/7/19 13:09
*/
@Data
public class IcPolicyFormDTO implements Serializable {
public interface AddUserInternalGroup {
}
public interface AddUserShowGroup extends CustomerClientShowGroup {
}
public interface UpdateUserInternalGroup {
}
@NotBlank(message = "政策id不能为空",groups = UpdateUserInternalGroup.class)
private String policyId;
/**
* 政策创建人所属组织id
*/
@NotBlank(message = "orgId不能为空",groups = UpdateUserInternalGroup.class)
private String orgId;
// /**
// * AGENCY_ID的全路径,含agency_id
// */
// @NotBlank(message = "orgIdPath不能为空",groups = UpdateUserInternalGroup.class)
// private String orgIdPath;
/**
* 客户id
*/
@NotBlank(message = "客户id不能为空", groups = AddUserInternalGroup.class)
private String customerId;
private String staffId;
/**
* 政策级别0市级1区级2街道级
*/
@NotBlank(message = "政策级别不能为空", groups = AddUserShowGroup.class)
private String policyLevel;
/**
* 生效起止日期
*/
@JsonFormat(pattern="yyyy-MM-dd")
@NotNull(message = "政策开始日期不能为空", groups = AddUserShowGroup.class)
private Date startDate;
/**
* 截止日期
*/
@JsonFormat(pattern="yyyy-MM-dd")
@NotNull(message = "政策截止日期不能为空", groups = AddUserShowGroup.class)
private Date endDate;
/**
* 政策标题
*/
@NotBlank(message = "政策标题不能为空", groups = AddUserShowGroup.class)
@Length(max = 100, groups = AddUserShowGroup.class, message = "政策标题最多输入100字")
private String title;
/**
* 政策内容
*/
// @NotBlank(message = "政策内容不能为空", groups = AddUserShowGroup.class)
@Length(max = 2000, groups = AddUserShowGroup.class, message = "政策内容最多输入2000字")
private String content;
private List<IcPolicyCategoryDTO> categoryList;
// @Valid
private List<FileCommonDTO> attachmentList;
@Valid
@NotEmpty(message = "政策细则不能为空",groups =AddUserShowGroup.class )
private List<IcPolicyRuleFormDTO> ruleList;
private String agencyId;
}

38
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/policy/IcPolicyPageFormDTO.java

@ -0,0 +1,38 @@
package com.epmet.dto.form.policy;
import com.epmet.commons.tools.dto.form.PageFormDTO;
import lombok.Data;
import java.io.Serializable;
/**
* @Description
* @Author yzm
* @Date 2022/7/19 15:36
*/
@Data
public class IcPolicyPageFormDTO extends PageFormDTO implements Serializable {
/**
* 客户id
*/
private String customerId;
private String staffId;
/**
* 政策标题
*/
private String title;
/**
* 政策内容
*/
private String content;
/**
* 是否过期1已过期0未过期
*/
private String expiredFlag;
private String agencyId;
}

94
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/policy/IcPolicyRuleDetailDTO.java

@ -0,0 +1,94 @@
package com.epmet.dto.form.policy;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @Description
* @Author yzm
* @Date 2022/7/19 13:32
*/
@Data
public class IcPolicyRuleDetailDTO {
public interface ResiRulerShowGroup extends CustomerClientShowGroup {
}
public interface HouseRulerShowGroup extends CustomerClientShowGroup {
}
public interface StatRulerShowGroup extends CustomerClientShowGroup {
}
/**
* 规则描述文字例如基础信息性别等于女
*/
private String ruleDesc;
/**
* 与下一条的关系andor
* 如果没有条件的话此列为空
*/
private String nextLogicalRel;
/**
* 分组id人员信息有值
*/
@NotBlank(message = "itemGroupId不能为空", groups = ResiRulerShowGroup.class)
private String itemGroupId;
/**
* 表名人员信息有值房屋信息也有值
*/
@NotBlank(message = "itemId不能为空", groups = ResiRulerShowGroup.class)
private String itemId;
/**
* 查询类型等于不等于....;来源于字典表sql_query_type
*/
@NotBlank(message = "查询类型不能为空", groups = {ResiRulerShowGroup.class,HouseRulerShowGroup.class,StatRulerShowGroup.class})
private String queryType;
/**
* 表名人员信息有值
*/
@NotBlank(message = "colTable不能为空", groups = {ResiRulerShowGroup.class,HouseRulerShowGroup.class})
private String colTable;
/**
* 人员信息存储组件对应的列名房屋信息存储ic_house表的列名统计信息应该是定义到字典表这里存储字典key就行吧
*/
@NotBlank(message = "条件不能为空", groups = {ResiRulerShowGroup.class,HouseRulerShowGroup.class,StatRulerShowGroup.class})
private String colKey;
/**
* 参数值
*/
// @NotBlank(message = "参数值不能为空", groups = {ResiRulerShowGroup.class,HouseRulerShowGroup.class,StatRulerShowGroup.class})
private String colVal;
/**
* 用于前端展示基础信息教育信息房屋类型.....
*/
private String itemGroupName;
/**
* 用于前端展示姓名手机号......
*/
private String itemLabel;
/**
* 用于前端展示等于不等于大于小于....
*/
private String queryTypeName;
/**
* 用于前端展示参数值显示值eg:男女
*/
private String colValLabel;
/**
* 用于前端展示逻辑并且或者
*/
private String nextLogicalRelName;
}

45
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/policy/IcPolicyRuleFormDTO.java

@ -0,0 +1,45 @@
package com.epmet.dto.form.policy;
import lombok.Data;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.List;
/**
* @Description
* @Author yzm
* @Date 2022/7/19 13:31
*/
@Data
public class IcPolicyRuleFormDTO implements Serializable {
/**
* 细则名称
*/
@NotBlank(message = "细则名称不能为空", groups = IcPolicyFormDTO.AddUserShowGroup.class)
private String ruleName;
/**
* 人员信息
*/
@Valid
// @NotEmpty
private List<IcPolicyRuleDetailDTO> resiRuleList;
/**
* 房屋信息
*/
@Valid
private List<IcPolicyRuleDetailDTO> houseRuleList;
/**
* 统计信息
*/
@Valid
private List<IcPolicyRuleDetailDTO> statRuleList;
/**
* ruleId
*/
private String id;
}

73
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/resi/ResisByPolicyRulesFormDTO.java

@ -0,0 +1,73 @@
package com.epmet.dto.form.resi;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ResisByPolicyRulesFormDTO {
private String ruleId;
private String orgId;
private String orgType;
private String neighborHoodId;
private String buildingId;
private String unitId;
private String houseId;
private String name;
private String mobile;
private String idCard;
private RuleList ruleList = new RuleList();
private Integer pageNo;
private Integer pageSize;
@Data
@NoArgsConstructor
@AllArgsConstructor
public static class RuleList {
private List<ResiRule> resiRuleList;
private List<HouseRule> houseRuleList;
private List<StatRule> statRuleList;
}
@Data
@NoArgsConstructor
@AllArgsConstructor
public static class ResiRule {
private String ruleDesc;
private String nextLogicalRel;
private String itemGroupId;
private String itemId;
private String queryType;
private String colTable;
private String colKey;
private String colVal;
}
@Data
@NoArgsConstructor
@AllArgsConstructor
public static class HouseRule {
private String colTable;
private String colKey;
private String colVal;
private String ruleDesc;
private String nextLogicalRel;
private String queryType;
}
@Data
@NoArgsConstructor
@AllArgsConstructor
public static class StatRule {
private String colKey;
private String colVal;
private String nextLogicalRel;
private String ruleDesc;
private String queryType;
private String colTable;
}
}

79
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/policy/IcPolicyItemResultDTO.java

@ -0,0 +1,79 @@
package com.epmet.dto.result.policy;
import lombok.Data;
import java.io.Serializable;
/**
*
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-07-19
*/
@Data
public class IcPolicyItemResultDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
*
*/
private String id;
/**
*
*/
private String customerId;
/**
* house:房屋信息stat:统计信息
*/
private String groupType;
/**
* 选项名例如房屋类型房屋状态人均收入
*/
private String label;
/**
* 表名
*/
private String tableName;
/**
* 房屋信息存储列名统计信息定义好key放在这里
*/
private String colKey;
/**
*
*/
private String itemType;
/**
* 排序
*/
private Integer sort;
/**
* 备注
*/
private String remark;
/**
* 值来源;需要接口获取remote
*/
private String optionSourceType;
/**
* 动态url
*/
private String optionSourceUrl;
/**
* 动态url的入参存储json串
*/
private String optionSourceParam;
}

189
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPolicyController.java

@ -0,0 +1,189 @@
package com.epmet.controller;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.dto.form.PageFormDTO;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.EpmetRequestHolder;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.IcPolicyDTO;
import com.epmet.dto.IcPolicyRuleDTO;
import com.epmet.dto.form.policy.IcPolicyFormDTO;
import com.epmet.dto.form.policy.IcPolicyPageFormDTO;
import com.epmet.dto.form.resi.ResisByPolicyRulesFormDTO;
import com.epmet.dto.result.policy.IcPolicyItemResultDTO;
import com.epmet.entity.IcPolicyRuleDetailEntity;
import com.epmet.service.IcPolicyService;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 政策表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-07-18
*/
@RestController
@RequestMapping("policy")
public class IcPolicyController {
@Autowired
private IcPolicyService icPolicyService;
/**
* 房屋信息统计信息查询有哪些可选项
*
* @param customerId
* @param groupType
* @return
*/
@PostMapping("item-list/{groupType}")
public Result<List<IcPolicyItemResultDTO>> itemList(@RequestHeader("customerId") String customerId, @PathVariable("groupType") String groupType) {
List<IcPolicyItemResultDTO> list = icPolicyService.itemList(customerId, groupType);
return new Result<List<IcPolicyItemResultDTO>>().ok(list);
}
/**
* 政策管理-新增/修改
*
* @param tokenDto
* @param formDTO
* @return
*/
@PostMapping("add")
public Result add(@LoginUser TokenDto tokenDto, @RequestBody IcPolicyFormDTO formDTO) {
formDTO.setCustomerId(tokenDto.getCustomerId());
formDTO.setStaffId(tokenDto.getUserId());
ValidatorUtils.validateEntity(formDTO, IcPolicyFormDTO.AddUserShowGroup.class, IcPolicyFormDTO.AddUserInternalGroup.class);
icPolicyService.addOrUpdatePolicy(formDTO);
return new Result();
}
/**
* 编辑政策
*
* @param tokenDto
* @param formDTO
* @return
*/
@PostMapping("update")
public Result update(@LoginUser TokenDto tokenDto, @RequestBody IcPolicyFormDTO formDTO) {
formDTO.setCustomerId(tokenDto.getCustomerId());
formDTO.setStaffId(tokenDto.getUserId());
ValidatorUtils.validateEntity(formDTO, IcPolicyFormDTO.AddUserShowGroup.class, IcPolicyFormDTO.AddUserInternalGroup.class, IcPolicyFormDTO.UpdateUserInternalGroup.class);
icPolicyService.addOrUpdatePolicy(formDTO);
return new Result();
}
/**
* 政策列表
*
* @param tokenDto
* @param formDTO
* @return
*/
@PostMapping("list")
public Result<PageData<IcPolicyDTO>> policyList(@LoginUser TokenDto tokenDto, @RequestBody IcPolicyPageFormDTO formDTO) {
formDTO.setCustomerId(tokenDto.getCustomerId());
formDTO.setStaffId(tokenDto.getUserId());
ValidatorUtils.validateEntity(formDTO, PageFormDTO.AddUserInternalGroup.class, PageFormDTO.AddUserShowGroup.class);
PageData<IcPolicyDTO> page = icPolicyService.policyList(formDTO);
return new Result<PageData<IcPolicyDTO>>().ok(page);
}
/**
* Desc: 政策列表下拉选
*
* @param tokenDto
* @author zxc
* @date 2022/7/21 09:48
*/
@PostMapping("policyListSelect")
public Result<List<IcPolicyDTO>> policyListSelect(@LoginUser TokenDto tokenDto) {
return new Result<List<IcPolicyDTO>>().ok(icPolicyService.policyListSelect(tokenDto.getUserId(), tokenDto.getCustomerId()));
}
/**
* 细则列表
*
* @param customerId
* @param policyId
* @return
*/
@PostMapping("rulelist/{policyId}")
public Result<List<IcPolicyRuleDTO>> ruleList(@RequestHeader("customerId") String customerId, @PathVariable("policyId") String policyId) {
return new Result<List<IcPolicyRuleDTO>>().ok(icPolicyService.ruleList(customerId, policyId));
}
/**
* 删除政策
*
* @param policyId
* @return
*/
@PostMapping("delete/{policyId}")
public Result deletePolicy(@PathVariable("policyId") String policyId) {
icPolicyService.deleteById(policyId);
return new Result<>();
}
@PostMapping("detail/{policyId}")
public Result<IcPolicyDTO> policyDetail(@LoginUser TokenDto tokenDto, @PathVariable("policyId") String policyId) {
return new Result<IcPolicyDTO>().ok(icPolicyService.policyDetail(tokenDto.getCustomerId(), policyId));
}
/**
* 为预览和导出提供规则列表查询
*
* @return
*/
@PostMapping("rules4ResiListAndExport/{ruleId}")
public Result<ResisByPolicyRulesFormDTO.RuleList> listPolicyRules4QueryAndExport(@PathVariable("ruleId") String ruleId) {
Map<String, List<IcPolicyRuleDetailEntity>> ruleMap = icPolicyService.listPolicyRules4QueryAndExport(EpmetRequestHolder.getLoginUserCustomerId(), ruleId);
ResisByPolicyRulesFormDTO.RuleList data = new ResisByPolicyRulesFormDTO.RuleList();
// resi规则
List<IcPolicyRuleDetailEntity> originResiRules = ruleMap.get("resi");
if (CollectionUtils.isNotEmpty(originResiRules)) {
List<ResisByPolicyRulesFormDTO.ResiRule> resiRules = originResiRules
.stream()
.map((r) -> new ResisByPolicyRulesFormDTO.ResiRule(r.getRuleDesc(), r.getNextLogicalRel(), r.getItemGroupId(),
r.getItemId(), r.getQueryType(), r.getColTable(), r.getColKey(), r.getColVal()))
.collect(Collectors.toList());
data.setResiRuleList(resiRules);
}
// house规则
List<IcPolicyRuleDetailEntity> originHouseRules = ruleMap.get("house");
if (CollectionUtils.isNotEmpty(originHouseRules)) {
List<ResisByPolicyRulesFormDTO.HouseRule> houseRules = originHouseRules
.stream()
.map((r) -> new ResisByPolicyRulesFormDTO.HouseRule(r.getColTable(), r.getColKey(), r.getColVal(),
r.getRuleDesc(), r.getNextLogicalRel(), r.getQueryType()))
.collect(Collectors.toList());
data.setHouseRuleList(houseRules);
}
// stat规则
List<IcPolicyRuleDetailEntity> originStatRules = ruleMap.get("stat");
if (CollectionUtils.isNotEmpty(originStatRules)) {
List<ResisByPolicyRulesFormDTO.StatRule> statRules = originStatRules
.stream()
.map((r) -> new ResisByPolicyRulesFormDTO.StatRule(r.getColKey(), r.getColVal(), r.getNextLogicalRel(),
r.getRuleDesc(), r.getQueryType(), r.getColTable()))
.collect(Collectors.toList());
data.setStatRuleList(statRules);
}
return new Result<ResisByPolicyRulesFormDTO.RuleList>().ok(data);
}
}

17
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/HeartAttachmentDao.java

@ -0,0 +1,17 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.entity.HeartAttachmentEntity;
import org.apache.ibatis.annotations.Mapper;
/**
* heart库附件表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-07-18
*/
@Mapper
public interface HeartAttachmentDao extends BaseDao<HeartAttachmentEntity> {
int deleteByBusinessId(String businessId);
}

17
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcPolicyCategoryDao.java

@ -0,0 +1,17 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.entity.IcPolicyCategoryEntity;
import org.apache.ibatis.annotations.Mapper;
/**
* 政策匹配资源类型
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-07-18
*/
@Mapper
public interface IcPolicyCategoryDao extends BaseDao<IcPolicyCategoryEntity> {
int deleteByIcPolicyId(String icPolicyId);
}

36
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcPolicyDao.java

@ -0,0 +1,36 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.IcPolicyDTO;
import com.epmet.dto.result.policy.IcPolicyItemResultDTO;
import com.epmet.entity.IcPolicyEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 政策表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-07-18
*/
@Mapper
public interface IcPolicyDao extends BaseDao<IcPolicyEntity> {
/**
* 房屋信息统计信息查询有哪些可选项
* @param customerId
* @param groupType
* @return
*/
List<IcPolicyItemResultDTO> selectItemList(@Param("customerId") String customerId, @Param("groupType") String groupType);
List<IcPolicyDTO> policyList(@Param("customerId") String customerId,
@Param("agencyId") String agencyId,
@Param("title") String title,
@Param("content") String content,
@Param("expiredFlag") String expiredFlag);
String selectTitle(String policyId);
}

17
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcPolicyRuleDao.java

@ -0,0 +1,17 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.entity.IcPolicyRuleEntity;
import org.apache.ibatis.annotations.Mapper;
/**
* 政策匹配规则
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-07-18
*/
@Mapper
public interface IcPolicyRuleDao extends BaseDao<IcPolicyRuleEntity> {
int deleteByIcPolicyId(String policyId);
}

17
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcPolicyRuleDetailDao.java

@ -0,0 +1,17 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.entity.IcPolicyRuleDetailEntity;
import org.apache.ibatis.annotations.Mapper;
/**
* 政策匹配规则明细
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-07-18
*/
@Mapper
public interface IcPolicyRuleDetailDao extends BaseDao<IcPolicyRuleDetailEntity> {
int deleteByRuleId(String ruleId);
}

82
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/HeartAttachmentEntity.java

@ -0,0 +1,82 @@
package com.epmet.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* heart库附件表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-07-18
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("heart_attachment")
public class HeartAttachmentEntity extends BaseEpmetEntity {
private static final long serialVersionUID = 1L;
/**
* 客户ID
*/
private String customerId;
/**
* 业务id
*/
private String businessId;
/**
* 政策ic_policy;服务ic_service_record_v2
*/
private String attachTo;
/**
* 附件名
*/
private String name;
/**
* 文件格式JPGPNGPDFJPEGBMPMP4WMAM4AMP3DOCDOCXXLS
*/
private String format;
/**
* 附件类型图片 - image 视频 - video 语音 - voice 文档 - doc
*/
private String type;
/**
* 附件地址
*/
private String url;
/**
* 排序字段
*/
private Integer sort;
/**
* 附件状态审核中auditing
* auto_passed: 自动通过
* review结果不确定需要人工审核
* block: 结果违规
* rejected人工审核驳回;
* approved人工审核通过
* 现在图片是同步审核的所以图片只有auto_passed一种状态
*/
private String status;
/**
* 失败原因
*/
private String reason;
/**
* 语音或视频时长,
*/
private Integer duration;
}

41
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcPolicyCategoryEntity.java

@ -0,0 +1,41 @@
package com.epmet.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 政策匹配资源类型
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-07-18
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("ic_policy_category")
public class IcPolicyCategoryEntity extends BaseEpmetEntity {
private static final long serialVersionUID = 1L;
/**
* 客户ID
*/
private String customerId;
/**
* 政策id
*/
private String icPolicyId;
/**
* 分类编码
*/
private String categoryCode;
/**
* 分类全路径,包含CATEGORY_CODE,英文逗号隔开
*/
private String codePath;
}

63
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcPolicyEntity.java

@ -0,0 +1,63 @@
package com.epmet.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
* 政策表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-07-18
*/
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("ic_policy")
public class IcPolicyEntity extends BaseEpmetEntity {
private static final long serialVersionUID = 1L;
/**
* 客户id
*/
private String customerId;
/**
* 政策创建人所属组织id
*/
private String orgId;
/**
* AGENCY_ID的全路径含agency_id
*/
private String orgIdPath;
/**
* 政策级别0市级1区级2街道级
*/
private String policyLevel;
/**
* 生效起止日期
*/
private Date startDate;
/**
* 截止日期
*/
private Date endDate;
/**
* 政策标题
*/
private String title;
/**
* 政策内容
*/
private String content;
}

110
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcPolicyRuleDetailEntity.java

@ -0,0 +1,110 @@
package com.epmet.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 政策匹配规则明细
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-07-18
*/
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("ic_policy_rule_detail")
public class IcPolicyRuleDetailEntity extends BaseEpmetEntity {
private static final long serialVersionUID = 1L;
/**
* 客户ID
*/
private String customerId;
/**
* 政策id
*/
private String icPolicyId;
/**
* 规则id
*/
private String ruleId;
/**
* 规则描述文字例如基础信息性别等于女
*/
private String ruleDesc;
/**
* resi:人员信息,house:房屋信息stat:统计信息
*/
private String groupType;
/**
* 与下一条的关系andor
* 如果没有条件的话此列为空
*/
private String nextLogicalRel;
/**
* 分组id人员信息有值
*/
private String itemGroupId;
/**
* 组件id人员信息有值
*/
private String itemId;
/**
* 查询类型等于不等于....;来源于字典表sql_query_type
*/
private String queryType;
/**
* 表名人员信息有值房屋信息也有值
*/
private String colTable;
/**
* 人员信息存储组件对应的列名房屋信息存储ic_house表的列名统计信息应该是定义到字典表这里存储字典key就行吧
*/
private String colKey;
/**
* 参数值
*/
private String colVal;
/**
* 排序字段;同一group_type升序
*/
private Integer sort;
/**
* 用于前端展示基础信息教育信息房屋类型.....
*/
private String itemGroupName;
/**
* 用于前端展示姓名手机号......
*/
private String itemLabel;
/**
* 用于前端展示等于不等于大于小于....
*/
private String queryTypeName;
/**
* 用于前端展示参数值显示值eg:男女
*/
private String colValLabel;
/**
* 用于前端展示逻辑并且或者
*/
private String nextLogicalRelName;
}

41
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcPolicyRuleEntity.java

@ -0,0 +1,41 @@
package com.epmet.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 政策匹配规则
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-07-18
*/
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("ic_policy_rule")
public class IcPolicyRuleEntity extends BaseEpmetEntity {
private static final long serialVersionUID = 1L;
/**
* 客户ID
*/
private String customerId;
/**
* 政策id
*/
private String icPolicyId;
/**
* 规则名称
*/
private String ruleName;
/**
* 排序字段
*/
private Integer sort;
}

78
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPolicyCategoryService.java

@ -0,0 +1,78 @@
package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.IcPolicyCategoryDTO;
import com.epmet.entity.IcPolicyCategoryEntity;
import java.util.List;
import java.util.Map;
/**
* 政策匹配资源类型
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-07-18
*/
public interface IcPolicyCategoryService extends BaseService<IcPolicyCategoryEntity> {
/**
* 默认分页
*
* @param params
* @return PageData<IcPolicyCategoryDTO>
* @author generator
* @date 2022-07-18
*/
PageData<IcPolicyCategoryDTO> page(Map<String, Object> params);
/**
* 默认查询
*
* @param params
* @return java.util.List<IcPolicyCategoryDTO>
* @author generator
* @date 2022-07-18
*/
List<IcPolicyCategoryDTO> list(Map<String, Object> params);
/**
* 单条查询
*
* @param id
* @return IcPolicyCategoryDTO
* @author generator
* @date 2022-07-18
*/
IcPolicyCategoryDTO get(String id);
/**
* 默认保存
*
* @param dto
* @return void
* @author generator
* @date 2022-07-18
*/
void save(IcPolicyCategoryDTO dto);
/**
* 默认更新
*
* @param dto
* @return void
* @author generator
* @date 2022-07-18
*/
void update(IcPolicyCategoryDTO dto);
/**
* 批量删除
*
* @param ids
* @return void
* @author generator
* @date 2022-07-18
*/
void delete(String[] ids);
}

78
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPolicyRuleDetailService.java

@ -0,0 +1,78 @@
package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.form.policy.IcPolicyRuleDetailDTO;
import com.epmet.entity.IcPolicyRuleDetailEntity;
import java.util.List;
import java.util.Map;
/**
* 政策匹配规则明细
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-07-18
*/
public interface IcPolicyRuleDetailService extends BaseService<IcPolicyRuleDetailEntity> {
/**
* 默认分页
*
* @param params
* @return PageData<IcPolicyRuleDetailDTO>
* @author generator
* @date 2022-07-18
*/
PageData<IcPolicyRuleDetailDTO> page(Map<String, Object> params);
/**
* 默认查询
*
* @param params
* @return java.util.List<IcPolicyRuleDetailDTO>
* @author generator
* @date 2022-07-18
*/
List<IcPolicyRuleDetailDTO> list(Map<String, Object> params);
/**
* 单条查询
*
* @param id
* @return IcPolicyRuleDetailDTO
* @author generator
* @date 2022-07-18
*/
IcPolicyRuleDetailDTO get(String id);
/**
* 默认保存
*
* @param dto
* @return void
* @author generator
* @date 2022-07-18
*/
void save(IcPolicyRuleDetailDTO dto);
/**
* 默认更新
*
* @param dto
* @return void
* @author generator
* @date 2022-07-18
*/
void update(IcPolicyRuleDetailDTO dto);
/**
* 批量删除
*
* @param ids
* @return void
* @author generator
* @date 2022-07-18
*/
void delete(String[] ids);
}

78
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPolicyRuleService.java

@ -0,0 +1,78 @@
package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.IcPolicyRuleDTO;
import com.epmet.entity.IcPolicyRuleEntity;
import java.util.List;
import java.util.Map;
/**
* 政策匹配规则
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-07-18
*/
public interface IcPolicyRuleService extends BaseService<IcPolicyRuleEntity> {
/**
* 默认分页
*
* @param params
* @return PageData<IcPolicyRuleDTO>
* @author generator
* @date 2022-07-18
*/
PageData<IcPolicyRuleDTO> page(Map<String, Object> params);
/**
* 默认查询
*
* @param params
* @return java.util.List<IcPolicyRuleDTO>
* @author generator
* @date 2022-07-18
*/
List<IcPolicyRuleDTO> list(Map<String, Object> params);
/**
* 单条查询
*
* @param id
* @return IcPolicyRuleDTO
* @author generator
* @date 2022-07-18
*/
IcPolicyRuleDTO get(String id);
/**
* 默认保存
*
* @param dto
* @return void
* @author generator
* @date 2022-07-18
*/
void save(IcPolicyRuleDTO dto);
/**
* 默认更新
*
* @param dto
* @return void
* @author generator
* @date 2022-07-18
*/
void update(IcPolicyRuleDTO dto);
/**
* 批量删除
*
* @param ids
* @return void
* @author generator
* @date 2022-07-18
*/
void delete(String[] ids);
}

64
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPolicyService.java

@ -0,0 +1,64 @@
package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.IcPolicyDTO;
import com.epmet.dto.IcPolicyRuleDTO;
import com.epmet.dto.form.policy.IcPolicyFormDTO;
import com.epmet.dto.form.policy.IcPolicyPageFormDTO;
import com.epmet.dto.result.policy.IcPolicyItemResultDTO;
import com.epmet.entity.IcPolicyEntity;
import com.epmet.entity.IcPolicyRuleDetailEntity;
import java.util.List;
import java.util.Map;
/**
* 政策表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-07-18
*/
public interface IcPolicyService extends BaseService<IcPolicyEntity> {
/**
* 房屋信息统计信息查询有哪些可选项
*
* @param customerId
* @param groupType
* @return
*/
List<IcPolicyItemResultDTO> itemList(String customerId, String groupType);
/**
* 政策管理-新增/修改
*
* @param formDTO
*/
void addOrUpdatePolicy(IcPolicyFormDTO formDTO);
/**
* 列表查询
* @param formDTO
* @return
*/
PageData<IcPolicyDTO> policyList(IcPolicyPageFormDTO formDTO);
/**
* Desc: 政策列表下拉选
* @author zxc
* @date 2022/7/21 09:48
*/
List<IcPolicyDTO> policyListSelect(String userId, String customerId);
List<IcPolicyRuleDTO> ruleList(String customerId, String policyId);
IcPolicyDTO policyDetail(String customerId, String policyId);
/**
* 政策规则查询
* @param customerId
* @param ruleId
* @return
*/
Map<String, List<IcPolicyRuleDetailEntity>> listPolicyRules4QueryAndExport(String customerId, String ruleId);
}

82
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPolicyCategoryServiceImpl.java

@ -0,0 +1,82 @@
package com.epmet.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.dao.IcPolicyCategoryDao;
import com.epmet.dto.IcPolicyCategoryDTO;
import com.epmet.entity.IcPolicyCategoryEntity;
import com.epmet.service.IcPolicyCategoryService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
* 政策匹配资源类型
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-07-18
*/
@Service
public class IcPolicyCategoryServiceImpl extends BaseServiceImpl<IcPolicyCategoryDao, IcPolicyCategoryEntity> implements IcPolicyCategoryService {
@Override
public PageData<IcPolicyCategoryDTO> page(Map<String, Object> params) {
IPage<IcPolicyCategoryEntity> page = baseDao.selectPage(
getPage(params, FieldConstant.CREATED_TIME, false),
getWrapper(params)
);
return getPageData(page, IcPolicyCategoryDTO.class);
}
@Override
public List<IcPolicyCategoryDTO> list(Map<String, Object> params) {
List<IcPolicyCategoryEntity> entityList = baseDao.selectList(getWrapper(params));
return ConvertUtils.sourceToTarget(entityList, IcPolicyCategoryDTO.class);
}
private QueryWrapper<IcPolicyCategoryEntity> getWrapper(Map<String, Object> params){
String id = (String)params.get(FieldConstant.ID_HUMP);
QueryWrapper<IcPolicyCategoryEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
return wrapper;
}
@Override
public IcPolicyCategoryDTO get(String id) {
IcPolicyCategoryEntity entity = baseDao.selectById(id);
return ConvertUtils.sourceToTarget(entity, IcPolicyCategoryDTO.class);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void save(IcPolicyCategoryDTO dto) {
IcPolicyCategoryEntity entity = ConvertUtils.sourceToTarget(dto, IcPolicyCategoryEntity.class);
insert(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(IcPolicyCategoryDTO dto) {
IcPolicyCategoryEntity entity = ConvertUtils.sourceToTarget(dto, IcPolicyCategoryEntity.class);
updateById(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(String[] ids) {
// 逻辑删除(@TableLogic 注解)
baseDao.deleteBatchIds(Arrays.asList(ids));
}
}

81
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPolicyRuleDetailServiceImpl.java

@ -0,0 +1,81 @@
package com.epmet.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.dao.IcPolicyRuleDetailDao;
import com.epmet.dto.form.policy.IcPolicyRuleDetailDTO;
import com.epmet.entity.IcPolicyRuleDetailEntity;
import com.epmet.service.IcPolicyRuleDetailService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
* 政策匹配规则明细
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-07-18
*/
@Service
public class IcPolicyRuleDetailServiceImpl extends BaseServiceImpl<IcPolicyRuleDetailDao, IcPolicyRuleDetailEntity> implements IcPolicyRuleDetailService {
@Override
public PageData<IcPolicyRuleDetailDTO> page(Map<String, Object> params) {
IPage<IcPolicyRuleDetailEntity> page = baseDao.selectPage(
getPage(params, FieldConstant.CREATED_TIME, false),
getWrapper(params)
);
return getPageData(page, IcPolicyRuleDetailDTO.class);
}
@Override
public List<IcPolicyRuleDetailDTO> list(Map<String, Object> params) {
List<IcPolicyRuleDetailEntity> entityList = baseDao.selectList(getWrapper(params));
return ConvertUtils.sourceToTarget(entityList, IcPolicyRuleDetailDTO.class);
}
private QueryWrapper<IcPolicyRuleDetailEntity> getWrapper(Map<String, Object> params){
String id = (String)params.get(FieldConstant.ID_HUMP);
QueryWrapper<IcPolicyRuleDetailEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
return wrapper;
}
@Override
public IcPolicyRuleDetailDTO get(String id) {
IcPolicyRuleDetailEntity entity = baseDao.selectById(id);
return ConvertUtils.sourceToTarget(entity, IcPolicyRuleDetailDTO.class);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void save(IcPolicyRuleDetailDTO dto) {
IcPolicyRuleDetailEntity entity = ConvertUtils.sourceToTarget(dto, IcPolicyRuleDetailEntity.class);
insert(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(IcPolicyRuleDetailDTO dto) {
IcPolicyRuleDetailEntity entity = ConvertUtils.sourceToTarget(dto, IcPolicyRuleDetailEntity.class);
updateById(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(String[] ids) {
// 逻辑删除(@TableLogic 注解)
baseDao.deleteBatchIds(Arrays.asList(ids));
}
}

82
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPolicyRuleServiceImpl.java

@ -0,0 +1,82 @@
package com.epmet.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.dao.IcPolicyRuleDao;
import com.epmet.dto.IcPolicyRuleDTO;
import com.epmet.entity.IcPolicyRuleEntity;
import com.epmet.service.IcPolicyRuleService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
* 政策匹配规则
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-07-18
*/
@Service
public class IcPolicyRuleServiceImpl extends BaseServiceImpl<IcPolicyRuleDao, IcPolicyRuleEntity> implements IcPolicyRuleService {
@Override
public PageData<IcPolicyRuleDTO> page(Map<String, Object> params) {
IPage<IcPolicyRuleEntity> page = baseDao.selectPage(
getPage(params, FieldConstant.CREATED_TIME, false),
getWrapper(params)
);
return getPageData(page, IcPolicyRuleDTO.class);
}
@Override
public List<IcPolicyRuleDTO> list(Map<String, Object> params) {
List<IcPolicyRuleEntity> entityList = baseDao.selectList(getWrapper(params));
return ConvertUtils.sourceToTarget(entityList, IcPolicyRuleDTO.class);
}
private QueryWrapper<IcPolicyRuleEntity> getWrapper(Map<String, Object> params){
String id = (String)params.get(FieldConstant.ID_HUMP);
QueryWrapper<IcPolicyRuleEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
return wrapper;
}
@Override
public IcPolicyRuleDTO get(String id) {
IcPolicyRuleEntity entity = baseDao.selectById(id);
return ConvertUtils.sourceToTarget(entity, IcPolicyRuleDTO.class);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void save(IcPolicyRuleDTO dto) {
IcPolicyRuleEntity entity = ConvertUtils.sourceToTarget(dto, IcPolicyRuleEntity.class);
insert(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(IcPolicyRuleDTO dto) {
IcPolicyRuleEntity entity = ConvertUtils.sourceToTarget(dto, IcPolicyRuleEntity.class);
updateById(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(String[] ids) {
// 逻辑删除(@TableLogic 注解)
baseDao.deleteBatchIds(Arrays.asList(ids));
}
}

340
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPolicyServiceImpl.java

@ -0,0 +1,340 @@
package com.epmet.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.Constant;
import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.dto.form.FileCommonDTO;
import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
import com.epmet.commons.tools.enums.DictTypeEnum;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.feign.ResultDataResolver;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dao.*;
import com.epmet.dto.IcPolicyCategoryDTO;
import com.epmet.dto.IcPolicyDTO;
import com.epmet.dto.IcPolicyRuleDTO;
import com.epmet.dto.form.policy.IcPolicyFormDTO;
import com.epmet.dto.form.policy.IcPolicyPageFormDTO;
import com.epmet.dto.form.policy.IcPolicyRuleDetailDTO;
import com.epmet.dto.form.policy.IcPolicyRuleFormDTO;
import com.epmet.dto.form.resi.ResisByPolicyRulesFormDTO;
import com.epmet.dto.result.policy.IcPolicyItemResultDTO;
import com.epmet.entity.*;
import com.epmet.feign.EpmetAdminOpenFeignClient;
import com.epmet.service.IcPolicyService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 政策表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-07-18
*/
@Service
public class IcPolicyServiceImpl extends BaseServiceImpl<IcPolicyDao, IcPolicyEntity> implements IcPolicyService, ResultDataResolver {
@Autowired
private IcPolicyRuleDetailDao policyRuleDetailDao;
@Autowired
private IcPolicyCategoryDao icPolicyCategoryDao;
@Autowired
private IcPolicyRuleDao icPolicyRuleDao;
@Autowired
private HeartAttachmentDao heartAttachmentDao;
@Autowired
private IcPolicyRuleDetailDao icPolicyRuleDetailDao;
@Resource
private EpmetAdminOpenFeignClient adminOpenFeignClient;
/**
* 房屋信息统计信息查询有哪些可选项
*
* @param customerId
* @param groupType
* @return
*/
@Override
public List<IcPolicyItemResultDTO> itemList(String customerId, String groupType) {
if (StringUtils.isBlank(groupType)) {
return new ArrayList<>();
}
List<IcPolicyItemResultDTO> resultList = baseDao.selectItemList(customerId, groupType);
if (CollectionUtils.isEmpty(resultList)) {
return baseDao.selectItemList(Constant.DEFAULT_CUSTOMER, groupType);
}
return resultList;
}
/**
* 政策管理-新增/修改
*
* @param formDTO
*/
@Transactional(rollbackFor = Exception.class)
@Override
public void addOrUpdatePolicy(IcPolicyFormDTO formDTO) {
// 设置所属组织
CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getStaffId());
if (null == staffInfo || StringUtils.isBlank(staffInfo.getAgencyId())) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "工作人员缓存信息异常", "工作人员信息异常");
}
formDTO.setAgencyId(staffInfo.getAgencyId());
// 校验参数
checkAddFormDTO(formDTO);
IcPolicyEntity icPolicyEntity = ConvertUtils.sourceToTarget(formDTO, IcPolicyEntity.class);
icPolicyEntity.setOrgId(staffInfo.getAgencyId());
icPolicyEntity.setOrgIdPath(StringUtils.isNotBlank(staffInfo.getAgencyPIds()) ? staffInfo.getAgencyPIds().concat(StrConstant.COLON).concat(staffInfo.getAgencyId()) : staffInfo.getAgencyId());
if (StringUtils.isNotBlank(formDTO.getPolicyId())) {
icPolicyEntity.setId(formDTO.getPolicyId());
baseDao.updateById(icPolicyEntity);
//删除规则、规则明细、分类、附件
icPolicyRuleDao.deleteByIcPolicyId(icPolicyEntity.getId());
icPolicyCategoryDao.deleteByIcPolicyId(icPolicyEntity.getId());
heartAttachmentDao.deleteByBusinessId(icPolicyEntity.getId());
} else {
// 插入政策主表
baseDao.insert(icPolicyEntity);
}
// 插入细则
int ruleSort = 1;
for (IcPolicyRuleFormDTO rule : formDTO.getRuleList()) {
IcPolicyRuleEntity ruleEntity = new IcPolicyRuleEntity();
ruleEntity.setCustomerId(formDTO.getCustomerId());
ruleEntity.setIcPolicyId(icPolicyEntity.getId());
ruleEntity.setRuleName(rule.getRuleName());
ruleEntity.setSort(ruleSort);
icPolicyRuleDao.insert(ruleEntity);
//删除规则明细
icPolicyRuleDetailDao.deleteByRuleId(ruleEntity.getId());
if (CollectionUtils.isNotEmpty(rule.getResiRuleList())) {
int resiRuleSort = 1;
for (IcPolicyRuleDetailDTO ruleDetailDTO : rule.getResiRuleList()) {
ValidatorUtils.validateEntity(ruleDetailDTO, IcPolicyRuleDetailDTO.ResiRulerShowGroup.class);
IcPolicyRuleDetailEntity icPolicyRuleDetailEntity = ConvertUtils.sourceToTarget(ruleDetailDTO, IcPolicyRuleDetailEntity.class);
icPolicyRuleDetailEntity.setCustomerId(formDTO.getCustomerId());
icPolicyRuleDetailEntity.setIcPolicyId(icPolicyEntity.getId());
icPolicyRuleDetailEntity.setRuleId(ruleEntity.getId());
icPolicyRuleDetailEntity.setSort(resiRuleSort);
icPolicyRuleDetailEntity.setGroupType("resi");
icPolicyRuleDetailDao.insert(icPolicyRuleDetailEntity);
resiRuleSort++;
}
}
if (CollectionUtils.isNotEmpty(rule.getHouseRuleList())) {
int houseRuleSort = 1;
for (IcPolicyRuleDetailDTO ruleDetailDTO : rule.getHouseRuleList()) {
ValidatorUtils.validateEntity(ruleDetailDTO, IcPolicyRuleDetailDTO.HouseRulerShowGroup.class);
IcPolicyRuleDetailEntity icPolicyRuleDetailEntity = ConvertUtils.sourceToTarget(ruleDetailDTO, IcPolicyRuleDetailEntity.class);
icPolicyRuleDetailEntity.setCustomerId(formDTO.getCustomerId());
icPolicyRuleDetailEntity.setIcPolicyId(icPolicyEntity.getId());
icPolicyRuleDetailEntity.setRuleId(ruleEntity.getId());
icPolicyRuleDetailEntity.setSort(houseRuleSort);
icPolicyRuleDetailEntity.setGroupType("house");
icPolicyRuleDetailDao.insert(icPolicyRuleDetailEntity);
houseRuleSort++;
}
}
if (CollectionUtils.isNotEmpty(rule.getStatRuleList())) {
int statRuleSort = 1;
for (IcPolicyRuleDetailDTO ruleDetailDTO : rule.getStatRuleList()) {
ValidatorUtils.validateEntity(ruleDetailDTO, IcPolicyRuleDetailDTO.StatRulerShowGroup.class);
IcPolicyRuleDetailEntity icPolicyRuleDetailEntity = ConvertUtils.sourceToTarget(ruleDetailDTO, IcPolicyRuleDetailEntity.class);
icPolicyRuleDetailEntity.setCustomerId(formDTO.getCustomerId());
icPolicyRuleDetailEntity.setIcPolicyId(icPolicyEntity.getId());
icPolicyRuleDetailEntity.setRuleId(ruleEntity.getId());
icPolicyRuleDetailEntity.setSort(statRuleSort);
icPolicyRuleDetailEntity.setGroupType("stat");
icPolicyRuleDetailDao.insert(icPolicyRuleDetailEntity);
statRuleSort++;
}
}
}
// 插入分类
if (CollectionUtils.isNotEmpty(formDTO.getCategoryList())) {
for (IcPolicyCategoryDTO categoryDTO : formDTO.getCategoryList()) {
IcPolicyCategoryEntity icPolicyCategoryEntity = new IcPolicyCategoryEntity();
icPolicyCategoryEntity.setCustomerId(formDTO.getCustomerId());
icPolicyCategoryEntity.setIcPolicyId(icPolicyEntity.getId());
icPolicyCategoryEntity.setCategoryCode(categoryDTO.getCategoryCode());
icPolicyCategoryEntity.setCodePath(categoryDTO.getCodePath());
icPolicyCategoryDao.insert(icPolicyCategoryEntity);
}
}
// 插入附件
if (CollectionUtils.isNotEmpty(formDTO.getAttachmentList())) {
int sort = 1;
for (FileCommonDTO fileCommonDTO : formDTO.getAttachmentList()) {
HeartAttachmentEntity heartAttachment = ConvertUtils.sourceToTarget(fileCommonDTO, HeartAttachmentEntity.class);
heartAttachment.setCustomerId(formDTO.getCustomerId());
heartAttachment.setBusinessId(icPolicyEntity.getId());
heartAttachment.setAttachTo("ic_policy");
// heartAttachment.setName(fileCommonDTO.getName());
// heartAttachment.setFormat(fileCommonDTO.getFormat());
// heartAttachment.setType(fileCommonDTO.getType());
// heartAttachment.setUrl(fileCommonDTO.getUrl());
heartAttachment.setSort(sort);
heartAttachment.setStatus(Constant.AUTO_PASSED);
// heartAttachment.setDuration(fileCommonDTO.getDuration());
heartAttachmentDao.insert(heartAttachment);
sort++;
}
}
}
private void checkAddFormDTO(IcPolicyFormDTO formDTO) {
//同组织下,政策标题唯一
LambdaQueryWrapper<IcPolicyEntity> policyEntityLambdaQueryWrapper = new LambdaQueryWrapper<>();
policyEntityLambdaQueryWrapper.eq(IcPolicyEntity::getTitle, formDTO.getTitle())
.eq(IcPolicyEntity::getOrgId, formDTO.getAgencyId());
policyEntityLambdaQueryWrapper.ne(StringUtils.isNotBlank(formDTO.getPolicyId()), IcPolicyEntity::getId, formDTO.getPolicyId());
int count = baseDao.selectCount(policyEntityLambdaQueryWrapper);
if (count > 0) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "当前组织内已经存在相同标题的政策", "当前组织内已经存在相同标题的政策");
}
List<IcPolicyRuleFormDTO> ruleList = formDTO.getRuleList();
for (IcPolicyRuleFormDTO rule : ruleList) {
if (CollectionUtils.isEmpty(rule.getResiRuleList())
&& CollectionUtils.isEmpty(rule.getHouseRuleList())
&& CollectionUtils.isEmpty(rule.getStatRuleList())) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "人员信息、房屋信息、统计信息任意选择一项填写", "请填写细则明细");
}
}
// 政策文件最多3个先不限制了吧,前端控制下
}
/**
* 列表查询
*
* @param formDTO
* @return
*/
@Override
public PageData<IcPolicyDTO> policyList(IcPolicyPageFormDTO formDTO) {
// 设置所属组织
CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getStaffId());
if (null == staffInfo || StringUtils.isBlank(staffInfo.getAgencyId())) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "工作人员缓存信息异常", "工作人员信息异常");
}
PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.getIsPage());
List<IcPolicyDTO> list = baseDao.policyList(formDTO.getCustomerId(), staffInfo.getAgencyId(), formDTO.getTitle(), formDTO.getContent(), formDTO.getExpiredFlag());
if (CollectionUtils.isNotEmpty(list)) {
for (IcPolicyDTO icPolicyDTO : list) {
// 查询字典表
Result<Map<String, String>> levelRes = adminOpenFeignClient.dictMap(DictTypeEnum.POLICY_LEVEL.getCode());
Map<String, String> levelMap = levelRes.success() && MapUtils.isNotEmpty(levelRes.getData()) ? levelRes.getData() : new HashMap<>();
icPolicyDTO.setPolicyLevelName(MapUtils.isNotEmpty(levelMap) && levelMap.containsKey(icPolicyDTO.getPolicyLevel()) ? levelMap.get(icPolicyDTO.getPolicyLevel()) : StrConstant.EPMETY_STR);
}
}
PageInfo<IcPolicyDTO> pageInfo = new PageInfo<>(list);
return new PageData<>(list, pageInfo.getTotal());
}
@Override
public List<IcPolicyDTO> policyListSelect(String userId, String customerId) {
CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(customerId, userId);
if (null == staffInfo || StringUtils.isBlank(staffInfo.getAgencyId())) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "工作人员缓存信息异常", "工作人员信息异常");
}
return baseDao.policyList(customerId, staffInfo.getAgencyId(), null, null, null);
}
@Override
public List<IcPolicyRuleDTO> ruleList(String customerId, String policyId) {
LambdaQueryWrapper<IcPolicyRuleEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(IcPolicyRuleEntity::getCustomerId, customerId)
.eq(IcPolicyRuleEntity::getIcPolicyId, policyId)
.orderByAsc(IcPolicyRuleEntity::getSort);
List<IcPolicyRuleEntity> list = icPolicyRuleDao.selectList(wrapper);
return ConvertUtils.sourceToTarget(list, IcPolicyRuleDTO.class);
}
@Override
public IcPolicyDTO policyDetail(String customerId, String policyId) {
IcPolicyEntity policyEntity = baseDao.selectById(policyId);
IcPolicyDTO icPolicyDTO = ConvertUtils.sourceToTarget(policyEntity, IcPolicyDTO.class);
if (null != icPolicyDTO) {
icPolicyDTO.setPolicyId(policyId);
LambdaQueryWrapper<HeartAttachmentEntity> attWrapper = new LambdaQueryWrapper<>();
attWrapper.eq(HeartAttachmentEntity::getBusinessId, policyId)
.orderByAsc(HeartAttachmentEntity::getSort);
List<HeartAttachmentEntity> attList = heartAttachmentDao.selectList(attWrapper);
icPolicyDTO.setAttachmentList(CollectionUtils.isNotEmpty(attList) ? ConvertUtils.sourceToTarget(attList, FileCommonDTO.class) : new ArrayList<>());
LambdaQueryWrapper<IcPolicyCategoryEntity> cateWrapper = new LambdaQueryWrapper<>();
cateWrapper.eq(IcPolicyCategoryEntity::getIcPolicyId, policyId);
List<IcPolicyCategoryEntity> cateList = icPolicyCategoryDao.selectList(cateWrapper);
icPolicyDTO.setCategoryList(CollectionUtils.isNotEmpty(cateList) ? ConvertUtils.sourceToTarget(cateList, IcPolicyCategoryDTO.class) : new ArrayList<>());
List<IcPolicyRuleDTO> ruleDTOList = ruleList(customerId, policyId);
List<IcPolicyRuleFormDTO> ruleList = new ArrayList<>();
if (CollectionUtils.isNotEmpty(ruleDTOList)) {
ruleList = ConvertUtils.sourceToTarget(ruleDTOList, IcPolicyRuleFormDTO.class);
for (IcPolicyRuleFormDTO rule : ruleList) {
//人员信息
LambdaQueryWrapper<IcPolicyRuleDetailEntity> ruleDetailWrapper = new LambdaQueryWrapper<>();
ruleDetailWrapper.eq(IcPolicyRuleDetailEntity::getRuleId, rule.getId())
.eq(IcPolicyRuleDetailEntity::getGroupType, "resi")
.orderByAsc(IcPolicyRuleDetailEntity::getSort);
List<IcPolicyRuleDetailEntity> resiList = icPolicyRuleDetailDao.selectList(ruleDetailWrapper);
List<IcPolicyRuleDetailDTO> resiRuleList = CollectionUtils.isNotEmpty(resiList) ? ConvertUtils.sourceToTarget(resiList, IcPolicyRuleDetailDTO.class) : new ArrayList<>();
rule.setResiRuleList(resiRuleList);
//房屋信息
LambdaQueryWrapper<IcPolicyRuleDetailEntity> houseDetailWrapper = new LambdaQueryWrapper<>();
houseDetailWrapper.eq(IcPolicyRuleDetailEntity::getRuleId, rule.getId())
.eq(IcPolicyRuleDetailEntity::getGroupType, "house")
.orderByAsc(IcPolicyRuleDetailEntity::getSort);
List<IcPolicyRuleDetailEntity> houseList = icPolicyRuleDetailDao.selectList(houseDetailWrapper);
List<IcPolicyRuleDetailDTO> houseRuleList = CollectionUtils.isNotEmpty(houseList) ? ConvertUtils.sourceToTarget(houseList, IcPolicyRuleDetailDTO.class) : new ArrayList<>();
rule.setHouseRuleList(houseRuleList);
//统计信息
LambdaQueryWrapper<IcPolicyRuleDetailEntity> statDetailWrapper = new LambdaQueryWrapper<>();
statDetailWrapper.eq(IcPolicyRuleDetailEntity::getRuleId, rule.getId())
.eq(IcPolicyRuleDetailEntity::getGroupType, "stat")
.orderByAsc(IcPolicyRuleDetailEntity::getSort);
List<IcPolicyRuleDetailEntity> statList = icPolicyRuleDetailDao.selectList(statDetailWrapper);
List<IcPolicyRuleDetailDTO> statRuleList = CollectionUtils.isNotEmpty(statList) ? ConvertUtils.sourceToTarget(statList, IcPolicyRuleDetailDTO.class) : new ArrayList<>();
rule.setStatRuleList(statRuleList);
}
}
icPolicyDTO.setRuleList(ruleList);
}
return icPolicyDTO;
}
public Map<String, List<IcPolicyRuleDetailEntity>> listPolicyRules4QueryAndExport(String customerId, String ruleId) {
ResisByPolicyRulesFormDTO form = new ResisByPolicyRulesFormDTO();
LambdaQueryWrapper<IcPolicyRuleDetailEntity> query = new LambdaQueryWrapper();
query.eq(IcPolicyRuleDetailEntity::getCustomerId, customerId);
query.eq(IcPolicyRuleDetailEntity::getRuleId, ruleId);
query.orderByAsc(IcPolicyRuleDetailEntity::getSort);
List<IcPolicyRuleDetailEntity> rules = policyRuleDetailDao.selectList(query);
// 将查询出的数据转化成aggre服务能接受的格式
return rules.stream().collect(Collectors.groupingBy(IcPolicyRuleDetailEntity::getGroupType, Collectors.toList()));
}
}

30
epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/HeartAttachmentDao.xml

@ -0,0 +1,30 @@
<?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.epmet.dao.HeartAttachmentDao">
<resultMap type="com.epmet.entity.HeartAttachmentEntity" id="heartAttachmentMap">
<result property="id" column="ID"/>
<result property="customerId" column="CUSTOMER_ID"/>
<result property="businessId" column="BUSINESS_ID"/>
<result property="attachTo" column="ATTACH_TO"/>
<result property="name" column="NAME"/>
<result property="format" column="FORMAT"/>
<result property="type" column="TYPE"/>
<result property="url" column="URL"/>
<result property="sort" column="SORT"/>
<result property="status" column="STATUS"/>
<result property="reason" column="REASON"/>
<result property="duration" column="DURATION"/>
<result property="delFlag" column="DEL_FLAG"/>
<result property="revision" column="REVISION"/>
<result property="createdBy" column="CREATED_BY"/>
<result property="createdTime" column="CREATED_TIME"/>
<result property="updatedBy" column="UPDATED_BY"/>
<result property="updatedTime" column="UPDATED_TIME"/>
</resultMap>
<delete id="deleteByBusinessId" parameterType="java.lang.String">
delete from heart_attachment where BUSINESS_ID=#{businessId}
</delete>
</mapper>

23
epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcPolicyCategoryDao.xml

@ -0,0 +1,23 @@
<?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.epmet.dao.IcPolicyCategoryDao">
<resultMap type="com.epmet.entity.IcPolicyCategoryEntity" id="icPolicyCategoryMap">
<result property="id" column="ID"/>
<result property="customerId" column="CUSTOMER_ID"/>
<result property="icPolicyId" column="IC_POLICY_ID"/>
<result property="categoryCode" column="CATEGORY_CODE"/>
<result property="codePath" column="CODE_PATH"/>
<result property="delFlag" column="DEL_FLAG"/>
<result property="revision" column="REVISION"/>
<result property="createdBy" column="CREATED_BY"/>
<result property="createdTime" column="CREATED_TIME"/>
<result property="updatedBy" column="UPDATED_BY"/>
<result property="updatedTime" column="UPDATED_TIME"/>
</resultMap>
<delete id="deleteByIcPolicyId" parameterType="java.lang.String">
delete from ic_policy_category where IC_POLICY_ID=#{icPolicyId}
</delete>
</mapper>

92
epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcPolicyDao.xml

@ -0,0 +1,92 @@
<?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.epmet.dao.IcPolicyDao">
<resultMap type="com.epmet.entity.IcPolicyEntity" id="icPolicyMap">
<result property="id" column="ID"/>
<result property="customerId" column="CUSTOMER_ID"/>
<result property="orgId" column="ORG_ID"/>
<result property="orgIdPath" column="ORG_ID_PATH"/>
<result property="policyLevel" column="POLICY_LEVEL"/>
<result property="startDate" column="START_DATE"/>
<result property="endDate" column="END_DATE"/>
<result property="title" column="TITLE"/>
<result property="content" column="CONTENT"/>
<result property="delFlag" column="DEL_FLAG"/>
<result property="revision" column="REVISION"/>
<result property="createdBy" column="CREATED_BY"/>
<result property="createdTime" column="CREATED_TIME"/>
<result property="updatedBy" column="UPDATED_BY"/>
<result property="updatedTime" column="UPDATED_TIME"/>
</resultMap>
<select id="selectItemList" parameterType="map" resultType="com.epmet.dto.result.policy.IcPolicyItemResultDTO">
SELECT
i.id,
i.GROUP_TYPE,
i.LABEL,
i.COL_KEY,
i.ITEM_TYPE,
IFNULL( i.TABLE_NAME, '' ) AS TABLE_NAME,
i.sort,
IFNULL(i.remark,'')as remark,
IFNULL(i.option_source_type,'') as option_source_type,
IFNULL(i.option_source_url,'') as option_source_url,
IFNULL(i.option_source_param ,'') as option_source_param
FROM
ic_policy_item i
WHERE
i.DEL_FLAG = '0'
and i.CUSTOMER_ID = #{customerId}
and i.GROUP_TYPE = #{groupType}
order by i.SORT asc
</select>
<select id="policyList" parameterType="map" resultType="com.epmet.dto.IcPolicyDTO">
SELECT
ip.id AS POLICY_ID,
ip.ORG_ID,
ip.POLICY_LEVEL,
ip.START_DATE,
ip.END_DATE,
ip.TITLE,
ip.CONTENT,
(
case when ip.END_DATE &lt; DATE_FORMAT(now(),'%Y-%m-%d') then '1'
when ip.END_DATE &gt;= DATE_FORMAT(now(),'%Y-%m-%d') then '0'
end
)as expiredFlag
FROM
ic_policy ip
WHERE
ip.DEL_FLAG = '0'
AND ip.CUSTOMER_ID = #{customerId}
AND ip.ORG_ID = #{agencyId}
<if test="null != title and title != '' ">
and ip.TITLE like concat('%',#{title},'%')
</if>
<if test="null != content and content != '' ">
and ip.CONTENT like concat('%',#{content},'%')
</if>
<if test="null != expiredFlag and expiredFlag != '' ">
and 1=1
<if test="expiredFlag == 1">
and ip.END_DATE &lt; DATE_FORMAT(now(),'%Y-%m-%d')
</if>
<if test="expiredFlag == 0">
and ip.END_DATE &gt;= DATE_FORMAT(now(),'%Y-%m-%d')
</if>
</if>
order by ip.CREATED_TIME desc
</select>
<select id="selectTitle" parameterType="java.lang.String" resultType="java.lang.String">
SELECT
p.TITLE
FROM
ic_policy p
WHERE
p.id = #{policyId}
</select>
</mapper>

23
epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcPolicyRuleDao.xml

@ -0,0 +1,23 @@
<?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.epmet.dao.IcPolicyRuleDao">
<resultMap type="com.epmet.entity.IcPolicyRuleEntity" id="icPolicyRuleMap">
<result property="id" column="ID"/>
<result property="customerId" column="CUSTOMER_ID"/>
<result property="icPolicyId" column="IC_POLICY_ID"/>
<result property="ruleName" column="RULE_NAME"/>
<result property="sort" column="SORT"/>
<result property="delFlag" column="DEL_FLAG"/>
<result property="revision" column="REVISION"/>
<result property="createdBy" column="CREATED_BY"/>
<result property="createdTime" column="CREATED_TIME"/>
<result property="updatedBy" column="UPDATED_BY"/>
<result property="updatedTime" column="UPDATED_TIME"/>
</resultMap>
<delete id="deleteByIcPolicyId" parameterType="java.lang.String">
delete from ic_policy_rule where IC_POLICY_ID = #{policyId}
</delete>
</mapper>

33
epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcPolicyRuleDetailDao.xml

@ -0,0 +1,33 @@
<?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.epmet.dao.IcPolicyRuleDetailDao">
<resultMap type="com.epmet.entity.IcPolicyRuleDetailEntity" id="icPolicyRuleDetailMap">
<result property="id" column="ID"/>
<result property="customerId" column="CUSTOMER_ID"/>
<result property="icPolicyId" column="IC_POLICY_ID"/>
<result property="ruleId" column="RULE_ID"/>
<result property="ruleDesc" column="RULE_DESC"/>
<result property="groupType" column="GROUP_TYPE"/>
<!-- <result property="lastLogicalRel" column="LAST_LOGICAL_REL"/>-->
<result property="itemGroupId" column="ITEM_GROUP_ID"/>
<result property="itemId" column="ITEM_ID"/>
<result property="queryType" column="QUERY_TYPE"/>
<result property="colTable" column="COL_TABLE"/>
<result property="colKey" column="COL_KEY"/>
<result property="colVal" column="COL_VAL"/>
<result property="sort" column="SORT"/>
<result property="delFlag" column="DEL_FLAG"/>
<result property="revision" column="REVISION"/>
<result property="createdBy" column="CREATED_BY"/>
<result property="createdTime" column="CREATED_TIME"/>
<result property="updatedBy" column="UPDATED_BY"/>
<result property="updatedTime" column="UPDATED_TIME"/>
</resultMap>
<delete id="deleteByRuleId" parameterType="java.lang.String">
delete from ic_policy_rule_detail where RULE_ID=#{ruleId}
</delete>
</mapper>
Loading…
Cancel
Save