From 5dfe33e9f7d689a43d90620690efad4122d3f735 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Fri, 22 Apr 2022 15:23:09 +0800 Subject: [PATCH] /icform/conditionlist-bygroup --- .../com/epmet/dto/result/ConditionResDTO.java | 23 +++++ .../epmet/controller/IcFormController.java | 13 +++ .../controller/IcFormItemController.java | 10 +++ .../java/com/epmet/dao/IcFormItemDao.java | 9 ++ .../com/epmet/dao/IcFormQueryBuilderDao.java | 8 +- .../entity/IcFormQueryBuilderEntity.java | 15 ++++ .../com/epmet/service/IcFormItemService.java | 8 ++ .../service/impl/IcFormItemServiceImpl.java | 86 ++++++++++++++++++- .../main/resources/mapper/IcFormItemDao.xml | 59 +++++++++++++ .../mapper/IcFormQueryBuilderDao.xml | 21 +++++ 10 files changed, 250 insertions(+), 2 deletions(-) create mode 100644 epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/ConditionResDTO.java diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/ConditionResDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/ConditionResDTO.java new file mode 100644 index 0000000000..db50d133ba --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/ConditionResDTO.java @@ -0,0 +1,23 @@ +package com.epmet.dto.result; + + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +@Data +public class ConditionResDTO implements Serializable { + /** + * 分组ID,'默认,NONE' + */ + private String itemGroupId; + + /** + * 分组名称 + * 基础信息、教育信息.... + */ + private String groupName; + + private List queryItemList; +} diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormController.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormController.java index b247addf24..ef443587d2 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormController.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormController.java @@ -102,6 +102,19 @@ public class IcFormController { return new Result>().ok(icFormItemService.queryConditionList(formDto)); } + /** + * 查询条件, 分组显示 + * @param tokenDto + * @param formDto + * @return + */ + @PostMapping("conditionlist-bygroup") + public Result> queryConditionListByGroup(@LoginUser TokenDto tokenDto, @RequestBody CustomerFormQueryDTO formDto){ + formDto.setCustomerId(tokenDto.getCustomerId()); + ValidatorUtils.validateEntity(formDto,CustomerFormQueryDTO.AddUserInternalGroup.class); + return new Result>().ok(icFormItemService.queryConditionListByGroup(formDto)); + } + /** * 居民信息列表_表头 * @param tokenDto 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 8eb1a4e549..49c54f3d21 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 @@ -78,4 +78,14 @@ public class IcFormItemController { icFormItemService.editItemType(formDTO); return new Result(); } + + /** + * 初始化默认的查询组件:ic_form_item.SEARCH_DISPLAY='1'的 + * @return + */ + @PostMapping("init-query-builder") + public Result initQueryBuilder(@RequestParam("customerId")String customerId){ + icFormItemService.initQueryBuilder(customerId); + return new Result(); + } } 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 d20a49202a..89054811ec 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 @@ -37,6 +37,15 @@ public interface IcFormItemDao extends BaseDao { List selectConditionList(@Param("customerId") String customerId, @Param("formCode") String formCode); + List selectConditionListByGroupId(String groupId); + /** + * 查询组件列表 + * @param customerId + * @param formCode + * @return + */ + List selectConditionListGroup(@Param("customerId") String customerId, @Param("formCode") String formCode, @Param("itemIdList") List itemIdList); + List queryTableHeaderList(@Param("customerId") String customerId, @Param("formCode") String formCode); /** diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcFormQueryBuilderDao.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcFormQueryBuilderDao.java index a142d8d637..67a3f319cb 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcFormQueryBuilderDao.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcFormQueryBuilderDao.java @@ -20,6 +20,9 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.entity.IcFormQueryBuilderEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * 表单查询项 @@ -29,5 +32,8 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface IcFormQueryBuilderDao extends BaseDao { - + + IcFormQueryBuilderEntity selectDefaultQueryItem(@Param("itemId") String itemId,@Param("itemType") String itemType, @Param("queryType")String queryType); + + List selectItemId(@Param("customerId") String customerId, @Param("formCode") String formCode); } \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/IcFormQueryBuilderEntity.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/IcFormQueryBuilderEntity.java index 4713b01dd3..9534fc12d2 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/IcFormQueryBuilderEntity.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/IcFormQueryBuilderEntity.java @@ -45,6 +45,11 @@ public class IcFormQueryBuilderEntity extends BaseEpmetEntity { */ private String formItemId; + /** + * 项标签 + */ + private String label; + /** * ic_form.form_code,举例:resi_base_info * @see com.epmet.commons.tools.enums.IcFormCodeEnum @@ -52,11 +57,21 @@ public class IcFormQueryBuilderEntity extends BaseEpmetEntity { */ private String formCode; + /** + * 组件类型 + */ + private String itemType; + /** * 查询类型: equal, like,daterange.... */ private String queryType; + /** + * 值转换类型 + */ + private String funType; + /** * 排序 */ diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcFormItemService.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcFormItemService.java index 0912092f94..3caf6a64c0 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcFormItemService.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcFormItemService.java @@ -43,6 +43,8 @@ public interface IcFormItemService extends BaseService { */ List queryConditionList(CustomerFormQueryDTO formDto); + List queryConditionListByGroup(CustomerFormQueryDTO formDto); + List queryTableHeaderList(CustomerFormQueryDTO formDto); List queryConditions(String customerId,String formCode); @@ -75,4 +77,10 @@ public interface IcFormItemService extends BaseService { * @return */ void editItemType(EditIFormItemFormDTO formDTO); + + /** + * 初始化默认的查询组件:ic_form_item.SEARCH_DISPLAY='1'的 + * @param customerId + */ + void initQueryBuilder(String customerId); } 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 15f0f70dfb..0fee230ef5 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 @@ -20,14 +20,17 @@ package com.epmet.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.StrConstant; import com.epmet.dao.IcFormItemDao; import com.epmet.dao.IcFormItemOptionsDao; +import com.epmet.dao.IcFormQueryBuilderDao; import com.epmet.dto.form.CustomerFormQueryDTO; import com.epmet.dto.form.EditIFormItemFormDTO; import com.epmet.dto.result.*; import com.epmet.entity.IcFormItemEntity; import com.epmet.entity.IcFormItemOptionsEntity; +import com.epmet.entity.IcFormQueryBuilderEntity; import com.epmet.service.IcFormItemService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -51,7 +54,8 @@ import java.util.stream.Collectors; public class IcFormItemServiceImpl extends BaseServiceImpl implements IcFormItemService { @Autowired private IcFormItemOptionsDao icFormItemOptionsDao; - + @Autowired + private IcFormQueryBuilderDao icFormQueryBuilderDao; /** * 获取居民信息的查询条件,组件列表 * @@ -66,6 +70,16 @@ public class IcFormItemServiceImpl extends BaseServiceImpl queryConditionListByGroup(CustomerFormQueryDTO formDto) { + List itemIdList=icFormQueryBuilderDao.selectItemId(formDto.getCustomerId(),formDto.getFormCode()); + if(CollectionUtils.isEmpty(itemIdList)){ + return new ArrayList<>(); + } + List list=baseDao.selectConditionListGroup(formDto.getCustomerId(),formDto.getFormCode(),itemIdList); + return list; + } + /** * 居民信息列表_表头 * @param formDto @@ -206,6 +220,76 @@ public class IcFormItemServiceImpl extends BaseServiceImpl queryWrapper = new QueryWrapper().lambda() + .eq(StringUtils.isNotBlank(customerId), IcFormItemEntity::getCustomerId, customerId) + .isNotNull(IcFormItemEntity::getColumnName) + .eq(IcFormItemEntity::getSearchDisplay, NumConstant.ONE); + List itemList = baseDao.selectList(queryWrapper); + if (CollectionUtils.isEmpty(itemList)) { + return; + } + for (IcFormItemEntity item : itemList) { + IcFormQueryBuilderEntity builderEntity = new IcFormQueryBuilderEntity(); + builderEntity.setCustomerId(item.getCustomerId()); + builderEntity.setFormItemId(item.getId()); + builderEntity.setLabel(item.getLabel()); + builderEntity.setFormCode(item.getFormCode()); + builderEntity.setItemType(item.getItemType()); + builderEntity.setQueryType(queryType(item.getItemType())); + builderEntity.setFunType(StrConstant.EPMETY_STR); + builderEntity.setSort(item.getSort()); + builderEntity.setCreatedBy("init"); + builderEntity.setUpdatedBy("init"); + //item默认的查询组件已经有了,就不插入了 + IcFormQueryBuilderEntity entity = icFormQueryBuilderDao.selectDefaultQueryItem(item.getId(), item.getItemType(), builderEntity.getQueryType()); + if (null == entity) { + icFormQueryBuilderDao.insert(builderEntity); + } + } + } + + + private String queryType(String itemType) { + String queryType; + switch (itemType) { + case "select": + queryType = "equal"; + break; + case "input": + queryType = "like"; + break; + case "datepicker": + queryType = "daterange"; + break; + case "textarea": + queryType = "like"; + break; + case "radio": + queryType = "equal"; + break; + //多选的,查询时应该是 and (columnname='' or columnname='') + case "checkbox": + queryType = "list_equal"; + break; + case "daterange": + queryType = "daterange"; + break; + case "cascader": + queryType = "equal"; + break; + default: + queryType = "like"; + } + return queryType; + } } 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 4c3fc899c4..b52940c589 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 @@ -59,6 +59,37 @@ ORDER BY b.SORT asc + @@ -161,4 +192,32 @@ AND a.customer_id = #{customerId} + + + + + + + + diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormQueryBuilderDao.xml b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormQueryBuilderDao.xml index 62281279fa..6ec0f6dae9 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormQueryBuilderDao.xml +++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormQueryBuilderDao.xml @@ -18,5 +18,26 @@ + + \ No newline at end of file