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. 2
      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. 81
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserExportServiceImpl.java
  24. 30
      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 lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date;
/** /**
@ -52,34 +51,4 @@ public class IcExportTemplateDTO implements Serializable {
*/ */
private Integer sort; 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 * @since v1.0.0 2022-04-21
*/ */
@Data @Data
public class IcExportTemplateFormDTO implements Serializable { public class IcExportTemplateQueryFormDTO implements Serializable {
private static final long serialVersionUID = 1L; 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; private static final long serialVersionUID = 7443085469505238040L;
/** /**
* 父项ID * ID
*/ */
private String itemId; 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 * @author yinzuomei@elink-cn.com
* @date 2020/6/4 13:16 * @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,url = "http://localhost:8089")
//@FeignClient(name = ServiceConstant.OPER_CUSTOMIZE_SERVER, fallbackFactory = OperCustomizeOpenFeignClientFallbackFactory.class) @FeignClient(name = ServiceConstant.OPER_CUSTOMIZE_SERVER, fallbackFactory = OperCustomizeOpenFeignClientFallbackFactory.class)
public interface OperCustomizeOpenFeignClient { public interface OperCustomizeOpenFeignClient {
@PostMapping(value = "/oper/customize/customerfootbar/customerfootbars", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE) @PostMapping(value = "/oper/customize/customerfootbar/customerfootbars", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
@ -168,5 +168,5 @@ public interface OperCustomizeOpenFeignClient {
* @return * @return
*/ */
@PostMapping("/oper/customize/icExportTemplate/getExcelHeaderAndSqlColumnForExport") @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 @Override
public Result<IcCustomExportResultDTO> getExcelHeaderAndSqlColumnForExport(IcExportTemplateFormDTO param) { public Result<IcCustomExportResultDTO> getExcelHeaderAndSqlColumnForExport(IcExportTemplateQueryFormDTO param) {
return ModuleUtils.feignConError(ServiceConstant.OPER_CUSTOMIZE_SERVER, "getExcelHeaderAndSqlColumnForExport", 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.AssertUtils;
import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.commons.tools.validator.group.AddGroup; 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.commons.tools.validator.group.ExportGroup;
import com.epmet.dto.IcExportTemplateDTO; 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.dto.result.IcCustomExportResultDTO;
import com.epmet.service.IcExportTemplateService; import com.epmet.service.IcExportTemplateService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -45,9 +45,9 @@ public class IcExportTemplateController {
@NoRepeatSubmit @NoRepeatSubmit
@PostMapping("save") @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); icExportTemplateService.save(dto);
return new Result(); return new Result();
} }
@ -68,7 +68,7 @@ public class IcExportTemplateController {
* @return * @return
*/ */
@PostMapping("getExcelHeaderAndSqlColumnForExport") @PostMapping("getExcelHeaderAndSqlColumnForExport")
public Result<IcCustomExportResultDTO> getExcelHeaderAndSqlColumnForExport(@RequestBody IcExportTemplateFormDTO param) { public Result<IcCustomExportResultDTO> getExcelHeaderAndSqlColumnForExport(@RequestBody IcExportTemplateQueryFormDTO param) {
ValidatorUtils.validateEntity(param, ExportGroup.class); ValidatorUtils.validateEntity(param, ExportGroup.class);
return new Result().ok(icExportTemplateService.getTemplateConfigForExport(param)); 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.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.form.EditIFormItemFormDTO; import com.epmet.dto.form.EditIFormItemFormDTO;
import com.epmet.dto.result.ColumnTableNameResultDTO; import com.epmet.dto.result.ColumnTableNameResultDTO;
import com.epmet.dto.result.FormItemResult;
import com.epmet.dto.result.ResiCategoryItemResultDTO; import com.epmet.dto.result.ResiCategoryItemResultDTO;
import com.epmet.service.IcFormItemService; import com.epmet.service.IcFormItemService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -88,4 +89,14 @@ public class IcFormItemController {
icFormItemService.initQueryBuilder(customerId); icFormItemService.initQueryBuilder(customerId);
return new Result(); 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; package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao; 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.dto.result.IcExportTemplateForExportResultDTO;
import com.epmet.entity.IcExportTemplateEntity; import com.epmet.entity.IcExportTemplateEntity;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
@ -17,5 +17,5 @@ import java.util.List;
@Mapper @Mapper
public interface IcExportTemplateDao extends BaseDao<IcExportTemplateEntity> { 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属性 * desc:根据Id获取item对应的表名和item属性
*
* @param itemId * @param itemId
* @return * @return
*/ */
ConditionResultDTO getConditionItem(@Param("itemId") String itemId); 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 * 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.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.IcExportTemplateDTO; 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.dto.result.IcCustomExportResultDTO;
import com.epmet.entity.IcExportTemplateEntity; import com.epmet.entity.IcExportTemplateEntity;
@ -56,17 +57,7 @@ public interface IcExportTemplateService extends BaseService<IcExportTemplateEnt
* @author generator * @author generator
* @date 2022-04-21 * @date 2022-04-21
*/ */
void save(IcExportTemplateDTO dto); void save(IcExportTemplateSaveFormDTO dto);
/**
* 默认更新
*
* @param dto
* @return void
* @author generator
* @date 2022-04-21
*/
void update(IcExportTemplateDTO dto);
/** /**
* 批量删除 * 批量删除
@ -86,5 +77,5 @@ public interface IcExportTemplateService extends BaseService<IcExportTemplateEnt
* @author LiuJanJun * @author LiuJanJun
* @date 2022/4/22 3:55 下午 * @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 * @param customerId
*/ */
void initQueryBuilder(String 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.IcExportTemplateDao;
import com.epmet.dao.IcFormItemDao; import com.epmet.dao.IcFormItemDao;
import com.epmet.dto.IcExportTemplateDTO; 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.ConditionResultDTO;
import com.epmet.dto.result.IcCustomExportResultDTO; import com.epmet.dto.result.IcCustomExportResultDTO;
import com.epmet.dto.result.IcExportTemplateForExportResultDTO; import com.epmet.dto.result.IcExportTemplateForExportResultDTO;
@ -75,18 +76,12 @@ public class IcExportTemplateServiceImpl extends BaseServiceImpl<IcExportTemplat
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void save(IcExportTemplateDTO dto) { public void save(IcExportTemplateSaveFormDTO dto) {
IcExportTemplateEntity entity = ConvertUtils.sourceToTarget(dto, IcExportTemplateEntity.class); //TODO
insert(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(IcExportTemplateDTO dto) {
IcExportTemplateEntity entity = ConvertUtils.sourceToTarget(dto, IcExportTemplateEntity.class);
updateById(entity);
} }
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void delete(String[] ids) { public void delete(String[] ids) {
@ -95,7 +90,7 @@ public class IcExportTemplateServiceImpl extends BaseServiceImpl<IcExportTemplat
} }
@Override @Override
public IcCustomExportResultDTO getTemplateConfigForExport(IcExportTemplateFormDTO param) { public IcCustomExportResultDTO getTemplateConfigForExport(IcExportTemplateQueryFormDTO param) {
List<IcExportTemplateForExportResultDTO> list = icExportTemplateDao.getTemplateConfigForExport(param); List<IcExportTemplateForExportResultDTO> list = icExportTemplateDao.getTemplateConfigForExport(param);
if (CollectionUtils.isEmpty(list)) { if (CollectionUtils.isEmpty(list)) {
return null; 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) { private String queryType(String itemType) {
String queryType; String queryType;

2
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="customerId" column="CUSTOMER_ID"/>
<result property="tempId" column="TEMP_ID"/> <result property="tempId" column="TEMP_ID"/>
<result property="pid" column="PID"/> <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="width" column="WIDTH"/>
<result property="label" column="LABEL"/> <result property="label" column="LABEL"/>
<result property="sort" column="SORT"/> <result property="sort" column="SORT"/>

11
epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormItemDao.xml

@ -252,4 +252,15 @@
and ifi.DEL_FLAG = '0' and ifi.DEL_FLAG = '0'
AND ifig.DEL_FLAG = '0' AND ifig.DEL_FLAG = '0'
</select> </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> </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; package com.epmet.dto.form;
import com.epmet.commons.tools.dto.form.PageFormDTO;
import com.epmet.commons.tools.validator.group.ExportGroup; import com.epmet.commons.tools.validator.group.ExportGroup;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable; import java.io.Serializable;
import java.util.List; import java.util.List;
@ -14,16 +14,10 @@ import java.util.List;
* @Date 2021/10/27 2:06 下午 * @Date 2021/10/27 2:06 下午
*/ */
@Data @Data
public class IcResiUserPageFormDTO implements Serializable { public class IcResiUserPageFormDTO extends PageFormDTO implements Serializable {
public interface AddUserInternalGroup { 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) @NotBlank(message = "formCode不能为空", groups = AddUserInternalGroup.class)
private String formCode; private String formCode;
@ -34,7 +28,6 @@ public class IcResiUserPageFormDTO implements Serializable {
* 表对应的字段及值 * 表对应的字段及值
*/ */
private List<ResiUserQueryValueDTO> conditions; private List<ResiUserQueryValueDTO> conditions;
private Boolean pageFlag;
@NotBlank(message = "当前用户id不能为空", groups = AddUserInternalGroup.class) @NotBlank(message = "当前用户id不能为空", groups = AddUserInternalGroup.class)
private String staffId; 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(); staffOrgPath = staffInfoCacheResult.getAgencyId();
} }
pageFormDTO.setCustomerId(customerId); pageFormDTO.setCustomerId(customerId);
pageFormDTO.setPageFlag(false); pageFormDTO.setIsPage(false);
//获取模版文件 //获取模版文件
File file = getIcResiTemplateFile(customerId, IcUserTemplateEnums.IC_RESI_EXPORT_TEMPLATE); 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 { public void exportExcelCustom(/*@LoginUser*/ TokenDto tokenDto, @RequestBody IcResiUserPageFormDTO pageFormDTO, HttpServletResponse response) throws Exception {
//tokenDto.setUserId("9e37adcce6472152e6508a19d3683e02"); //tokenDto.setUserId("9e37adcce6472152e6508a19d3683e02");
//tokenDto.setCustomerId("45687aa479955f9d06204d415238f7cc"); //tokenDto.setCustomerId("45687aa479955f9d06204d415238f7cc");
ValidatorUtils.validateEntity(pageFormDTO, IcResiUserPageFormDTO.AddUserInternalGroup.class, ExportGroup.class); ValidatorUtils.validateEntity(pageFormDTO, ExportGroup.class);
pageFormDTO.setIsPage(false);
//获取导出配置 //获取导出配置
icResiUserExportService.exportIcResiUser(pageFormDTO,response); 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 customerId 客户id
* @param resultTableName 获取哪个表的数据 * @param resultTableName 获取哪个表的数据
* @param conditions 前端传入的查询入参 * @param conditions 前端传入的查询入参
* @param showSqlColumns
* @return java.util.List<java.util.Map < java.lang.String, java.lang.Object>> * @return java.util.List<java.util.Map < java.lang.String, java.lang.Object>>
* @author yinzuomei * @author yinzuomei
* @date 2021/11/2 10:35 上午 * @date 2021/11/2 10:35 上午
@ -106,7 +107,7 @@ public interface IcResiUserDao extends BaseDao<IcResiUserEntity> {
@Param("resultTableName") String resultTableName, @Param("resultTableName") String resultTableName,
@Param("conditions") List<ResiUserQueryValueDTO> conditions, @Param("conditions") List<ResiUserQueryValueDTO> conditions,
@Param("subTables") List<String> subTables, @Param("subTables") List<String> subTables,
@Param("currentStaffAgencyId") String currentStaffAgencyId, @Param("showSqlColumns") List<IcCustomExportResultDTO.SqlColumn> showSqlColumns, @Param("currentStaffAgencyId") String currentStaffAgencyId,
@Param("staffOrgPath") String staffOrgPath); @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 * @date 2022/4/21/0021 15:02
*/ */
List<HomeUserBriefResultDTO> listHomeUserBrief(String houseId, String customerId); 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);
} }

81
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserExportServiceImpl.java

@ -1,17 +1,35 @@
package com.epmet.service.impl; 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.security.user.LoginUserUtil;
import com.epmet.commons.tools.utils.ExcelUtils;
import com.epmet.commons.tools.utils.Result; 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.form.IcResiUserPageFormDTO;
import com.epmet.dto.result.IcCustomExportResultDTO; import com.epmet.dto.result.IcCustomExportResultDTO;
import com.epmet.feign.OperCustomizeOpenFeignClient; import com.epmet.feign.OperCustomizeOpenFeignClient;
import com.epmet.service.IcResiUserExportService; 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 lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/** /**
* desc: * desc:
@ -27,6 +45,9 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService {
private OperCustomizeOpenFeignClient operCustomizeOpenFeignClient; private OperCustomizeOpenFeignClient operCustomizeOpenFeignClient;
@Autowired @Autowired
private LoginUserUtil loginUserUtil; private LoginUserUtil loginUserUtil;
@Autowired
private IcResiUserService icResiUserService;
/** /**
* desc: 根据条件查询居民信息并根据配置模板导出 * desc: 根据条件查询居民信息并根据配置模板导出
* *
@ -38,11 +59,67 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService {
*/ */
@Override @Override
public void exportIcResiUser(IcResiUserPageFormDTO pageFormDTO, HttpServletResponse response) { public void exportIcResiUser(IcResiUserPageFormDTO pageFormDTO, HttpServletResponse response) {
ExcelWriter excelWriter = null;
try {
//获取模板条件 //获取模板条件
IcExportTemplateFormDTO param = new IcExportTemplateFormDTO(); IcExportTemplateQueryFormDTO param = new IcExportTemplateQueryFormDTO();
param.setCustomerId(loginUserUtil.getLoginUserCustomerId()); param.setCustomerId(loginUserUtil.getLoginUserCustomerId());
param.setCustomerId("default");
param.setTempId(pageFormDTO.getTemplateId()); param.setTempId(pageFormDTO.getTemplateId());
Result<IcCustomExportResultDTO> exportConfigResult = operCustomizeOpenFeignClient.getExcelHeaderAndSqlColumnForExport(param); 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();
}
}
} }
} }

30
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.collections4.CollectionUtils;
import org.apache.commons.compress.utils.Lists; import org.apache.commons.compress.utils.Lists;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -562,7 +563,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
PageInfo<Map<String, Object>> pageInfo=new PageInfo<>(); PageInfo<Map<String, Object>> pageInfo=new PageInfo<>();
if (null == formDTO.getPageFlag() || formDTO.getPageFlag()) { if (null == formDTO.getIsPage()||formDTO.getIsPage()) {
//分页 //分页
String finalStaffOrgPath = staffOrgPath; String finalStaffOrgPath = staffOrgPath;
pageInfo = PageHelper.startPage(formDTO.getPageNo(), pageInfo = PageHelper.startPage(formDTO.getPageNo(),
@ -747,21 +748,24 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
List<ResiUserQueryValueDTO> conditions, List<ResiUserQueryValueDTO> conditions,
String currentStaffAgencyId, String currentStaffAgencyId,
String staffOrgPath){ 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(); CustomerFormQueryDTO queryDTO=new CustomerFormQueryDTO();
queryDTO.setCustomerId(customerId); queryDTO.setCustomerId(customerId);
queryDTO.setFormCode(formCode); queryDTO.setFormCode(formCode);
//所有的子表 //所有的子表
Result<List<SubTableJoinDTO>> subTablesRes=operCustomizeOpenFeignClient.querySubTables(queryDTO); 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(); List<SubTableJoinDTO> subTables =subTablesRes.getData();
// log.info("1、所有的子表subTables:"+JSON.toJSONString(subTables,true)); // log.info("1、所有的子表subTables:"+JSON.toJSONString(subTables,true));
//关联哪些子表:查询条件用到的表名+查询的列对应的表 并集去重 //关联哪些子表:查询条件用到的表名+查询的列对应的表 并集去重
Set<String> whereConditionTables=conditions.stream().map(ResiUserQueryValueDTO::getTableName).collect(Collectors.toSet()); Set<String> whereConditionTables=conditions.stream().map(ResiUserQueryValueDTO::getTableName).collect(Collectors.toSet());
Set<String> tables = new HashSet<>(); Set<String> tables = new HashSet<>(whereConditionTables);
tables.addAll(whereConditionTables);
tables.add(resultTableName); tables.add(resultTableName);
// log.info("2、查询条件+查询列对应的tables并集去重:"+ JSON.toJSONString(tables,true)); // log.info("2、查询条件+查询列对应的tables并集去重:"+ JSON.toJSONString(tables,true));
//最终关联的子表对应的sql: //最终关联的子表对应的sql:
@ -771,8 +775,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
finalSubTables.add(subTable.getJoinTableSql()); finalSubTables.add(subTable.getJoinTableSql());
} }
}); });
return finalSubTables;
return baseDao.dynamicQuery(customerId, resultTableName, conditions, finalSubTables, currentStaffAgencyId, staffOrgPath);
} }
/** /**
@ -919,7 +922,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
public List<Map<String, Object>> getDataForExport(ExportResiUserItemDTO formItemMap, String baseTableName, IcResiUserPageFormDTO pageFormDTO, public List<Map<String, Object>> getDataForExport(ExportResiUserItemDTO formItemMap, String baseTableName, IcResiUserPageFormDTO pageFormDTO,
String currentStaffAgencyId, String currentStaffAgencyId,
String staffOrgPath) { 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); this.dynamicQuery(pageFormDTO.getCustomerId(), pageFormDTO.getFormCode(), baseTableName, pageFormDTO.getConditions(), currentStaffAgencyId, staffOrgPath);
}); });
mapListPage.getResult().parallelStream().filter(Objects::nonNull).forEach(resiUser -> { 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); 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 ${subTalbeName} set del_flag='1' where IC_RESI_USER=#{icResiUserId}
</update> </update>
<select id="dynamicQuery" parameterType="map" resultType="map"> <select id="dynamicQuery" parameterType="map" resultType="java.util.LinkedHashMap">
select 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 FROM
ic_resi_user ic_resi_user
<if test="null != subTables and subTables.size() > 0"> <if test="null != subTables and subTables.size() > 0">

Loading…
Cancel
Save