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 95805207fd..b17950a528 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 @@ -3,7 +3,6 @@ package com.epmet.dto; import lombok.Data; import java.io.Serializable; -import java.util.Date; /** @@ -52,34 +51,4 @@ public class IcExportTemplateDTO implements Serializable { */ private Integer sort; - /** - * 0未删除,1已删除 - */ - private Integer delFlag; - - /** - * 乐观锁 - */ - private Integer revision; - - /** - * 创建人 - */ - private String createdBy; - - /** - * 创建时间 - */ - private Date createdTime; - - /** - * 更新人 - */ - private String updatedBy; - - /** - * 更新时间 - */ - private Date updatedTime; - } 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 new file mode 100644 index 0000000000..b1b340a34a --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/IcExportItemListFormDTO.java @@ -0,0 +1,54 @@ +package com.epmet.dto.form; + +import com.epmet.commons.tools.validator.group.AddGroup; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotEmpty; +import java.io.Serializable; +import java.util.List; + + +/** + * 自定义表单导出模板 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-04-21 + */ +@Data +public class IcExportItemListFormDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @NotEmpty(message = "请至少添加一个导出项") + private List subItemList; + + /** + * 父id + */ + private String pid; + + /** + * ic_form_item.id + */ + @NotBlank(message = "itemId不能为空",groups = AddGroup.class) + private String itemId; + + /** + * 表头宽度 + */ + private Integer width; + + /** + * 项标签 + */ + @NotBlank(message = "名称不能为空",groups = AddGroup.class) + private String label; + + /** + * 排序 + */ + private Integer sort; + + +} diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/IcExportTemplateFormDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/IcExportTemplateQueryFormDTO.java similarity index 91% rename from epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/IcExportTemplateFormDTO.java rename to epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/IcExportTemplateQueryFormDTO.java index a7d52bf75b..9c97e6a75b 100644 --- a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/IcExportTemplateFormDTO.java +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/IcExportTemplateQueryFormDTO.java @@ -14,7 +14,7 @@ import java.io.Serializable; * @since v1.0.0 2022-04-21 */ @Data -public class IcExportTemplateFormDTO implements Serializable { +public class IcExportTemplateQueryFormDTO implements Serializable { private static final long serialVersionUID = 1L; diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/IcExportTemplateSaveFormDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/IcExportTemplateSaveFormDTO.java new file mode 100644 index 0000000000..0f34fc2141 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/IcExportTemplateSaveFormDTO.java @@ -0,0 +1,59 @@ +package com.epmet.dto.form; + +import com.epmet.commons.tools.validator.group.AddGroup; +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotEmpty; +import java.io.Serializable; +import java.util.List; + + +/** + * 自定义表单导出模板 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2022-04-21 + */ +@Data +public class IcExportTemplateSaveFormDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 是否保存为模板 是:true 否:false + */ + private Boolean isTemp = false; + + /** + * 表单CODE,从字典获取 + */ + @NotBlank(message = "表单CODE不能为空",groups = AddGroup.class) + private String formCode; + + /** + * 模板名称 + */ + //@NotBlank(message = "模板名称不能为空",groups = AddGroup.class) + @Length(max = 20, message = "模板名称最多为20个字", groups = { AddGroup.class }) + private String name; + + /** + * 0:动态;1:文件 + */ + private Integer type; + + /** + * 排序 + */ + private Integer sort; + + + /** + * 父id + */ + @NotEmpty(message = "请至少添加一个导出项") + private List itemList; + +} diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/FormItemResult.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/FormItemResult.java index dfe0b85ffa..2aad76f805 100644 --- a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/FormItemResult.java +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/FormItemResult.java @@ -16,7 +16,7 @@ public class FormItemResult implements Serializable { private static final long serialVersionUID = 7443085469505238040L; /** - * 父项ID + * ID */ private String itemId; 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 f461c4cf9e..fbf479ac9a 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 @@ -25,8 +25,8 @@ import java.util.Set; * @author yinzuomei@elink-cn.com * @date 2020/6/4 13:16 */ - @FeignClient(name = ServiceConstant.OPER_CUSTOMIZE_SERVER, fallbackFactory = OperCustomizeOpenFeignClientFallbackFactory.class,url = "http://localhost:8089") -//@FeignClient(name = ServiceConstant.OPER_CUSTOMIZE_SERVER, fallbackFactory = OperCustomizeOpenFeignClientFallbackFactory.class) + // @FeignClient(name = ServiceConstant.OPER_CUSTOMIZE_SERVER, fallbackFactory = OperCustomizeOpenFeignClientFallbackFactory.class,url = "http://localhost:8089") +@FeignClient(name = ServiceConstant.OPER_CUSTOMIZE_SERVER, fallbackFactory = OperCustomizeOpenFeignClientFallbackFactory.class) public interface OperCustomizeOpenFeignClient { @PostMapping(value = "/oper/customize/customerfootbar/customerfootbars", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE) @@ -168,5 +168,5 @@ public interface OperCustomizeOpenFeignClient { * @return */ @PostMapping("/oper/customize/icExportTemplate/getExcelHeaderAndSqlColumnForExport") - Result getExcelHeaderAndSqlColumnForExport(@RequestBody IcExportTemplateFormDTO param); + Result getExcelHeaderAndSqlColumnForExport(@RequestBody IcExportTemplateQueryFormDTO param); } 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 19a01082cc..e55eb3bb92 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 @@ -126,7 +126,7 @@ public class OperCustomizeOpenFeignClientFallback implements OperCustomizeOpenFe } @Override - public Result getExcelHeaderAndSqlColumnForExport(IcExportTemplateFormDTO param) { + public Result getExcelHeaderAndSqlColumnForExport(IcExportTemplateQueryFormDTO param) { return ModuleUtils.feignConError(ServiceConstant.OPER_CUSTOMIZE_SERVER, "getExcelHeaderAndSqlColumnForExport", param); } } 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 7804e07bb8..e9343b87af 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 @@ -6,10 +6,10 @@ 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.ExportGroup; import com.epmet.dto.IcExportTemplateDTO; -import com.epmet.dto.form.IcExportTemplateFormDTO; +import com.epmet.dto.form.IcExportTemplateQueryFormDTO; +import com.epmet.dto.form.IcExportTemplateSaveFormDTO; import com.epmet.dto.result.IcCustomExportResultDTO; import com.epmet.service.IcExportTemplateService; import org.springframework.beans.factory.annotation.Autowired; @@ -45,9 +45,9 @@ public class IcExportTemplateController { @NoRepeatSubmit @PostMapping("save") - public Result save(@RequestBody IcExportTemplateDTO dto) { + public Result save(@RequestBody IcExportTemplateSaveFormDTO dto) { //效验数据 - ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); + ValidatorUtils.validateEntity(dto, AddGroup.class); icExportTemplateService.save(dto); return new Result(); } @@ -68,7 +68,7 @@ public class IcExportTemplateController { * @return */ @PostMapping("getExcelHeaderAndSqlColumnForExport") - public Result getExcelHeaderAndSqlColumnForExport(@RequestBody IcExportTemplateFormDTO param) { + public Result getExcelHeaderAndSqlColumnForExport(@RequestBody IcExportTemplateQueryFormDTO param) { ValidatorUtils.validateEntity(param, ExportGroup.class); return new Result().ok(icExportTemplateService.getTemplateConfigForExport(param)); } diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormItemController.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormItemController.java index 49c54f3d21..80d6f47037 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormItemController.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormItemController.java @@ -21,6 +21,7 @@ import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dto.form.EditIFormItemFormDTO; import com.epmet.dto.result.ColumnTableNameResultDTO; +import com.epmet.dto.result.FormItemResult; import com.epmet.dto.result.ResiCategoryItemResultDTO; import com.epmet.service.IcFormItemService; import org.springframework.beans.factory.annotation.Autowired; @@ -88,4 +89,14 @@ public class IcFormItemController { icFormItemService.initQueryBuilder(customerId); return new Result(); } + + /** + * 根据分组id 获取分组下的item + * @return + */ + @PostMapping("getItemList/{groupId}") + public Result> getItemListByGroupId(@RequestHeader String customerId, @PathVariable("groupId") String groupId){ + List list = icFormItemService.getItemListByGroupId(customerId,groupId); + return new Result().ok(list); + } } 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 8cf3df7aa5..32eaa6d723 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,7 +1,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; -import com.epmet.dto.form.IcExportTemplateFormDTO; +import com.epmet.dto.form.IcExportTemplateQueryFormDTO; import com.epmet.dto.result.IcExportTemplateForExportResultDTO; import com.epmet.entity.IcExportTemplateEntity; import org.apache.ibatis.annotations.Mapper; @@ -17,5 +17,5 @@ import java.util.List; @Mapper public interface IcExportTemplateDao extends BaseDao { - List getTemplateConfigForExport(IcExportTemplateFormDTO param); + List getTemplateConfigForExport(IcExportTemplateQueryFormDTO param); } diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcFormItemDao.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcFormItemDao.java index bb02a5425c..2647805d6f 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcFormItemDao.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcFormItemDao.java @@ -91,8 +91,18 @@ public interface IcFormItemDao extends BaseDao { /** * desc:根据Id获取item对应的表名和item属性 + * * @param itemId * @return */ ConditionResultDTO getConditionItem(@Param("itemId") String itemId); + + /** + * desc:根据客户Id 和groupId 获取item配置项 + * + * @param customerId + * @param groupId + * @return + */ + List getItemListByGroupId(@Param("customerId") String customerId, @Param("groupId") String groupId); } diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/IcExportTemplateConfigEntity.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/IcExportTemplateConfigEntity.java index 338164da26..60a8094221 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/IcExportTemplateConfigEntity.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/IcExportTemplateConfigEntity.java @@ -41,7 +41,7 @@ public class IcExportTemplateConfigEntity extends BaseEpmetEntity { /** * ic_form_item.id */ - private String formItemId; + private String itemId; /** * 表头宽度 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 cc6e7fdd1c..1d2f22c0de 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 @@ -3,7 +3,8 @@ package com.epmet.service; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.dto.IcExportTemplateDTO; -import com.epmet.dto.form.IcExportTemplateFormDTO; +import com.epmet.dto.form.IcExportTemplateQueryFormDTO; +import com.epmet.dto.form.IcExportTemplateSaveFormDTO; import com.epmet.dto.result.IcCustomExportResultDTO; import com.epmet.entity.IcExportTemplateEntity; @@ -56,17 +57,7 @@ public interface IcExportTemplateService extends BaseService { * @param customerId */ void initQueryBuilder(String customerId); + + /** + * desc:根据groupId 获取itemlist + * @param customerId + * @param groupId + * @return + */ + List getItemListByGroupId(String customerId, String groupId); } 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 d5bdca582f..df4303fe3e 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 @@ -11,7 +11,8 @@ import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.dao.IcExportTemplateDao; import com.epmet.dao.IcFormItemDao; import com.epmet.dto.IcExportTemplateDTO; -import com.epmet.dto.form.IcExportTemplateFormDTO; +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; @@ -75,18 +76,12 @@ public class IcExportTemplateServiceImpl extends BaseServiceImpl list = icExportTemplateDao.getTemplateConfigForExport(param); if (CollectionUtils.isEmpty(list)) { return null; 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 0fee230ef5..c8f91539e2 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 @@ -256,6 +256,11 @@ public class IcFormItemServiceImpl extends BaseServiceImpl getItemListByGroupId(String customerId, String groupId) { + return baseDao.getItemListByGroupId(customerId,groupId); + } + private String queryType(String itemType) { String queryType; diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcExportTemplateConfigDao.xml b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcExportTemplateConfigDao.xml index 7d3e620e9d..0c92cd18e0 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcExportTemplateConfigDao.xml +++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcExportTemplateConfigDao.xml @@ -8,7 +8,7 @@ - + @@ -21,4 +21,4 @@ - \ No newline at end of file + 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 f8d80c96ac..876f98f972 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 @@ -252,4 +252,15 @@ and ifi.DEL_FLAG = '0' AND ifig.DEL_FLAG = '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 cf3839437a..7c9ac813c7 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 @@ -1,10 +1,10 @@ package com.epmet.dto.form; +import com.epmet.commons.tools.dto.form.PageFormDTO; import com.epmet.commons.tools.validator.group.ExportGroup; import lombok.Data; import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; import java.io.Serializable; import java.util.List; @@ -14,16 +14,10 @@ import java.util.List; * @Date 2021/10/27 2:06 下午 */ @Data -public class IcResiUserPageFormDTO implements Serializable { +public class IcResiUserPageFormDTO extends PageFormDTO implements Serializable { public interface AddUserInternalGroup { } - @NotNull(message = "pageNo不能为空", groups = AddUserInternalGroup.class) - private Integer pageNo; - - @NotNull(message = "pageSize不能为空", groups = AddUserInternalGroup.class) - private Integer pageSize; - @NotBlank(message = "formCode不能为空", groups = AddUserInternalGroup.class) private String formCode; @@ -34,7 +28,6 @@ public class IcResiUserPageFormDTO implements Serializable { * 表对应的字段及值 */ private List conditions; - private Boolean pageFlag; @NotBlank(message = "当前用户id不能为空", groups = AddUserInternalGroup.class) private String staffId; 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 fda426760f..c758d1847b 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 @@ -323,7 +323,7 @@ public class IcResiUserController implements ResultDataResolver { staffOrgPath = staffInfoCacheResult.getAgencyId(); } pageFormDTO.setCustomerId(customerId); - pageFormDTO.setPageFlag(false); + pageFormDTO.setIsPage(false); //获取模版文件 File file = getIcResiTemplateFile(customerId, IcUserTemplateEnums.IC_RESI_EXPORT_TEMPLATE); @@ -418,7 +418,8 @@ public class IcResiUserController implements ResultDataResolver { public void exportExcelCustom(/*@LoginUser*/ TokenDto tokenDto, @RequestBody IcResiUserPageFormDTO pageFormDTO, HttpServletResponse response) throws Exception { //tokenDto.setUserId("9e37adcce6472152e6508a19d3683e02"); //tokenDto.setCustomerId("45687aa479955f9d06204d415238f7cc"); - ValidatorUtils.validateEntity(pageFormDTO, IcResiUserPageFormDTO.AddUserInternalGroup.class, ExportGroup.class); + ValidatorUtils.validateEntity(pageFormDTO, ExportGroup.class); + pageFormDTO.setIsPage(false); //获取导出配置 icResiUserExportService.exportIcResiUser(pageFormDTO,response); diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java index 79072ae125..8ca88009fc 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java @@ -98,6 +98,7 @@ public interface IcResiUserDao extends BaseDao { * @param customerId 客户id * @param resultTableName 获取哪个表的数据??? * @param conditions 前端传入的查询入参 + * @param showSqlColumns * @return java.util.List> * @author yinzuomei * @date 2021/11/2 10:35 上午 @@ -106,7 +107,7 @@ public interface IcResiUserDao extends BaseDao { @Param("resultTableName") String resultTableName, @Param("conditions") List conditions, @Param("subTables") List subTables, - @Param("currentStaffAgencyId") String currentStaffAgencyId, + @Param("showSqlColumns") List showSqlColumns, @Param("currentStaffAgencyId") String currentStaffAgencyId, @Param("staffOrgPath") String staffOrgPath); /** diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java index d242530a09..19f3640d71 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java @@ -276,4 +276,6 @@ public interface IcResiUserService extends BaseService { * @date 2022/4/21/0021 15:02 */ List listHomeUserBrief(String houseId, String customerId); + + List> dynamicQuery(String loginUserCustomerId, String formCode, String icResiUser, List showSqlColumns, List conditions, String agencyId, String finalStaffOrgPath); } 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 f06f1b35e5..2e0383ccd4 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 @@ -1,17 +1,35 @@ package com.epmet.service.impl; +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.ExcelWriter; +import com.alibaba.excel.write.metadata.WriteSheet; +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.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.dto.form.IcExportTemplateFormDTO; +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.IcCustomExportResultDTO; import com.epmet.feign.OperCustomizeOpenFeignClient; import com.epmet.service.IcResiUserExportService; +import com.epmet.service.IcResiUserService; +import com.github.pagehelper.Page; +import com.github.pagehelper.PageHelper; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; 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; /** * desc: @@ -27,6 +45,9 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService { private OperCustomizeOpenFeignClient operCustomizeOpenFeignClient; @Autowired private LoginUserUtil loginUserUtil; + @Autowired + private IcResiUserService icResiUserService; + /** * desc: 根据条件查询居民信息并根据配置模板导出 * @@ -38,11 +59,67 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService { */ @Override public void exportIcResiUser(IcResiUserPageFormDTO pageFormDTO, HttpServletResponse response) { - //获取模板条件 - IcExportTemplateFormDTO param = new IcExportTemplateFormDTO(); - param.setCustomerId(loginUserUtil.getLoginUserCustomerId()); - param.setTempId(pageFormDTO.getTemplateId()); - Result exportConfigResult = operCustomizeOpenFeignClient.getExcelHeaderAndSqlColumnForExport(param); + 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(); + FreezeAndFilter writeHandler = new FreezeAndFilter(); + excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel("居民基本信息.xlsx", response)).registerWriteHandler(writeHandler).build(); + WriteSheet writeSheet = EasyExcel.writerSheet().head(resultDTO.getHeaders()).build(); + + CustomerStaffInfoCacheResult staffInfoCacheResult = CustomerStaffRedis.getStaffInfo(loginUserUtil.getLoginUserCustomerId(), loginUserUtil.getLoginUserId()); + String staffOrgPath = null; + if (StringUtils.isNotBlank(staffInfoCacheResult.getAgencyPIds()) && !NumConstant.ZERO_STR.equals(staffInfoCacheResult.getAgencyPIds())) { + staffOrgPath = staffInfoCacheResult.getAgencyPIds().concat(StrConstant.COLON).concat(staffInfoCacheResult.getAgencyId()); + } else { + staffOrgPath = staffInfoCacheResult.getAgencyId(); + } + Page> mapListPage = null; + List allShowColumns = new ArrayList<>(resultDTO.getShowSqlColumns()); + allShowColumns.addAll(resultDTO.getHiddenSqlColumns()); + do { + String finalStaffOrgPath = staffOrgPath; + mapListPage = PageHelper.startPage(pageFormDTO.getPageNo(), pageFormDTO.getPageSize(), pageFormDTO.getIsPage()).doSelectPage(() -> { + icResiUserService.dynamicQuery(loginUserUtil.getLoginUserCustomerId(), pageFormDTO.getFormCode(), IcResiUserConstant.IC_RESI_USER, allShowColumns, pageFormDTO.getConditions(), staffInfoCacheResult.getAgencyId(), finalStaffOrgPath); + }); + pageFormDTO.setPageNo(pageFormDTO.getPageNo() + NumConstant.ONE); + + //todo + if (pageFormDTO.getPageNo() == 4) { + break; + } + } while (mapListPage != null && mapListPage.getResult().size() == pageFormDTO.getPageSize()); + List> result = mapListPage.getResult(); + + List> resultData = new ArrayList<>(); + result.forEach(o -> { + List singleResult = new ArrayList<>(); + o.values().forEach(value -> { + if (singleResult.size() < resultDTO.getShowSqlColumns().size()) { + singleResult.add(value); + } + }); + resultData.add(singleResult); + }); + log.debug("需要写入的data长度:{}", resultData.size()); + excelWriter.write(resultData, writeSheet); + } catch (IOException e) { + log.error("exportIcResiUser exception", e); + } finally { + if (excelWriter != null) { + excelWriter.finish(); + } + } } + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java index 17a66a892c..6499b3ed32 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java @@ -69,6 +69,7 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.compress.utils.Lists; import org.apache.commons.lang3.StringUtils; +import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; @@ -561,8 +562,8 @@ public class IcResiUserServiceImpl extends BaseServiceImpl> pageInfo = new PageInfo<>(); - if (null == formDTO.getPageFlag() || formDTO.getPageFlag()) { + PageInfo> pageInfo=new PageInfo<>(); + if (null == formDTO.getIsPage()||formDTO.getIsPage()) { //分页 String finalStaffOrgPath = staffOrgPath; pageInfo = PageHelper.startPage(formDTO.getPageNo(), @@ -741,38 +742,40 @@ public class IcResiUserServiceImpl extends BaseServiceImpl> dynamicQuery(String customerId, - String formCode, - String resultTableName, - List conditions, - String currentStaffAgencyId, - String staffOrgPath) { - CustomerFormQueryDTO queryDTO = new CustomerFormQueryDTO(); + public List> dynamicQuery(String customerId, + String formCode, + String resultTableName, + List conditions, + String currentStaffAgencyId, + String staffOrgPath){ + List finalSubTables = getFinalSubables(customerId, formCode, resultTableName, conditions); + + return baseDao.dynamicQuery(customerId,resultTableName,conditions,finalSubTables, null, currentStaffAgencyId,staffOrgPath); + } + + @NotNull + public List getFinalSubables(String customerId, String formCode, String resultTableName, List conditions) { + CustomerFormQueryDTO queryDTO=new CustomerFormQueryDTO(); queryDTO.setCustomerId(customerId); queryDTO.setFormCode(formCode); //所有的子表 - Result> subTablesRes = operCustomizeOpenFeignClient.querySubTables(queryDTO); - /*List subTablesBak=new ArrayList<>(); - if(subTablesRes.success()&&CollectionUtils.isNotEmpty(subTablesRes.getData())){ - subTablesBak =subTablesRes.getData().stream().map(SubTableJoinDTO::getJoinTableSql).collect(Collectors.toList()); - }*/ - List subTables = subTablesRes.getData(); + Result> subTablesRes=operCustomizeOpenFeignClient.querySubTables(queryDTO); + + List subTables =subTablesRes.getData(); // log.info("1、所有的子表subTables:"+JSON.toJSONString(subTables,true)); //关联哪些子表:查询条件用到的表名+查询的列对应的表 并集去重 - Set whereConditionTables = conditions.stream().map(ResiUserQueryValueDTO::getTableName).collect(Collectors.toSet()); - Set tables = new HashSet<>(); - tables.addAll(whereConditionTables); + Set whereConditionTables=conditions.stream().map(ResiUserQueryValueDTO::getTableName).collect(Collectors.toSet()); + Set tables = new HashSet<>(whereConditionTables); tables.add(resultTableName); // log.info("2、查询条件+查询列对应的tables并集去重:"+ JSON.toJSONString(tables,true)); //最终关联的子表对应的sql: - List finalSubTables = new ArrayList<>(); - subTables.forEach(subTable -> { - if (tables.contains(subTable.getTableName())) { + List finalSubTables =new ArrayList<>(); + subTables.forEach(subTable->{ + if(tables.contains(subTable.getTableName())){ finalSubTables.add(subTable.getJoinTableSql()); } }); - - return baseDao.dynamicQuery(customerId, resultTableName, conditions, finalSubTables, currentStaffAgencyId, staffOrgPath); + return finalSubTables; } /** @@ -919,7 +922,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl> getDataForExport(ExportResiUserItemDTO formItemMap, String baseTableName, IcResiUserPageFormDTO pageFormDTO, String currentStaffAgencyId, String staffOrgPath) { - Page> mapListPage = PageHelper.startPage(pageFormDTO.getPageNo(), pageFormDTO.getPageSize(), pageFormDTO.getPageFlag()).doSelectPage(() -> { + Page> mapListPage = PageHelper.startPage(pageFormDTO.getPageNo(), pageFormDTO.getPageSize(), pageFormDTO.getIsPage()).doSelectPage(() -> { this.dynamicQuery(pageFormDTO.getCustomerId(), pageFormDTO.getFormCode(), baseTableName, pageFormDTO.getConditions(), currentStaffAgencyId, staffOrgPath); }); mapListPage.getResult().parallelStream().filter(Objects::nonNull).forEach(resiUser -> { @@ -1683,4 +1686,11 @@ public class IcResiUserServiceImpl extends BaseServiceImpl> dynamicQuery(String customerId, String formCode, String resultTableName, List showSqlColumns, List conditions, String currentStaffAgencyId, String staffOrgPath) { + List finalSubTables = getFinalSubables(customerId, formCode, resultTableName, conditions); + return baseDao.dynamicQuery(customerId,resultTableName,conditions,finalSubTables,showSqlColumns,currentStaffAgencyId,staffOrgPath); + } + } diff --git a/epmet-user/epmet-user-server/src/main/resources/excel/ic_resi_import_template.xls b/epmet-user/epmet-user-server/src/main/resources/excel/ic_resi_import_template.xls index b93a66e9af..99f2034351 100644 Binary files a/epmet-user/epmet-user-server/src/main/resources/excel/ic_resi_import_template.xls and b/epmet-user/epmet-user-server/src/main/resources/excel/ic_resi_import_template.xls differ diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml index 55dc3aa815..66c8c51bd5 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml @@ -171,9 +171,16 @@ update ${subTalbeName} set del_flag='1' where IC_RESI_USER=#{icResiUserId} - select - ${resultTableName}.* + + + + ${column.tableName}.${column.columnName} + + + ${resultTableName}.* + FROM ic_resi_user