diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/DictTypeEnum.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/DictTypeEnum.java
index 7afc85aab1..6375462f14 100644
--- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/DictTypeEnum.java
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/DictTypeEnum.java
@@ -22,6 +22,7 @@ public enum DictTypeEnum {
AGE_GROUP("age_group", "年龄范围", 11),
PATROL_WORK_TYPE("patrol_work_type", "例行工作分类", 13),
GRID_TYPE("grid_type", "网格类型", 12),
+ ITEM_TYPE_QUERY("item_type_query","居民信息组件查询方式",14),
;
private final String code;
diff --git a/epmet-gateway/pom.xml b/epmet-gateway/pom.xml
index 506dea4834..2853e361aa 100644
--- a/epmet-gateway/pom.xml
+++ b/epmet-gateway/pom.xml
@@ -289,6 +289,7 @@
lb://epmet-demo-server
lb://oper-customize-server
+
lb://oper-crm-server
diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/IcExportTemplateDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/IcExportTemplateDTO.java
index b17950a528..f8b99ea367 100644
--- a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/IcExportTemplateDTO.java
+++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/IcExportTemplateDTO.java
@@ -26,6 +26,16 @@ public class IcExportTemplateDTO implements Serializable {
*/
private String customerId;
+ /**
+ * 所属机关ID(customer_agency.id)
+ */
+ private String agencyId;
+
+ /**
+ * 所有上级组织机构ID(以英文:隔开)包含本身id
+ */
+ private String pids;
+
/**
* 表单CODE,从字典获取
*/
diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/IcExportItemListFormDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/IcExportItemListFormDTO.java
index b1b340a34a..eaf2c0d8d4 100644
--- a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/IcExportItemListFormDTO.java
+++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/IcExportItemListFormDTO.java
@@ -21,7 +21,7 @@ public class IcExportItemListFormDTO implements Serializable {
private static final long serialVersionUID = 1L;
@NotEmpty(message = "请至少添加一个导出项")
- private List subItemList;
+ private List children;
/**
* 父id
@@ -50,5 +50,20 @@ public class IcExportItemListFormDTO implements Serializable {
*/
private Integer sort;
+ /**
+ * 表名
+ */
+ private String tableName;
+
+ /**
+ * 列名
+ */
+ private String columnName;
+
+ /**
+ * 只有远程获取的才有值
+ */
+ private String optionSourceValue;
+
}
diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/IcExportTemplateQueryFormDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/IcExportTemplateQueryFormDTO.java
index 9c97e6a75b..0b5f472f72 100644
--- a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/IcExportTemplateQueryFormDTO.java
+++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/IcExportTemplateQueryFormDTO.java
@@ -29,14 +29,4 @@ public class IcExportTemplateQueryFormDTO implements Serializable {
@NotBlank(message = "客户Id不能为空",groups = ExportGroup.class)
private String customerId;
- /**
- * 表单CODE,从字典获取
- */
- private String formCode;
-
- /**
- * 模板名称
- */
- private String name;
-
}
diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/IcCustomExportResultDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/IcCustomExportResultDTO.java
index d3ff2b2e22..3b5ad1cdf2 100644
--- a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/IcCustomExportResultDTO.java
+++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/IcCustomExportResultDTO.java
@@ -40,8 +40,11 @@ public class IcCustomExportResultDTO implements Serializable {
@AllArgsConstructor
@Data
public static class SqlColumn {
+ private String itemId;
private String tableName;
private String columnName;
+ private String optionSourceType;
+ private String optionSourceValue;
}
}
diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/IcExportTemplateForExportResultDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/IcExportTemplateForExportResultDTO.java
index a40407d03b..3e00f6e072 100644
--- a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/IcExportTemplateForExportResultDTO.java
+++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/IcExportTemplateForExportResultDTO.java
@@ -21,10 +21,6 @@ public class IcExportTemplateForExportResultDTO implements Serializable {
*/
private String id;
- /**
- * 模板主键id
- */
- private String tempId;
/**
* 父id
@@ -59,9 +55,8 @@ public class IcExportTemplateForExportResultDTO implements Serializable {
* 列名
*/
private String columnName;
- /**
- * 只有远程获取的才有值
- */
+
private String optionSourceValue;
+ private String optionSourceType;
}
diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/OperCustomizeOpenFeignClient.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/OperCustomizeOpenFeignClient.java
index fbf479ac9a..9821cee4c2 100644
--- a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/OperCustomizeOpenFeignClient.java
+++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/OperCustomizeOpenFeignClient.java
@@ -169,4 +169,11 @@ public interface OperCustomizeOpenFeignClient {
*/
@PostMapping("/oper/customize/icExportTemplate/getExcelHeaderAndSqlColumnForExport")
Result getExcelHeaderAndSqlColumnForExport(@RequestBody IcExportTemplateQueryFormDTO param);
+
+ /**
+ * @author sun
+ * @Description 居民信息自定义模板导出--保存模板
+ */
+ @PostMapping("/oper/customize/icExportTemplate/save")
+ Result> save(@RequestBody IcExportTemplateSaveFormDTO formDTO);
}
diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/fallback/OperCustomizeOpenFeignClientFallback.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/fallback/OperCustomizeOpenFeignClientFallback.java
index e55eb3bb92..29b366203f 100644
--- a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/fallback/OperCustomizeOpenFeignClientFallback.java
+++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/fallback/OperCustomizeOpenFeignClientFallback.java
@@ -129,4 +129,9 @@ public class OperCustomizeOpenFeignClientFallback implements OperCustomizeOpenFe
public Result getExcelHeaderAndSqlColumnForExport(IcExportTemplateQueryFormDTO param) {
return ModuleUtils.feignConError(ServiceConstant.OPER_CUSTOMIZE_SERVER, "getExcelHeaderAndSqlColumnForExport", param);
}
+
+ @Override
+ public Result> save(IcExportTemplateSaveFormDTO formDTO) {
+ return ModuleUtils.feignConError(ServiceConstant.OPER_CUSTOMIZE_SERVER, "save", formDTO);
+ }
}
diff --git a/epmet-module/oper-customize/oper-customize-server/pom.xml b/epmet-module/oper-customize/oper-customize-server/pom.xml
index 71b33b7510..f98d34991c 100644
--- a/epmet-module/oper-customize/oper-customize-server/pom.xml
+++ b/epmet-module/oper-customize/oper-customize-server/pom.xml
@@ -89,6 +89,12 @@
2.0.0
compile
+
+ com.epmet
+ epmet-admin-client
+ 2.0.0
+ compile
+
diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcExportTemplateController.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcExportTemplateController.java
index e9343b87af..739f3f4a08 100644
--- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcExportTemplateController.java
+++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcExportTemplateController.java
@@ -11,10 +11,12 @@ import com.epmet.dto.IcExportTemplateDTO;
import com.epmet.dto.form.IcExportTemplateQueryFormDTO;
import com.epmet.dto.form.IcExportTemplateSaveFormDTO;
import com.epmet.dto.result.IcCustomExportResultDTO;
+import com.epmet.dto.result.IcExportTemplateForExportResultDTO;
import com.epmet.service.IcExportTemplateService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
+import java.util.List;
import java.util.Map;
@@ -45,11 +47,10 @@ public class IcExportTemplateController {
@NoRepeatSubmit
@PostMapping("save")
- public Result save(@RequestBody IcExportTemplateSaveFormDTO dto) {
+ public Result> save(@RequestBody IcExportTemplateSaveFormDTO formDTO) {
//效验数据
- ValidatorUtils.validateEntity(dto, AddGroup.class);
- icExportTemplateService.save(dto);
- return new Result();
+ ValidatorUtils.validateEntity(formDTO, AddGroup.class);
+ return new Result>().ok(icExportTemplateService.save(formDTO));
}
diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcExportTemplateDao.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcExportTemplateDao.java
index 32eaa6d723..710faced60 100644
--- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcExportTemplateDao.java
+++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcExportTemplateDao.java
@@ -1,10 +1,12 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dto.IcExportTemplateDTO;
import com.epmet.dto.form.IcExportTemplateQueryFormDTO;
import com.epmet.dto.result.IcExportTemplateForExportResultDTO;
import com.epmet.entity.IcExportTemplateEntity;
import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -18,4 +20,6 @@ import java.util.List;
public interface IcExportTemplateDao extends BaseDao {
List getTemplateConfigForExport(IcExportTemplateQueryFormDTO param);
+
+ List selectByAgencyId(@Param("agencyId") String agencyId);
}
diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/IcExportTemplateEntity.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/IcExportTemplateEntity.java
index 0fbf031dc8..a301bfe85a 100644
--- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/IcExportTemplateEntity.java
+++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/IcExportTemplateEntity.java
@@ -23,6 +23,16 @@ public class IcExportTemplateEntity extends BaseEpmetEntity {
*/
private String customerId;
+ /**
+ * 所属机关ID(customer_agency.id)
+ */
+ private String agencyId;
+
+ /**
+ * 所有上级组织机构ID(以英文:隔开)包含本身id
+ */
+ private String pids;
+
/**
* 表单CODE,从字典获取
*/
diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcExportTemplateConfigService.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcExportTemplateConfigService.java
new file mode 100644
index 0000000000..befc14b67e
--- /dev/null
+++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcExportTemplateConfigService.java
@@ -0,0 +1,14 @@
+package com.epmet.service;
+
+import com.epmet.commons.mybatis.service.BaseService;
+import com.epmet.entity.IcExportTemplateConfigEntity;
+
+/**
+ * 自定义表单导出模板
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2022-04-21
+ */
+public interface IcExportTemplateConfigService extends BaseService {
+
+}
diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcExportTemplateService.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcExportTemplateService.java
index 1d2f22c0de..0a9c6cc258 100644
--- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcExportTemplateService.java
+++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcExportTemplateService.java
@@ -6,6 +6,7 @@ import com.epmet.dto.IcExportTemplateDTO;
import com.epmet.dto.form.IcExportTemplateQueryFormDTO;
import com.epmet.dto.form.IcExportTemplateSaveFormDTO;
import com.epmet.dto.result.IcCustomExportResultDTO;
+import com.epmet.dto.result.IcExportTemplateForExportResultDTO;
import com.epmet.entity.IcExportTemplateEntity;
import java.util.List;
@@ -52,12 +53,12 @@ public interface IcExportTemplateService extends BaseService save(IcExportTemplateSaveFormDTO formDTO);
/**
* 批量删除
diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcExportTemplateConfigServiceImpl.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcExportTemplateConfigServiceImpl.java
new file mode 100644
index 0000000000..1a1afa997e
--- /dev/null
+++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcExportTemplateConfigServiceImpl.java
@@ -0,0 +1,20 @@
+package com.epmet.service.impl;
+
+import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
+import com.epmet.dao.IcExportTemplateConfigDao;
+import com.epmet.entity.IcExportTemplateConfigEntity;
+import com.epmet.service.IcExportTemplateConfigService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * 自定义表单导出模板
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2022-04-21
+ */
+@Slf4j
+@Service
+public class IcExportTemplateConfigServiceImpl extends BaseServiceImpl implements IcExportTemplateConfigService {
+
+}
diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcExportTemplateServiceImpl.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcExportTemplateServiceImpl.java
index df4303fe3e..1b22c166a8 100644
--- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcExportTemplateServiceImpl.java
+++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcExportTemplateServiceImpl.java
@@ -3,20 +3,31 @@ package com.epmet.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
+import com.epmet.commons.tools.constant.AppClientConstant;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant;
+import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
+import com.epmet.commons.tools.exception.EpmetException;
+import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData;
+import com.epmet.commons.tools.redis.common.CustomerOrgRedis;
+import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
+import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache;
import com.epmet.commons.tools.utils.ConvertUtils;
+import com.epmet.commons.tools.utils.EpmetRequestHolder;
import com.epmet.dao.IcExportTemplateDao;
import com.epmet.dao.IcFormItemDao;
import com.epmet.dto.IcExportTemplateDTO;
+import com.epmet.dto.form.IcExportItemListFormDTO;
import com.epmet.dto.form.IcExportTemplateQueryFormDTO;
import com.epmet.dto.form.IcExportTemplateSaveFormDTO;
import com.epmet.dto.result.ConditionResultDTO;
import com.epmet.dto.result.IcCustomExportResultDTO;
import com.epmet.dto.result.IcExportTemplateForExportResultDTO;
+import com.epmet.entity.IcExportTemplateConfigEntity;
import com.epmet.entity.IcExportTemplateEntity;
+import com.epmet.service.IcExportTemplateConfigService;
import com.epmet.service.IcExportTemplateService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
@@ -42,6 +53,8 @@ public class IcExportTemplateServiceImpl extends BaseServiceImpl page(Map params) {
@@ -76,9 +89,83 @@ public class IcExportTemplateServiceImpl extends BaseServiceImpl save(IcExportTemplateSaveFormDTO formDTO) {
+ List resultList = new ArrayList<>();
+ IcExportTemplateEntity tempEntity = new IcExportTemplateEntity();
+ List itemList = new ArrayList<>();
+ String customerId = EpmetRequestHolder.getHeader(AppClientConstant.CUSTOMER_ID);
+ String staffId = EpmetRequestHolder.getHeader(AppClientConstant.USER_ID);
+ //1.获取工作人员所属组织缓存信息
+ CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(customerId, staffId);
+ if (null == staffInfo) {
+ throw new EpmetException(String.format("查询工作人员%s缓存信息失败...", EpmetRequestHolder.getHeader(AppClientConstant.USER_ID)));
+ }
+ AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(staffInfo.getAgencyId());
+ if (null == agencyInfo) {
+ throw new RenException(String.format("获取组织缓存信息失败%s", staffInfo.getAgencyId()));
+ }
+ //2.根据是否保存判断查询当前组织已存在模板的最大sort值
+ int sort = 1;
+ String tempId = "";
+ if (formDTO.getIsTemp()) {
+ List templist = baseDao.selectByAgencyId(agencyInfo.getId());
+ if (!CollectionUtils.isEmpty(templist)) {
+ sort = templist.get(NumConstant.ZERO).getSort() + NumConstant.ONE;
+ }
+ tempId = UUID.randomUUID().toString().replace("-", "");
+ tempEntity.setId(tempId);
+ tempEntity.setCustomerId(customerId);
+ tempEntity.setAgencyId(agencyInfo.getId());
+ tempEntity.setPids(StringUtils.isEmpty(agencyInfo.getPids()) ? agencyInfo.getId() : agencyInfo.getPids() + ":" + agencyInfo.getId());
+ tempEntity.setFormCode(formDTO.getFormCode());
+ tempEntity.setName(formDTO.getName());
+ /*tempEntity.setType();
+ tempEntity.setUrl();*/
+ tempEntity.setSort(sort);
+ }
+
+ //3.组装待保存和待返回数据对象
+ int num = 0;
+ for (IcExportItemListFormDTO dto : formDTO.getItemList()) {
+ IcExportTemplateConfigEntity itemEntity = ConvertUtils.sourceToTarget(dto, IcExportTemplateConfigEntity.class);
+ itemEntity.setId(UUID.randomUUID().toString().replace("-", ""));
+ itemEntity.setPid("0");
+ itemEntity.setCustomerId(customerId);
+ itemEntity.setTempId(tempId);
+ num += 1;
+ itemEntity.setSort(num);
+ itemList.add(itemEntity);
+ IcExportTemplateForExportResultDTO resultDTO = ConvertUtils.sourceToTarget(dto, IcExportTemplateForExportResultDTO.class);
+ resultDTO.setId(itemEntity.getId());
+ resultDTO.setPid(itemEntity.getPid());
+ resultDTO.setSort(itemEntity.getSort());
+ resultList.add(resultDTO);
+ int subNum = 0;
+ for (IcExportItemListFormDTO subDTO : dto.getChildren()) {
+ IcExportTemplateConfigEntity subItem = ConvertUtils.sourceToTarget(subDTO, IcExportTemplateConfigEntity.class);
+ subItem.setId(UUID.randomUUID().toString().replace("-", ""));
+ subItem.setPid(itemEntity.getId());
+ subItem.setCustomerId(customerId);
+ subItem.setTempId(tempId);
+ subNum += 1;
+ subItem.setSort(subNum);
+ itemList.add(subItem);
+ IcExportTemplateForExportResultDTO subResultDTO = ConvertUtils.sourceToTarget(subDTO, IcExportTemplateForExportResultDTO.class);
+ subResultDTO.setId(subItem.getId());
+ subResultDTO.setPid(subItem.getPid());
+ subResultDTO.setSort(subItem.getSort());
+ resultList.add(subResultDTO);
+ }
+ }
+
+ //4.执行数据保存
+ if (formDTO.getIsTemp()) {
+ baseDao.insert(tempEntity);
+ icExportTemplateConfigService.insertBatch(itemList);
+ }
+ //5.返回组装数据对象
+ return resultList;
}
@@ -117,7 +204,7 @@ public class IcExportTemplateServiceImpl extends BaseServiceImpl> resultTemp, IcExportTemplateForExportResultDTO root, List> headerList, List showSqlColumns, List hiddenSqlColumns, Set hasExistColumnSet) {
-
-
-
if (StringUtils.isNotBlank(root.getColumnName())) {
- showSqlColumns.add(new IcCustomExportResultDTO.SqlColumn(root.getTableName(), root.getColumnName()));
- if (StringUtils.isNotBlank(root.getOptionSourceValue())) {
+ showSqlColumns.add(new IcCustomExportResultDTO.SqlColumn(root.getItemId(),root.getTableName(), root.getColumnName(),root.getOptionSourceType(),root.getOptionSourceValue()));
+ if (StringUtils.isNotBlank(root.getOptionSourceValue())&&root.getOptionSourceValue().contains(StrConstant.QUESTION_MARK)) {
String[] paramArr = root.getOptionSourceValue().split(StrConstant.QUESTION_MARK_TRANSFER)[NumConstant.ONE].split(StrConstant.AND_MARK);
//先remote中再添加 然后移除item中有的
hasExistColumnSet.addAll(Arrays.asList(paramArr));
diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemServiceImpl.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemServiceImpl.java
index c8f91539e2..879e0536b4 100644
--- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemServiceImpl.java
+++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemServiceImpl.java
@@ -22,6 +22,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant;
+import com.epmet.commons.tools.enums.DictTypeEnum;
+import com.epmet.commons.tools.utils.Result;
import com.epmet.dao.IcFormItemDao;
import com.epmet.dao.IcFormItemOptionsDao;
import com.epmet.dao.IcFormQueryBuilderDao;
@@ -31,8 +33,10 @@ import com.epmet.dto.result.*;
import com.epmet.entity.IcFormItemEntity;
import com.epmet.entity.IcFormItemOptionsEntity;
import com.epmet.entity.IcFormQueryBuilderEntity;
+import com.epmet.feign.EpmetAdminOpenFeignClient;
import com.epmet.service.IcFormItemService;
import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -40,6 +44,7 @@ import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
+import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
@@ -56,6 +61,9 @@ public class IcFormItemServiceImpl extends BaseServiceImpl> queryTypeMap = adminOpenFeignClient.dictMap(DictTypeEnum.ITEM_TYPE_QUERY.getCode());
+ if (queryTypeMap.success() && MapUtils.isNotEmpty(queryTypeMap.getData())) {
+ queryType = queryTypeMap.getData().get(itemType);
}
+ log.warn("itemType="+itemType+";queryType="+queryType);
return queryType;
}
diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcExportTemplateDao.xml b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcExportTemplateDao.xml
index 325b844347..6504800ca6 100644
--- a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcExportTemplateDao.xml
+++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcExportTemplateDao.xml
@@ -21,14 +21,32 @@
+
+
diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormItemDao.xml b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormItemDao.xml
index 876f98f972..e98c46f61f 100644
--- a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormItemDao.xml
+++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormItemDao.xml
@@ -243,7 +243,9 @@
SELECT
ifi.ID AS itemId,
ifig.TABLE_NAME,
- CONCAT(ifi.COLUMN_NAME, if(ifi.COLUMN_NUM = 0, '', ifi.COLUMN_NUM)) columnName
+ CONCAT(ifi.COLUMN_NAME, if(ifi.COLUMN_NUM = 0, '', ifi.COLUMN_NUM)) columnName,
+ ifi.OPTION_SOURCE_TYPE,
+ ifi.OPTION_SOURCE_VALUE
FROM
ic_form_item ifi
LEFT JOIN ic_form_item_group ifig ON ifi.ITEM_GROUP_ID = ifig.ID
@@ -258,9 +260,16 @@
ifi.CUSTOMER_ID,
ifi.ITEM_GROUP_ID,
ifi.LABEL,
- ifi.SORT
- FROM ic_form_item ifi WHERE ITEM_GROUP_ID = #{groupId} and ifi.CUSTOMER_ID = #{customerId}
- AND LENGTH(ifi.COLUMN_NAME)>0
+ ifi.SORT,
+ ifi.OPTION_SOURCE_VALUE,
+ ifig.TABLE_NAME,
+ CONCAT(ifi.COLUMN_NAME, if(ifi.COLUMN_NUM = 0, '', ifi.COLUMN_NUM)) columnName
+ FROM
+ ic_form_item ifi
+ LEFT JOIN ic_form_item_group ifig ON ifi.ITEM_GROUP_ID = ifig.ID
+ WHERE
+ ITEM_GROUP_ID = #{groupId} and ifi.CUSTOMER_ID = #{customerId}
+ AND LENGTH(ifi.COLUMN_NAME)>0
diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiUserPageFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiUserPageFormDTO.java
index 7c9ac813c7..272a3c6fdc 100644
--- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiUserPageFormDTO.java
+++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiUserPageFormDTO.java
@@ -18,10 +18,10 @@ public class IcResiUserPageFormDTO extends PageFormDTO implements Serializable {
public interface AddUserInternalGroup {
}
- @NotBlank(message = "formCode不能为空", groups = AddUserInternalGroup.class)
+ @NotBlank(message = "formCode不能为空", groups = {AddUserInternalGroup.class,ExportGroup.class})
private String formCode;
- @NotBlank(message = "customerId不能为空", groups = AddUserInternalGroup.class)
+ @NotBlank(message = "customerId不能为空", groups = {AddUserInternalGroup.class,ExportGroup.class})
private String customerId;
/**
@@ -29,7 +29,7 @@ public class IcResiUserPageFormDTO extends PageFormDTO implements Serializable {
*/
private List conditions;
- @NotBlank(message = "当前用户id不能为空", groups = AddUserInternalGroup.class)
+ @NotBlank(message = "当前用户id不能为空", groups = {AddUserInternalGroup.class,ExportGroup.class})
private String staffId;
/**
@@ -37,7 +37,9 @@ public class IcResiUserPageFormDTO extends PageFormDTO implements Serializable {
*/
private String keyword;
- @NotBlank(message = "模板id不能为空", groups = ExportGroup.class)
+ /**
+ * 模板id
+ */
private String templateId;
}
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java
index c758d1847b..03f9d3b842 100644
--- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java
@@ -416,9 +416,12 @@ public class IcResiUserController implements ResultDataResolver {
@NoRepeatSubmit
@RequestMapping(value = "/exportExcelCustom")
public void exportExcelCustom(/*@LoginUser*/ TokenDto tokenDto, @RequestBody IcResiUserPageFormDTO pageFormDTO, HttpServletResponse response) throws Exception {
- //tokenDto.setUserId("9e37adcce6472152e6508a19d3683e02");
- //tokenDto.setCustomerId("45687aa479955f9d06204d415238f7cc");
- ValidatorUtils.validateEntity(pageFormDTO, ExportGroup.class);
+ //TODO 去掉
+ tokenDto.setUserId("73ae6280e46a6653a5605d51d5462725");
+ tokenDto.setCustomerId("45687aa479955f9d06204d415238f7cc");
+ pageFormDTO.setCustomerId(tokenDto.getCustomerId());
+ pageFormDTO.setStaffId(tokenDto.getUserId());
+ ValidatorUtils.validateEntity(pageFormDTO, IcResiUserPageFormDTO.AddUserInternalGroup.class,ExportGroup.class);
pageFormDTO.setIsPage(false);
//获取导出配置
icResiUserExportService.exportIcResiUser(pageFormDTO,response);
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcTripReportRecordController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcTripReportRecordController.java
index 3f7dce489d..cd79899c15 100644
--- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcTripReportRecordController.java
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcTripReportRecordController.java
@@ -93,6 +93,7 @@ public class IcTripReportRecordController implements ResultDataResolver {
PageTripReportFormDTO pageTripReportFormDTO=new PageTripReportFormDTO();
pageTripReportFormDTO.setCustomerId(tokenDto.getCustomerId());
pageTripReportFormDTO.setUserId(tokenDto.getUserId());
+ pageTripReportFormDTO.setId(formDTO.getId());
return new Result().ok(icTripReportRecordService.detail(pageTripReportFormDTO));
}
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserImportService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserImportService.java
index f3451f3e13..e35eabdace 100644
--- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserImportService.java
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserImportService.java
@@ -1,10 +1,12 @@
package com.epmet.service;
import com.epmet.dto.result.FormItemResult;
+import com.epmet.service.impl.IcResiUserImportServiceImpl;
import javax.servlet.http.HttpServletResponse;
import java.nio.file.Path;
import java.util.List;
+import java.util.Map;
/**
*@Description 居民信息导入service
@@ -33,5 +35,20 @@ public interface IcResiUserImportService {
*/
void finishImportTask(String importTaskId, String operatorId, String processStatus, String resultDesc, String resultDescPath);
- Object testAsync();
+ /**
+ * 分割sourceUrl为纯url和父itemId
+ * @param fullUri
+ * @return [ pureUri, cascadeItemId(父itemId) ]
+ */
+ String[] splitOptionSourceUrl(String fullUri);
+ /**
+ * desc:获取远程 选项
+ * @param pureUri
+ * @param cascadeItemId
+ * @param columnWrappers
+ * @param currUserAgencyId
+ * @param purpose
+ * @return
+ */
+ Map listRemoteOptions(String pureUri, String cascadeItemId, Map columnWrappers, String currUserAgencyId, String purpose);
}
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserExportServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserExportServiceImpl.java
index 2e0383ccd4..e7051a7710 100644
--- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserExportServiceImpl.java
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserExportServiceImpl.java
@@ -3,33 +3,46 @@ package com.epmet.service.impl;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
+import com.alibaba.fastjson.JSON;
+import com.epmet.commons.tools.constant.Constant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
+import com.epmet.commons.tools.enums.FormItemTypeEnum;
+import com.epmet.commons.tools.enums.IcFormCodeEnum;
+import com.epmet.commons.tools.exception.EpmetErrorCode;
+import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
-import com.epmet.commons.tools.security.user.LoginUserUtil;
import com.epmet.commons.tools.utils.ExcelUtils;
import com.epmet.commons.tools.utils.Result;
+import com.epmet.commons.tools.utils.SpringContextUtils;
import com.epmet.commons.tools.utils.poi.excel.FreezeAndFilter;
import com.epmet.constant.IcResiUserConstant;
import com.epmet.dto.form.IcExportTemplateQueryFormDTO;
import com.epmet.dto.form.IcResiUserPageFormDTO;
+import com.epmet.dto.result.FormItemResult;
import com.epmet.dto.result.IcCustomExportResultDTO;
+import com.epmet.dto.result.OptionDTO;
+import com.epmet.excel.support.ExportResiUserItemDTO;
import com.epmet.feign.OperCustomizeOpenFeignClient;
import com.epmet.service.IcResiUserExportService;
+import com.epmet.service.IcResiUserImportService;
import com.epmet.service.IcResiUserService;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
+import com.google.common.cache.Cache;
+import com.google.common.cache.CacheBuilder;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
+import org.jetbrains.annotations.Nullable;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.stream.Collectors;
/**
* desc:
@@ -44,9 +57,9 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService {
@Autowired
private OperCustomizeOpenFeignClient operCustomizeOpenFeignClient;
@Autowired
- private LoginUserUtil loginUserUtil;
- @Autowired
private IcResiUserService icResiUserService;
+ @Autowired
+ private IcResiUserImportService icResiUserImportService;
/**
* desc: 根据条件查询居民信息并根据配置模板导出
@@ -61,22 +74,20 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService {
public void exportIcResiUser(IcResiUserPageFormDTO pageFormDTO, HttpServletResponse response) {
ExcelWriter excelWriter = null;
try {
- //获取模板条件
- IcExportTemplateQueryFormDTO param = new IcExportTemplateQueryFormDTO();
- param.setCustomerId(loginUserUtil.getLoginUserCustomerId());
- param.setCustomerId("default");
- param.setTempId(pageFormDTO.getTemplateId());
- Result exportConfigResult = operCustomizeOpenFeignClient.getExcelHeaderAndSqlColumnForExport(param);
- if (!exportConfigResult.success() || exportConfigResult.getData() == null) {
- log.error("获取模板失败");
- return;
- }
- IcCustomExportResultDTO resultDTO = exportConfigResult.getData();
+ //获取用户配置的导出条件
+ Result exportConfigResult = getIcCustomExportConfig(pageFormDTO);
+
+ Map itemOriginMap = getItemMap(pageFormDTO.getCustomerId());
+ IcCustomExportResultDTO exportConfigData = exportConfigResult.getData();
+ log.info("查询到的模板配置信息:{}", JSON.toJSONString(exportConfigData));
FreezeAndFilter writeHandler = new FreezeAndFilter();
excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel("居民基本信息.xlsx", response)).registerWriteHandler(writeHandler).build();
- WriteSheet writeSheet = EasyExcel.writerSheet().head(resultDTO.getHeaders()).build();
+ WriteSheet writeSheet = EasyExcel.writerSheet().head(exportConfigData.getHeaders()).build();
- CustomerStaffInfoCacheResult staffInfoCacheResult = CustomerStaffRedis.getStaffInfo(loginUserUtil.getLoginUserCustomerId(), loginUserUtil.getLoginUserId());
+ CustomerStaffInfoCacheResult staffInfoCacheResult = CustomerStaffRedis.getStaffInfo(pageFormDTO.getCustomerId(), pageFormDTO.getStaffId());
+ if (staffInfoCacheResult == null){
+ throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"获取工作人员信息失败");
+ }
String staffOrgPath = null;
if (StringUtils.isNotBlank(staffInfoCacheResult.getAgencyPIds()) && !NumConstant.ZERO_STR.equals(staffInfoCacheResult.getAgencyPIds())) {
staffOrgPath = staffInfoCacheResult.getAgencyPIds().concat(StrConstant.COLON).concat(staffInfoCacheResult.getAgencyId());
@@ -84,34 +95,60 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService {
staffOrgPath = staffInfoCacheResult.getAgencyId();
}
Page