Browse Source

Merge branch 'dev_resi_export' of http://git.elinkit.com.cn:7070/r/epmet-cloud into develop

 Conflicts:
	epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java
	epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java
dev
wangxianzhang 3 years ago
parent
commit
ee59afb861
  1. 31
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/IcExportTemplateDTO.java
  2. 54
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/IcExportItemListFormDTO.java
  3. 2
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/IcExportTemplateQueryFormDTO.java
  4. 59
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/IcExportTemplateSaveFormDTO.java
  5. 2
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/FormItemResult.java
  6. 6
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/OperCustomizeOpenFeignClient.java
  7. 2
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/fallback/OperCustomizeOpenFeignClientFallback.java
  8. 10
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcExportTemplateController.java
  9. 11
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormItemController.java
  10. 4
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcExportTemplateDao.java
  11. 10
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcFormItemDao.java
  12. 2
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/IcExportTemplateConfigEntity.java
  13. 17
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcExportTemplateService.java
  14. 8
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcFormItemService.java
  15. 17
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcExportTemplateServiceImpl.java
  16. 5
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemServiceImpl.java
  17. 4
      epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcExportTemplateConfigDao.xml
  18. 11
      epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormItemDao.xml
  19. 11
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiUserPageFormDTO.java
  20. 5
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java
  21. 3
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java
  22. 2
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java
  23. 89
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserExportServiceImpl.java
  24. 58
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java
  25. BIN
      epmet-user/epmet-user-server/src/main/resources/excel/ic_resi_import_template.xls
  26. 11
      epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml

31
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;
}

54
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<IcExportItemListFormDTO> 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;
}

2
epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/IcExportTemplateFormDTO.java → 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;

59
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<IcExportItemListFormDTO> itemList;
}

2
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;

6
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<IcCustomExportResultDTO> getExcelHeaderAndSqlColumnForExport(@RequestBody IcExportTemplateFormDTO param);
Result<IcCustomExportResultDTO> getExcelHeaderAndSqlColumnForExport(@RequestBody IcExportTemplateQueryFormDTO param);
}

2
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<IcCustomExportResultDTO> getExcelHeaderAndSqlColumnForExport(IcExportTemplateFormDTO param) {
public Result<IcCustomExportResultDTO> getExcelHeaderAndSqlColumnForExport(IcExportTemplateQueryFormDTO param) {
return ModuleUtils.feignConError(ServiceConstant.OPER_CUSTOMIZE_SERVER, "getExcelHeaderAndSqlColumnForExport", param);
}
}

10
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<IcCustomExportResultDTO> getExcelHeaderAndSqlColumnForExport(@RequestBody IcExportTemplateFormDTO param) {
public Result<IcCustomExportResultDTO> getExcelHeaderAndSqlColumnForExport(@RequestBody IcExportTemplateQueryFormDTO param) {
ValidatorUtils.validateEntity(param, ExportGroup.class);
return new Result().ok(icExportTemplateService.getTemplateConfigForExport(param));
}

11
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<List<FormItemResult>> getItemListByGroupId(@RequestHeader String customerId, @PathVariable("groupId") String groupId){
List<FormItemResult> list = icFormItemService.getItemListByGroupId(customerId,groupId);
return new Result().ok(list);
}
}

4
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<IcExportTemplateEntity> {
List<IcExportTemplateForExportResultDTO> getTemplateConfigForExport(IcExportTemplateFormDTO param);
List<IcExportTemplateForExportResultDTO> getTemplateConfigForExport(IcExportTemplateQueryFormDTO param);
}

10
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcFormItemDao.java

@ -91,8 +91,18 @@ public interface IcFormItemDao extends BaseDao<IcFormItemEntity> {
/**
* desc:根据Id获取item对应的表名和item属性
*
* @param itemId
* @return
*/
ConditionResultDTO getConditionItem(@Param("itemId") String itemId);
/**
* desc:根据客户Id 和groupId 获取item配置项
*
* @param customerId
* @param groupId
* @return
*/
List<FormItemResult> getItemListByGroupId(@Param("customerId") String customerId, @Param("groupId") String groupId);
}

2
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;
/**
* 表头宽度

17
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<IcExportTemplateEnt
* @author generator
* @date 2022-04-21
*/
void save(IcExportTemplateDTO dto);
/**
* 默认更新
*
* @param dto
* @return void
* @author generator
* @date 2022-04-21
*/
void update(IcExportTemplateDTO dto);
void save(IcExportTemplateSaveFormDTO dto);
/**
* 批量删除
@ -86,5 +77,5 @@ public interface IcExportTemplateService extends BaseService<IcExportTemplateEnt
* @author LiuJanJun
* @date 2022/4/22 3:55 下午
*/
IcCustomExportResultDTO getTemplateConfigForExport(IcExportTemplateFormDTO param);
IcCustomExportResultDTO getTemplateConfigForExport(IcExportTemplateQueryFormDTO param);
}

8
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcFormItemService.java

@ -83,4 +83,12 @@ public interface IcFormItemService extends BaseService<IcFormItemEntity> {
* @param customerId
*/
void initQueryBuilder(String customerId);
/**
* desc:根据groupId 获取itemlist
* @param customerId
* @param groupId
* @return
*/
List<FormItemResult> getItemListByGroupId(String customerId, String groupId);
}

17
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<IcExportTemplat
@Override
@Transactional(rollbackFor = Exception.class)
public void save(IcExportTemplateDTO dto) {
IcExportTemplateEntity entity = ConvertUtils.sourceToTarget(dto, IcExportTemplateEntity.class);
insert(entity);
}
public void save(IcExportTemplateSaveFormDTO dto) {
//TODO
@Override
@Transactional(rollbackFor = Exception.class)
public void update(IcExportTemplateDTO dto) {
IcExportTemplateEntity entity = ConvertUtils.sourceToTarget(dto, IcExportTemplateEntity.class);
updateById(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(String[] ids) {
@ -95,7 +90,7 @@ public class IcExportTemplateServiceImpl extends BaseServiceImpl<IcExportTemplat
}
@Override
public IcCustomExportResultDTO getTemplateConfigForExport(IcExportTemplateFormDTO param) {
public IcCustomExportResultDTO getTemplateConfigForExport(IcExportTemplateQueryFormDTO param) {
List<IcExportTemplateForExportResultDTO> list = icExportTemplateDao.getTemplateConfigForExport(param);
if (CollectionUtils.isEmpty(list)) {
return null;

5
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<IcFormItemDao, IcForm
}
}
@Override
public List<FormItemResult> getItemListByGroupId(String customerId, String groupId) {
return baseDao.getItemListByGroupId(customerId,groupId);
}
private String queryType(String itemType) {
String queryType;

4
epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcExportTemplateConfigDao.xml

@ -8,7 +8,7 @@
<result property="customerId" column="CUSTOMER_ID"/>
<result property="tempId" column="TEMP_ID"/>
<result property="pid" column="PID"/>
<result property="formItemId" column="FORM_ITEM_ID"/>
<result property="itemId" column="FORM_ITEM_ID"/>
<result property="width" column="WIDTH"/>
<result property="label" column="LABEL"/>
<result property="sort" column="SORT"/>
@ -21,4 +21,4 @@
</resultMap>
</mapper>
</mapper>

11
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'
</select>
<select id="getItemListByGroupId" resultType="com.epmet.dto.result.FormItemResult">
SELECT
ifi.ID itemId,
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
</select>
</mapper>

11
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<ResiUserQueryValueDTO> conditions;
private Boolean pageFlag;
@NotBlank(message = "当前用户id不能为空", groups = AddUserInternalGroup.class)
private String staffId;

5
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);

3
epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java

@ -98,6 +98,7 @@ public interface IcResiUserDao extends BaseDao<IcResiUserEntity> {
* @param customerId 客户id
* @param resultTableName 获取哪个表的数据
* @param conditions 前端传入的查询入参
* @param showSqlColumns
* @return java.util.List<java.util.Map < java.lang.String, java.lang.Object>>
* @author yinzuomei
* @date 2021/11/2 10:35 上午
@ -106,7 +107,7 @@ public interface IcResiUserDao extends BaseDao<IcResiUserEntity> {
@Param("resultTableName") String resultTableName,
@Param("conditions") List<ResiUserQueryValueDTO> conditions,
@Param("subTables") List<String> subTables,
@Param("currentStaffAgencyId") String currentStaffAgencyId,
@Param("showSqlColumns") List<IcCustomExportResultDTO.SqlColumn> showSqlColumns, @Param("currentStaffAgencyId") String currentStaffAgencyId,
@Param("staffOrgPath") String staffOrgPath);
/**

2
epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java

@ -276,4 +276,6 @@ public interface IcResiUserService extends BaseService<IcResiUserEntity> {
* @date 2022/4/21/0021 15:02
*/
List<HomeUserBriefResultDTO> listHomeUserBrief(String houseId, String customerId);
List<Map<String,Object>> dynamicQuery(String loginUserCustomerId, String formCode, String icResiUser, List<IcCustomExportResultDTO.SqlColumn> showSqlColumns, List<ResiUserQueryValueDTO> conditions, String agencyId, String finalStaffOrgPath);
}

89
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<IcCustomExportResultDTO> exportConfigResult = operCustomizeOpenFeignClient.getExcelHeaderAndSqlColumnForExport(param);
ExcelWriter excelWriter = null;
try {
//获取模板条件
IcExportTemplateQueryFormDTO param = new IcExportTemplateQueryFormDTO();
param.setCustomerId(loginUserUtil.getLoginUserCustomerId());
param.setCustomerId("default");
param.setTempId(pageFormDTO.getTemplateId());
Result<IcCustomExportResultDTO> 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<Map<String, Object>> mapListPage = null;
List<IcCustomExportResultDTO.SqlColumn> 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<Map<String, Object>> result = mapListPage.getResult();
List<List<Object>> resultData = new ArrayList<>();
result.forEach(o -> {
List<Object> 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();
}
}
}
}

58
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<IcResiUserDao, IcResi
});
PageInfo<Map<String, Object>> pageInfo = new PageInfo<>();
if (null == formDTO.getPageFlag() || formDTO.getPageFlag()) {
PageInfo<Map<String, Object>> 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<IcResiUserDao, IcResi
* @return
*/
@Override
public List<Map<String, Object>> dynamicQuery(String customerId,
String formCode,
String resultTableName,
List<ResiUserQueryValueDTO> conditions,
String currentStaffAgencyId,
String staffOrgPath) {
CustomerFormQueryDTO queryDTO = new CustomerFormQueryDTO();
public List<Map<String,Object>> dynamicQuery(String customerId,
String formCode,
String resultTableName,
List<ResiUserQueryValueDTO> conditions,
String currentStaffAgencyId,
String staffOrgPath){
List<String> finalSubTables = getFinalSubables(customerId, formCode, resultTableName, conditions);
return baseDao.dynamicQuery(customerId,resultTableName,conditions,finalSubTables, null, currentStaffAgencyId,staffOrgPath);
}
@NotNull
public List<String> getFinalSubables(String customerId, String formCode, String resultTableName, List<ResiUserQueryValueDTO> conditions) {
CustomerFormQueryDTO queryDTO=new CustomerFormQueryDTO();
queryDTO.setCustomerId(customerId);
queryDTO.setFormCode(formCode);
//所有的子表
Result<List<SubTableJoinDTO>> subTablesRes = operCustomizeOpenFeignClient.querySubTables(queryDTO);
/*List<String> subTablesBak=new ArrayList<>();
if(subTablesRes.success()&&CollectionUtils.isNotEmpty(subTablesRes.getData())){
subTablesBak =subTablesRes.getData().stream().map(SubTableJoinDTO::getJoinTableSql).collect(Collectors.toList());
}*/
List<SubTableJoinDTO> subTables = subTablesRes.getData();
Result<List<SubTableJoinDTO>> subTablesRes=operCustomizeOpenFeignClient.querySubTables(queryDTO);
List<SubTableJoinDTO> subTables =subTablesRes.getData();
// log.info("1、所有的子表subTables:"+JSON.toJSONString(subTables,true));
//关联哪些子表:查询条件用到的表名+查询的列对应的表 并集去重
Set<String> whereConditionTables = conditions.stream().map(ResiUserQueryValueDTO::getTableName).collect(Collectors.toSet());
Set<String> tables = new HashSet<>();
tables.addAll(whereConditionTables);
Set<String> whereConditionTables=conditions.stream().map(ResiUserQueryValueDTO::getTableName).collect(Collectors.toSet());
Set<String> tables = new HashSet<>(whereConditionTables);
tables.add(resultTableName);
// log.info("2、查询条件+查询列对应的tables并集去重:"+ JSON.toJSONString(tables,true));
//最终关联的子表对应的sql:
List<String> finalSubTables = new ArrayList<>();
subTables.forEach(subTable -> {
if (tables.contains(subTable.getTableName())) {
List<String> 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<IcResiUserDao, IcResi
public List<Map<String, Object>> getDataForExport(ExportResiUserItemDTO formItemMap, String baseTableName, IcResiUserPageFormDTO pageFormDTO,
String currentStaffAgencyId,
String staffOrgPath) {
Page<Map<String, Object>> mapListPage = PageHelper.startPage(pageFormDTO.getPageNo(), pageFormDTO.getPageSize(), pageFormDTO.getPageFlag()).doSelectPage(() -> {
Page<Map<String, Object>> 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<IcResiUserDao, IcResi
return ConvertUtils.sourceToTarget(homeUserList, HomeUserBriefResultDTO.class);
}
@Override
public List<Map<String, Object>> dynamicQuery(String customerId, String formCode, String resultTableName, List<IcCustomExportResultDTO.SqlColumn> showSqlColumns, List<ResiUserQueryValueDTO> conditions, String currentStaffAgencyId, String staffOrgPath) {
List<String> finalSubTables = getFinalSubables(customerId, formCode, resultTableName, conditions);
return baseDao.dynamicQuery(customerId,resultTableName,conditions,finalSubTables,showSqlColumns,currentStaffAgencyId,staffOrgPath);
}
}

BIN
epmet-user/epmet-user-server/src/main/resources/excel/ic_resi_import_template.xls

Binary file not shown.

11
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}
</update>
<select id="dynamicQuery" parameterType="map" resultType="map">
<select id="dynamicQuery" parameterType="map" resultType="java.util.LinkedHashMap">
select
${resultTableName}.*
<choose>
<when test="showSqlColumns != null and showSqlColumns.size() != 0">
<foreach collection="showSqlColumns" item="column" separator=",">
${column.tableName}.${column.columnName}
</foreach>
</when>
<otherwise>${resultTableName}.*</otherwise>
</choose>
FROM
ic_resi_user
<if test="null != subTables and subTables.size() > 0">

Loading…
Cancel
Save