40 changed files with 2952 additions and 585 deletions
@ -0,0 +1,58 @@ |
|||||
|
package com.epmet.commons.tools.enums; |
||||
|
|
||||
|
/** |
||||
|
* @author Administrator |
||||
|
*/ |
||||
|
|
||||
|
public enum RelationshipEnum { |
||||
|
/** |
||||
|
* 环境变量枚举 |
||||
|
*/ |
||||
|
UN_KNOWN("0", "暂不清楚", 0), |
||||
|
SELF("1", "本人", 1), |
||||
|
spouse("2", "配偶", 2), |
||||
|
CHILD("3", "子女", 3), |
||||
|
PARENT("4", "父母", 4), |
||||
|
PARENT_IN_LAW("5", "岳父母或公婆", 5), |
||||
|
GRANDPARENT_IN_LAW("6", "祖父母", 6), |
||||
|
CHILD_IN_LAW("7", "媳婿", 7), |
||||
|
GRANDCHILD("8", "孙子女", 8), |
||||
|
BROTHER_AND_SISTER("9", "兄弟姐妹", 9), |
||||
|
OTHER("10", "其他", 10), |
||||
|
; |
||||
|
|
||||
|
private final String code; |
||||
|
private final String name; |
||||
|
private final Integer sort; |
||||
|
|
||||
|
|
||||
|
|
||||
|
RelationshipEnum(String code, String name, Integer sort) { |
||||
|
this.code = code; |
||||
|
this.name = name; |
||||
|
this.sort = sort; |
||||
|
} |
||||
|
|
||||
|
public static RelationshipEnum getEnum(String code) { |
||||
|
RelationshipEnum[] values = RelationshipEnum.values(); |
||||
|
for (RelationshipEnum value : values) { |
||||
|
if (value.getCode().equals(code)) { |
||||
|
return value; |
||||
|
} |
||||
|
} |
||||
|
return RelationshipEnum.UN_KNOWN; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
public String getCode() { |
||||
|
return code; |
||||
|
} |
||||
|
|
||||
|
public String getName() { |
||||
|
return name; |
||||
|
} |
||||
|
|
||||
|
public Integer getSort(){ |
||||
|
return sort; |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,116 @@ |
|||||
|
/** |
||||
|
* Copyright 2018 人人开源 https://www.renren.io
|
||||
|
* <p> |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* <p> |
||||
|
* This program is distributed in the hope that it will be useful, |
||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
* GNU General Public License for more details. |
||||
|
* <p> |
||||
|
* You should have received a copy of the GNU General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
*/ |
||||
|
|
||||
|
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 2021-11-04 |
||||
|
*/ |
||||
|
@Data |
||||
|
public class IcResiCategoryStatsConfigDTO implements Serializable { |
||||
|
|
||||
|
private static final long serialVersionUID = 1L; |
||||
|
|
||||
|
/** |
||||
|
* id |
||||
|
*/ |
||||
|
private String id; |
||||
|
|
||||
|
/** |
||||
|
* 客户id |
||||
|
*/ |
||||
|
private String customerId; |
||||
|
|
||||
|
/** |
||||
|
* 项标签 |
||||
|
*/ |
||||
|
private String label; |
||||
|
|
||||
|
/** |
||||
|
* 表名 |
||||
|
*/ |
||||
|
private String tableName; |
||||
|
|
||||
|
/** |
||||
|
* 列名 |
||||
|
*/ |
||||
|
private String columnName; |
||||
|
|
||||
|
/** |
||||
|
* 管理平台分类图标 |
||||
|
*/ |
||||
|
private String managementIcon; |
||||
|
|
||||
|
/** |
||||
|
* 数据平台分类图标 |
||||
|
*/ |
||||
|
private String dataIcon; |
||||
|
|
||||
|
/** |
||||
|
* 房屋显示分类图标 |
||||
|
*/ |
||||
|
private String houseShowIcon; |
||||
|
|
||||
|
/** |
||||
|
* 状态 显示:show;隐藏:hidden |
||||
|
*/ |
||||
|
private String status; |
||||
|
|
||||
|
/** |
||||
|
* 排序 |
||||
|
*/ |
||||
|
private Integer sort; |
||||
|
|
||||
|
/** |
||||
|
* 删除标识:0.未删除 1.已删除 |
||||
|
*/ |
||||
|
private String delFlag; |
||||
|
|
||||
|
/** |
||||
|
* 乐观锁 |
||||
|
*/ |
||||
|
private String revision; |
||||
|
|
||||
|
/** |
||||
|
* 创建人 |
||||
|
*/ |
||||
|
private String createdBy; |
||||
|
|
||||
|
/** |
||||
|
* 创建时间 |
||||
|
*/ |
||||
|
private String createdTime; |
||||
|
|
||||
|
/** |
||||
|
* 更新人 |
||||
|
*/ |
||||
|
private String updatedBy; |
||||
|
|
||||
|
/** |
||||
|
* 更新时间 |
||||
|
*/ |
||||
|
private Date updatedTime; |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,111 @@ |
|||||
|
/** |
||||
|
* Copyright 2018 人人开源 https://www.renren.io
|
||||
|
* <p> |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* <p> |
||||
|
* This program is distributed in the hope that it will be useful, |
||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
* GNU General Public License for more details. |
||||
|
* <p> |
||||
|
* You should have received a copy of the GNU General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
*/ |
||||
|
|
||||
|
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 2021-11-04 |
||||
|
*/ |
||||
|
@Data |
||||
|
public class IcResiCategoryWarnConfigDTO implements Serializable { |
||||
|
|
||||
|
private static final long serialVersionUID = 1L; |
||||
|
|
||||
|
/** |
||||
|
* id |
||||
|
*/ |
||||
|
private String id; |
||||
|
|
||||
|
/** |
||||
|
* 客户id |
||||
|
*/ |
||||
|
private String customerId; |
||||
|
|
||||
|
/** |
||||
|
* 项标签 |
||||
|
*/ |
||||
|
private String label; |
||||
|
|
||||
|
/** |
||||
|
* 表名 |
||||
|
*/ |
||||
|
private String tableName; |
||||
|
|
||||
|
/** |
||||
|
* 列名 |
||||
|
*/ |
||||
|
private String columnName; |
||||
|
|
||||
|
/** |
||||
|
* 排序 |
||||
|
*/ |
||||
|
private Integer sort; |
||||
|
|
||||
|
/** |
||||
|
* 等级1阈值 |
||||
|
*/ |
||||
|
private Integer level1; |
||||
|
|
||||
|
/** |
||||
|
* 等级2阈值 |
||||
|
*/ |
||||
|
private Integer level2; |
||||
|
|
||||
|
/** |
||||
|
* 等级3阈值 |
||||
|
*/ |
||||
|
private Integer level3; |
||||
|
|
||||
|
/** |
||||
|
* 删除标识:0.未删除 1.已删除 |
||||
|
*/ |
||||
|
private String delFlag; |
||||
|
|
||||
|
/** |
||||
|
* 乐观锁 |
||||
|
*/ |
||||
|
private String revision; |
||||
|
|
||||
|
/** |
||||
|
* 创建人 |
||||
|
*/ |
||||
|
private String createdBy; |
||||
|
|
||||
|
/** |
||||
|
* 创建时间 |
||||
|
*/ |
||||
|
private String createdTime; |
||||
|
|
||||
|
/** |
||||
|
* 更新人 |
||||
|
*/ |
||||
|
private String updatedBy; |
||||
|
|
||||
|
/** |
||||
|
* 更新时间 |
||||
|
*/ |
||||
|
private Date updatedTime; |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,80 @@ |
|||||
|
/** |
||||
|
* Copyright 2018 人人开源 https://www.renren.io
|
||||
|
* <p> |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* <p> |
||||
|
* This program is distributed in the hope that it will be useful, |
||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
* GNU General Public License for more details. |
||||
|
* <p> |
||||
|
* You should have received a copy of the GNU General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
*/ |
||||
|
|
||||
|
package com.epmet.dto.form; |
||||
|
|
||||
|
import com.epmet.commons.tools.validator.group.UpdateGroup; |
||||
|
import lombok.Data; |
||||
|
|
||||
|
import javax.validation.constraints.NotBlank; |
||||
|
import java.io.Serializable; |
||||
|
import java.util.Date; |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 居民类别配置表 |
||||
|
* |
||||
|
* @author generator generator@elink-cn.com |
||||
|
* @since v1.0.0 2021-11-04 |
||||
|
*/ |
||||
|
@Data |
||||
|
public class IcResiCategoryStatsConfigFormDTO implements Serializable { |
||||
|
|
||||
|
private static final long serialVersionUID = 1L; |
||||
|
public interface UpdateStatusGroup {} |
||||
|
public interface SelectGroup {} |
||||
|
|
||||
|
/** |
||||
|
* id |
||||
|
*/ |
||||
|
@NotBlank(message = "配置项id不能为空",groups = {UpdateGroup.class,UpdateStatusGroup.class,SelectGroup.class}) |
||||
|
private String id; |
||||
|
|
||||
|
/** |
||||
|
* 管理平台分类图标 |
||||
|
*/ |
||||
|
@NotBlank(message = "管理平台分类图标不能为空",groups = {UpdateGroup.class}) |
||||
|
private String managementIcon; |
||||
|
|
||||
|
/** |
||||
|
* 数据平台分类图标 |
||||
|
*/ |
||||
|
@NotBlank(message = "管理平台分类图标不能为空",groups = {UpdateGroup.class}) |
||||
|
private String dataIcon; |
||||
|
|
||||
|
/** |
||||
|
* 房屋显示分类图标 |
||||
|
*/ |
||||
|
@NotBlank(message = "管理平台分类图标不能为空",groups = {UpdateGroup.class}) |
||||
|
private String houseShowIcon; |
||||
|
|
||||
|
/** |
||||
|
* 状态 显示:show;隐藏:hidden |
||||
|
*/ |
||||
|
@NotBlank(message = "状态不能为空",groups = {UpdateStatusGroup.class}) |
||||
|
private String status; |
||||
|
|
||||
|
@NotBlank(message = "是否预警",groups = {UpdateGroup.class}) |
||||
|
private String warn; |
||||
|
|
||||
|
private Integer level1; |
||||
|
|
||||
|
private Integer level2; |
||||
|
|
||||
|
private Integer level3; |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,51 @@ |
|||||
|
/** |
||||
|
* Copyright 2018 人人开源 https://www.renren.io
|
||||
|
* <p> |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* <p> |
||||
|
* This program is distributed in the hope that it will be useful, |
||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
* GNU General Public License for more details. |
||||
|
* <p> |
||||
|
* You should have received a copy of the GNU General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
*/ |
||||
|
|
||||
|
package com.epmet.dto.form; |
||||
|
|
||||
|
import com.epmet.commons.tools.validator.group.UpdateGroup; |
||||
|
import lombok.Data; |
||||
|
|
||||
|
import javax.validation.constraints.NotBlank; |
||||
|
import java.io.Serializable; |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 居民类别配置表 |
||||
|
* |
||||
|
* @author generator generator@elink-cn.com |
||||
|
* @since v1.0.0 2021-11-04 |
||||
|
*/ |
||||
|
@Data |
||||
|
public class IcResiCategoryStatsConfigSortFormDTO implements Serializable { |
||||
|
|
||||
|
private static final long serialVersionUID = 1L; |
||||
|
|
||||
|
/** |
||||
|
* id |
||||
|
*/ |
||||
|
@NotBlank(message = "配置项id不能为空") |
||||
|
private String id; |
||||
|
|
||||
|
/** |
||||
|
* 排序 |
||||
|
*/ |
||||
|
@NotBlank(message = "排序不能为空") |
||||
|
private Integer sort; |
||||
|
|
||||
|
|
||||
|
} |
||||
@ -0,0 +1,88 @@ |
|||||
|
/** |
||||
|
* Copyright 2018 人人开源 https://www.renren.io
|
||||
|
* <p> |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* <p> |
||||
|
* This program is distributed in the hope that it will be useful, |
||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
* GNU General Public License for more details. |
||||
|
* <p> |
||||
|
* You should have received a copy of the GNU General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
*/ |
||||
|
|
||||
|
package com.epmet.dto.result; |
||||
|
|
||||
|
import lombok.Data; |
||||
|
|
||||
|
import java.io.Serializable; |
||||
|
import java.util.Date; |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 居民类别配置表 |
||||
|
* |
||||
|
* @author generator generator@elink-cn.com |
||||
|
* @since v1.0.0 2021-11-04 |
||||
|
*/ |
||||
|
@Data |
||||
|
public class IcResiCategoryStatsConfigResultDTO implements Serializable { |
||||
|
|
||||
|
private static final long serialVersionUID = 1L; |
||||
|
|
||||
|
/** |
||||
|
* id |
||||
|
*/ |
||||
|
private String id; |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 项标签 |
||||
|
*/ |
||||
|
private String label; |
||||
|
|
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 管理平台分类图标 |
||||
|
*/ |
||||
|
private String managementIcon; |
||||
|
|
||||
|
/** |
||||
|
* 数据平台分类图标 |
||||
|
*/ |
||||
|
private String dataIcon; |
||||
|
|
||||
|
/** |
||||
|
* 房屋显示分类图标 |
||||
|
*/ |
||||
|
private String houseShowIcon; |
||||
|
|
||||
|
/** |
||||
|
* 状态 显示:show;隐藏:hidden |
||||
|
*/ |
||||
|
private String status; |
||||
|
|
||||
|
/** |
||||
|
* 排序 |
||||
|
*/ |
||||
|
private Integer sort; |
||||
|
|
||||
|
private String warn; |
||||
|
/** |
||||
|
* 等级1阈值 |
||||
|
*/ |
||||
|
private Integer level1; |
||||
|
/** |
||||
|
* 等级2阈值 |
||||
|
*/ |
||||
|
private Integer level2; |
||||
|
/** |
||||
|
* 等级3阈值 |
||||
|
*/ |
||||
|
private Integer level3; |
||||
|
} |
||||
@ -0,0 +1,26 @@ |
|||||
|
/** |
||||
|
* Copyright (c) 2018 人人开源 All rights reserved. |
||||
|
* <p> |
||||
|
* https://www.renren.io
|
||||
|
* <p> |
||||
|
* 版权所有,侵权必究! |
||||
|
*/ |
||||
|
|
||||
|
package com.epmet.constant; |
||||
|
|
||||
|
/** |
||||
|
* 常量 |
||||
|
* @author sun |
||||
|
* @since 1.0.0 |
||||
|
*/ |
||||
|
public interface IcResiCategoryStatsConfigConstant { |
||||
|
/** |
||||
|
* 是否需要预警 |
||||
|
*/ |
||||
|
String WARN_YES = "1"; |
||||
|
String WARN_NO = "0"; |
||||
|
|
||||
|
String IC_RESI_USER = "ic_resi_user"; |
||||
|
|
||||
|
|
||||
|
} |
||||
@ -0,0 +1,94 @@ |
|||||
|
/** |
||||
|
* Copyright 2018 人人开源 https://www.renren.io
|
||||
|
* <p> |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* <p> |
||||
|
* This program is distributed in the hope that it will be useful, |
||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
* GNU General Public License for more details. |
||||
|
* <p> |
||||
|
* You should have received a copy of the GNU General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
*/ |
||||
|
|
||||
|
package com.epmet.controller; |
||||
|
|
||||
|
import com.epmet.commons.tools.page.PageData; |
||||
|
import com.epmet.commons.tools.utils.ExcelUtils; |
||||
|
import com.epmet.commons.tools.utils.Result; |
||||
|
import com.epmet.commons.tools.validator.AssertUtils; |
||||
|
import com.epmet.commons.tools.validator.ValidatorUtils; |
||||
|
import com.epmet.commons.tools.validator.group.AddGroup; |
||||
|
import com.epmet.commons.tools.validator.group.UpdateGroup; |
||||
|
import com.epmet.commons.tools.validator.group.DefaultGroup; |
||||
|
import com.epmet.dto.IcResiCategoryStatsConfigDTO; |
||||
|
import com.epmet.excel.IcResiCategoryStatsConfigExcel; |
||||
|
import com.epmet.service.IcResiCategoryStatsConfigService; |
||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||
|
import org.springframework.web.bind.annotation.*; |
||||
|
|
||||
|
import javax.servlet.http.HttpServletResponse; |
||||
|
import java.util.List; |
||||
|
import java.util.Map; |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 居民类别配置表 |
||||
|
* |
||||
|
* @author generator generator@elink-cn.com |
||||
|
* @since v1.0.0 2021-11-04 |
||||
|
*/ |
||||
|
@RestController |
||||
|
@RequestMapping("icresicategorystatsconfig") |
||||
|
public class IcResiCategoryStatsConfigController { |
||||
|
|
||||
|
@Autowired |
||||
|
private IcResiCategoryStatsConfigService icResiCategoryStatsConfigService; |
||||
|
|
||||
|
@GetMapping("page") |
||||
|
public Result<PageData<IcResiCategoryStatsConfigDTO>> page(@RequestParam Map<String, Object> params){ |
||||
|
PageData<IcResiCategoryStatsConfigDTO> page = icResiCategoryStatsConfigService.page(params); |
||||
|
return new Result<PageData<IcResiCategoryStatsConfigDTO>>().ok(page); |
||||
|
} |
||||
|
|
||||
|
@GetMapping("{id}") |
||||
|
public Result<IcResiCategoryStatsConfigDTO> get(@PathVariable("id") String id){ |
||||
|
IcResiCategoryStatsConfigDTO data = icResiCategoryStatsConfigService.get(id); |
||||
|
return new Result<IcResiCategoryStatsConfigDTO>().ok(data); |
||||
|
} |
||||
|
|
||||
|
@PostMapping |
||||
|
public Result save(@RequestBody IcResiCategoryStatsConfigDTO dto){ |
||||
|
//效验数据
|
||||
|
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); |
||||
|
icResiCategoryStatsConfigService.save(dto); |
||||
|
return new Result(); |
||||
|
} |
||||
|
|
||||
|
@PutMapping |
||||
|
public Result update(@RequestBody IcResiCategoryStatsConfigDTO dto){ |
||||
|
//效验数据
|
||||
|
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); |
||||
|
icResiCategoryStatsConfigService.update(dto); |
||||
|
return new Result(); |
||||
|
} |
||||
|
|
||||
|
@DeleteMapping |
||||
|
public Result delete(@RequestBody String[] ids){ |
||||
|
//效验数据
|
||||
|
AssertUtils.isArrayEmpty(ids, "id"); |
||||
|
icResiCategoryStatsConfigService.delete(ids); |
||||
|
return new Result(); |
||||
|
} |
||||
|
|
||||
|
@GetMapping("export") |
||||
|
public void export(@RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception { |
||||
|
List<IcResiCategoryStatsConfigDTO> list = icResiCategoryStatsConfigService.list(params); |
||||
|
ExcelUtils.exportExcelToTarget(response, null, list, IcResiCategoryStatsConfigExcel.class); |
||||
|
} |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,94 @@ |
|||||
|
/** |
||||
|
* Copyright 2018 人人开源 https://www.renren.io
|
||||
|
* <p> |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* <p> |
||||
|
* This program is distributed in the hope that it will be useful, |
||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
* GNU General Public License for more details. |
||||
|
* <p> |
||||
|
* You should have received a copy of the GNU General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
*/ |
||||
|
|
||||
|
package com.epmet.controller; |
||||
|
|
||||
|
import com.epmet.commons.tools.page.PageData; |
||||
|
import com.epmet.commons.tools.utils.ExcelUtils; |
||||
|
import com.epmet.commons.tools.utils.Result; |
||||
|
import com.epmet.commons.tools.validator.AssertUtils; |
||||
|
import com.epmet.commons.tools.validator.ValidatorUtils; |
||||
|
import com.epmet.commons.tools.validator.group.AddGroup; |
||||
|
import com.epmet.commons.tools.validator.group.UpdateGroup; |
||||
|
import com.epmet.commons.tools.validator.group.DefaultGroup; |
||||
|
import com.epmet.dto.IcResiCategoryWarnConfigDTO; |
||||
|
import com.epmet.excel.IcResiCategoryWarnConfigExcel; |
||||
|
import com.epmet.service.IcResiCategoryWarnConfigService; |
||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||
|
import org.springframework.web.bind.annotation.*; |
||||
|
|
||||
|
import javax.servlet.http.HttpServletResponse; |
||||
|
import java.util.List; |
||||
|
import java.util.Map; |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 居民类别预警配置表 |
||||
|
* |
||||
|
* @author generator generator@elink-cn.com |
||||
|
* @since v1.0.0 2021-11-04 |
||||
|
*/ |
||||
|
@RestController |
||||
|
@RequestMapping("icresicategorywarnconfig") |
||||
|
public class IcResiCategoryWarnConfigController { |
||||
|
|
||||
|
@Autowired |
||||
|
private IcResiCategoryWarnConfigService icResiCategoryWarnConfigService; |
||||
|
|
||||
|
@GetMapping("page") |
||||
|
public Result<PageData<IcResiCategoryWarnConfigDTO>> page(@RequestParam Map<String, Object> params){ |
||||
|
PageData<IcResiCategoryWarnConfigDTO> page = icResiCategoryWarnConfigService.page(params); |
||||
|
return new Result<PageData<IcResiCategoryWarnConfigDTO>>().ok(page); |
||||
|
} |
||||
|
|
||||
|
@GetMapping("{id}") |
||||
|
public Result<IcResiCategoryWarnConfigDTO> get(@PathVariable("id") String id){ |
||||
|
IcResiCategoryWarnConfigDTO data = icResiCategoryWarnConfigService.get(id); |
||||
|
return new Result<IcResiCategoryWarnConfigDTO>().ok(data); |
||||
|
} |
||||
|
|
||||
|
@PostMapping |
||||
|
public Result save(@RequestBody IcResiCategoryWarnConfigDTO dto){ |
||||
|
//效验数据
|
||||
|
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); |
||||
|
icResiCategoryWarnConfigService.save(dto); |
||||
|
return new Result(); |
||||
|
} |
||||
|
|
||||
|
@PutMapping |
||||
|
public Result update(@RequestBody IcResiCategoryWarnConfigDTO dto){ |
||||
|
//效验数据
|
||||
|
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); |
||||
|
icResiCategoryWarnConfigService.update(dto); |
||||
|
return new Result(); |
||||
|
} |
||||
|
|
||||
|
@DeleteMapping |
||||
|
public Result delete(@RequestBody String[] ids){ |
||||
|
//效验数据
|
||||
|
AssertUtils.isArrayEmpty(ids, "id"); |
||||
|
icResiCategoryWarnConfigService.delete(ids); |
||||
|
return new Result(); |
||||
|
} |
||||
|
|
||||
|
@GetMapping("export") |
||||
|
public void export(@RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception { |
||||
|
List<IcResiCategoryWarnConfigDTO> list = icResiCategoryWarnConfigService.list(params); |
||||
|
ExcelUtils.exportExcelToTarget(response, null, list, IcResiCategoryWarnConfigExcel.class); |
||||
|
} |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,107 @@ |
|||||
|
/** |
||||
|
* Copyright 2018 人人开源 https://www.renren.io
|
||||
|
* <p> |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* <p> |
||||
|
* This program is distributed in the hope that it will be useful, |
||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
* GNU General Public License for more details. |
||||
|
* <p> |
||||
|
* You should have received a copy of the GNU General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
*/ |
||||
|
|
||||
|
package com.epmet.controller; |
||||
|
|
||||
|
import com.epmet.commons.tools.annotation.LoginUser; |
||||
|
import com.epmet.commons.tools.page.PageData; |
||||
|
import com.epmet.commons.tools.security.dto.TokenDto; |
||||
|
import com.epmet.commons.tools.utils.ExcelUtils; |
||||
|
import com.epmet.commons.tools.utils.Result; |
||||
|
import com.epmet.commons.tools.validator.AssertUtils; |
||||
|
import com.epmet.commons.tools.validator.ValidatorUtils; |
||||
|
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.IcResiCategoryStatsConfigDTO; |
||||
|
import com.epmet.dto.form.IcResiCategoryStatsConfigFormDTO; |
||||
|
import com.epmet.dto.form.IcResiCategoryStatsConfigSortFormDTO; |
||||
|
import com.epmet.dto.form.UpGovRoleFormDTO; |
||||
|
import com.epmet.dto.result.IcResiCategoryStatsConfigResultDTO; |
||||
|
import com.epmet.excel.IcResiCategoryStatsConfigExcel; |
||||
|
import com.epmet.service.IcResiCategoryStatsConfigService; |
||||
|
import com.epmet.service.ResiCategoryStatsConfigService; |
||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||
|
import org.springframework.web.bind.annotation.*; |
||||
|
|
||||
|
import javax.servlet.http.HttpServletResponse; |
||||
|
import java.util.List; |
||||
|
import java.util.Map; |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 居民类别配置表 |
||||
|
* |
||||
|
* @author generator generator@elink-cn.com |
||||
|
* @since v1.0.0 2021-11-04 |
||||
|
*/ |
||||
|
@RestController |
||||
|
@RequestMapping("resicategorystatsconfig") |
||||
|
public class ResiCategoryStatsConfigController { |
||||
|
|
||||
|
@Autowired |
||||
|
private IcResiCategoryStatsConfigService icResiCategoryStatsConfigService; |
||||
|
@Autowired |
||||
|
private ResiCategoryStatsConfigService resiCategoryStatsConfigService; |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 居民类别配置列表 |
||||
|
* @return |
||||
|
*/ |
||||
|
@PostMapping("list") |
||||
|
public Result<List<IcResiCategoryStatsConfigResultDTO>> list(@LoginUser TokenDto tokenDTO){ |
||||
|
String customerId = tokenDTO.getCustomerId(); |
||||
|
// String customerId = "123123";
|
||||
|
return new Result<List<IcResiCategoryStatsConfigResultDTO>>().ok(resiCategoryStatsConfigService.list(customerId)); |
||||
|
} |
||||
|
|
||||
|
@PostMapping("update") |
||||
|
public Result update(@LoginUser TokenDto tokenDTO,@RequestBody IcResiCategoryStatsConfigFormDTO formDTO){ |
||||
|
ValidatorUtils.validateEntity(formDTO, UpdateGroup.class); |
||||
|
String customerId = tokenDTO.getCustomerId(); |
||||
|
// String customerId = "123123";
|
||||
|
resiCategoryStatsConfigService.update(customerId,formDTO); |
||||
|
return new Result(); |
||||
|
} |
||||
|
@PostMapping("updatestatus") |
||||
|
public Result updateStatus(@LoginUser TokenDto tokenDTO,@RequestBody IcResiCategoryStatsConfigFormDTO formDTO){ |
||||
|
ValidatorUtils.validateEntity(formDTO, IcResiCategoryStatsConfigFormDTO.UpdateStatusGroup.class); |
||||
|
String customerId = tokenDTO.getCustomerId(); |
||||
|
// String customerId = "123123";
|
||||
|
resiCategoryStatsConfigService.updateStatus(customerId,formDTO); |
||||
|
return new Result(); |
||||
|
} |
||||
|
@PostMapping("updatesort") |
||||
|
public Result updateSort(@LoginUser TokenDto tokenDTO,@RequestBody List<IcResiCategoryStatsConfigSortFormDTO> formDTOs){ |
||||
|
for(IcResiCategoryStatsConfigSortFormDTO dto : formDTOs){ |
||||
|
ValidatorUtils.validateEntity(dto); |
||||
|
} |
||||
|
String customerId = tokenDTO.getCustomerId(); |
||||
|
// String customerId = "123123";
|
||||
|
resiCategoryStatsConfigService.updateSort(customerId,formDTOs); |
||||
|
return new Result(); |
||||
|
} |
||||
|
|
||||
|
@PostMapping("info") |
||||
|
public Result<IcResiCategoryStatsConfigResultDTO> info(@LoginUser TokenDto tokenDTO,@RequestBody IcResiCategoryStatsConfigFormDTO formDTO){ |
||||
|
ValidatorUtils.validateEntity(formDTO, IcResiCategoryStatsConfigFormDTO.SelectGroup.class); |
||||
|
return new Result<IcResiCategoryStatsConfigResultDTO>().ok(resiCategoryStatsConfigService.info(formDTO.getId())); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
} |
||||
@ -0,0 +1,33 @@ |
|||||
|
/** |
||||
|
* Copyright 2018 人人开源 https://www.renren.io
|
||||
|
* <p> |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* <p> |
||||
|
* This program is distributed in the hope that it will be useful, |
||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
* GNU General Public License for more details. |
||||
|
* <p> |
||||
|
* You should have received a copy of the GNU General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
*/ |
||||
|
|
||||
|
package com.epmet.dao; |
||||
|
|
||||
|
import com.epmet.commons.mybatis.dao.BaseDao; |
||||
|
import com.epmet.entity.IcResiCategoryStatsConfigEntity; |
||||
|
import org.apache.ibatis.annotations.Mapper; |
||||
|
|
||||
|
/** |
||||
|
* 居民类别配置表 |
||||
|
* |
||||
|
* @author generator generator@elink-cn.com |
||||
|
* @since v1.0.0 2021-11-04 |
||||
|
*/ |
||||
|
@Mapper |
||||
|
public interface IcResiCategoryStatsConfigDao extends BaseDao<IcResiCategoryStatsConfigEntity> { |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,33 @@ |
|||||
|
/** |
||||
|
* Copyright 2018 人人开源 https://www.renren.io
|
||||
|
* <p> |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* <p> |
||||
|
* This program is distributed in the hope that it will be useful, |
||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
* GNU General Public License for more details. |
||||
|
* <p> |
||||
|
* You should have received a copy of the GNU General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
*/ |
||||
|
|
||||
|
package com.epmet.dao; |
||||
|
|
||||
|
import com.epmet.commons.mybatis.dao.BaseDao; |
||||
|
import com.epmet.entity.IcResiCategoryWarnConfigEntity; |
||||
|
import org.apache.ibatis.annotations.Mapper; |
||||
|
|
||||
|
/** |
||||
|
* 居民类别预警配置表 |
||||
|
* |
||||
|
* @author generator generator@elink-cn.com |
||||
|
* @since v1.0.0 2021-11-04 |
||||
|
*/ |
||||
|
@Mapper |
||||
|
public interface IcResiCategoryWarnConfigDao extends BaseDao<IcResiCategoryWarnConfigEntity> { |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,83 @@ |
|||||
|
/** |
||||
|
* Copyright 2018 人人开源 https://www.renren.io
|
||||
|
* <p> |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* <p> |
||||
|
* This program is distributed in the hope that it will be useful, |
||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
* GNU General Public License for more details. |
||||
|
* <p> |
||||
|
* You should have received a copy of the GNU General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
*/ |
||||
|
|
||||
|
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 2021-11-04 |
||||
|
*/ |
||||
|
@Data |
||||
|
@EqualsAndHashCode(callSuper=false) |
||||
|
@TableName("ic_resi_category_stats_config") |
||||
|
public class IcResiCategoryStatsConfigEntity extends BaseEpmetEntity { |
||||
|
|
||||
|
private static final long serialVersionUID = 1L; |
||||
|
|
||||
|
/** |
||||
|
* 客户id |
||||
|
*/ |
||||
|
private String customerId; |
||||
|
|
||||
|
/** |
||||
|
* 项标签 |
||||
|
*/ |
||||
|
private String label; |
||||
|
|
||||
|
/** |
||||
|
* 表名 |
||||
|
*/ |
||||
|
private String tableName; |
||||
|
|
||||
|
/** |
||||
|
* 列名 |
||||
|
*/ |
||||
|
private String columnName; |
||||
|
|
||||
|
/** |
||||
|
* 管理平台分类图标 |
||||
|
*/ |
||||
|
private String managementIcon; |
||||
|
|
||||
|
/** |
||||
|
* 数据平台分类图标 |
||||
|
*/ |
||||
|
private String dataIcon; |
||||
|
|
||||
|
/** |
||||
|
* 房屋显示分类图标 |
||||
|
*/ |
||||
|
private String houseShowIcon; |
||||
|
|
||||
|
/** |
||||
|
* 状态 显示:show;隐藏:hidden |
||||
|
*/ |
||||
|
private String status; |
||||
|
|
||||
|
/** |
||||
|
* 排序 |
||||
|
*/ |
||||
|
private Integer sort; |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,81 @@ |
|||||
|
/** |
||||
|
* Copyright 2018 人人开源 https://www.renren.io
|
||||
|
* <p> |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* <p> |
||||
|
* This program is distributed in the hope that it will be useful, |
||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
* GNU General Public License for more details. |
||||
|
* <p> |
||||
|
* You should have received a copy of the GNU General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
*/ |
||||
|
|
||||
|
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 2021-11-04 |
||||
|
*/ |
||||
|
@Data |
||||
|
@EqualsAndHashCode(callSuper=false) |
||||
|
@TableName("ic_resi_category_warn_config") |
||||
|
public class IcResiCategoryWarnConfigEntity extends BaseEpmetEntity { |
||||
|
|
||||
|
private static final long serialVersionUID = 1L; |
||||
|
|
||||
|
/** |
||||
|
* 客户id |
||||
|
*/ |
||||
|
private String customerId; |
||||
|
|
||||
|
/** |
||||
|
* 项标签 |
||||
|
*/ |
||||
|
private String label; |
||||
|
|
||||
|
/** |
||||
|
* 表名 |
||||
|
*/ |
||||
|
private String tableName; |
||||
|
|
||||
|
/** |
||||
|
* 列名 |
||||
|
*/ |
||||
|
private String columnName; |
||||
|
|
||||
|
/** |
||||
|
* 排序 |
||||
|
*/ |
||||
|
private Integer sort; |
||||
|
|
||||
|
/** |
||||
|
* 等级1阈值 |
||||
|
*/ |
||||
|
private Integer level1; |
||||
|
|
||||
|
/** |
||||
|
* 等级2阈值 |
||||
|
*/ |
||||
|
private Integer level2; |
||||
|
|
||||
|
/** |
||||
|
* 等级3阈值 |
||||
|
*/ |
||||
|
private Integer level3; |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,83 @@ |
|||||
|
/** |
||||
|
* Copyright 2018 人人开源 https://www.renren.io
|
||||
|
* <p> |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* <p> |
||||
|
* This program is distributed in the hope that it will be useful, |
||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
* GNU General Public License for more details. |
||||
|
* <p> |
||||
|
* You should have received a copy of the GNU General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
*/ |
||||
|
|
||||
|
package com.epmet.excel; |
||||
|
|
||||
|
import cn.afterturn.easypoi.excel.annotation.Excel; |
||||
|
import lombok.Data; |
||||
|
|
||||
|
import java.util.Date; |
||||
|
|
||||
|
/** |
||||
|
* 居民类别配置表 |
||||
|
* |
||||
|
* @author generator generator@elink-cn.com |
||||
|
* @since v1.0.0 2021-11-04 |
||||
|
*/ |
||||
|
@Data |
||||
|
public class IcResiCategoryStatsConfigExcel { |
||||
|
|
||||
|
@Excel(name = "id") |
||||
|
private String id; |
||||
|
|
||||
|
@Excel(name = "客户id") |
||||
|
private String customerId; |
||||
|
|
||||
|
@Excel(name = "项标签") |
||||
|
private String label; |
||||
|
|
||||
|
@Excel(name = "表名") |
||||
|
private String tableName; |
||||
|
|
||||
|
@Excel(name = "列名") |
||||
|
private String columnName; |
||||
|
|
||||
|
@Excel(name = "管理平台分类图标") |
||||
|
private String managementIcon; |
||||
|
|
||||
|
@Excel(name = "数据平台分类图标") |
||||
|
private String dataIcon; |
||||
|
|
||||
|
@Excel(name = "房屋显示分类图标") |
||||
|
private String houseShowIcon; |
||||
|
|
||||
|
@Excel(name = "状态 显示:show;隐藏:hidden") |
||||
|
private String status; |
||||
|
|
||||
|
@Excel(name = "排序") |
||||
|
private Integer sort; |
||||
|
|
||||
|
@Excel(name = "删除标识:0.未删除 1.已删除") |
||||
|
private String delFlag; |
||||
|
|
||||
|
@Excel(name = "乐观锁") |
||||
|
private String revision; |
||||
|
|
||||
|
@Excel(name = "创建人") |
||||
|
private String createdBy; |
||||
|
|
||||
|
@Excel(name = "创建时间") |
||||
|
private String createdTime; |
||||
|
|
||||
|
@Excel(name = "更新人") |
||||
|
private String updatedBy; |
||||
|
|
||||
|
@Excel(name = "更新时间") |
||||
|
private Date updatedTime; |
||||
|
|
||||
|
|
||||
|
} |
||||
@ -0,0 +1,80 @@ |
|||||
|
/** |
||||
|
* Copyright 2018 人人开源 https://www.renren.io
|
||||
|
* <p> |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* <p> |
||||
|
* This program is distributed in the hope that it will be useful, |
||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
* GNU General Public License for more details. |
||||
|
* <p> |
||||
|
* You should have received a copy of the GNU General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
*/ |
||||
|
|
||||
|
package com.epmet.excel; |
||||
|
|
||||
|
import cn.afterturn.easypoi.excel.annotation.Excel; |
||||
|
import lombok.Data; |
||||
|
|
||||
|
import java.util.Date; |
||||
|
|
||||
|
/** |
||||
|
* 居民类别预警配置表 |
||||
|
* |
||||
|
* @author generator generator@elink-cn.com |
||||
|
* @since v1.0.0 2021-11-04 |
||||
|
*/ |
||||
|
@Data |
||||
|
public class IcResiCategoryWarnConfigExcel { |
||||
|
|
||||
|
@Excel(name = "id") |
||||
|
private String id; |
||||
|
|
||||
|
@Excel(name = "客户id") |
||||
|
private String customerId; |
||||
|
|
||||
|
@Excel(name = "项标签") |
||||
|
private String label; |
||||
|
|
||||
|
@Excel(name = "表名") |
||||
|
private String tableName; |
||||
|
|
||||
|
@Excel(name = "列名") |
||||
|
private String columnName; |
||||
|
|
||||
|
@Excel(name = "排序") |
||||
|
private Integer sort; |
||||
|
|
||||
|
@Excel(name = "等级1阈值") |
||||
|
private Integer level1; |
||||
|
|
||||
|
@Excel(name = "等级2阈值") |
||||
|
private Integer level2; |
||||
|
|
||||
|
@Excel(name = "等级3阈值") |
||||
|
private Integer level3; |
||||
|
|
||||
|
@Excel(name = "删除标识:0.未删除 1.已删除") |
||||
|
private String delFlag; |
||||
|
|
||||
|
@Excel(name = "乐观锁") |
||||
|
private String revision; |
||||
|
|
||||
|
@Excel(name = "创建人") |
||||
|
private String createdBy; |
||||
|
|
||||
|
@Excel(name = "创建时间") |
||||
|
private String createdTime; |
||||
|
|
||||
|
@Excel(name = "更新人") |
||||
|
private String updatedBy; |
||||
|
|
||||
|
@Excel(name = "更新时间") |
||||
|
private Date updatedTime; |
||||
|
|
||||
|
|
||||
|
} |
||||
@ -0,0 +1,47 @@ |
|||||
|
/** |
||||
|
* Copyright 2018 人人开源 https://www.renren.io
|
||||
|
* <p> |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* <p> |
||||
|
* This program is distributed in the hope that it will be useful, |
||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
* GNU General Public License for more details. |
||||
|
* <p> |
||||
|
* You should have received a copy of the GNU General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
*/ |
||||
|
|
||||
|
package com.epmet.redis; |
||||
|
|
||||
|
import com.epmet.commons.tools.redis.RedisUtils; |
||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||
|
import org.springframework.stereotype.Component; |
||||
|
|
||||
|
/** |
||||
|
* 居民类别配置表 |
||||
|
* |
||||
|
* @author generator generator@elink-cn.com |
||||
|
* @since v1.0.0 2021-11-04 |
||||
|
*/ |
||||
|
@Component |
||||
|
public class IcResiCategoryStatsConfigRedis { |
||||
|
@Autowired |
||||
|
private RedisUtils redisUtils; |
||||
|
|
||||
|
public void delete(Object[] ids) { |
||||
|
|
||||
|
} |
||||
|
|
||||
|
public void set(){ |
||||
|
|
||||
|
} |
||||
|
|
||||
|
public String get(String id){ |
||||
|
return null; |
||||
|
} |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,47 @@ |
|||||
|
/** |
||||
|
* Copyright 2018 人人开源 https://www.renren.io
|
||||
|
* <p> |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* <p> |
||||
|
* This program is distributed in the hope that it will be useful, |
||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
* GNU General Public License for more details. |
||||
|
* <p> |
||||
|
* You should have received a copy of the GNU General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
*/ |
||||
|
|
||||
|
package com.epmet.redis; |
||||
|
|
||||
|
import com.epmet.commons.tools.redis.RedisUtils; |
||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||
|
import org.springframework.stereotype.Component; |
||||
|
|
||||
|
/** |
||||
|
* 居民类别预警配置表 |
||||
|
* |
||||
|
* @author generator generator@elink-cn.com |
||||
|
* @since v1.0.0 2021-11-04 |
||||
|
*/ |
||||
|
@Component |
||||
|
public class IcResiCategoryWarnConfigRedis { |
||||
|
@Autowired |
||||
|
private RedisUtils redisUtils; |
||||
|
|
||||
|
public void delete(Object[] ids) { |
||||
|
|
||||
|
} |
||||
|
|
||||
|
public void set(){ |
||||
|
|
||||
|
} |
||||
|
|
||||
|
public String get(String id){ |
||||
|
return null; |
||||
|
} |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,95 @@ |
|||||
|
/** |
||||
|
* Copyright 2018 人人开源 https://www.renren.io
|
||||
|
* <p> |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* <p> |
||||
|
* This program is distributed in the hope that it will be useful, |
||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
* GNU General Public License for more details. |
||||
|
* <p> |
||||
|
* You should have received a copy of the GNU General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
*/ |
||||
|
|
||||
|
package com.epmet.service; |
||||
|
|
||||
|
import com.epmet.commons.mybatis.service.BaseService; |
||||
|
import com.epmet.commons.tools.page.PageData; |
||||
|
import com.epmet.dto.IcResiCategoryStatsConfigDTO; |
||||
|
import com.epmet.entity.IcResiCategoryStatsConfigEntity; |
||||
|
|
||||
|
import java.util.List; |
||||
|
import java.util.Map; |
||||
|
|
||||
|
/** |
||||
|
* 居民类别配置表 |
||||
|
* |
||||
|
* @author generator generator@elink-cn.com |
||||
|
* @since v1.0.0 2021-11-04 |
||||
|
*/ |
||||
|
public interface IcResiCategoryStatsConfigService extends BaseService<IcResiCategoryStatsConfigEntity> { |
||||
|
|
||||
|
/** |
||||
|
* 默认分页 |
||||
|
* |
||||
|
* @param params |
||||
|
* @return PageData<IcResiCategoryStatsConfigDTO> |
||||
|
* @author generator |
||||
|
* @date 2021-11-04 |
||||
|
*/ |
||||
|
PageData<IcResiCategoryStatsConfigDTO> page(Map<String, Object> params); |
||||
|
|
||||
|
/** |
||||
|
* 默认查询 |
||||
|
* |
||||
|
* @param params |
||||
|
* @return java.util.List<IcResiCategoryStatsConfigDTO> |
||||
|
* @author generator |
||||
|
* @date 2021-11-04 |
||||
|
*/ |
||||
|
List<IcResiCategoryStatsConfigDTO> list(Map<String, Object> params); |
||||
|
|
||||
|
/** |
||||
|
* 单条查询 |
||||
|
* |
||||
|
* @param id |
||||
|
* @return IcResiCategoryStatsConfigDTO |
||||
|
* @author generator |
||||
|
* @date 2021-11-04 |
||||
|
*/ |
||||
|
IcResiCategoryStatsConfigDTO get(String id); |
||||
|
|
||||
|
/** |
||||
|
* 默认保存 |
||||
|
* |
||||
|
* @param dto |
||||
|
* @return void |
||||
|
* @author generator |
||||
|
* @date 2021-11-04 |
||||
|
*/ |
||||
|
void save(IcResiCategoryStatsConfigDTO dto); |
||||
|
|
||||
|
/** |
||||
|
* 默认更新 |
||||
|
* |
||||
|
* @param dto |
||||
|
* @return void |
||||
|
* @author generator |
||||
|
* @date 2021-11-04 |
||||
|
*/ |
||||
|
void update(IcResiCategoryStatsConfigDTO dto); |
||||
|
|
||||
|
/** |
||||
|
* 批量删除 |
||||
|
* |
||||
|
* @param ids |
||||
|
* @return void |
||||
|
* @author generator |
||||
|
* @date 2021-11-04 |
||||
|
*/ |
||||
|
void delete(String[] ids); |
||||
|
} |
||||
@ -0,0 +1,95 @@ |
|||||
|
/** |
||||
|
* Copyright 2018 人人开源 https://www.renren.io
|
||||
|
* <p> |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* <p> |
||||
|
* This program is distributed in the hope that it will be useful, |
||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
* GNU General Public License for more details. |
||||
|
* <p> |
||||
|
* You should have received a copy of the GNU General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
*/ |
||||
|
|
||||
|
package com.epmet.service; |
||||
|
|
||||
|
import com.epmet.commons.mybatis.service.BaseService; |
||||
|
import com.epmet.commons.tools.page.PageData; |
||||
|
import com.epmet.dto.IcResiCategoryWarnConfigDTO; |
||||
|
import com.epmet.entity.IcResiCategoryWarnConfigEntity; |
||||
|
|
||||
|
import java.util.List; |
||||
|
import java.util.Map; |
||||
|
|
||||
|
/** |
||||
|
* 居民类别预警配置表 |
||||
|
* |
||||
|
* @author generator generator@elink-cn.com |
||||
|
* @since v1.0.0 2021-11-04 |
||||
|
*/ |
||||
|
public interface IcResiCategoryWarnConfigService extends BaseService<IcResiCategoryWarnConfigEntity> { |
||||
|
|
||||
|
/** |
||||
|
* 默认分页 |
||||
|
* |
||||
|
* @param params |
||||
|
* @return PageData<IcResiCategoryWarnConfigDTO> |
||||
|
* @author generator |
||||
|
* @date 2021-11-04 |
||||
|
*/ |
||||
|
PageData<IcResiCategoryWarnConfigDTO> page(Map<String, Object> params); |
||||
|
|
||||
|
/** |
||||
|
* 默认查询 |
||||
|
* |
||||
|
* @param params |
||||
|
* @return java.util.List<IcResiCategoryWarnConfigDTO> |
||||
|
* @author generator |
||||
|
* @date 2021-11-04 |
||||
|
*/ |
||||
|
List<IcResiCategoryWarnConfigDTO> list(Map<String, Object> params); |
||||
|
|
||||
|
/** |
||||
|
* 单条查询 |
||||
|
* |
||||
|
* @param id |
||||
|
* @return IcResiCategoryWarnConfigDTO |
||||
|
* @author generator |
||||
|
* @date 2021-11-04 |
||||
|
*/ |
||||
|
IcResiCategoryWarnConfigDTO get(String id); |
||||
|
|
||||
|
/** |
||||
|
* 默认保存 |
||||
|
* |
||||
|
* @param dto |
||||
|
* @return void |
||||
|
* @author generator |
||||
|
* @date 2021-11-04 |
||||
|
*/ |
||||
|
void save(IcResiCategoryWarnConfigDTO dto); |
||||
|
|
||||
|
/** |
||||
|
* 默认更新 |
||||
|
* |
||||
|
* @param dto |
||||
|
* @return void |
||||
|
* @author generator |
||||
|
* @date 2021-11-04 |
||||
|
*/ |
||||
|
void update(IcResiCategoryWarnConfigDTO dto); |
||||
|
|
||||
|
/** |
||||
|
* 批量删除 |
||||
|
* |
||||
|
* @param ids |
||||
|
* @return void |
||||
|
* @author generator |
||||
|
* @date 2021-11-04 |
||||
|
*/ |
||||
|
void delete(String[] ids); |
||||
|
} |
||||
@ -0,0 +1,48 @@ |
|||||
|
/** |
||||
|
* Copyright 2018 人人开源 https://www.renren.io
|
||||
|
* <p> |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* <p> |
||||
|
* This program is distributed in the hope that it will be useful, |
||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
* GNU General Public License for more details. |
||||
|
* <p> |
||||
|
* You should have received a copy of the GNU General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
*/ |
||||
|
|
||||
|
package com.epmet.service; |
||||
|
|
||||
|
import com.epmet.commons.mybatis.service.BaseService; |
||||
|
import com.epmet.commons.tools.page.PageData; |
||||
|
import com.epmet.dto.IcResiCategoryStatsConfigDTO; |
||||
|
import com.epmet.dto.form.IcResiCategoryStatsConfigFormDTO; |
||||
|
import com.epmet.dto.form.IcResiCategoryStatsConfigSortFormDTO; |
||||
|
import com.epmet.dto.result.IcResiCategoryStatsConfigResultDTO; |
||||
|
import com.epmet.entity.IcResiCategoryStatsConfigEntity; |
||||
|
|
||||
|
import java.util.List; |
||||
|
import java.util.Map; |
||||
|
|
||||
|
/** |
||||
|
* 居民类别配置表 |
||||
|
* |
||||
|
* @author generator generator@elink-cn.com |
||||
|
* @since v1.0.0 2021-11-04 |
||||
|
*/ |
||||
|
public interface ResiCategoryStatsConfigService { |
||||
|
|
||||
|
List<IcResiCategoryStatsConfigResultDTO> list(String customerId); |
||||
|
|
||||
|
IcResiCategoryStatsConfigResultDTO info(String id); |
||||
|
|
||||
|
void update(String customerId,IcResiCategoryStatsConfigFormDTO formDTO); |
||||
|
|
||||
|
void updateStatus(String customerId,IcResiCategoryStatsConfigFormDTO formDTO); |
||||
|
|
||||
|
void updateSort(String customerId,List<IcResiCategoryStatsConfigSortFormDTO> formDTOs); |
||||
|
} |
||||
@ -0,0 +1,104 @@ |
|||||
|
/** |
||||
|
* Copyright 2018 人人开源 https://www.renren.io
|
||||
|
* <p> |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* <p> |
||||
|
* This program is distributed in the hope that it will be useful, |
||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
* GNU General Public License for more details. |
||||
|
* <p> |
||||
|
* You should have received a copy of the GNU General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
*/ |
||||
|
|
||||
|
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.page.PageData; |
||||
|
import com.epmet.commons.tools.utils.ConvertUtils; |
||||
|
import com.epmet.commons.tools.constant.FieldConstant; |
||||
|
import com.epmet.dao.IcResiCategoryStatsConfigDao; |
||||
|
import com.epmet.dto.IcResiCategoryStatsConfigDTO; |
||||
|
import com.epmet.entity.IcResiCategoryStatsConfigEntity; |
||||
|
import com.epmet.redis.IcResiCategoryStatsConfigRedis; |
||||
|
import com.epmet.service.IcResiCategoryStatsConfigService; |
||||
|
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.Arrays; |
||||
|
import java.util.List; |
||||
|
import java.util.Map; |
||||
|
|
||||
|
/** |
||||
|
* 居民类别配置表 |
||||
|
* |
||||
|
* @author generator generator@elink-cn.com |
||||
|
* @since v1.0.0 2021-11-04 |
||||
|
*/ |
||||
|
@Service |
||||
|
public class IcResiCategoryStatsConfigServiceImpl extends BaseServiceImpl<IcResiCategoryStatsConfigDao, IcResiCategoryStatsConfigEntity> implements IcResiCategoryStatsConfigService { |
||||
|
|
||||
|
@Autowired |
||||
|
private IcResiCategoryStatsConfigRedis icResiCategoryStatsConfigRedis; |
||||
|
|
||||
|
@Override |
||||
|
public PageData<IcResiCategoryStatsConfigDTO> page(Map<String, Object> params) { |
||||
|
IPage<IcResiCategoryStatsConfigEntity> page = baseDao.selectPage( |
||||
|
getPage(params, FieldConstant.CREATED_TIME, false), |
||||
|
getWrapper(params) |
||||
|
); |
||||
|
return getPageData(page, IcResiCategoryStatsConfigDTO.class); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public List<IcResiCategoryStatsConfigDTO> list(Map<String, Object> params) { |
||||
|
List<IcResiCategoryStatsConfigEntity> entityList = baseDao.selectList(getWrapper(params)); |
||||
|
|
||||
|
return ConvertUtils.sourceToTarget(entityList, IcResiCategoryStatsConfigDTO.class); |
||||
|
} |
||||
|
|
||||
|
private QueryWrapper<IcResiCategoryStatsConfigEntity> getWrapper(Map<String, Object> params){ |
||||
|
String id = (String)params.get(FieldConstant.ID_HUMP); |
||||
|
|
||||
|
QueryWrapper<IcResiCategoryStatsConfigEntity> wrapper = new QueryWrapper<>(); |
||||
|
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); |
||||
|
|
||||
|
return wrapper; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public IcResiCategoryStatsConfigDTO get(String id) { |
||||
|
IcResiCategoryStatsConfigEntity entity = baseDao.selectById(id); |
||||
|
return ConvertUtils.sourceToTarget(entity, IcResiCategoryStatsConfigDTO.class); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
@Transactional(rollbackFor = Exception.class) |
||||
|
public void save(IcResiCategoryStatsConfigDTO dto) { |
||||
|
IcResiCategoryStatsConfigEntity entity = ConvertUtils.sourceToTarget(dto, IcResiCategoryStatsConfigEntity.class); |
||||
|
insert(entity); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
@Transactional(rollbackFor = Exception.class) |
||||
|
public void update(IcResiCategoryStatsConfigDTO dto) { |
||||
|
IcResiCategoryStatsConfigEntity entity = ConvertUtils.sourceToTarget(dto, IcResiCategoryStatsConfigEntity.class); |
||||
|
updateById(entity); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
@Transactional(rollbackFor = Exception.class) |
||||
|
public void delete(String[] ids) { |
||||
|
// 逻辑删除(@TableLogic 注解)
|
||||
|
baseDao.deleteBatchIds(Arrays.asList(ids)); |
||||
|
} |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,104 @@ |
|||||
|
/** |
||||
|
* Copyright 2018 人人开源 https://www.renren.io
|
||||
|
* <p> |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* <p> |
||||
|
* This program is distributed in the hope that it will be useful, |
||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
* GNU General Public License for more details. |
||||
|
* <p> |
||||
|
* You should have received a copy of the GNU General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
*/ |
||||
|
|
||||
|
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.page.PageData; |
||||
|
import com.epmet.commons.tools.utils.ConvertUtils; |
||||
|
import com.epmet.commons.tools.constant.FieldConstant; |
||||
|
import com.epmet.dao.IcResiCategoryWarnConfigDao; |
||||
|
import com.epmet.dto.IcResiCategoryWarnConfigDTO; |
||||
|
import com.epmet.entity.IcResiCategoryWarnConfigEntity; |
||||
|
import com.epmet.redis.IcResiCategoryWarnConfigRedis; |
||||
|
import com.epmet.service.IcResiCategoryWarnConfigService; |
||||
|
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.Arrays; |
||||
|
import java.util.List; |
||||
|
import java.util.Map; |
||||
|
|
||||
|
/** |
||||
|
* 居民类别预警配置表 |
||||
|
* |
||||
|
* @author generator generator@elink-cn.com |
||||
|
* @since v1.0.0 2021-11-04 |
||||
|
*/ |
||||
|
@Service |
||||
|
public class IcResiCategoryWarnConfigServiceImpl extends BaseServiceImpl<IcResiCategoryWarnConfigDao, IcResiCategoryWarnConfigEntity> implements IcResiCategoryWarnConfigService { |
||||
|
|
||||
|
@Autowired |
||||
|
private IcResiCategoryWarnConfigRedis icResiCategoryWarnConfigRedis; |
||||
|
|
||||
|
@Override |
||||
|
public PageData<IcResiCategoryWarnConfigDTO> page(Map<String, Object> params) { |
||||
|
IPage<IcResiCategoryWarnConfigEntity> page = baseDao.selectPage( |
||||
|
getPage(params, FieldConstant.CREATED_TIME, false), |
||||
|
getWrapper(params) |
||||
|
); |
||||
|
return getPageData(page, IcResiCategoryWarnConfigDTO.class); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public List<IcResiCategoryWarnConfigDTO> list(Map<String, Object> params) { |
||||
|
List<IcResiCategoryWarnConfigEntity> entityList = baseDao.selectList(getWrapper(params)); |
||||
|
|
||||
|
return ConvertUtils.sourceToTarget(entityList, IcResiCategoryWarnConfigDTO.class); |
||||
|
} |
||||
|
|
||||
|
private QueryWrapper<IcResiCategoryWarnConfigEntity> getWrapper(Map<String, Object> params){ |
||||
|
String id = (String)params.get(FieldConstant.ID_HUMP); |
||||
|
|
||||
|
QueryWrapper<IcResiCategoryWarnConfigEntity> wrapper = new QueryWrapper<>(); |
||||
|
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); |
||||
|
|
||||
|
return wrapper; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public IcResiCategoryWarnConfigDTO get(String id) { |
||||
|
IcResiCategoryWarnConfigEntity entity = baseDao.selectById(id); |
||||
|
return ConvertUtils.sourceToTarget(entity, IcResiCategoryWarnConfigDTO.class); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
@Transactional(rollbackFor = Exception.class) |
||||
|
public void save(IcResiCategoryWarnConfigDTO dto) { |
||||
|
IcResiCategoryWarnConfigEntity entity = ConvertUtils.sourceToTarget(dto, IcResiCategoryWarnConfigEntity.class); |
||||
|
insert(entity); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
@Transactional(rollbackFor = Exception.class) |
||||
|
public void update(IcResiCategoryWarnConfigDTO dto) { |
||||
|
IcResiCategoryWarnConfigEntity entity = ConvertUtils.sourceToTarget(dto, IcResiCategoryWarnConfigEntity.class); |
||||
|
updateById(entity); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
@Transactional(rollbackFor = Exception.class) |
||||
|
public void delete(String[] ids) { |
||||
|
// 逻辑删除(@TableLogic 注解)
|
||||
|
baseDao.deleteBatchIds(Arrays.asList(ids)); |
||||
|
} |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,264 @@ |
|||||
|
package com.epmet.service.impl; |
||||
|
|
||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
||||
|
import com.epmet.constant.IcResiCategoryStatsConfigConstant; |
||||
|
import com.epmet.dao.IcFormItemDao; |
||||
|
import com.epmet.dao.IcFormItemGroupDao; |
||||
|
import com.epmet.dao.IcResiCategoryStatsConfigDao; |
||||
|
import com.epmet.dao.IcResiCategoryWarnConfigDao; |
||||
|
import com.epmet.dto.IcResiCategoryStatsConfigDTO; |
||||
|
import com.epmet.dto.form.IcResiCategoryStatsConfigFormDTO; |
||||
|
import com.epmet.dto.form.IcResiCategoryStatsConfigSortFormDTO; |
||||
|
import com.epmet.dto.result.IcResiCategoryStatsConfigResultDTO; |
||||
|
import com.epmet.entity.IcFormItemEntity; |
||||
|
import com.epmet.entity.IcFormItemGroupEntity; |
||||
|
import com.epmet.entity.IcResiCategoryStatsConfigEntity; |
||||
|
import com.epmet.entity.IcResiCategoryWarnConfigEntity; |
||||
|
import com.epmet.service.IcResiCategoryStatsConfigService; |
||||
|
import com.epmet.service.IcResiCategoryWarnConfigService; |
||||
|
import com.epmet.service.ResiCategoryStatsConfigService; |
||||
|
import lombok.extern.slf4j.Slf4j; |
||||
|
import org.springframework.beans.BeanUtils; |
||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||
|
import org.springframework.stereotype.Service; |
||||
|
import org.springframework.transaction.annotation.Transactional; |
||||
|
import org.springframework.util.CollectionUtils; |
||||
|
|
||||
|
import javax.annotation.Resource; |
||||
|
import java.util.*; |
||||
|
import java.util.stream.Collectors; |
||||
|
|
||||
|
@Slf4j |
||||
|
@Service |
||||
|
public class ResiCategoryStatsConfigServiceImpl implements ResiCategoryStatsConfigService { |
||||
|
@Autowired |
||||
|
private IcResiCategoryStatsConfigService icResiCategoryStatsConfigService; |
||||
|
|
||||
|
@Resource |
||||
|
private IcFormItemDao icFormItemDao; |
||||
|
@Resource |
||||
|
private IcFormItemGroupDao icFormItemGroupDao; |
||||
|
@Resource |
||||
|
private IcResiCategoryStatsConfigDao icResiCategoryStatsConfigDao; |
||||
|
@Resource |
||||
|
private IcResiCategoryWarnConfigDao icResiCategoryWarnConfigDao; |
||||
|
@Autowired |
||||
|
private IcResiCategoryWarnConfigService icResiCategoryWarnConfigService; |
||||
|
|
||||
|
@Override |
||||
|
@Transactional(rollbackFor = Exception.class) |
||||
|
public List<IcResiCategoryStatsConfigResultDTO> list(String customerId) { |
||||
|
//1.获取IC_FORM_ITEM 中 用于数据分析字段的 id 和label
|
||||
|
List<IcFormItemEntity> icFormItemEntityList = icFormItemDao.selectList(new QueryWrapper<IcFormItemEntity>().lambda().eq(IcFormItemEntity::getDataAnalyse, 1)); |
||||
|
if(CollectionUtils.isEmpty(icFormItemEntityList)){ |
||||
|
return new ArrayList<>(); |
||||
|
} |
||||
|
Set<String> groupIds = icFormItemEntityList.stream().filter(item-> !"0".equals(item.getItemGroupId())).map(item->item.getItemGroupId()).collect(Collectors.toSet()); |
||||
|
List<IcFormItemGroupEntity> icFormItemGroupEntityList = icFormItemGroupDao.selectList(new QueryWrapper<IcFormItemGroupEntity>().lambda().in(IcFormItemGroupEntity::getId, groupIds)); |
||||
|
//获取tableName和COLUMN_NAME
|
||||
|
Map<String,IcFormItemEntity> tableColumnMap = new HashMap<>(); |
||||
|
Map<String,String> idTableMap = new HashMap<>(); |
||||
|
icFormItemEntityList.forEach(item->{ |
||||
|
Map<String,String> map = new HashMap<>(); |
||||
|
if("0".equals(item.getItemGroupId())){ |
||||
|
tableColumnMap.put(IcResiCategoryStatsConfigConstant.IC_RESI_USER+"-"+item.getColumnName(),item); |
||||
|
idTableMap.put(item.getId(),IcResiCategoryStatsConfigConstant.IC_RESI_USER); |
||||
|
}else{ |
||||
|
List<IcFormItemGroupEntity> collect = icFormItemGroupEntityList.stream().filter(i -> item.getItemGroupId().equals(i.getId())).collect(Collectors.toList()); |
||||
|
tableColumnMap.put(CollectionUtils.isEmpty(collect)?IcResiCategoryStatsConfigConstant.IC_RESI_USER:collect.get(0).getTableName()+"-"+item.getColumnName(),item); |
||||
|
idTableMap.put(item.getId(),CollectionUtils.isEmpty(collect)?IcResiCategoryStatsConfigConstant.IC_RESI_USER:collect.get(0).getTableName()); |
||||
|
} |
||||
|
|
||||
|
}); |
||||
|
|
||||
|
//2.获取ic_resi_category_stats_config 和 ic_resi_category_warn_config 表中的数据
|
||||
|
List<IcResiCategoryStatsConfigEntity> statsConfigEntityList = icResiCategoryStatsConfigDao.selectList(null); |
||||
|
List<IcResiCategoryWarnConfigEntity> warnConfigEntityList = icResiCategoryWarnConfigDao.selectList(null); |
||||
|
//3.新增不存在的,删除不在tableColumnMap的
|
||||
|
|
||||
|
Map<String,IcResiCategoryStatsConfigEntity> statsTableColumnMap = new HashMap<>(); |
||||
|
statsConfigEntityList.stream().forEach(item->{ |
||||
|
statsTableColumnMap.put(item.getTableName()+"-"+item.getColumnName(),item); |
||||
|
}); |
||||
|
Map<String,IcResiCategoryWarnConfigEntity> warnTableColumnMap = new HashMap<>(); |
||||
|
warnConfigEntityList.stream().forEach(item->{ |
||||
|
warnTableColumnMap.put(item.getTableName()+"-"+item.getColumnName(),item); |
||||
|
}); |
||||
|
//差集
|
||||
|
//新增
|
||||
|
List<String> newStatsList = tableColumnMap.keySet().stream().filter(item -> !statsTableColumnMap.keySet().contains(item)).collect(Collectors.toList()); |
||||
|
|
||||
|
List<IcResiCategoryStatsConfigEntity> newStatsEntityList = new ArrayList<>(); |
||||
|
newStatsList.forEach(item->{ |
||||
|
IcFormItemEntity icFormItemEntity = tableColumnMap.get(item); |
||||
|
IcResiCategoryStatsConfigEntity entity = new IcResiCategoryStatsConfigEntity(); |
||||
|
entity.setCustomerId(customerId); |
||||
|
entity.setLabel(icFormItemEntity.getLabel()); |
||||
|
entity.setTableName(idTableMap.get(icFormItemEntity.getId())); |
||||
|
entity.setColumnName(icFormItemEntity.getColumnName()); |
||||
|
entity.setManagementIcon(""); |
||||
|
entity.setDataIcon(""); |
||||
|
entity.setHouseShowIcon(""); |
||||
|
entity.setStatus("show"); |
||||
|
entity.setSort(0); |
||||
|
newStatsEntityList.add(entity); |
||||
|
}); |
||||
|
if(!CollectionUtils.isEmpty(newStatsEntityList)){ |
||||
|
icResiCategoryStatsConfigService.insertBatch(newStatsEntityList); |
||||
|
} |
||||
|
|
||||
|
List<String> delStatsEntityIdList = new ArrayList<>(); |
||||
|
List<String> delWarnEntityIdList = new ArrayList<>(); |
||||
|
//需要删除的
|
||||
|
List<String> delStatsList = statsTableColumnMap.keySet().stream().filter(item -> !tableColumnMap.keySet().contains(item)).collect(Collectors.toList()); |
||||
|
List<String> delWarnList = warnTableColumnMap.keySet().stream().filter(item -> !tableColumnMap.keySet().contains(item)).collect(Collectors.toList()); |
||||
|
delStatsList.forEach(item->{ |
||||
|
delStatsEntityIdList.add(statsTableColumnMap.get(item).getId()); |
||||
|
}); |
||||
|
delWarnList.forEach(item->{ |
||||
|
delWarnEntityIdList.add(warnTableColumnMap.get(item).getId()); |
||||
|
}); |
||||
|
if(!CollectionUtils.isEmpty(delStatsEntityIdList)){ |
||||
|
icResiCategoryStatsConfigService.deleteBatchIds(delStatsEntityIdList); |
||||
|
} |
||||
|
if(!CollectionUtils.isEmpty(delWarnEntityIdList)){ |
||||
|
icResiCategoryWarnConfigService.deleteBatchIds(delWarnEntityIdList); |
||||
|
} |
||||
|
|
||||
|
//4.返回数据
|
||||
|
List<IcResiCategoryStatsConfigEntity> statsConfigList = icResiCategoryStatsConfigDao.selectList(new QueryWrapper<IcResiCategoryStatsConfigEntity>().lambda().orderByAsc(IcResiCategoryStatsConfigEntity::getSort)); |
||||
|
List<IcResiCategoryWarnConfigEntity> warnConfigList = icResiCategoryWarnConfigDao.selectList(null); |
||||
|
Map<String,IcResiCategoryWarnConfigEntity> warnMap =new HashMap<>(); |
||||
|
warnConfigList.forEach(item->{ |
||||
|
warnMap.put(item.getTableName()+"-"+item.getColumnName(),item); |
||||
|
}); |
||||
|
List<IcResiCategoryStatsConfigResultDTO> result = new ArrayList<>(); |
||||
|
statsConfigList.forEach(item->{ |
||||
|
IcResiCategoryStatsConfigResultDTO icResiCategoryStatsConfigResultDTO = new IcResiCategoryStatsConfigResultDTO(); |
||||
|
icResiCategoryStatsConfigResultDTO.setId(item.getId()); |
||||
|
icResiCategoryStatsConfigResultDTO.setLabel(item.getLabel()); |
||||
|
icResiCategoryStatsConfigResultDTO.setManagementIcon(item.getManagementIcon()); |
||||
|
icResiCategoryStatsConfigResultDTO.setDataIcon(item.getDataIcon()); |
||||
|
icResiCategoryStatsConfigResultDTO.setHouseShowIcon(item.getHouseShowIcon()); |
||||
|
icResiCategoryStatsConfigResultDTO.setStatus(item.getStatus()); |
||||
|
icResiCategoryStatsConfigResultDTO.setSort(item.getSort()); |
||||
|
IcResiCategoryWarnConfigEntity warnConfigEntity = warnMap.get(item.getTableName() + "-" + item.getColumnName()); |
||||
|
if(warnConfigEntity==null){ |
||||
|
icResiCategoryStatsConfigResultDTO.setWarn(IcResiCategoryStatsConfigConstant.WARN_NO); |
||||
|
}else{ |
||||
|
icResiCategoryStatsConfigResultDTO.setWarn(IcResiCategoryStatsConfigConstant.WARN_YES); |
||||
|
icResiCategoryStatsConfigResultDTO.setLevel1(warnConfigEntity.getLevel1()); |
||||
|
icResiCategoryStatsConfigResultDTO.setLevel2(warnConfigEntity.getLevel2()); |
||||
|
icResiCategoryStatsConfigResultDTO.setLevel3(warnConfigEntity.getLevel3()); |
||||
|
} |
||||
|
result.add(icResiCategoryStatsConfigResultDTO); |
||||
|
|
||||
|
}); |
||||
|
return result; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
@Transactional(rollbackFor = Exception.class) |
||||
|
public IcResiCategoryStatsConfigResultDTO info(String id) { |
||||
|
IcResiCategoryStatsConfigResultDTO result =new IcResiCategoryStatsConfigResultDTO(); |
||||
|
IcResiCategoryStatsConfigDTO icResiCategoryStatsConfigDTO = icResiCategoryStatsConfigService.get(id); |
||||
|
if(null == icResiCategoryStatsConfigDTO){ |
||||
|
return result; |
||||
|
} |
||||
|
IcResiCategoryWarnConfigEntity icResiCategoryWarnConfigEntity = icResiCategoryWarnConfigDao.selectOne(new QueryWrapper<IcResiCategoryWarnConfigEntity>().lambda() |
||||
|
.eq(IcResiCategoryWarnConfigEntity::getTableName, icResiCategoryStatsConfigDTO.getTableName()) |
||||
|
.eq(IcResiCategoryWarnConfigEntity::getColumnName, icResiCategoryStatsConfigDTO.getColumnName())); |
||||
|
|
||||
|
// IcResiCategoryWarnConfigEntity icResiCategoryWarnConfigEntity = Optional.ofNullable(entity).orElse(new IcResiCategoryWarnConfigEntity());
|
||||
|
result.setId(icResiCategoryStatsConfigDTO.getId()); |
||||
|
result.setLabel(icResiCategoryStatsConfigDTO.getLabel()); |
||||
|
result.setManagementIcon(icResiCategoryStatsConfigDTO.getManagementIcon()); |
||||
|
result.setDataIcon(icResiCategoryStatsConfigDTO.getDataIcon()); |
||||
|
result.setHouseShowIcon(icResiCategoryStatsConfigDTO.getHouseShowIcon()); |
||||
|
result.setStatus(icResiCategoryStatsConfigDTO.getStatus()); |
||||
|
result.setSort(icResiCategoryStatsConfigDTO.getSort()); |
||||
|
result.setWarn(null==icResiCategoryWarnConfigEntity?IcResiCategoryStatsConfigConstant.WARN_NO:IcResiCategoryStatsConfigConstant.WARN_YES); |
||||
|
if(null!=icResiCategoryWarnConfigEntity){ |
||||
|
result.setLevel1(icResiCategoryWarnConfigEntity.getLevel1()); |
||||
|
result.setLevel2(icResiCategoryWarnConfigEntity.getLevel2()); |
||||
|
result.setLevel3(icResiCategoryWarnConfigEntity.getLevel3()); |
||||
|
} |
||||
|
return result; |
||||
|
|
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
@Transactional(rollbackFor = Exception.class) |
||||
|
public void update(String customerId,IcResiCategoryStatsConfigFormDTO formDTO) { |
||||
|
IcResiCategoryStatsConfigDTO icResiCategoryStatsConfigDTO = icResiCategoryStatsConfigService.get(formDTO.getId()); |
||||
|
if(null == icResiCategoryStatsConfigDTO){ |
||||
|
return ; |
||||
|
} |
||||
|
//更新配置类别
|
||||
|
IcResiCategoryStatsConfigEntity icResiCategoryStatsConfigEntity = new IcResiCategoryStatsConfigEntity(); |
||||
|
BeanUtils.copyProperties(formDTO,icResiCategoryStatsConfigEntity); |
||||
|
icResiCategoryStatsConfigEntity.setCustomerId(customerId); |
||||
|
icResiCategoryStatsConfigDao.updateById(icResiCategoryStatsConfigEntity); |
||||
|
|
||||
|
//更新配置预警
|
||||
|
if(IcResiCategoryStatsConfigConstant.WARN_YES.equals(formDTO.getWarn())){ |
||||
|
//更新
|
||||
|
IcResiCategoryWarnConfigEntity icResiCategoryWarnConfigEntity = icResiCategoryWarnConfigDao.selectOne(new QueryWrapper<IcResiCategoryWarnConfigEntity>().lambda() |
||||
|
.eq(IcResiCategoryWarnConfigEntity::getTableName, icResiCategoryStatsConfigDTO.getTableName()) |
||||
|
.eq(IcResiCategoryWarnConfigEntity::getColumnName, icResiCategoryStatsConfigDTO.getColumnName())); |
||||
|
if(null == icResiCategoryWarnConfigEntity){ |
||||
|
icResiCategoryWarnConfigEntity = new IcResiCategoryWarnConfigEntity(); |
||||
|
icResiCategoryWarnConfigEntity.setCustomerId(customerId); |
||||
|
icResiCategoryWarnConfigEntity.setLabel(icResiCategoryStatsConfigDTO.getLabel()); |
||||
|
icResiCategoryWarnConfigEntity.setTableName(icResiCategoryStatsConfigDTO.getTableName()); |
||||
|
icResiCategoryWarnConfigEntity.setColumnName(icResiCategoryStatsConfigDTO.getColumnName()); |
||||
|
icResiCategoryWarnConfigEntity.setLevel1(formDTO.getLevel1()); |
||||
|
icResiCategoryWarnConfigEntity.setLevel2(formDTO.getLevel2()); |
||||
|
icResiCategoryWarnConfigEntity.setLevel3(formDTO.getLevel3()); |
||||
|
icResiCategoryWarnConfigEntity.setSort(icResiCategoryStatsConfigDTO.getSort()); |
||||
|
icResiCategoryWarnConfigDao.insert(icResiCategoryWarnConfigEntity); |
||||
|
}else{ |
||||
|
icResiCategoryWarnConfigEntity.setCustomerId(customerId); |
||||
|
icResiCategoryWarnConfigEntity.setLabel(icResiCategoryStatsConfigDTO.getLabel()); |
||||
|
icResiCategoryWarnConfigEntity.setTableName(icResiCategoryStatsConfigDTO.getTableName()); |
||||
|
icResiCategoryWarnConfigEntity.setColumnName(icResiCategoryStatsConfigDTO.getColumnName()); |
||||
|
icResiCategoryWarnConfigEntity.setLevel1(formDTO.getLevel1()); |
||||
|
icResiCategoryWarnConfigEntity.setLevel2(formDTO.getLevel2()); |
||||
|
icResiCategoryWarnConfigEntity.setLevel3(formDTO.getLevel3()); |
||||
|
icResiCategoryWarnConfigEntity.setSort(icResiCategoryStatsConfigDTO.getSort()); |
||||
|
icResiCategoryWarnConfigDao.updateById(icResiCategoryWarnConfigEntity); |
||||
|
} |
||||
|
}else if(IcResiCategoryStatsConfigConstant.WARN_NO.equals(formDTO.getWarn())){ |
||||
|
//删除
|
||||
|
icResiCategoryWarnConfigDao.delete(new QueryWrapper<IcResiCategoryWarnConfigEntity>().lambda() |
||||
|
.eq(IcResiCategoryWarnConfigEntity::getTableName,icResiCategoryStatsConfigDTO.getTableName()) |
||||
|
.eq(IcResiCategoryWarnConfigEntity::getColumnName,icResiCategoryStatsConfigDTO.getColumnName())); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
@Transactional(rollbackFor = Exception.class) |
||||
|
public void updateStatus(String customerId,IcResiCategoryStatsConfigFormDTO formDTO) { |
||||
|
//更新配置类别
|
||||
|
IcResiCategoryStatsConfigEntity icResiCategoryStatsConfigEntity = new IcResiCategoryStatsConfigEntity(); |
||||
|
BeanUtils.copyProperties(formDTO,icResiCategoryStatsConfigEntity); |
||||
|
icResiCategoryStatsConfigEntity.setCustomerId(customerId); |
||||
|
icResiCategoryStatsConfigDao.updateById(icResiCategoryStatsConfigEntity); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
@Transactional(rollbackFor = Exception.class) |
||||
|
public void updateSort(String customerId,List<IcResiCategoryStatsConfigSortFormDTO> formDTOs) { |
||||
|
List<IcResiCategoryStatsConfigEntity > entityList = new ArrayList<>(); |
||||
|
for (IcResiCategoryStatsConfigSortFormDTO formDTO : formDTOs) { |
||||
|
IcResiCategoryStatsConfigEntity icResiCategoryStatsConfigEntity = new IcResiCategoryStatsConfigEntity(); |
||||
|
icResiCategoryStatsConfigEntity.setId(formDTO.getId()); |
||||
|
icResiCategoryStatsConfigEntity.setCustomerId(customerId); |
||||
|
icResiCategoryStatsConfigEntity.setSort(formDTO.getSort()); |
||||
|
entityList.add(icResiCategoryStatsConfigEntity); |
||||
|
} |
||||
|
icResiCategoryStatsConfigService.updateBatchById(entityList); |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,26 @@ |
|||||
|
<?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.IcResiCategoryStatsConfigDao"> |
||||
|
|
||||
|
<resultMap type="com.epmet.entity.IcResiCategoryStatsConfigEntity" id="icResiCategoryStatsConfigMap"> |
||||
|
<result property="id" column="ID"/> |
||||
|
<result property="customerId" column="CUSTOMER_ID"/> |
||||
|
<result property="label" column="LABEL"/> |
||||
|
<result property="tableName" column="TABLE_NAME"/> |
||||
|
<result property="columnName" column="COLUMN_NAME"/> |
||||
|
<result property="managementIcon" column="MANAGEMENT_ICON"/> |
||||
|
<result property="dataIcon" column="DATA_ICON"/> |
||||
|
<result property="houseShowIcon" column="HOUSE_SHOW_ICON"/> |
||||
|
<result property="status" column="STATUS"/> |
||||
|
<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> |
||||
|
|
||||
|
|
||||
|
</mapper> |
||||
@ -0,0 +1,25 @@ |
|||||
|
<?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.IcResiCategoryWarnConfigDao"> |
||||
|
|
||||
|
<resultMap type="com.epmet.entity.IcResiCategoryWarnConfigEntity" id="icResiCategoryWarnConfigMap"> |
||||
|
<result property="id" column="ID"/> |
||||
|
<result property="customerId" column="CUSTOMER_ID"/> |
||||
|
<result property="label" column="LABEL"/> |
||||
|
<result property="tableName" column="TABLE_NAME"/> |
||||
|
<result property="columnName" column="COLUMN_NAME"/> |
||||
|
<result property="sort" column="SORT"/> |
||||
|
<result property="level1" column="LEVEL_1"/> |
||||
|
<result property="level2" column="LEVEL_2"/> |
||||
|
<result property="level3" column="LEVEL_3"/> |
||||
|
<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> |
||||
|
|
||||
|
|
||||
|
</mapper> |
||||
@ -0,0 +1,29 @@ |
|||||
|
package com.epmet.dto.result; |
||||
|
|
||||
|
import lombok.Data; |
||||
|
import lombok.NoArgsConstructor; |
||||
|
|
||||
|
import java.io.Serializable; |
||||
|
import java.util.List; |
||||
|
|
||||
|
/** |
||||
|
* @Author zhaoqifeng |
||||
|
* @DateTime 2020/11/18 下午1:47 |
||||
|
*/ |
||||
|
@NoArgsConstructor |
||||
|
@Data |
||||
|
public class OwnerRelationResultDTO implements Serializable { |
||||
|
|
||||
|
private static final long serialVersionUID = 2876258704168954941L; |
||||
|
private String ownerName; |
||||
|
private List<UserListBean> userList; |
||||
|
|
||||
|
@NoArgsConstructor |
||||
|
@Data |
||||
|
public static class UserListBean { |
||||
|
private String userId; |
||||
|
private String userName; |
||||
|
private String isSelf; |
||||
|
private String relation; |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,12 @@ |
|||||
|
package com.epmet.service; |
||||
|
|
||||
|
/** |
||||
|
*@Description 居民信息导入service |
||||
|
*@Author wangxianzhang |
||||
|
*@Date 2021/11/4 |
||||
|
*/ |
||||
|
public interface IcResiUserImportService { |
||||
|
|
||||
|
Object importIcResiInfoFromExcel(); |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,718 @@ |
|||||
|
package com.epmet.service.impl; |
||||
|
|
||||
|
import com.alibaba.excel.EasyExcelFactory; |
||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
||||
|
import com.epmet.commons.tools.constant.ServiceConstant; |
||||
|
import com.epmet.commons.tools.dto.result.OptionResultDTO; |
||||
|
import com.epmet.commons.tools.exception.EpmetErrorCode; |
||||
|
import com.epmet.commons.tools.exception.RenException; |
||||
|
import com.epmet.commons.tools.feign.ResultDataResolver; |
||||
|
import com.epmet.commons.tools.security.user.LoginUserUtil; |
||||
|
import com.epmet.commons.tools.utils.Result; |
||||
|
import com.epmet.dao.IcResiUserDao; |
||||
|
import com.epmet.dto.*; |
||||
|
import com.epmet.dto.form.AgencyIdFormDTO; |
||||
|
import com.epmet.dto.form.CustomerFormQueryDTO; |
||||
|
import com.epmet.dto.form.HouseFormDTO; |
||||
|
import com.epmet.dto.form.LoginUserDetailsFormDTO; |
||||
|
import com.epmet.dto.result.FormItem; |
||||
|
import com.epmet.dto.result.LoginUserDetailsResultDTO; |
||||
|
import com.epmet.dto.result.OptionDTO; |
||||
|
import com.epmet.entity.IcResiUserEntity; |
||||
|
import com.epmet.excel.handler.DynamicEasyExcelListener; |
||||
|
import com.epmet.feign.EpmetAdminOpenFeignClient; |
||||
|
import com.epmet.feign.EpmetUserOpenFeignClient; |
||||
|
import com.epmet.feign.GovOrgOpenFeignClient; |
||||
|
import com.epmet.feign.OperCustomizeOpenFeignClient; |
||||
|
import com.epmet.service.IcResiUserImportService; |
||||
|
import lombok.Data; |
||||
|
import lombok.extern.slf4j.Slf4j; |
||||
|
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 java.io.File; |
||||
|
import java.util.*; |
||||
|
import java.util.stream.Collectors; |
||||
|
|
||||
|
/** |
||||
|
* @ClassName IcResiUserImportServiceImpl |
||||
|
* @Description TODO |
||||
|
* @Author wangxianzhang |
||||
|
* @Date 2021/11/4 8:53 下午 |
||||
|
* @Version 1.0 |
||||
|
*/ |
||||
|
@Slf4j |
||||
|
@Service |
||||
|
public class IcResiUserImportServiceImpl implements IcResiUserImportService, ResultDataResolver { |
||||
|
|
||||
|
public static final ThreadLocal errorRow = new ThreadLocal<ErrorRow>(); |
||||
|
|
||||
|
@Autowired |
||||
|
private LoginUserUtil loginUserUtil; |
||||
|
|
||||
|
@Autowired |
||||
|
private EpmetUserOpenFeignClient epmetUserOpenFeignClient; |
||||
|
|
||||
|
@Autowired |
||||
|
private EpmetAdminOpenFeignClient adminOpenFeignClient; |
||||
|
|
||||
|
@Autowired |
||||
|
private GovOrgOpenFeignClient govOrgOpenFeignClient; |
||||
|
|
||||
|
@Autowired |
||||
|
private OperCustomizeOpenFeignClient operCustomizeOpenFeignClient; |
||||
|
|
||||
|
@Autowired |
||||
|
private IcResiUserDao icResiUserDao; |
||||
|
|
||||
|
/** |
||||
|
* @description 列信息封装 |
||||
|
* |
||||
|
* @return |
||||
|
* @author wxz |
||||
|
* @date 2021.10.28 22:18:05 |
||||
|
*/ |
||||
|
@Data |
||||
|
public static class ColumnWrapper { |
||||
|
private String combinedLabel; |
||||
|
private String columnName; |
||||
|
private String itemType; |
||||
|
private String itemId; |
||||
|
private List<Integer> colIndexs; |
||||
|
//private List<String> colContents;
|
||||
|
// 单元格内容
|
||||
|
private String cellContent; |
||||
|
// 数据库中列的值
|
||||
|
private String colValue; |
||||
|
|
||||
|
// key:label,value:value
|
||||
|
private Map<String, String> options; |
||||
|
|
||||
|
/** |
||||
|
* 选项来源,REMOTE;LOCAL;如果是动态加载的下拉框或者CHECKBOX等的情况下使用。URL:接口获取(LABEL,VALUE);JSON:直接从JSON中取 |
||||
|
*/ |
||||
|
private String optionSourceType; |
||||
|
|
||||
|
/** |
||||
|
* 来源地址,REMOTE才有,固定格式;如果OPTIONS_SOURCE是URL,则此处填写要调用的接口的URL相对路径,例如:/API/GOV/ORG/XXXX。此处不应设置参数,若需要参数应当完全由后端,通过TOKEN信息来获取 |
||||
|
*/ |
||||
|
private String optionSourceValue; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 错误行信息 |
||||
|
*/ |
||||
|
public static class ErrorRow { |
||||
|
private String sheetName; |
||||
|
private String idCard; |
||||
|
private String name; |
||||
|
private String errorInfo; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 导入居民信息 |
||||
|
* 导入主表和所有子表信息 |
||||
|
* @return |
||||
|
*/ |
||||
|
@Override |
||||
|
public Object importIcResiInfoFromExcel() { |
||||
|
String loginUserId = loginUserUtil.getLoginUserId(); |
||||
|
String loginUserApp = loginUserUtil.getLoginUserApp(); |
||||
|
String loginUserClient = loginUserUtil.getLoginUserClient(); |
||||
|
|
||||
|
LoginUserDetailsFormDTO userForm = new LoginUserDetailsFormDTO(); |
||||
|
userForm.setApp(loginUserApp); |
||||
|
userForm.setClient(loginUserClient); |
||||
|
userForm.setUserId(loginUserId); |
||||
|
|
||||
|
LoginUserDetailsResultDTO loginUserDetails = getResultDataOrThrowsException(epmetUserOpenFeignClient.getLoginUserDetails(userForm), ServiceConstant.EPMET_USER_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), null); |
||||
|
String currUserAgencyId = loginUserDetails.getAgencyId(); |
||||
|
|
||||
|
String excelPathName = "/opt/test/基础信息表/resi_info.xls"; |
||||
|
CustomerAgencyDTO agencyInfo = getResultDataOrThrowsException(govOrgOpenFeignClient.getAgencyById(currUserAgencyId), ServiceConstant.GOV_ORG_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), null); |
||||
|
String customerId = agencyInfo.getCustomerId(); |
||||
|
|
||||
|
importIcResiBaseInfoFromExcel(excelPathName, 0, 3, currUserAgencyId, agencyInfo.getPids(), loginUserId); |
||||
|
importIcResiExtraInfoFromExcel(excelPathName, 1, 2, currUserAgencyId, loginUserId, "ic_party_member", customerId); |
||||
|
importIcResiExtraInfoFromExcel(excelPathName, 2, 2, currUserAgencyId, loginUserId, "ic_ensure_house", customerId); |
||||
|
importIcResiExtraInfoFromExcel(excelPathName, 3, 2, currUserAgencyId, loginUserId, "ic_unemployed", customerId); |
||||
|
importIcResiExtraInfoFromExcel(excelPathName, 4, 2, currUserAgencyId, loginUserId, "ic_veterans", customerId); |
||||
|
importIcResiExtraInfoFromExcel(excelPathName, 5, 2, currUserAgencyId, loginUserId, "ic_united_front", customerId); |
||||
|
importIcResiExtraInfoFromExcel(excelPathName, 6, 3, currUserAgencyId, loginUserId, "ic_volunteer", customerId); |
||||
|
importIcResiExtraInfoFromExcel(excelPathName, 7, 2, currUserAgencyId, loginUserId, "ic_old_people", customerId); |
||||
|
importIcResiExtraInfoFromExcel(excelPathName, 8, 3, currUserAgencyId, loginUserId, "ic_special", customerId); |
||||
|
|
||||
|
return null; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* excel导入居民基本信息 |
||||
|
* @param sheetNo |
||||
|
* @param headRowNumber |
||||
|
* @param currUserAgencyId |
||||
|
* @param currUserAgencyPids |
||||
|
* @param currentUserId |
||||
|
* @return |
||||
|
*/ |
||||
|
private Object importIcResiBaseInfoFromExcel(String excelPathName, int sheetNo, int headRowNumber, String currUserAgencyId, String currUserAgencyPids, String currentUserId) { |
||||
|
DynamicEasyExcelListener readListener = new DynamicEasyExcelListener(); |
||||
|
EasyExcelFactory.read(new File(excelPathName)).registerReadListener(readListener).headRowNumber(headRowNumber).sheet(sheetNo).doRead(); |
||||
|
|
||||
|
List<Map<Integer, String>> headList = readListener.getHeadList(); |
||||
|
List<Map<Integer, String>> dataList = readListener.getDataList(); |
||||
|
|
||||
|
Map<Integer, List<String>> headers = mergeHead(headList); |
||||
|
|
||||
|
// 查询form相关信息
|
||||
|
List<FormItem> customerItems = listFormItems("resi_base_info"); |
||||
|
|
||||
|
// 清洗表头数据
|
||||
|
Map<Integer, String> abandonedHeaders = washHeaders(headers, customerItems); |
||||
|
|
||||
|
//合并多级表头
|
||||
|
HashMap<String, List<Integer>> combinedHeaders = combineHeaders(headers); |
||||
|
|
||||
|
// 得到客户配置item数据
|
||||
|
Map<String, FormItem> formItemMap = customerItems.stream().collect( |
||||
|
Collectors.toMap(formItem -> { |
||||
|
String groupLabel = formItem.getGroupLabel(); |
||||
|
String label = formItem.getLabel(); |
||||
|
if (StringUtils.isNotBlank(groupLabel)) { |
||||
|
return groupLabel.concat(":").concat(label); |
||||
|
} else { |
||||
|
return label; |
||||
|
} |
||||
|
}, formItem -> formItem) |
||||
|
); |
||||
|
Map<String, ColumnWrapper> headerColumnWrapper = convertExcelHeaders2DBColumnWrappers(formItemMap, combinedHeaders, dataList, abandonedHeaders); |
||||
|
|
||||
|
// 持久化
|
||||
|
persistIcResiBaseInfo(headerColumnWrapper, dataList, currUserAgencyId, abandonedHeaders, currUserAgencyPids, currentUserId); |
||||
|
|
||||
|
return headers; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* excel导入居民附加信息 |
||||
|
* @param excelPathName |
||||
|
* @param sheetNo |
||||
|
* @param headRowNumber |
||||
|
* @param currUserAgencyId |
||||
|
* @param currentUserId |
||||
|
* @param targetTableName 要插入哪一个表 |
||||
|
* @return |
||||
|
*/ |
||||
|
private Object importIcResiExtraInfoFromExcel(String excelPathName, int sheetNo, int headRowNumber, String currUserAgencyId, String currentUserId, |
||||
|
String targetTableName, String customerId) { |
||||
|
DynamicEasyExcelListener readListener = new DynamicEasyExcelListener(); |
||||
|
EasyExcelFactory.read(new File(excelPathName)).registerReadListener(readListener).headRowNumber(headRowNumber).sheet(sheetNo).doRead(); |
||||
|
|
||||
|
List<Map<Integer, String>> headList = readListener.getHeadList(); |
||||
|
List<Map<Integer, String>> dataList = readListener.getDataList(); |
||||
|
|
||||
|
Map<Integer, List<String>> headers = mergeHead(headList); |
||||
|
|
||||
|
// 查询form相关信息
|
||||
|
List<FormItem> customerItems = listFormItems("resi_base_info"); |
||||
|
|
||||
|
// 清洗表头数据
|
||||
|
Map<Integer, String> abandonedHeaders = washHeaders(headers, customerItems); |
||||
|
|
||||
|
//合并多级表头
|
||||
|
HashMap<String, List<Integer>> combinedHeaders = combineHeaders(headers); |
||||
|
|
||||
|
// 得到客户配置item数据
|
||||
|
Map<String, FormItem> formItemMap = customerItems.stream().collect( |
||||
|
Collectors.toMap(formItem -> { |
||||
|
String groupLabel = formItem.getGroupLabel(); |
||||
|
String label = formItem.getLabel(); |
||||
|
if (StringUtils.isNotBlank(groupLabel)) { |
||||
|
return groupLabel.concat(":").concat(label); |
||||
|
} else { |
||||
|
return label; |
||||
|
} |
||||
|
}, formItem -> formItem) |
||||
|
); |
||||
|
Map<String, ColumnWrapper> headerColumnWrapper = convertExcelHeaders2DBColumnWrappers(formItemMap, combinedHeaders, dataList, abandonedHeaders); |
||||
|
persistIcResiExtraInfo(headerColumnWrapper, dataList, currUserAgencyId, abandonedHeaders, currentUserId, targetTableName, customerId); |
||||
|
return headerColumnWrapper; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 持久化IC居民基础信息 |
||||
|
* @param headerColumnWrapper 数据库列包装信息 |
||||
|
* @param dataRows 数据行集合 |
||||
|
* @param currUserAgencyId 当前用户的组织id |
||||
|
* @param checkBoxOptionColumnIdxAndLabel 复选框的列号&label中文 |
||||
|
*/ |
||||
|
private void persistIcResiBaseInfo(Map<String, ColumnWrapper> headerColumnWrapper, List<Map<Integer, String>> dataRows, |
||||
|
String currUserAgencyId, Map<Integer, String> checkBoxOptionColumnIdxAndLabel, |
||||
|
String currUserAgencyPids, String currentUserId) { |
||||
|
|
||||
|
// 遍历每一行,将行内容转化为
|
||||
|
for (Map<Integer, String> row : dataRows) { |
||||
|
|
||||
|
LinkedHashMap<String, String> columnAndValues = convertColumnWrappers2Map4Persist(headerColumnWrapper, row, currUserAgencyId, checkBoxOptionColumnIdxAndLabel); |
||||
|
|
||||
|
columnAndValues.put("IS_ENSURE_HOUSE", "0"); |
||||
|
columnAndValues.put("IS_OLD_PEOPLE", "0"); |
||||
|
columnAndValues.put("IS_PARTY", "0"); |
||||
|
columnAndValues.put("IS_SPECIAL", "0"); |
||||
|
columnAndValues.put("IS_UNEMPLOYED", "0"); |
||||
|
columnAndValues.put("IS_UNITED_FRONT", "0"); |
||||
|
columnAndValues.put("IS_VETERANS", "0"); |
||||
|
columnAndValues.put("IS_VOLUNTEER", "0"); |
||||
|
|
||||
|
columnAndValues.put("AGENCY_ID", currUserAgencyId); |
||||
|
columnAndValues.put("PIDS", currUserAgencyPids); |
||||
|
columnAndValues.put("CUSTOMER_ID", loginUserUtil.getCurrentCustomerId()); |
||||
|
columnAndValues.put("CREATED_BY", currentUserId); |
||||
|
columnAndValues.put("UPDATED_BY", currentUserId); |
||||
|
columnAndValues.put("ID", UUID.randomUUID().toString().replace("-", "")); |
||||
|
|
||||
|
// 验证居民信息是否存在
|
||||
|
String idCard = columnAndValues.get("ID_CARD"); |
||||
|
LambdaQueryWrapper<IcResiUserEntity> idCardQuery = new LambdaQueryWrapper<>(); |
||||
|
idCardQuery.eq(IcResiUserEntity::getIdCard, idCard); |
||||
|
|
||||
|
if (icResiUserDao.selectCount(idCardQuery) > 0) { |
||||
|
log.info("身份证号为【{}】的居民信息已存在,跳过导入", idCard); |
||||
|
} |
||||
|
|
||||
|
icResiUserDao.add("ic_resi_user", columnAndValues); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 持久化IC居民附加信息 |
||||
|
* @param headerColumnWrapper 数据库列包装信息 |
||||
|
* @param dataRows 数据行集合 |
||||
|
* @param currUserAgencyId 当前用户的组织id |
||||
|
* @param checkBoxOptionColumnIdxAndLabel 复选框的列号&label中文 |
||||
|
* @param targetTableName 要插入到哪一个表 |
||||
|
*/ |
||||
|
private void persistIcResiExtraInfo(Map<String, ColumnWrapper> headerColumnWrapper, List<Map<Integer, String>> dataRows, |
||||
|
String currUserAgencyId, Map<Integer, String> checkBoxOptionColumnIdxAndLabel, |
||||
|
String currentUserId, String targetTableName, String customerId) { |
||||
|
|
||||
|
// 遍历每一行,将行内容转化为
|
||||
|
for (Map<Integer, String> row : dataRows) { |
||||
|
|
||||
|
LinkedHashMap<String, String> columnAndValues = convertColumnWrappers2Map4Persist(headerColumnWrapper, row, currUserAgencyId, checkBoxOptionColumnIdxAndLabel); |
||||
|
|
||||
|
// 检验身份证号
|
||||
|
String idCard = columnAndValues.get("ID_CARD"); |
||||
|
if (StringUtils.isBlank(idCard)) { |
||||
|
throw new RenException(EpmetErrorCode.IDCARDNO_ERROR.getCode(), String.format("用户【%s】身份证号未填写或格式错误", columnAndValues.get("NAME"))); |
||||
|
} |
||||
|
|
||||
|
// 检查用户是否存在
|
||||
|
LambdaQueryWrapper<IcResiUserEntity> idCardQuery = new LambdaQueryWrapper<>(); |
||||
|
idCardQuery.eq(IcResiUserEntity::getIdCard, idCard); |
||||
|
|
||||
|
IcResiUserEntity icResiUserBaseInfo = icResiUserDao.selectOne(idCardQuery); |
||||
|
if (icResiUserBaseInfo == null) { |
||||
|
throw new RenException(EpmetErrorCode.RESI_NOT_FOUND.getCode(), String.format("身份证号为【%s】的居民信息未找到,请确认该居民信息存在", idCard)); |
||||
|
} |
||||
|
|
||||
|
String icResiId = icResiUserBaseInfo.getId(); |
||||
|
|
||||
|
// 验证党员信息是否存在
|
||||
|
if (CollectionUtils.isNotEmpty(icResiUserDao.selectSubTableRecords(customerId, icResiId, targetTableName))) { |
||||
|
log.info("身份证号为【{}】的居民【{}】信息已存在,跳过导入", idCard, targetTableName); |
||||
|
continue; |
||||
|
} |
||||
|
|
||||
|
columnAndValues.put("IC_RESI_USER", icResiId); |
||||
|
|
||||
|
columnAndValues.put("CUSTOMER_ID", loginUserUtil.getCurrentCustomerId()); |
||||
|
columnAndValues.put("CREATED_BY", currentUserId); |
||||
|
columnAndValues.put("UPDATED_BY", currentUserId); |
||||
|
columnAndValues.put("ID", UUID.randomUUID().toString().replace("-", "")); |
||||
|
|
||||
|
columnAndValues = removeNeedlessColumns(columnAndValues); |
||||
|
|
||||
|
icResiUserDao.add(targetTableName, columnAndValues); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 去掉多余的列 |
||||
|
* @param originColumnAndValues |
||||
|
* @return |
||||
|
*/ |
||||
|
private LinkedHashMap<String, String> removeNeedlessColumns(LinkedHashMap<String, String> originColumnAndValues) { |
||||
|
List<String> needlessColumns = Arrays.asList("GRID_ID", "VILLAGE_ID", "BUILD_ID", "UNIT_ID", "HOME_ID", |
||||
|
"IS_BDHJ", "NAME", "MOBILE", "GENDER", "ID_CARD", |
||||
|
"BIRTHDAY", "CONTACTS", "CONTACTS_MOBILE"); |
||||
|
|
||||
|
LinkedHashMap<String, String> newMap = new LinkedHashMap(); |
||||
|
|
||||
|
originColumnAndValues.entrySet().forEach(b -> { |
||||
|
if (!needlessColumns.contains(b.getKey())) { |
||||
|
newMap.put(b.getKey(), b.getValue()); |
||||
|
} |
||||
|
}); |
||||
|
|
||||
|
return newMap; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 将当前行数据转化成LinkedHashMap,供后续插入 |
||||
|
* @param headerColumnWrapper 当前行的ColumnWrapper,每一个ColumnWrapper元素都是当前行中的一个列 |
||||
|
* @param row 当前行数据 |
||||
|
* @param currUserAgencyId 当前用户所属机构ID |
||||
|
* @param checkBoxOptionColumnIdxAndLabel 复选框options列表。key:列号,value:复选框中文 |
||||
|
* @return |
||||
|
*/ |
||||
|
private LinkedHashMap<String, String> convertColumnWrappers2Map4Persist(Map<String, ColumnWrapper> headerColumnWrapper, Map<Integer, String> row, |
||||
|
String currUserAgencyId, Map<Integer, String> checkBoxOptionColumnIdxAndLabel) { |
||||
|
LinkedHashMap<String, String> columnAndValues = new LinkedHashMap<>(); |
||||
|
|
||||
|
for (Map.Entry<String, ColumnWrapper> columnWrapperEntry : headerColumnWrapper.entrySet()) { |
||||
|
|
||||
|
ColumnWrapper columnWrapper = columnWrapperEntry.getValue(); |
||||
|
if ("input".equals(columnWrapper.getItemType()) |
||||
|
|| "textarea".equals(columnWrapper.getItemType()) |
||||
|
|| "datepicker".equals(columnWrapper.getItemType()) |
||||
|
|| "daterange".equals(columnWrapper.getItemType()) |
||||
|
) { |
||||
|
|
||||
|
String cellContent = row.get(columnWrapper.getColIndexs().get(0)); |
||||
|
columnWrapper.setCellContent(cellContent); |
||||
|
columnWrapper.setColValue(cellContent); |
||||
|
|
||||
|
} else if ("select".equals(columnWrapper.getItemType()) |
||||
|
|| "radio".equals(columnWrapper.getItemType())){ |
||||
|
|
||||
|
String optionSourceType = columnWrapper.getOptionSourceType(); |
||||
|
// 取单元格的内容
|
||||
|
String cellContent = row.get(columnWrapper.getColIndexs().get(0)); |
||||
|
columnWrapper.setCellContent(cellContent); |
||||
|
|
||||
|
if ("local".equals(optionSourceType)) { |
||||
|
// 根据单元格内容,取到指定的option
|
||||
|
Map<String, String> options = columnWrapper.getOptions(); |
||||
|
String colValue = options.get(cellContent); |
||||
|
columnWrapper.setColValue(colValue); |
||||
|
} else { |
||||
|
// remote类型
|
||||
|
|
||||
|
Map<String, String> options = listRemoteOptions(headerColumnWrapper, columnWrapper.getOptionSourceValue(), currUserAgencyId); |
||||
|
String colValue = options.get(cellContent); |
||||
|
columnWrapper.setColValue(colValue); |
||||
|
} |
||||
|
} else if ("checkbox".equals(columnWrapper.getItemType())) { |
||||
|
String checkBoxColValue = getCheckBoxColValue(columnWrapper, row, checkBoxOptionColumnIdxAndLabel); |
||||
|
columnWrapper.setColValue(checkBoxColValue); |
||||
|
} |
||||
|
columnAndValues.put(columnWrapper.columnName, columnWrapper.colValue); |
||||
|
} |
||||
|
|
||||
|
return columnAndValues; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 根据formCode查询该form的item列表 |
||||
|
* @param formCode |
||||
|
* @return |
||||
|
*/ |
||||
|
private List<FormItem> listFormItems(String formCode) { |
||||
|
CustomerFormQueryDTO form = new CustomerFormQueryDTO(); |
||||
|
form.setFormCode(formCode); |
||||
|
Result<List<FormItem>> result = operCustomizeOpenFeignClient.listItems(form); |
||||
|
return getResultDataOrThrowsException(result, ServiceConstant.OPER_CUSTOMIZE_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "【居民信息excel导入】查询表单相关信息失败"); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* @description 合并头 |
||||
|
* |
||||
|
* @param headers |
||||
|
* @return |
||||
|
* @author wxz |
||||
|
* @date 2021.10.28 21:27:18 |
||||
|
*/ |
||||
|
private HashMap<String, List<Integer>> combineHeaders(Map<Integer, List<String>> headers) { |
||||
|
HashMap<String, List<Integer>> itemAndColIndexs = new LinkedHashMap<>(); |
||||
|
|
||||
|
headers.forEach((k, v) -> { |
||||
|
String tempKey = String.join(":", v); |
||||
|
List<Integer> colIndexs = itemAndColIndexs.get(tempKey); |
||||
|
if (colIndexs == null) { |
||||
|
colIndexs = new ArrayList<>(); |
||||
|
itemAndColIndexs.put(tempKey, colIndexs); |
||||
|
} |
||||
|
colIndexs.add(k); |
||||
|
}); |
||||
|
|
||||
|
return itemAndColIndexs; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* @description 洗头 |
||||
|
* |
||||
|
* @param headers |
||||
|
* @param items |
||||
|
* @return |
||||
|
* @author wxz |
||||
|
* @date 2021.10.28 21:07:12 |
||||
|
*/ |
||||
|
private Map<Integer, String> washHeaders(Map<Integer, List<String>> headers, List<FormItem> items) { |
||||
|
List<String> itemLabels = items.stream().map(i -> i.getLabel()).collect(Collectors.toList()); |
||||
|
Map<Integer, String> abandonedHeaders = new HashMap<>(); |
||||
|
for (Map.Entry<Integer, List<String>> entry:headers.entrySet()) { |
||||
|
Integer colIdx = entry.getKey(); |
||||
|
List<String> v = entry.getValue(); |
||||
|
int lastPartIndex = v.size() - 1; |
||||
|
String lastValuePart = v.get(lastPartIndex); |
||||
|
if (!itemLabels.contains(lastValuePart)) { |
||||
|
// 该部分为options,它的上一级是item,那么去掉options这一级
|
||||
|
v.remove(lastPartIndex); |
||||
|
abandonedHeaders.put(colIdx, lastValuePart); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
return abandonedHeaders; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* @description 数据整合,将excel表头汉字信息转化成ColumnWrapper列封装数据 |
||||
|
* * key:itemId |
||||
|
* * value:ColumnWrapper列包装信息 |
||||
|
* @param formItemMap item map |
||||
|
* key:itemId; |
||||
|
* value: 合并之后的head字符串,例如:健康信息:监护人 |
||||
|
* @param combinedHeaders 合并之后的head信息。 |
||||
|
* key:合并之后head字符串(例如:党员信息:入党时间); |
||||
|
* value:列号组成的列表(例如[1,2,3]) |
||||
|
* @param datas |
||||
|
* @param abandonedHeaders |
||||
|
* @return |
||||
|
*/ |
||||
|
private Map<String, ColumnWrapper> convertExcelHeaders2DBColumnWrappers(Map<String, FormItem> formItemMap, Map<String, List<Integer>> combinedHeaders, |
||||
|
List<Map<Integer, String>> datas, Map<Integer, String> abandonedHeaders) { |
||||
|
|
||||
|
// HashMap<String, List<ColumnWrapper>> tables = new HashMap<>();
|
||||
|
Map<String, ColumnWrapper> columns = new LinkedHashMap<>(combinedHeaders.size()); |
||||
|
|
||||
|
for (Map.Entry<String, List<Integer>> entry : combinedHeaders.entrySet()) { |
||||
|
String combinedHeader = entry.getKey(); |
||||
|
|
||||
|
FormItem item = formItemMap.get(combinedHeader); |
||||
|
|
||||
|
if (item == null) { |
||||
|
// 如果数据库中没有该项,可能是用户自己定义的项,忽略
|
||||
|
continue; |
||||
|
} |
||||
|
|
||||
|
ColumnWrapper columnWrapper = new ColumnWrapper(); |
||||
|
|
||||
|
// 填充options
|
||||
|
columnWrapper.setItemType(item.getItemType()); |
||||
|
columnWrapper.setItemId(item.getItemId()); |
||||
|
String groupLabel = item.getGroupLabel(); |
||||
|
String combinedLabel = StringUtils.isBlank(groupLabel) ? item.getLabel() : groupLabel.concat(":").concat(item.getLabel()); |
||||
|
columnWrapper.setCombinedLabel(combinedLabel); |
||||
|
columnWrapper.setColumnName(item.getColumnName()); |
||||
|
columnWrapper.setColIndexs(entry.getValue()); |
||||
|
|
||||
|
columnWrapper.setOptionSourceType(item.getOptionSourceType()); |
||||
|
columnWrapper.setOptionSourceValue(item.getOptionSourceValue()); |
||||
|
columnWrapper.setOptions(item.getOptions().stream().collect(Collectors.toMap(OptionDTO::getLabel, OptionDTO::getValue))); |
||||
|
|
||||
|
columns.put(item.getItemId(), columnWrapper); |
||||
|
} |
||||
|
return columns; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 获取checkbox列值 |
||||
|
* @param columnWrapper 数据库列包装信息,每一列跳数据对应数据库的一个列 |
||||
|
* @param dataRow 数据行,每一条都是一行中的一个单元格 |
||||
|
* @param checkboxOptions 复选框的选项。k: 列号, value: checkboxlabel中文 |
||||
|
* @return |
||||
|
*/ |
||||
|
private String getCheckBoxColValue(ColumnWrapper columnWrapper, Map<Integer, String> dataRow, Map<Integer, String> checkboxOptions) { |
||||
|
|
||||
|
Map<String, String> options = columnWrapper.getOptions(); |
||||
|
List<Integer> colIndexs = columnWrapper.getColIndexs(); |
||||
|
|
||||
|
List<String> optionValues = colIndexs.stream().filter(i -> { |
||||
|
String cellContent = dataRow.get(i); |
||||
|
return StringUtils.isNotBlank(cellContent) && cellContent.equals("是"); |
||||
|
}).map(i -> { |
||||
|
String checkboxOptionLabel = checkboxOptions.get(i); |
||||
|
return options.get(checkboxOptionLabel); |
||||
|
}).collect(Collectors.toList()); |
||||
|
|
||||
|
return String.join(",", optionValues); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* @description 合并表头 |
||||
|
* Map<Integer, List<String>> |
||||
|
* |
||||
|
* @param headList |
||||
|
* @return |
||||
|
* @author wxz |
||||
|
* @date 2021.10.27 16:17:34 |
||||
|
*/ |
||||
|
private Map<Integer, List<String>> mergeHead(List<Map<Integer, String>> headList) { |
||||
|
|
||||
|
Map<Integer, String> lastNotNullHeads = new LinkedHashMap<>(); |
||||
|
|
||||
|
Map<Integer, List<String>> mergedHead = new LinkedHashMap<>(); |
||||
|
|
||||
|
int levelCount = headList.size(); |
||||
|
|
||||
|
Map<Integer, String> firstLevel = headList.get(0); |
||||
|
|
||||
|
// 遍历所有列
|
||||
|
for (Map.Entry<Integer, String> column : firstLevel.entrySet()) { |
||||
|
Integer columIndex = column.getKey(); |
||||
|
|
||||
|
List<String> labels = new ArrayList<>(); |
||||
|
|
||||
|
// 竖着遍历该列的所有行
|
||||
|
for (int currentLevel = 0; currentLevel < levelCount; currentLevel ++) { |
||||
|
String label = headList.get(currentLevel).get(columIndex); |
||||
|
|
||||
|
if (StringUtils.isNotBlank(label)) { |
||||
|
lastNotNullHeads.put(currentLevel, label); |
||||
|
} else { |
||||
|
if (currentLevel == 0 || StringUtils.isBlank(headList.get(currentLevel - 1).get(columIndex))) { |
||||
|
label = lastNotNullHeads.get(currentLevel); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
if (StringUtils.isNotBlank(label)) { |
||||
|
labels.add(label); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
mergedHead.put(columIndex, labels); |
||||
|
} |
||||
|
|
||||
|
return mergedHead; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 远程获取options |
||||
|
* @param fullUri |
||||
|
* @return |
||||
|
*/ |
||||
|
public Map<String, String> listRemoteOptions(Map<String, ColumnWrapper> columnWrappers, String fullUri, String currUserAgencyId) { |
||||
|
String pureUri = null; |
||||
|
String cascadeItemId = null; |
||||
|
ColumnWrapper cascadeItemColumnWrapper = null; |
||||
|
|
||||
|
if (fullUri.indexOf("?") != -1) { |
||||
|
String[] uriParts = fullUri.split("\\?"); |
||||
|
pureUri = uriParts[0]; |
||||
|
cascadeItemId = uriParts[1]; |
||||
|
|
||||
|
// 根据uri上的id,找到关联的itemid,从而找到关联的item的值
|
||||
|
if (columnWrappers != null){ |
||||
|
cascadeItemColumnWrapper = columnWrappers.get(cascadeItemId); |
||||
|
} |
||||
|
} else { |
||||
|
pureUri = fullUri; |
||||
|
} |
||||
|
|
||||
|
List<OptionResultDTO> options = null; |
||||
|
|
||||
|
switch (pureUri) { |
||||
|
case "/epmetuser/icresidemanddict/demandoption": |
||||
|
options = getResultDataOrThrowsException(epmetUserOpenFeignClient.getDemandOptions(), ServiceConstant.EPMET_USER_SERVER, |
||||
|
EpmetErrorCode.SERVER_ERROR.getCode(), null); |
||||
|
break; |
||||
|
case "/gov/org/customergrid/gridoption": |
||||
|
AgencyIdFormDTO form = new AgencyIdFormDTO(); |
||||
|
form.setAgencyId(currUserAgencyId); |
||||
|
options = getResultDataOrThrowsException(govOrgOpenFeignClient.getGridOption(form), ServiceConstant.GOV_ORG_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), null); |
||||
|
break; |
||||
|
case "/gov/org/customerpartybranch/branchoption": |
||||
|
|
||||
|
CustomerPartyBranchDTO bform = new CustomerPartyBranchDTO(); |
||||
|
bform.setGridId(cascadeItemColumnWrapper.getColValue()); |
||||
|
options = getResultDataOrThrowsException(govOrgOpenFeignClient.getBranchOption(bform), ServiceConstant.GOV_ORG_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), null); |
||||
|
break; |
||||
|
case "/gov/org/icbuilding/buildingoption": |
||||
|
IcBuildingDTO buildingform = new IcBuildingDTO(); |
||||
|
buildingform.setNeighborHoodId(cascadeItemColumnWrapper.getColValue()); |
||||
|
options = getResultDataOrThrowsException(govOrgOpenFeignClient.getBuildingOptions(buildingform), ServiceConstant.GOV_ORG_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), null); |
||||
|
break; |
||||
|
case "/gov/org/icbuildingunit/unitoption": |
||||
|
IcBuildingUnitDTO buForm = new IcBuildingUnitDTO(); |
||||
|
buForm.setBuildingId(cascadeItemColumnWrapper.getColValue()); |
||||
|
options = getResultDataOrThrowsException(govOrgOpenFeignClient.getUnitOptions(buForm), ServiceConstant.GOV_ORG_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), null); |
||||
|
break; |
||||
|
case "/gov/org/ichouse/houseoption": |
||||
|
HouseFormDTO hform = new HouseFormDTO(); |
||||
|
hform.setUnitId(cascadeItemColumnWrapper.getColValue()); |
||||
|
options = getResultDataOrThrowsException(govOrgOpenFeignClient.getHouseOption(hform), ServiceConstant.GOV_ORG_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), null); |
||||
|
break; |
||||
|
case "/gov/org/icneighborhood/neighborhoodoption": |
||||
|
IcNeighborHoodDTO nform = new IcNeighborHoodDTO(); |
||||
|
nform.setAgencyId(currUserAgencyId); |
||||
|
nform.setGridId(cascadeItemColumnWrapper.getColValue()); |
||||
|
options = getResultDataOrThrowsException(govOrgOpenFeignClient.getNeighborHoodOptions(nform), ServiceConstant.GOV_ORG_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), null); |
||||
|
break; |
||||
|
case "/sys/dict/data/education": |
||||
|
options = getResultDataOrThrowsException(adminOpenFeignClient.getEducationOption(), ServiceConstant.GOV_ORG_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), null); |
||||
|
break; |
||||
|
case "/sys/dict/data/house": |
||||
|
options = getResultDataOrThrowsException(adminOpenFeignClient.getHouseOption(), ServiceConstant.GOV_ORG_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), null); |
||||
|
break; |
||||
|
case "/sys/dict/data/nation": |
||||
|
options = getResultDataOrThrowsException(adminOpenFeignClient.getNationOption(), ServiceConstant.GOV_ORG_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), null); |
||||
|
break; |
||||
|
case "/sys/dict/data/ninesmallplaces": |
||||
|
options = getResultDataOrThrowsException(adminOpenFeignClient.getNineSmallPlacesOption(), ServiceConstant.GOV_ORG_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), null); |
||||
|
break; |
||||
|
case "/sys/dict/data/relationship": |
||||
|
options = getResultDataOrThrowsException(adminOpenFeignClient.getRelationshipOption(), ServiceConstant.GOV_ORG_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), null); |
||||
|
break; |
||||
|
|
||||
|
} |
||||
|
|
||||
|
if (options == null) { |
||||
|
return null; |
||||
|
} |
||||
|
|
||||
|
return options.stream().collect(Collectors.toMap(OptionResultDTO::getLabel, OptionResultDTO::getValue)); |
||||
|
|
||||
|
// 通用api调用,无法实现
|
||||
|
/*if (!uri.startsWith("/api")) uri = "/api".concat(uri); |
||||
|
|
||||
|
NamingService namingService = discoveryProperties.namingServiceInstance(); |
||||
|
ResponseEntity<Result<List<OptionResultDTO>>> response = null; |
||||
|
try { |
||||
|
// 调用gateway服务,查询相关接口
|
||||
|
Instance gatewayInstance = namingService.getAllInstances(ServiceConstant.EPMET_GATEWAY).get(0); |
||||
|
String ip = gatewayInstance.getIp(); |
||||
|
int port = gatewayInstance.getPort(); |
||||
|
|
||||
|
String url = String.format("http://%s:%s%s", ip, port, uri); |
||||
|
|
||||
|
ParameterizedTypeReference<Result<List<OptionResultDTO>>> tr = new ParameterizedTypeReference<Result<List<OptionResultDTO>>>() {}; |
||||
|
response = new RestTemplate().exchange(url, HttpMethod.POST, null, tr); |
||||
|
} catch (NacosException e) { |
||||
|
e.printStackTrace(); |
||||
|
} |
||||
|
|
||||
|
if (response != null && (response.getStatusCode() == HttpStatus.OK)) { |
||||
|
List<OptionResultDTO> options = response.getBody().getData(); |
||||
|
if (options == null) { |
||||
|
System.out.println(6); |
||||
|
} |
||||
|
return options.stream().collect(Collectors.toMap(OptionResultDTO::getLabel, OptionResultDTO::getValue)); |
||||
|
} else { |
||||
|
throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode()); |
||||
|
}*/ |
||||
|
|
||||
|
} |
||||
|
|
||||
|
} |
||||
Loading…
Reference in new issue