Browse Source

Merge remote-tracking branch 'origin/dev_addcate_and_import' into develop

master
yinzuomei 4 years ago
parent
commit
ddc9bce789
  1. 4
      epmet-module/data-aggregator/data-aggregator-server/deploy/docker-compose-prod.yml
  2. 2
      epmet-module/data-report/data-report-server/deploy/docker-compose-prod.yml
  3. 34
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/ImportInfoFormDTO.java
  4. 31
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/InfoByNamesResultDTO.java
  5. 38
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcNeighborHoodController.java
  6. 9
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerGridDao.java
  7. 10
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcNeighborHoodDao.java
  8. 3
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcNeighborHoodEntity.java
  9. 13
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/IcNeighborHoodExcel.java
  10. 13
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcNeighborHoodService.java
  11. 194
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcNeighborHoodServiceImpl.java
  12. 19
      epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml
  13. 14
      epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcNeighborHoodDao.xml
  14. 99
      epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/IcPartymemberStyleCategoryDictDTO.java
  15. 6
      epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/IcPartymemberStyleDTO.java
  16. 36
      epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/form/AddStyleCategoryFormDTO.java
  17. 1
      epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/form/PartyMemberStyleFormDTO.java
  18. 15
      epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/form/StyleCategoryCommonFormDTO.java
  19. 21
      epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/form/StyleSelectListFormDTO.java
  20. 30
      epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/form/UpdateStyleCategoryFormDTO.java
  21. 27
      epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/result/StyleCategoryDictResDTO.java
  22. 101
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/IcPartymemberStyleCategoryDictController.java
  23. 1
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/IcPartymemberStyleController.java
  24. 20
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/IcPartymemberStyleCategoryDictDao.java
  25. 4
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/IcPartymemberStyleDao.java
  26. 66
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/entity/IcPartymemberStyleCategoryDictEntity.java
  27. 3
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/entity/IcPartymemberStyleEntity.java
  28. 3
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/excel/IcPartymemberStyleExcel.java
  29. 3
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/excel/IcPartymemberStyleImportExcel.java
  30. 54
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/IcPartymemberStyleCategoryDictService.java
  31. 171
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/IcPartymemberStyleCategoryDictServiceImpl.java
  32. 10
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/IcPartymemberStyleServiceImpl.java
  33. 23
      epmet-module/resi-partymember/resi-partymember-server/src/main/resources/db/migration/V0.0.2__style_dict.sql
  34. 18
      epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/IcPartymemberStyleCategoryDictDao.xml
  35. 6
      epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/IcPartymemberStyleDao.xml

4
epmet-module/data-aggregator/data-aggregator-server/deploy/docker-compose-prod.yml

@ -9,10 +9,10 @@ services:
volumes:
- "/opt/epmet-cloud-logs/prod:/logs"
environment:
RUN_INSTRUCT: "java -Xms256m -Xmx512m -jar ./data-aggregator.jar"
RUN_INSTRUCT: "java -Xms256m -Xmx760m -jar ./data-aggregator.jar"
restart: "unless-stopped"
deploy:
resources:
limits:
cpus: '0.1'
memory: 600M
memory: 800M

2
epmet-module/data-report/data-report-server/deploy/docker-compose-prod.yml

@ -9,7 +9,7 @@ services:
volumes:
- "/opt/epmet-cloud-logs/prod:/logs"
environment:
RUN_INSTRUCT: "java -Xms256m -Xmx1024m -jar ./data-report.jar"
RUN_INSTRUCT: "java -Xms256m -Xmx1524m -jar ./data-report.jar"
restart: "unless-stopped"
deploy:
resources:

34
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/ImportInfoFormDTO.java

@ -0,0 +1,34 @@
package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Author zxc
* @DateTime 2022/2/12 10:38 上午
* @DESC
*/
@Data
public class ImportInfoFormDTO implements Serializable {
private static final long serialVersionUID = -3978921489168201769L;
public interface ImportInfoForm{}
/**
* 选中的组织ID
*/
@NotBlank(message = "orgId不能为空",groups = ImportInfoForm.class)
private String orgId;
/**
* 组织类型 agency:组织grid:网格
*/
@NotBlank(message = "orgType不能为空",groups = ImportInfoForm.class)
private String orgType;
private String customerId;
private String userId;
}

31
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/InfoByNamesResultDTO.java

@ -0,0 +1,31 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Author zxc
* @DateTime 2022/2/12 2:15 下午
* @DESC
*/
@Data
public class InfoByNamesResultDTO implements Serializable {
private static final long serialVersionUID = 264490056071606346L;
private String gridId;
private String agencyId;
private String gridName;
private String agencyName;
private String pid;
private String pids;
private String parentAgencyId;
private String agencyPids;
}

38
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcNeighborHoodController.java

@ -28,10 +28,13 @@ import com.epmet.commons.tools.validator.group.AddGroup;
import com.epmet.commons.tools.validator.group.DefaultGroup;
import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.dto.IcNeighborHoodDTO;
import com.epmet.dto.form.ImportInfoFormDTO;
import com.epmet.service.IcNeighborHoodService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.util.List;
import java.util.Map;
@ -85,6 +88,18 @@ public class IcNeighborHoodController {
return new Result();
}
/**
* @Description 通过ID查询小区信息
* @Param ids
* @Return {@link Result< List< IcNeighborHoodDTO>>}
* @Author zhaoqifeng
* @Date 2021/11/8 10:46
*/
@PostMapping("getlistbyids")
public Result<List<IcNeighborHoodDTO>> getListByIds(@RequestBody List<String> ids) {
return new Result<List<IcNeighborHoodDTO>>().ok(icNeighborHoodService.getListByIds(ids));
}
/**
* @Description 获取网格下小区列表
* @Param dto
@ -98,15 +113,22 @@ public class IcNeighborHoodController {
}
/**
* @Description 通过ID查询小区信息
* @Param ids
* @Return {@link Result< List< IcNeighborHoodDTO>>}
* @Author zhaoqifeng
* @Date 2021/11/8 10:46
* @Description 小区信息导入
* @param tokenDTO
* @param file
* @author zxc
* @date 2022/2/12 10:47 上午
*/
@PostMapping("getlistbyids")
public Result<List<IcNeighborHoodDTO>> getListByIds(@RequestBody List<String> ids) {
return new Result<List<IcNeighborHoodDTO>>().ok(icNeighborHoodService.getListByIds(ids));
@PostMapping("neighborhoodimport")
public Result neighborhoodImport(@LoginUser TokenDto tokenDTO, @RequestParam("file") MultipartFile file,
@RequestParam("orgId")String orgId,
@RequestParam("orgType")String orgType) throws IOException {
ImportInfoFormDTO formDTO = new ImportInfoFormDTO();
formDTO.setCustomerId(tokenDTO.getCustomerId());
formDTO.setOrgType(orgType);
formDTO.setOrgId(orgId);
formDTO.setUserId(tokenDTO.getUserId());
return new Result().ok(icNeighborHoodService.neighborhoodImport(formDTO,file));
}
}

9
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerGridDao.java

@ -365,4 +365,13 @@ public interface CustomerGridDao extends BaseDao<CustomerGridEntity> {
@Param("operateUserId") String operateUserId);
List<CustomerStaffGridResultDTO> getStaffGridList(@Param("customerId") String customerId, @Param("orgId") String orgId, @Param("orgType") String orgType);
/**
* @Description 根据网格名字查询网格信息
* @param names
* @author zxc
* @date 2022/2/12 2:06 下午
*/
List<InfoByNamesResultDTO> selectGridInfoByNames(@Param("names")List<String> names,@Param("customerId")String customerId);
}

10
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcNeighborHoodDao.java

@ -51,4 +51,14 @@ public interface IcNeighborHoodDao extends BaseDao<IcNeighborHoodEntity> {
Integer checkNameUq(@Param("customerId") String customerId,
@Param("neighborHoodName")String neighborHoodName,
@Param("neighborId")String neighborId);
/**
* @Description 根据小区名查询存在小区
* @param names
* @param customerId
* @author zxc
* @date 2022/2/12 2:59 下午
*/
List<String> selectNeighborhoodNameByNames(@Param("names")List<String> names,@Param("customerId") String customerId);
}

3
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcNeighborHoodEntity.java

@ -17,6 +17,7 @@
package com.epmet.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
@ -98,4 +99,6 @@ public class IcNeighborHoodEntity extends BaseEpmetEntity {
*/
private String location;
@TableField(exist = false)
private String gridName;
}

13
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/IcNeighborHoodExcel.java

@ -21,6 +21,7 @@ import cn.afterturn.easypoi.excel.annotation.Excel;
import com.epmet.commons.tools.validator.group.AddGroup;
import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.util.ExcelVerifyInfo;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
@ -121,4 +122,16 @@ public class IcNeighborHoodExcel extends ExcelVerifyInfo implements Serializable
@Length(max=500,message = "不能超过500个字")
private String remark;
@JsonIgnore
private Boolean status = false;
@JsonIgnore
private Boolean existNameStatus = false;
@JsonIgnore
private Boolean agencyNameStatus = false;
@JsonIgnore
private Boolean reStatus = false;
}

13
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcNeighborHoodService.java

@ -20,9 +20,13 @@ package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.dto.result.OptionResultDTO;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.IcNeighborHoodDTO;
import com.epmet.dto.form.ImportInfoFormDTO;
import com.epmet.entity.IcNeighborHoodEntity;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.util.List;
import java.util.Map;
@ -112,4 +116,13 @@ public interface IcNeighborHoodService extends BaseService<IcNeighborHoodEntity>
* @Date 2021/11/8 10:45
*/
List<IcNeighborHoodDTO> getListByIds(List<String> ids);
/**
* @Description 小区信息导入
* @param formDTO
* @param file
* @author zxc
* @date 2022/2/12 11:11 上午
*/
Result neighborhoodImport(ImportInfoFormDTO formDTO, MultipartFile file) throws IOException;
}

194
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcNeighborHoodServiceImpl.java

@ -17,30 +17,45 @@
package com.epmet.service.impl;
import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.constant.NumConstant;
import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
import com.epmet.commons.tools.dto.result.OptionResultDTO;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.redis.common.CustomerOrgRedis;
import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache;
import com.epmet.commons.tools.redis.common.bean.GridInfoCache;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.CustomerGridConstant;
import com.epmet.dao.CustomerGridDao;
import com.epmet.dao.IcNeighborHoodDao;
import com.epmet.dto.IcNeighborHoodDTO;
import com.epmet.dto.form.ImportInfoFormDTO;
import com.epmet.dto.result.InfoByNamesResultDTO;
import com.epmet.entity.IcNeighborHoodEntity;
import com.epmet.excel.IcBuildingExcel;
import com.epmet.excel.IcNeighborHoodExcel;
import com.epmet.service.IcNeighborHoodService;
import com.epmet.util.ExcelPoiUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.ListUtils;
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 org.springframework.web.multipart.MultipartFile;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.io.IOException;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -53,6 +68,8 @@ import java.util.stream.Collectors;
@Service
public class IcNeighborHoodServiceImpl extends BaseServiceImpl<IcNeighborHoodDao, IcNeighborHoodEntity> implements IcNeighborHoodService {
@Autowired
private CustomerGridDao customerGridDao;
@Override
public PageData<IcNeighborHoodDTO> page(Map<String, Object> params) {
@ -160,4 +177,173 @@ public class IcNeighborHoodServiceImpl extends BaseServiceImpl<IcNeighborHoodDao
return ConvertUtils.sourceToTarget(list, IcNeighborHoodDTO.class);
}
/**
* @Description 小区信息导入
* @param formDTO
* @param file
* @author zxc
* @date 2022/2/12 11:11 上午
*/
@Override
public Result neighborhoodImport(ImportInfoFormDTO formDTO, MultipartFile file) throws IOException {
ExcelImportResult<IcNeighborHoodExcel> importResult = ExcelPoiUtils.importExcelMore(file, 0, 1, IcNeighborHoodExcel.class);
List<IcNeighborHoodExcel> failList = importResult.getFailList();
//存放错误数据行号
List<Integer> numList = new ArrayList<>();
if(CollectionUtils.isNotEmpty(failList)){
for ( IcNeighborHoodExcel entity : failList) {
//打印失败的行 和失败的信息
log.error("第{}行,{}",entity.getRowNum(),entity.getErrorMsg());
numList.add(entity.getRowNum());
}
}
List<IcNeighborHoodExcel> result =importResult.getList();
return disposeImportNeighborhood(formDTO,result);
}
/**
* @Description 根据左侧树选中的层级可导入对应数据
* 1. 选中社区可导入该社区下所有小区信息楼宇信息房屋信息没有匹配的小区楼宇均新增网格没有对应的不新增
* 2. 选中网格可导入该网格下所有小区信息楼宇信息房屋信息没有匹配的小区楼宇均新增
* 3. 选中小区可导入该小区下所有楼宇信息房屋信息没有匹配的楼宇均新增
* 4. 选中楼宇可导入该楼宇下所有房屋信息
* @param formDTO
* @param result
* @author zxc
* @date 2022/2/12 2:02 下午
*/
public Result disposeImportNeighborhood(ImportInfoFormDTO formDTO, List<IcNeighborHoodExcel> result){
if (CollectionUtils.isEmpty(result)){
return new Result().error(9999,"excel表格内没有数据");
}
List<Integer> nums = new ArrayList<>();
List<String> gridNames = result.stream().map(m -> m.getGridName()).collect(Collectors.toList());
// 1. 查询数据网格是否存在
List<InfoByNamesResultDTO> gridInfos = customerGridDao.selectGridInfoByNames(gridNames, formDTO.getCustomerId());
if (CollectionUtils.isEmpty(gridInfos)){
// 网格没有对应的不新增
for (int i = NumConstant.ONE; i <= result.size(); i++) {
nums.add(i);
}
String str = String.format("共%s条,成功导入%s条。",result.size(),0);
return new Result().error(9999,str + "第"+nums.stream().map(String::valueOf).collect(Collectors.joining("、"))+"行未成功!");
}
result.forEach(r -> {
for (InfoByNamesResultDTO g : gridInfos) {
if (r.getGridName().equals(g.getGridName())){
// 能查询出网格,变为true
r.setStatus(true);
break;
}
}
});
Map<Boolean, List<IcNeighborHoodExcel>> groupStatus = result.stream().collect(Collectors.groupingBy(IcNeighborHoodExcel::getStatus));
// 只获取能查询到的网格
List<IcNeighborHoodExcel> neighborHoods = groupStatus.get(true);
// 2. 查询组织选中组织下存在的小区
List<String> existNames = baseDao.selectNeighborhoodNameByNames(neighborHoods.stream().map(m -> m.getNeighborHoodName()).collect(Collectors.toList()), formDTO.getCustomerId());
// 为了显示多少行插入成功,未成功
result.forEach(r -> {
for (String s : existNames) {
if (r.getNeighborHoodName().equals(s)){
// 数据库已存在此小区名变为true
r.setExistNameStatus(true);
break;
}
}
});
Map<Boolean, List<IcNeighborHoodExcel>> groupByExistName = neighborHoods.stream().collect(Collectors.groupingBy(IcNeighborHoodExcel::getExistNameStatus));
// 获取需要插入的数据
List<IcNeighborHoodExcel> needInsert = groupByExistName.get(false);
if (CollectionUtils.isEmpty(needInsert)){
for (int i = NumConstant.ONE; i <= result.size(); i++) {
nums.add(i);
}
String str = String.format("共%s条,成功导入%s条。",result.size(),0);
return new Result().error(9999,str + "第"+nums.stream().map(String::valueOf).collect(Collectors.joining("、"))+"行未成功!");
}
if (formDTO.getOrgType().equals(CustomerGridConstant.AGENCY)){
AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(formDTO.getOrgId());
if (null == agencyInfo){
throw new EpmetException("未查询到组织信息...");
}
needInsert.forEach(n -> {
if (agencyInfo.getOrganizationName().equals(n.getAgencyName())){
// 所属组织名一样变为true
n.setAgencyNameStatus(true);
}
});
}else {
GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(formDTO.getOrgId());
if (null == gridInfo){
throw new EpmetException("未查询到网格信息...");
}
needInsert.forEach(n -> {
if (gridInfo.getGridName().equals(n.getGridName())){
//网格名一样变为true
n.setAgencyNameStatus(true);
}
});
}
Map<Boolean, List<IcNeighborHoodExcel>> groupByAgencyNameStatus = needInsert.stream().collect(Collectors.groupingBy(IcNeighborHoodExcel::getAgencyNameStatus));
List<IcNeighborHoodExcel> finalNeedInsert = groupByAgencyNameStatus.get(true);
if (CollectionUtils.isEmpty(finalNeedInsert)){
for (int i = NumConstant.ONE; i <= result.size(); i++) {
nums.add(i);
}
String str = String.format("共%s条,成功导入%s条。",result.size(),0);
return new Result().error(9999,str +"第"+nums.stream().map(String::valueOf).collect(Collectors.joining("、"))+"行未成功!");
}
Map<String, Long> collect = finalNeedInsert.stream().collect(Collectors.groupingBy(o -> o.getGridName() + "_" + o.getNeighborHoodName(), Collectors.counting()));
collect.forEach((k,v) -> {
if (Integer.valueOf(v.toString()).compareTo(1) > 0){
for (IcNeighborHoodExcel r : result) {
if (k.equals(r.getGridName()+"_"+r.getNeighborHoodName())){
r.setReStatus(true);
}
}
}
});
List<IcNeighborHoodExcel> realFinalResult = new ArrayList<>();
for (int i = NumConstant.ZERO; i < result.size(); i++) {
if (result.get(i).getStatus() == true && result.get(i).getExistNameStatus() == false &&
result.get(i).getAgencyNameStatus() == true && result.get(i).getReStatus() == false){
realFinalResult.add(result.get(i));
}
}
List<IcNeighborHoodEntity> entities = ConvertUtils.sourceToTarget(realFinalResult, IcNeighborHoodEntity.class);
entities.forEach(e -> {
for (InfoByNamesResultDTO g : gridInfos) {
if (e.getGridName().equals(g.getGridName())){
e.setAgencyId(g.getAgencyId());
e.setAgencyPids(g.getAgencyPids());
e.setCustomerId(formDTO.getCustomerId());
e.setGridId(g.getGridId());
e.setParentAgencyId(g.getParentAgencyId());
break;
}
}
});
importInsert(entities);
for (int i = NumConstant.ZERO; i < result.size(); i++) {
if (result.get(i).getStatus() == false || result.get(i).getExistNameStatus() == true || result.get(i).getAgencyNameStatus() == false || result.get(i).getReStatus() == true){
nums.add(i + NumConstant.ONE);
}
}
String str = String.format("共%s条,成功导入%s条。",result.size(),entities.size());
if (CollectionUtils.isNotEmpty(nums)){
return new Result().error(9999,str + "第"+nums.stream().map(String::valueOf).collect(Collectors.joining("、"))+"行未成功!");
}
return new Result().ok(str);
}
@Transactional(rollbackFor = Exception.class)
public void importInsert(List<IcNeighborHoodEntity> entities){
List<List<IcNeighborHoodEntity>> partition = ListUtils.partition(entities, NumConstant.ONE_HUNDRED);
partition.forEach(p -> {
insertBatch(p);
});
}
}

19
epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml

@ -806,4 +806,23 @@
</if>
</select>
<!-- 根据网格名字查询网格信息 -->
<select id="selectGridInfoByNames" resultType="com.epmet.dto.result.InfoByNamesResultDTO">
SELECT
g.ID AS gridId,
g.GRID_NAME AS gridName,
a.ID AS agencyId,
a.PID AS parentAgencyId,
a.PIDS AS agencyPids
FROM customer_grid g
INNER JOIN customer_agency a ON (a.ID = g.PID AND a.DEL_FLAG = '0')
WHERE g.DEL_FLAG = 0
AND g.CUSTOMER_ID = #{customerId}
AND g.GRID_NAME IN (
<foreach collection="names" item="n" separator=",">
#{n}
</foreach>
)
</select>
</mapper>

14
epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcNeighborHoodDao.xml

@ -214,4 +214,18 @@
and a.id !=#{neighborId}
</if>
</select>
<!-- 根据小区名查询存在小区 -->
<select id="selectNeighborhoodNameByNames" resultType="java.lang.String">
SELECT
NEIGHBOR_HOOD_NAME
FROM ic_neighbor_hood
WHERE DEL_FLAG = '0'
AND CUSTOMER_ID = #{customerId}
AND NEIGHBOR_HOOD_NAME IN (
<foreach collection="names" item="n" separator=",">
#{n}
</foreach>
)
</select>
</mapper>

99
epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/IcPartymemberStyleCategoryDictDTO.java

@ -0,0 +1,99 @@
package com.epmet.dto;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 党员风采分类字典表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-02-12
*/
@Data
public class IcPartymemberStyleCategoryDictDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 楼栋主键
*/
private String id;
/**
* 客户id
*/
private String customerId;
/**
* 上级分类ID 顶级此列存储0
*/
private String pid;
/**
* 所有上级分类ID英文顿号隔开顶级此列存储0
*/
private String pids;
/**
* 分类编码分类编码+customer_id唯一;从1000开始
*/
private String categoryCode;
/**
* 上级分类编码
*/
private String parentCategoryCode;
/**
* 分类名称
*/
private String categoryName;
/**
* 分类级别1,2,3,4.... 目前只有一级
*/
private Integer level;
/**
* 排序
*/
private Integer sort;
/**
* 0:可用1被禁用默认0
*/
private Boolean beDisabled;
/**
* 删除标识 0未删除1已删除
*/
private String delFlag;
/**
* 乐观锁
*/
private Integer revision;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
}

6
epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/IcPartymemberStyleDTO.java

@ -98,5 +98,9 @@ public class IcPartymemberStyleDTO implements Serializable {
private Date updatedTime;
private List<String> imageList;
/**
* 分类名称
*/
private String categoryName;
private String categoryId;
}

36
epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/form/AddStyleCategoryFormDTO.java

@ -0,0 +1,36 @@
package com.epmet.resi.partymember.dto.partymember.form;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* 党员风采分类添加或修改分类
*/
@Data
public class AddStyleCategoryFormDTO implements Serializable {
public interface AddUserInternalGroup {
}
public interface AddUserShowGroup extends CustomerClientShowGroup {
}
@NotBlank(message = "customerId不能为空", groups = AddUserInternalGroup.class)
private String customerId;
/**
* 分类名称
*/
@NotBlank(message = "分类名称不能为空", groups = AddUserShowGroup.class)
@Length(max = 10, groups = AddUserShowGroup.class)
private String categoryName;
/**
* 主键
*/
private String categoryId;
}

1
epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/form/PartyMemberStyleFormDTO.java

@ -22,4 +22,5 @@ public class PartyMemberStyleFormDTO implements Serializable {
private String mainDeed;
private Integer pageNo;
private Integer pageSize;
private String categoryId;
}

15
epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/form/StyleCategoryCommonFormDTO.java

@ -0,0 +1,15 @@
package com.epmet.resi.partymember.dto.partymember.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
@Data
public class StyleCategoryCommonFormDTO implements Serializable {
private static final long serialVersionUID = -291713921309878763L;
public interface AddUserInternalGroup {}
@NotBlank(message = "customerId不能为空",groups = AddUserInternalGroup.class)
private String customerId;
}

21
epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/form/StyleSelectListFormDTO.java

@ -0,0 +1,21 @@
package com.epmet.resi.partymember.dto.partymember.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
@Data
public class StyleSelectListFormDTO implements Serializable {
public interface AddUserInternalGroup {}
@NotBlank(message = "customerId不能为空",groups = AddUserInternalGroup.class)
private String customerId;
/**
* query:查询条件用新增或者编辑addorupdate
*/
@NotBlank(message = "type不能为空",groups = AddUserInternalGroup.class)
private String type;
}

30
epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/form/UpdateStyleCategoryFormDTO.java

@ -0,0 +1,30 @@
package com.epmet.resi.partymember.dto.partymember.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
@Data
public class UpdateStyleCategoryFormDTO implements Serializable {
public interface DeleteInternalGroup {
}
public interface UpdateStatusInternalGroup {
}
/**
* 主键
*/
@NotBlank(message = "categoryId不能为空", groups = {DeleteInternalGroup.class,UpdateStatusInternalGroup.class})
private String categoryId;
/**
* 0:可用1被禁用默认0
*/
@NotNull(message = "beDisabled不能为空", groups = {UpdateStatusInternalGroup.class})
private Boolean beDisabled;
private String userId;
}

27
epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/result/StyleCategoryDictResDTO.java

@ -0,0 +1,27 @@
package com.epmet.resi.partymember.dto.partymember.result;
import lombok.Data;
import java.io.Serializable;
/**
* 党员风采分类列表查询
*/
@Data
public class StyleCategoryDictResDTO implements Serializable {
/**
* 主键
*/
private String categoryId;
/**
* 分类名称
*/
private String categoryName;
/**
* 0:可用1被禁用默认0
*/
private Boolean beDisabled;
}

101
epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/IcPartymemberStyleCategoryDictController.java

@ -0,0 +1,101 @@
package com.epmet.modules.partymember.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.modules.partymember.service.IcPartymemberStyleCategoryDictService;
import com.epmet.resi.partymember.dto.partymember.form.AddStyleCategoryFormDTO;
import com.epmet.resi.partymember.dto.partymember.form.StyleCategoryCommonFormDTO;
import com.epmet.resi.partymember.dto.partymember.form.StyleSelectListFormDTO;
import com.epmet.resi.partymember.dto.partymember.form.UpdateStyleCategoryFormDTO;
import com.epmet.resi.partymember.dto.partymember.result.StyleCategoryDictResDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 党员风采分类字典表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-02-12
*/
@RestController
@RequestMapping("stylecategorydict")
public class IcPartymemberStyleCategoryDictController {
@Autowired
private IcPartymemberStyleCategoryDictService icPartymemberStyleCategoryDictService;
/**
* 党员风采分类列表查询
* @param formDTO
* @return
*/
@PostMapping("list")
public Result<List<StyleCategoryDictResDTO>> list(@RequestBody StyleCategoryCommonFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO,StyleCategoryCommonFormDTO.AddUserInternalGroup.class);
return new Result<List<StyleCategoryDictResDTO>>().ok(icPartymemberStyleCategoryDictService.queryList(formDTO.getCustomerId()));
}
/**
* 党员风采分类添加或修改分类
* @param formDTO
* @return
*/
@PostMapping("addorupdate")
public Result addOrUpdate(@RequestBody AddStyleCategoryFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO, AddStyleCategoryFormDTO.AddUserInternalGroup.class,AddStyleCategoryFormDTO.AddUserShowGroup.class);
icPartymemberStyleCategoryDictService.addOrUpdate(formDTO);
return new Result();
}
/**
* 党员风采分类删除分类删除的分类如果已经使用过清空已经使用的记录修改时需要重新选择
* @param formDTO
* @return
*/
@PostMapping("delete")
public Result delete(@LoginUser TokenDto tokenDto, @RequestBody UpdateStyleCategoryFormDTO formDTO){
formDTO.setUserId(tokenDto.getUserId());
ValidatorUtils.validateEntity(formDTO,UpdateStyleCategoryFormDTO.DeleteInternalGroup.class);
icPartymemberStyleCategoryDictService.delete(formDTO);
return new Result();
}
/**
* 党员风采分类启用或禁用
* @param tokenDto
* @param formDTO
* @return
*/
@PostMapping("updatestatus")
public Result updateStatus(@LoginUser TokenDto tokenDto, @RequestBody UpdateStyleCategoryFormDTO formDTO){
formDTO.setUserId(tokenDto.getUserId());
ValidatorUtils.validateEntity(formDTO,UpdateStyleCategoryFormDTO.UpdateStatusInternalGroup.class);
icPartymemberStyleCategoryDictService.updateStatus(formDTO);
return new Result();
}
/**
* 党员风采-分类下拉框
* 查询条件中展示所有未删除的
* 新增活修改党员风采展示可用的
*
* @param formDTO
* @return
*/
@PostMapping("select-list")
public Result<List<StyleCategoryDictResDTO>> list(@RequestBody StyleSelectListFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, StyleSelectListFormDTO.AddUserInternalGroup.class);
return new Result<List<StyleCategoryDictResDTO>>().ok(icPartymemberStyleCategoryDictService.selectList(formDTO));
}
}

1
epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/IcPartymemberStyleController.java

@ -100,6 +100,7 @@ public class IcPartymemberStyleController {
excel.setGridName(item.getGridName());
excel.setName(item.getName());
excel.setMainDeed(item.getMainDeed());
excel.setCategoryName(item.getCategoryName());
return excel;
}).collect(Collectors.toList());
}

20
epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/IcPartymemberStyleCategoryDictDao.java

@ -0,0 +1,20 @@
package com.epmet.modules.partymember.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.modules.partymember.entity.IcPartymemberStyleCategoryDictEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* 党员风采分类字典表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-02-12
*/
@Mapper
public interface IcPartymemberStyleCategoryDictDao extends BaseDao<IcPartymemberStyleCategoryDictEntity> {
Integer getMaxCategoryCode(String customerId);
int updateToDel(@Param("categoryId") String categoryId,@Param("userId") String userId);
}

4
epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/IcPartymemberStyleDao.java

@ -20,6 +20,7 @@ package com.epmet.modules.partymember.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.modules.partymember.entity.IcPartymemberStyleEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* 党员风采
@ -29,5 +30,6 @@ import org.apache.ibatis.annotations.Mapper;
*/
@Mapper
public interface IcPartymemberStyleDao extends BaseDao<IcPartymemberStyleEntity> {
int clearCategry(@Param("categoryId") String categoryId, @Param("userId")String userId);
}

66
epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/entity/IcPartymemberStyleCategoryDictEntity.java

@ -0,0 +1,66 @@
package com.epmet.modules.partymember.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-02-12
*/
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("ic_partymember_style_category_dict")
public class IcPartymemberStyleCategoryDictEntity extends BaseEpmetEntity {
private static final long serialVersionUID = 1L;
/**
* 客户id
*/
private String customerId;
/**
* 上级分类ID 顶级此列存储0
*/
private String pid;
/**
* 所有上级分类ID英文顿号隔开顶级此列存储0
*/
private String pids;
/**
* 分类编码分类编码+customer_id唯一;从1000开始
*/
private String categoryCode;
/**
* 上级分类编码
*/
private String parentCategoryCode;
/**
* 分类名称
*/
private String categoryName;
/**
* 分类级别1,2,3,4.... 目前只有一级
*/
private Integer level;
/**
* 排序
*/
private Integer sort;
/**
* 0:可用1被禁用默认0
*/
private Boolean beDisabled;
}

3
epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/entity/IcPartymemberStyleEntity.java

@ -59,5 +59,6 @@ public class IcPartymemberStyleEntity extends BaseEpmetEntity {
* 主要事迹
*/
private String mainDeed;
private String categoryId;
private String categoryCode;
}

3
epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/excel/IcPartymemberStyleExcel.java

@ -40,4 +40,7 @@ public class IcPartymemberStyleExcel {
@Excel(name = "主要事迹")
private String mainDeed;
@Excel(name="所属分类")
private String categoryName;
}

3
epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/excel/IcPartymemberStyleImportExcel.java

@ -41,4 +41,7 @@ public class IcPartymemberStyleImportExcel extends ExcelVerifyInfo {
@Excel(name = "照片")
private String imageUrl;
@Excel(name="所属分类")
private String categoryName;
}

54
epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/IcPartymemberStyleCategoryDictService.java

@ -0,0 +1,54 @@
package com.epmet.modules.partymember.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.modules.partymember.entity.IcPartymemberStyleCategoryDictEntity;
import com.epmet.resi.partymember.dto.partymember.form.AddStyleCategoryFormDTO;
import com.epmet.resi.partymember.dto.partymember.form.StyleSelectListFormDTO;
import com.epmet.resi.partymember.dto.partymember.form.UpdateStyleCategoryFormDTO;
import com.epmet.resi.partymember.dto.partymember.result.StyleCategoryDictResDTO;
import java.util.List;
/**
* 党员风采分类字典表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-02-12
*/
public interface IcPartymemberStyleCategoryDictService extends BaseService<IcPartymemberStyleCategoryDictEntity> {
/**
* 党员风采分类列表查询
* @param customerId
* @return
*/
List<StyleCategoryDictResDTO> queryList(String customerId);
/**
* 党员风采分类添加或修改分类
* @param formDTO
*/
void addOrUpdate(AddStyleCategoryFormDTO formDTO);
/**
* 删除的分类如果已经使用过清空已经使用的记录修改时需要重新选择
* @param formDTO
*/
void delete(UpdateStyleCategoryFormDTO formDTO);
/**
* 党员风采分类启用或禁用
* 新增党员风采时不显示已经禁用的分类已经使用了禁用的分类正常显示
* @param formDTO
*/
void updateStatus(UpdateStyleCategoryFormDTO formDTO);
/**
* 党员风采-分类下拉框
* @param formDTO
* @return
*/
List<StyleCategoryDictResDTO> selectList(StyleSelectListFormDTO formDTO);
IcPartymemberStyleCategoryDictEntity get(String categoryId);
}

171
epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/IcPartymemberStyleCategoryDictServiceImpl.java

@ -0,0 +1,171 @@
package com.epmet.modules.partymember.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.modules.partymember.dao.IcPartymemberStyleCategoryDictDao;
import com.epmet.modules.partymember.dao.IcPartymemberStyleDao;
import com.epmet.modules.partymember.entity.IcPartymemberStyleCategoryDictEntity;
import com.epmet.modules.partymember.service.IcPartymemberStyleCategoryDictService;
import com.epmet.resi.partymember.dto.partymember.form.AddStyleCategoryFormDTO;
import com.epmet.resi.partymember.dto.partymember.form.StyleSelectListFormDTO;
import com.epmet.resi.partymember.dto.partymember.form.UpdateStyleCategoryFormDTO;
import com.epmet.resi.partymember.dto.partymember.result.StyleCategoryDictResDTO;
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.Date;
import java.util.List;
/**
* 党员风采分类字典表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-02-12
*/
@Service
public class IcPartymemberStyleCategoryDictServiceImpl extends BaseServiceImpl<IcPartymemberStyleCategoryDictDao, IcPartymemberStyleCategoryDictEntity> implements IcPartymemberStyleCategoryDictService {
@Autowired
private IcPartymemberStyleDao icPartymemberStyleDao;
/**
* 党员风采分类列表查询
*
* @param customerId
* @return
*/
@Override
public List<StyleCategoryDictResDTO> queryList(String customerId) {
LambdaQueryWrapper<IcPartymemberStyleCategoryDictEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(IcPartymemberStyleCategoryDictEntity::getCustomerId, customerId);
queryWrapper.orderByDesc(IcPartymemberStyleCategoryDictEntity::getSort);
List<IcPartymemberStyleCategoryDictEntity> list = baseDao.selectList(queryWrapper);
List<StyleCategoryDictResDTO> resultList = new ArrayList<>();
for (IcPartymemberStyleCategoryDictEntity entity : list) {
StyleCategoryDictResDTO resDTO = new StyleCategoryDictResDTO();
resDTO.setCategoryId(entity.getId());
resDTO.setCategoryName(entity.getCategoryName());
resDTO.setBeDisabled(entity.getBeDisabled());
resultList.add(resDTO);
}
return resultList;
}
/**
* 党员风采分类添加或修改分类
*
* @param formDTO
*/
@Transactional(rollbackFor = Exception.class)
@Override
public void addOrUpdate(AddStyleCategoryFormDTO formDTO) {
//校验分类名称是否唯一
LambdaQueryWrapper<IcPartymemberStyleCategoryDictEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(IcPartymemberStyleCategoryDictEntity::getCustomerId, formDTO.getCustomerId())
.eq(IcPartymemberStyleCategoryDictEntity::getCategoryName, formDTO.getCategoryName())
.ne(StringUtils.isNotBlank(formDTO.getCategoryId()), IcPartymemberStyleCategoryDictEntity::getId, formDTO.getCategoryId());
Integer cout = baseDao.selectCount(queryWrapper);
if (cout > NumConstant.ZERO) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "分类名称已存在", "分类名称已存在");
}
if (StringUtils.isNotBlank(formDTO.getCategoryId())) {
//更新分类名称
LambdaUpdateWrapper<IcPartymemberStyleCategoryDictEntity> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.set(IcPartymemberStyleCategoryDictEntity::getCategoryName, formDTO.getCategoryName());
updateWrapper.eq(IcPartymemberStyleCategoryDictEntity::getId, formDTO.getCategoryId());
baseDao.update(null, updateWrapper);
return;
}
IcPartymemberStyleCategoryDictEntity insert = new IcPartymemberStyleCategoryDictEntity();
insert.setCategoryName(formDTO.getCategoryName());
insert.setCustomerId(formDTO.getCustomerId());
insert.setPid(NumConstant.ZERO_STR);
insert.setPids(NumConstant.ZERO_STR);
// 查询 当前客户下最大的一级分类数。
Integer maxCategoryCode = baseDao.getMaxCategoryCode(formDTO.getCustomerId());
if (NumConstant.ZERO == maxCategoryCode) {
maxCategoryCode = 1001;
} else {
maxCategoryCode++;
}
insert.setCategoryCode(String.valueOf(maxCategoryCode));
insert.setParentCategoryCode(NumConstant.ZERO_STR);
insert.setLevel(NumConstant.ONE);
LambdaQueryWrapper<IcPartymemberStyleCategoryDictEntity> maxSortWrapper = new LambdaQueryWrapper<>();
maxSortWrapper.eq(IcPartymemberStyleCategoryDictEntity::getCustomerId, formDTO.getCustomerId())
.orderByDesc(IcPartymemberStyleCategoryDictEntity::getSort).last("limit 1");
IcPartymemberStyleCategoryDictEntity max = baseDao.selectOne(maxSortWrapper);
insert.setSort(null == max ? NumConstant.ONE : max.getSort() + NumConstant.ONE);
insert.setBeDisabled(false);
baseDao.insert(insert);
}
/**
* 删除的分类如果已经使用过清空已经使用的记录修改时需要重新选择
*
* @param formDTO
*/
@Transactional(rollbackFor = Exception.class)
@Override
public void delete(UpdateStyleCategoryFormDTO formDTO) {
baseDao.updateToDel(formDTO.getCategoryId(),formDTO.getUserId());
icPartymemberStyleDao.clearCategry(formDTO.getCategoryId(),formDTO.getUserId());
}
/**
* 党员风采分类启用或禁用
* 新增党员风采时不显示已经禁用的分类已经使用了禁用的分类正常显示
*
* @param formDTO
*/
@Override
public void updateStatus(UpdateStyleCategoryFormDTO formDTO) {
LambdaUpdateWrapper<IcPartymemberStyleCategoryDictEntity> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.set(IcPartymemberStyleCategoryDictEntity::getBeDisabled, formDTO.getBeDisabled())
.set(IcPartymemberStyleCategoryDictEntity::getUpdatedBy, formDTO.getUserId())
.set(IcPartymemberStyleCategoryDictEntity::getUpdatedTime, new Date());
updateWrapper.eq(IcPartymemberStyleCategoryDictEntity::getId, formDTO.getCategoryId());
baseDao.update(null, updateWrapper);
}
/**
* 党员风采-分类下拉框
*
* @param formDTO
* @return
*/
@Override
public List<StyleCategoryDictResDTO> selectList(StyleSelectListFormDTO formDTO) {
LambdaQueryWrapper<IcPartymemberStyleCategoryDictEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(IcPartymemberStyleCategoryDictEntity::getCustomerId, formDTO.getCustomerId());
if("addorupdate".equals(formDTO.getType())){
//查询可用的
queryWrapper.eq(IcPartymemberStyleCategoryDictEntity::getBeDisabled,false);
}
queryWrapper.orderByAsc(IcPartymemberStyleCategoryDictEntity::getSort);
List<IcPartymemberStyleCategoryDictEntity> list = baseDao.selectList(queryWrapper);
List<StyleCategoryDictResDTO> resultList = new ArrayList<>();
for (IcPartymemberStyleCategoryDictEntity entity : list) {
StyleCategoryDictResDTO resDTO = new StyleCategoryDictResDTO();
resDTO.setCategoryId(entity.getId());
resDTO.setCategoryName(entity.getCategoryName());
resDTO.setBeDisabled(entity.getBeDisabled());
resultList.add(resDTO);
}
return resultList;
}
@Override
public IcPartymemberStyleCategoryDictEntity get(String categoryId) {
return baseDao.selectById(categoryId);
}
}

10
epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/IcPartymemberStyleServiceImpl.java

@ -39,9 +39,11 @@ import com.epmet.dto.CustomerGridDTO;
import com.epmet.dto.form.GridOptionFormDTO;
import com.epmet.feign.GovOrgOpenFeignClient;
import com.epmet.modules.partymember.dao.IcPartymemberStyleDao;
import com.epmet.modules.partymember.entity.IcPartymemberStyleCategoryDictEntity;
import com.epmet.modules.partymember.entity.IcPartymemberStyleEntity;
import com.epmet.modules.partymember.entity.IcPartymemberStyleImageEntity;
import com.epmet.modules.partymember.excel.IcPartymemberStyleImportExcel;
import com.epmet.modules.partymember.service.IcPartymemberStyleCategoryDictService;
import com.epmet.modules.partymember.service.IcPartymemberStyleImageService;
import com.epmet.modules.partymember.service.IcPartymemberStyleService;
import com.epmet.resi.partymember.dto.partymember.IcPartymemberStyleDTO;
@ -76,6 +78,8 @@ public class IcPartymemberStyleServiceImpl extends BaseServiceImpl<IcPartymember
private IcPartymemberStyleImageService icPartymemberStyleImageService;
@Resource
private GovOrgOpenFeignClient govOrgOpenFeignClient;
@Resource
private IcPartymemberStyleCategoryDictService icPartymemberStyleCategoryDictService;
@Override
public PageData<IcPartymemberStyleDTO> page(Map<String, Object> params) {
@ -105,6 +109,8 @@ public class IcPartymemberStyleServiceImpl extends BaseServiceImpl<IcPartymember
return;
}
item.setGridName(gridInfo.getGridName());
IcPartymemberStyleCategoryDictEntity dict = icPartymemberStyleCategoryDictService.get(item.getCategoryId());
item.setCategoryName(null == dict ? StrConstant.EPMETY_STR : dict.getCategoryName());
}
});
@ -188,6 +194,7 @@ public class IcPartymemberStyleServiceImpl extends BaseServiceImpl<IcPartymember
wrapper.eq(StringUtils.isNotBlank(formDTO.getGridId()), IcPartymemberStyleEntity::getGridId, formDTO.getGridId());
wrapper.like(StringUtils.isNotBlank(formDTO.getName()), IcPartymemberStyleEntity::getName, formDTO.getName());
wrapper.like(StringUtils.isNotBlank(formDTO.getMainDeed()), IcPartymemberStyleEntity::getMainDeed, formDTO.getMainDeed());
wrapper.eq(StringUtils.isNotBlank(formDTO.getCategoryId()),IcPartymemberStyleEntity::getCategoryId,formDTO.getCategoryId());
List<IcPartymemberStyleEntity> list = baseDao.selectList(wrapper);
PageInfo<IcPartymemberStyleEntity> pageInfo = new PageInfo<>(list);
List<IcPartymemberStyleDTO> dtoList = ConvertUtils.sourceToTarget(list, IcPartymemberStyleDTO.class);
@ -200,6 +207,8 @@ public class IcPartymemberStyleServiceImpl extends BaseServiceImpl<IcPartymember
return;
}
item.setGridName(gridInfo.getGridName());
IcPartymemberStyleCategoryDictEntity dict = icPartymemberStyleCategoryDictService.get(item.getCategoryId());
item.setCategoryName(null == dict ? StrConstant.EPMETY_STR : dict.getCategoryName());
}
});
return new PageData<>(dtoList, pageInfo.getTotal());
@ -265,6 +274,7 @@ public class IcPartymemberStyleServiceImpl extends BaseServiceImpl<IcPartymember
entity.setGridId(gridMap.get(item.getGridName()));
entity.setName(item.getName());
entity.setMainDeed(item.getMainDeed());
AtomicInteger i = new AtomicInteger();
if (StringUtils.isNotBlank(item.getImageUrl())) {
Arrays.asList(item.getImageUrl().split(StrConstant.COMMA)).forEach(url -> {

23
epmet-module/resi-partymember/resi-partymember-server/src/main/resources/db/migration/V0.0.2__style_dict.sql

@ -0,0 +1,23 @@
CREATE TABLE `ic_partymember_style_category_dict` (
`ID` varchar(64) NOT NULL COMMENT '楼栋主键',
`CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户id',
`PID` varchar(64) CHARACTER SET utf8 NOT NULL COMMENT '上级分类ID 顶级此列存储0',
`PIDS` varchar(512) CHARACTER SET utf8 NOT NULL COMMENT '所有上级分类ID英文顿号隔开,顶级此列存储0',
`CATEGORY_CODE` varchar(64) CHARACTER SET utf8 NOT NULL COMMENT '分类编码,分类编码+customer_id唯一;从1000开始',
`PARENT_CATEGORY_CODE` varchar(64) CHARACTER SET utf8 NOT NULL COMMENT '上级分类编码',
`CATEGORY_NAME` varchar(128) CHARACTER SET utf8 NOT NULL COMMENT '分类名称',
`LEVEL` int(10) NOT NULL COMMENT '分类级别1,2,3,4.... 目前只有一级',
`SORT` int(10) unsigned NOT NULL COMMENT '排序',
`BE_DISABLED` tinyint(1) NOT NULL DEFAULT '0' COMMENT '0:可用;1:被禁用。默认0',
`DEL_FLAG` varchar(1) NOT NULL DEFAULT '0' COMMENT '删除标识 0未删除、1已删除',
`REVISION` int(11) NOT NULL DEFAULT '0' COMMENT '乐观锁',
`CREATED_BY` varchar(32) NOT NULL COMMENT '创建人',
`CREATED_TIME` datetime NOT NULL COMMENT '创建时间',
`UPDATED_BY` varchar(32) NOT NULL COMMENT '更新人',
`UPDATED_TIME` datetime NOT NULL COMMENT '更新时间',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='党员风采分类字典表';
alter table ic_partymember_style add COLUMN CATEGORY_ID VARCHAR(64) comment '分类主键' AFTER MAIN_DEED;
alter table ic_partymember_style add COLUMN CATEGORY_CODE VARCHAR(64) comment '分类编码' after CATEGORY_ID;

18
epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/IcPartymemberStyleCategoryDictDao.xml

@ -0,0 +1,18 @@
<?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.modules.partymember.dao.IcPartymemberStyleCategoryDictDao">
<select id="getMaxCategoryCode" parameterType="java.lang.String" resultType="java.lang.Integer">
SELECT
IFNULL( MAX(CATEGORY_CODE), 0)
FROM
ic_partymember_style_category_dict
WHERE CUSTOMER_ID = #{customerId}
</select>
<update id="updateToDel" parameterType="map">
update ic_partymember_style_category_dict set del_flag='1',UPDATED_BY=#{userId},UPDATED_TIME=now()
where id=#{categoryId}
</update>
</mapper>

6
epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/IcPartymemberStyleDao.xml

@ -18,5 +18,11 @@
<result property="updatedTime" column="UPDATED_TIME"/>
</resultMap>
<update id="clearCategry" parameterType="map">
update ic_partymember_style
set CATEGORY_ID='',CATEGORY_CODE='',UPDATED_BY=#{userId},UPDATED_TIME=now()
where del_flag='0'
and CATEGORY_ID=#{categoryId}
</update>
</mapper>
Loading…
Cancel
Save