From f21da1e301ecb1d8cfefc2cff3a07c1adca4b8e1 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Mon, 25 Apr 2022 14:43:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B1=85=E6=B0=91=E4=BF=A1=E6=81=AF=E8=87=AA?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=E6=A8=A1=E6=9D=BF=E5=AF=BC=E5=87=BA=E2=80=94?= =?UTF-8?q?=E2=80=94=E4=BF=9D=E5=AD=98=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feign/OperCustomizeOpenFeignClient.java | 7 ++ .../OperCustomizeOpenFeignClientFallback.java | 5 + .../IcExportTemplateController.java | 9 +- .../com/epmet/dao/IcExportTemplateDao.java | 4 + .../IcExportTemplateConfigService.java | 14 +++ .../service/IcExportTemplateService.java | 5 +- .../IcExportTemplateConfigServiceImpl.java | 20 ++++ .../impl/IcExportTemplateServiceImpl.java | 91 ++++++++++++++++++- .../resources/mapper/IcExportTemplateDao.xml | 19 ++++ 9 files changed, 166 insertions(+), 8 deletions(-) create mode 100644 epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcExportTemplateConfigService.java create mode 100644 epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcExportTemplateConfigServiceImpl.java 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/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/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 8cd200b59e..52872f5c66 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; } 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 d2970a6d02..94c25e111d 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 @@ -30,5 +30,24 @@ ORDER BY c.PID,c.SORT + +