Browse Source

commityixia

master
yinzuomei 3 years ago
parent
commit
e7f9b111bc
  1. 16
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/Constant.java
  2. 99
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/policy/IcPolicyFormDTO.java
  3. 60
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/policy/IcPolicyRuleDetailDTO.java
  4. 37
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/policy/IcPolicyRuleFormDTO.java
  5. 36
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcPolicyController.java
  6. 5
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcPolicyRuleDetailEntity.java
  7. 15
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcPolicyService.java
  8. 150
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPolicyServiceImpl.java

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

@ -174,4 +174,20 @@ public interface Constant {
String OPITON_SOURCE_REMOTE = "remote";
String OPITON_SOURCE_LOCAL = "local";
/**
* 附件状态审核中auditing
auto_passed: 自动通过
review结果不确定需要人工审核
block: 结果违规
rejected人工审核驳回;
approved人工审核通过
现在图片是同步审核的所以图片只有auto_passed一种状态
*/
String AUDITING="auditing";
String AUTO_PASSED="auto_passed";
String REVIEW="review";
String BLOCK="block";
String REJECTED="rejected";
String APPROVED="approved";
}

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

@ -0,0 +1,99 @@
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;
}

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

@ -0,0 +1,60 @@
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 AddUserShowGroup extends CustomerClientShowGroup {
}
/**
* 规则描述文字例如基础信息性别等于女
*/
private String ruleDesc;
/**
* 与上一条的关系andor
*/
private String lastLogicalRel;
/**
* 分组id人员信息有值
*/
private String itemGroupId;
/**
* 表名人员信息有值房屋信息也有值
*/
private String itemId;
/**
* 查询类型等于不等于....;来源于字典表sql_query_type
*/
@NotBlank(message = "查询类型不能为空", groups = AddUserShowGroup.class)
private String queryType;
/**
* 表名人员信息有值
*/
private String colTable;
/**
* 人员信息存储组件对应的列名房屋信息存储ic_house表的列名统计信息应该是定义到字典表这里存储字典key就行吧
*/
@NotBlank(message = "条件不能为空", groups = AddUserShowGroup.class)
private String colKey;
/**
* 参数值
*/
@NotBlank(message = "参数值不能为空", groups = AddUserShowGroup.class)
private String colVal;
}

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

@ -0,0 +1,37 @@
package com.epmet.dto.form.policy;
import lombok.Data;
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;
/**
* 房屋信息
*/
private List<IcPolicyRuleDetailDTO> houseRuleList;
/**
* 统计信息
*/
private List<IcPolicyRuleDetailDTO> statRuleList;
}

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

@ -1,7 +1,11 @@
package com.epmet.controller;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.IcPolicyItemResultDTO;
import com.epmet.dto.form.policy.IcPolicyFormDTO;
import com.epmet.service.IcPolicyService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@ -34,4 +38,36 @@ public class IcPolicyController {
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.addPolicy(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.updatePolicy(formDTO);
return new Result();
}
}

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

@ -1,13 +1,10 @@
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;
/**
* 政策匹配规则明细
*
@ -67,7 +64,7 @@ public class IcPolicyRuleDetailEntity extends BaseEpmetEntity {
private String queryType;
/**
* 表名人员信息有值
* 表名人员信息有值房屋信息也有值
*/
private String colTable;

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

@ -2,6 +2,7 @@ package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.dto.IcPolicyItemResultDTO;
import com.epmet.dto.form.policy.IcPolicyFormDTO;
import com.epmet.entity.IcPolicyEntity;
import java.util.List;
@ -15,9 +16,23 @@ import java.util.List;
public interface IcPolicyService extends BaseService<IcPolicyEntity> {
/**
* 房屋信息统计信息查询有哪些可选项
*
* @param customerId
* @param groupType
* @return
*/
List<IcPolicyItemResultDTO> itemList(String customerId, String groupType);
/**
* 政策管理-新增/修改
*
* @param formDTO
*/
void addPolicy(IcPolicyFormDTO formDTO);
/**
* 修改政策
* @param formDTO
*/
void updatePolicy(IcPolicyFormDTO formDTO);
}

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

@ -2,13 +2,26 @@ package com.epmet.service.impl;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.Constant;
import com.epmet.dao.IcPolicyDao;
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.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.dao.*;
import com.epmet.dto.IcPolicyCategoryDTO;
import com.epmet.dto.IcPolicyItemResultDTO;
import com.epmet.entity.IcPolicyEntity;
import com.epmet.dto.form.policy.IcPolicyFormDTO;
import com.epmet.dto.form.policy.IcPolicyRuleDetailDTO;
import com.epmet.dto.form.policy.IcPolicyRuleFormDTO;
import com.epmet.entity.*;
import com.epmet.service.IcPolicyService;
import org.apache.commons.collections4.CollectionUtils;
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 java.util.ArrayList;
import java.util.List;
@ -22,6 +35,15 @@ import java.util.List;
@Service
public class IcPolicyServiceImpl extends BaseServiceImpl<IcPolicyDao, IcPolicyEntity> implements IcPolicyService {
@Autowired
private IcPolicyCategoryDao icPolicyCategoryDao;
@Autowired
private IcPolicyRuleDao icPolicyRuleDao;
@Autowired
private HeartAttachmentDao heartAttachmentDao;
@Autowired
private IcPolicyRuleDetailDao icPolicyRuleDetailDao;
/**
* 房屋信息统计信息查询有哪些可选项
@ -41,4 +63,128 @@ public class IcPolicyServiceImpl extends BaseServiceImpl<IcPolicyDao, IcPolicyEn
}
return resultList;
}
/**
* 政策管理-新增/修改
*
* @param formDTO
*/
@Transactional(rollbackFor = Exception.class)
@Override
public void addPolicy(IcPolicyFormDTO formDTO) {
// 校验参数
checkAddFormDTO(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(), "工作人员缓存信息异常", "工作人员信息异常");
}
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());
// 插入政策主表
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);
if (CollectionUtils.isNotEmpty(rule.getResiRuleList())) {
int resiRuleSort = 1;
for (IcPolicyRuleDetailDTO ruleDetailDTO : rule.getResiRuleList()) {
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()) {
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()) {
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 = new HeartAttachmentEntity();
heartAttachment.setCustomerId(formDTO.getCustomerId());
heartAttachment.setBusinessId(icPolicyEntity.getId());
heartAttachment.setAttachTo("ic_policy");
heartAttachment.setAttachmentName(fileCommonDTO.getName());
heartAttachment.setAttachmentFormat(fileCommonDTO.getFormat());
heartAttachment.setAttachmentType(fileCommonDTO.getType());
heartAttachment.setAttachmentUrl(fileCommonDTO.getUrl());
heartAttachment.setSort(sort);
heartAttachment.setStatus(Constant.AUTO_PASSED);
heartAttachment.setDuration(fileCommonDTO.getDuration());
heartAttachmentDao.insert(heartAttachment);
sort++;
}
}
}
private void checkAddFormDTO(IcPolicyFormDTO formDTO) {
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
*/
@Override
public void updatePolicy(IcPolicyFormDTO formDTO) {
// todo
}
}
Loading…
Cancel
Save