Browse Source

Merge remote-tracking branch 'origin/dev_resi_export' into develop

master
yinzuomei 3 years ago
parent
commit
12a5b0c429
  1. 22
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/HouseChartResultDTO.java
  2. 10
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java
  3. 40
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java
  4. 34
      epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml
  5. 31
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/IcFormItemGroupDTO.java
  6. 84
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/IcFormItemGroupLisFormDTO.java
  7. 23
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/ConditionResDTO.java
  8. 13
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormController.java
  9. 10
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormItemController.java
  10. 24
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormItemGroupController.java
  11. 9
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcFormItemDao.java
  12. 6
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcFormQueryBuilderDao.java
  13. 10
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/IcExportTemplateConfigEntity.java
  14. 15
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/IcFormQueryBuilderEntity.java
  15. 15
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcFormItemGroupService.java
  16. 8
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcFormItemService.java
  17. 32
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemGroupServiceImpl.java
  18. 86
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemServiceImpl.java
  19. 8
      epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.22__update_search_col.sql
  20. 18
      epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.23__update_group_sort.sql
  21. 59
      epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormItemDao.xml
  22. 21
      epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormQueryBuilderDao.xml
  23. 5
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcVeteransDTO.java
  24. 7
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/UserChartResultDTO.java
  25. 8
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java
  26. 2
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java
  27. 5
      epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcVeteransEntity.java
  28. 6
      epmet-user/epmet-user-server/src/main/java/com/epmet/excel/IcVeteransExcel.java
  29. 2
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java
  30. 43
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java
  31. 3
      epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.41__add_is_handle_job.sql
  32. 23
      epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml
  33. 1
      epmet-user/epmet-user-server/src/main/resources/mapper/IcStatsResiWarnDao.xml

22
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/HouseChartResultDTO.java

@ -1,5 +1,7 @@
package com.epmet.dto.result;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import java.io.Serializable;
@ -21,30 +23,36 @@ public class HouseChartResultDTO implements Serializable {
/**
* 房屋总数
*/
private Integer houseTotal;
private Integer houseTotal = 0;
/**
* 房屋自住总数
*/
private Integer zzHouseTotal;
private Integer zzHouseTotal = 0;
/**
* 房屋自住总数占比保留两位小数带百分号的
*/
private String zzHouseRatio;
private String zzHouseRatio = "0%";
/**
* 房屋常住总数
*/
private Integer czHouseTotal;
private Integer czHouseTotal = 0;
/**
* 房屋常住总数占比保留两位小数带百分号的
*/
private String czHouseRatio;
private String czHouseRatio = "0%";
/**
* 房屋闲置总数
*/
private Integer xzHouseTotal;
private Integer xzHouseTotal = 0;
/**
* 房屋闲置总数占比保留两位小数带百分号的
*/
private String xzHouseRatio;
private String xzHouseRatio = "0%";
@JsonIgnore
private Integer num;
//1:出租 0:自住 2:闲置
@JsonIgnore
private Integer rentFlag;
}

10
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java

@ -3,10 +3,7 @@ package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.ImportGeneralDTO;
import com.epmet.dto.form.IcHouseListFormDTO;
import com.epmet.dto.result.HouseInfoDTO;
import com.epmet.dto.result.HousesNameResultDTO;
import com.epmet.dto.result.IcHouseListResultDTO;
import com.epmet.dto.result.NeighborHoodManageDelResultDTO;
import com.epmet.dto.result.*;
import com.epmet.entity.IcHouseEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -83,4 +80,9 @@ public interface IcHouseDao extends BaseDao<IcHouseEntity> {
*/
List<HousesNameResultDTO> getHousesNameByIdCards(@Param("idCards") List<String> idCards);
/**
* @Author sun
* @Description 人房房屋总数饼图
**/
List<HouseChartResultDTO> houseChart(@Param("orgId") String orgId, @Param("orgType") String orgType);
}

40
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java

@ -6,6 +6,7 @@ import com.alibaba.excel.ExcelReader;
import com.alibaba.excel.read.metadata.ReadSheet;
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.enums.OrgTypeEnum;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException;
@ -13,6 +14,7 @@ import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.feign.ResultDataResolver;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.redis.common.CustomerOrgRedis;
import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
@ -52,8 +54,10 @@ import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.text.NumberFormat;
import java.util.*;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
@Slf4j
@ -354,7 +358,41 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
**/
@Override
public HouseChartResultDTO houseChart(HouseChartFormDTO formDTO) {
return null;
HouseChartResultDTO resultDTO = new HouseChartResultDTO();
//计算百分比使用,保留小数点后两位
NumberFormat numberFormat = NumberFormat.getInstance();
numberFormat.setMaximumFractionDigits(NumConstant.TWO);
//1.判断入参是否有值,没有值则赋值当前工作人员缓存中所属组织信息
if (StringUtils.isEmpty(formDTO.getOrgId())) {
//2.获取工作人员缓存信息
CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getUserId());
if (null == staffInfo) {
throw new EpmetException(String.format("查询工作人员%s缓存信息失败...", formDTO.getUserId()));
}
formDTO.setOrgId(staffInfo.getAgencyId());
formDTO.setOrgType("agency");
}
//2.根据入参值查询对应的房屋统计数据
List<HouseChartResultDTO> list = icHouseDao.houseChart(formDTO.getOrgId(), formDTO.getOrgType());
//3.汇总数据
AtomicInteger houseTotal = new AtomicInteger();
list.forEach(l -> {
houseTotal.addAndGet(l.getNum());
if (l.getRentFlag() == 0) {
resultDTO.setZzHouseTotal(l.getNum());
} else if (l.getRentFlag() == 0) {
resultDTO.setCzHouseTotal(l.getNum());
} else {
resultDTO.setXzHouseTotal(l.getNum());
}
});
resultDTO.setHouseTotal(houseTotal.get());
resultDTO.setZzHouseRatio((resultDTO.getHouseTotal() == 0 || resultDTO.getZzHouseTotal() > resultDTO.getHouseTotal()) ? "0%" : numberFormat.format(((float) resultDTO.getZzHouseTotal() / (float) resultDTO.getHouseTotal()) * 100) + "%");
resultDTO.setCzHouseRatio((resultDTO.getHouseTotal() == 0 || resultDTO.getCzHouseTotal() > resultDTO.getHouseTotal()) ? "0%" : numberFormat.format(((float) resultDTO.getCzHouseTotal() / (float) resultDTO.getHouseTotal()) * 100) + "%");
resultDTO.setXzHouseRatio((resultDTO.getHouseTotal() == 0 || resultDTO.getXzHouseTotal() > resultDTO.getHouseTotal()) ? "0%" : numberFormat.format(((float) resultDTO.getXzHouseTotal() / (float) resultDTO.getHouseTotal()) * 100) + "%");
resultDTO.setOrgId(formDTO.getOrgId());
resultDTO.setOrgType(formDTO.getOrgType());
return resultDTO;
}
/**

34
epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml

@ -289,4 +289,38 @@
)
GROUP BY h.OWNER_ID_CARD
</select>
<select id="houseChart" resultType="com.epmet.dto.result.HouseChartResultDTO">
SELECT
COUNT(id) num,
rent_flag rentFlag
FROM
ic_house
WHERE del_flag = '0'
<choose>
<when test='orgType == "agency"'>
AND neighbor_hood_id IN (
select id from ic_neighbor_hood
where del_flag = '0'
and (agency_id = #{orgId} OR agency_pids LIKE CONCAT('%', #{orgId}, '%'))
)
</when>
<when test='orgType == "grid"'>
AND neighbor_hood_id IN (
select id from ic_neighbor_hood
where del_flag = '0'
and grid_id = #{orgId}
)
</when>
<otherwise>
AND neighbor_hood_id IN (
select id from ic_neighbor_hood
where del_flag = '0'
and id = #{orgId}
)
</otherwise>
</choose>
GROUP BY rent_flag
</select>
</mapper>

31
epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/IcFormItemGroupDTO.java

@ -20,7 +20,6 @@ package com.epmet.dto;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
@ -79,34 +78,4 @@ public class IcFormItemGroupDTO implements Serializable {
*/
private Boolean display;
/**
* 0未删除1已删除
*/
private Integer delFlag;
/**
* 乐观锁
*/
private Integer revision;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
}

84
epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/IcFormItemGroupLisFormDTO.java

@ -0,0 +1,84 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.dto.form;
import com.epmet.commons.tools.dto.form.PageFormDTO;
import com.epmet.commons.tools.validator.group.QueryGroup;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* 表单项分组查询条件
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2021-10-26
*/
@Data
public class IcFormItemGroupLisFormDTO extends PageFormDTO {
private static final long serialVersionUID = 1L;
/**
* 分组id
*/
private String id;
/**
* 客户ID
*/
@NotBlank(message = "客户Id不能为空", groups = QueryGroup.class)
private String customerId;
/**
* 表单ID
*/
private String formId;
/**
* 表单编码
*/
@NotBlank(message = "表单编码不能为空", groups = QueryGroup.class)
private String formCode;
/**
* 对应的子表名称
*/
private String tableName;
/**
* 是否支持添加一行1支持默认0不支持
*/
private Boolean supportAdd;
/**
* 名称
*/
private String label;
/**
* 排序
*/
private Integer sort;
/**
* 1展示0不展示默认1
*/
private Boolean display;
}

23
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<ConditionResultDTO> queryItemList;
}

13
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<List<ConditionResultDTO>>().ok(icFormItemService.queryConditionList(formDto));
}
/**
* 查询条件 分组显示
* @param tokenDto
* @param formDto
* @return
*/
@PostMapping("conditionlist-bygroup")
public Result<List<ConditionResDTO>> queryConditionListByGroup(@LoginUser TokenDto tokenDto, @RequestBody CustomerFormQueryDTO formDto){
formDto.setCustomerId(tokenDto.getCustomerId());
ValidatorUtils.validateEntity(formDto,CustomerFormQueryDTO.AddUserInternalGroup.class);
return new Result<List<ConditionResDTO>>().ok(icFormItemService.queryConditionListByGroup(formDto));
}
/**
* 居民信息列表_表头
* @param tokenDto

10
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();
}
}

24
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormItemGroupController.java

@ -17,23 +17,20 @@
package com.epmet.controller;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ExcelUtils;
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.UpdateGroup;
import com.epmet.commons.tools.validator.group.DefaultGroup;
import com.epmet.commons.tools.validator.group.QueryGroup;
import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.dto.IcFormItemGroupDTO;
import com.epmet.excel.IcFormItemGroupExcel;
import com.epmet.dto.form.IcFormItemGroupLisFormDTO;
import com.epmet.service.IcFormItemGroupService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
/**
@ -49,10 +46,12 @@ public class IcFormItemGroupController {
@Autowired
private IcFormItemGroupService icFormItemGroupService;
@GetMapping("page")
public Result<PageData<IcFormItemGroupDTO>> page(@RequestParam Map<String, Object> params){
PageData<IcFormItemGroupDTO> page = icFormItemGroupService.page(params);
return new Result<PageData<IcFormItemGroupDTO>>().ok(page);
@PostMapping("list")
public Result<List<IcFormItemGroupDTO>> page(@RequestHeader String customerId, @RequestBody IcFormItemGroupLisFormDTO param){
param.setCustomerId(customerId);
ValidatorUtils.validateEntity(param, QueryGroup.class);
List<IcFormItemGroupDTO> page = icFormItemGroupService.list(param);
return new Result<List<IcFormItemGroupDTO>>().ok(page);
}
@GetMapping("{id}")
@ -85,10 +84,5 @@ public class IcFormItemGroupController {
return new Result();
}
@GetMapping("export")
public void export(@RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception {
List<IcFormItemGroupDTO> list = icFormItemGroupService.list(params);
ExcelUtils.exportExcelToTarget(response, null, list, IcFormItemGroupExcel.class);
}
}

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

@ -37,6 +37,15 @@ public interface IcFormItemDao extends BaseDao<IcFormItemEntity> {
List<ConditionResultDTO> selectConditionList(@Param("customerId") String customerId, @Param("formCode") String formCode);
List<ConditionResultDTO> selectConditionListByGroupId(String groupId);
/**
* 查询组件列表
* @param customerId
* @param formCode
* @return
*/
List<ConditionResDTO> selectConditionListGroup(@Param("customerId") String customerId, @Param("formCode") String formCode, @Param("itemIdList") List<String> itemIdList);
List<TableHeaderResultDTO> queryTableHeaderList(@Param("customerId") String customerId, @Param("formCode") String formCode);
/**

6
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;
/**
* 表单查询项
@ -30,4 +33,7 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface IcFormQueryBuilderDao extends BaseDao<IcFormQueryBuilderEntity> {
IcFormQueryBuilderEntity selectDefaultQueryItem(@Param("itemId") String itemId,@Param("itemType") String itemType, @Param("queryType")String queryType);
List<String> selectItemId(@Param("customerId") String customerId, @Param("formCode") String formCode);
}

10
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/IcExportTemplateConfigEntity.java

@ -28,6 +28,11 @@ public class IcExportTemplateConfigEntity extends BaseEpmetEntity {
*/
private String tempId;
/**
* 项标签
*/
private String label;
/**
* 父id
*/
@ -43,11 +48,6 @@ public class IcExportTemplateConfigEntity extends BaseEpmetEntity {
*/
private Integer width;
/**
* 项标签
*/
private String label;
/**
* 排序
*/

15
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;
/**
* 排序
*/

15
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcFormItemGroupService.java

@ -18,12 +18,11 @@
package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.IcFormItemGroupDTO;
import com.epmet.dto.form.IcFormItemGroupLisFormDTO;
import com.epmet.entity.IcFormItemGroupEntity;
import java.util.List;
import java.util.Map;
/**
* 表单项分组
@ -33,16 +32,6 @@ import java.util.Map;
*/
public interface IcFormItemGroupService extends BaseService<IcFormItemGroupEntity> {
/**
* 默认分页
*
* @param params
* @return PageData<IcFormItemGroupDTO>
* @author generator
* @date 2021-10-26
*/
PageData<IcFormItemGroupDTO> page(Map<String, Object> params);
/**
* 默认查询
*
@ -51,7 +40,7 @@ public interface IcFormItemGroupService extends BaseService<IcFormItemGroupEntit
* @author generator
* @date 2021-10-26
*/
List<IcFormItemGroupDTO> list(Map<String, Object> params);
List<IcFormItemGroupDTO> list(IcFormItemGroupLisFormDTO params);
/**
* 单条查询

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

@ -43,6 +43,8 @@ public interface IcFormItemService extends BaseService<IcFormItemEntity> {
*/
List<ConditionResultDTO> queryConditionList(CustomerFormQueryDTO formDto);
List<ConditionResDTO> queryConditionListByGroup(CustomerFormQueryDTO formDto);
List<TableHeaderResultDTO> queryTableHeaderList(CustomerFormQueryDTO formDto);
List<IcFormResColumnDTO> queryConditions(String customerId,String formCode);
@ -75,4 +77,10 @@ public interface IcFormItemService extends BaseService<IcFormItemEntity> {
* @return
*/
void editItemType(EditIFormItemFormDTO formDTO);
/**
* 初始化默认的查询组件ic_form_item.SEARCH_DISPLAY='1'
* @param customerId
*/
void initQueryBuilder(String customerId);
}

32
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemGroupServiceImpl.java

@ -17,23 +17,19 @@
package com.epmet.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.dao.IcFormItemGroupDao;
import com.epmet.dto.IcFormItemGroupDTO;
import com.epmet.dto.form.IcFormItemGroupLisFormDTO;
import com.epmet.entity.IcFormItemGroupEntity;
import com.epmet.service.IcFormItemGroupService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
* 表单项分组
@ -46,29 +42,15 @@ public class IcFormItemGroupServiceImpl extends BaseServiceImpl<IcFormItemGroupD
@Override
public PageData<IcFormItemGroupDTO> page(Map<String, Object> params) {
IPage<IcFormItemGroupEntity> page = baseDao.selectPage(
getPage(params, FieldConstant.CREATED_TIME, false),
getWrapper(params)
);
return getPageData(page, IcFormItemGroupDTO.class);
}
@Override
public List<IcFormItemGroupDTO> list(Map<String, Object> params) {
List<IcFormItemGroupEntity> entityList = baseDao.selectList(getWrapper(params));
public List<IcFormItemGroupDTO> list(IcFormItemGroupLisFormDTO params) {
LambdaQueryWrapper<IcFormItemGroupEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(IcFormItemGroupEntity::getCustomerId, params.getCustomerId())
.orderByAsc(IcFormItemGroupEntity::getSort);
List<IcFormItemGroupEntity> entityList = baseDao.selectList(wrapper);
return ConvertUtils.sourceToTarget(entityList, IcFormItemGroupDTO.class);
}
private QueryWrapper<IcFormItemGroupEntity> getWrapper(Map<String, Object> params){
String id = (String)params.get(FieldConstant.ID_HUMP);
QueryWrapper<IcFormItemGroupEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
return wrapper;
}
@Override
public IcFormItemGroupDTO get(String id) {

86
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<IcFormItemDao, IcFormItemEntity> implements IcFormItemService {
@Autowired
private IcFormItemOptionsDao icFormItemOptionsDao;
@Autowired
private IcFormQueryBuilderDao icFormQueryBuilderDao;
/**
* 获取居民信息的查询条件组件列表
*
@ -66,6 +70,16 @@ public class IcFormItemServiceImpl extends BaseServiceImpl<IcFormItemDao, IcForm
return list;
}
@Override
public List<ConditionResDTO> queryConditionListByGroup(CustomerFormQueryDTO formDto) {
List<String> itemIdList=icFormQueryBuilderDao.selectItemId(formDto.getCustomerId(),formDto.getFormCode());
if(CollectionUtils.isEmpty(itemIdList)){
return new ArrayList<>();
}
List<ConditionResDTO> list=baseDao.selectConditionListGroup(formDto.getCustomerId(),formDto.getFormCode(),itemIdList);
return list;
}
/**
* 居民信息列表_表头
* @param formDto
@ -206,6 +220,76 @@ public class IcFormItemServiceImpl extends BaseServiceImpl<IcFormItemDao, IcForm
}
}
/**
* 初始化默认的查询组件ic_form_item.SEARCH_DISPLAY='1'
*
* @param customerId
*/
@Override
public void initQueryBuilder(String customerId) {
//查询所有的查询组件
LambdaQueryWrapper<IcFormItemEntity> queryWrapper = new QueryWrapper<IcFormItemEntity>().lambda()
.eq(StringUtils.isNotBlank(customerId), IcFormItemEntity::getCustomerId, customerId)
.isNotNull(IcFormItemEntity::getColumnName)
.eq(IcFormItemEntity::getSearchDisplay, NumConstant.ONE);
List<IcFormItemEntity> 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;
}
}

8
epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.22__update_search_col.sql

@ -0,0 +1,8 @@
update ic_form_item set SEARCH_DISPLAY='1',UPDATED_BY='YZM',UPDATED_TIME=NOW()
WHERE DEL_FLAG='0'
AND SEARCH_DISPLAY='0'
AND LABEL IN(
'文化程度','兴趣特长','残疾类别','残疾等级','所患大病','所患慢性病',
'是否参保','救助金额','人户状况','户籍所在地','居住情况','该居民有无赡养人',
'需求类别','参战时间','是否办理公益性岗位','志愿者类别','特殊人群类别'
);

18
epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.23__update_group_sort.sql

@ -0,0 +1,18 @@
update ic_form_item_group set SORT='0' where DEL_FLAG='0' and LABEL='基础信息';
update ic_form_item_group set SORT='1' where DEL_FLAG='0' and LABEL='教育信息';
update ic_form_item_group set SORT='2' where DEL_FLAG='0' and LABEL='兴趣爱好';
update ic_form_item_group set SORT='3' where DEL_FLAG='0' and LABEL='宗教信仰';
update ic_form_item_group set SORT='4' where DEL_FLAG='0' and LABEL='健康信息';
update ic_form_item_group set SORT='5' where DEL_FLAG='0' and LABEL='工作信息';
update ic_form_item_group set SORT='6' where DEL_FLAG='0' and LABEL='经济状况';
update ic_form_item_group set SORT='7' where DEL_FLAG='0' and LABEL='居住信息';
update ic_form_item_group set SORT='8' where DEL_FLAG='0' and LABEL='家庭信息';
update ic_form_item_group set SORT='9' where DEL_FLAG='0' and LABEL='党员信息';
update ic_form_item_group set SORT='10' where DEL_FLAG='0' and LABEL='保障房信息';
update ic_form_item_group set SORT='11' where DEL_FLAG='0' and LABEL='失业信息';
update ic_form_item_group set SORT='12' where DEL_FLAG='0' and LABEL='退役军人信息';
update ic_form_item_group set SORT='13' where DEL_FLAG='0' and LABEL='志愿者信息';
update ic_form_item_group set SORT='14' where DEL_FLAG='0' and LABEL='特殊人群信息';
update ic_form_item_group set SORT='15' where DEL_FLAG='0' and LABEL='统战人员';
update ic_form_item_group set SORT='16' where DEL_FLAG='0' and LABEL='老年人信息';
update ic_form_item_group set SORT='17' where DEL_FLAG='0' and LABEL='居民需求信息';

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

@ -59,6 +59,37 @@
ORDER BY b.SORT asc
</select>
<select id="selectConditionListByGroupId" parameterType="java.lang.String" resultMap="ConditionResultDTOMap">
SELECT
b.FORM_ITEM_ID AS item_id,
(
case when g.table_name is null then 'ic_resi_user'
when g.table_name ='' then 'ic_resi_user'
else g.table_name
end
)AS TABLE_NAME,
i.PARENT_ITEM_ID,
i.LABEL,
i.ITEM_TYPE,
i.ITEM_GROUP_ID,
i.REQUIRED,
IFNULL(i.VALID_TYPE,'')as VALID_TYPE,
IFNULL(i.DEFAULT_VALUE,'') as DEFAULT_VALUE,
IFNULL(i.OPTION_SOURCE_TYPE,'') as OPTION_SOURCE_TYPE,
IFNULL(i.OPTION_SOURCE_VALUE,'') as OPTION_SOURCE_VALUE,
b.SORT,
IFNULL(i.PLACEHOLDER,'') as PLACEHOLDER,
IFNULL(i.COLUMN_NAME,'')as COLUMN_NAME,
b.QUERY_TYPE
FROM ic_form_query_builder b
inner join ic_form_item i on(i.id=b.FORM_ITEM_ID and i.DEL_FLAG='0')
LEFT JOIN ic_form_item_group g ON ( i.ITEM_GROUP_ID = g.id )
WHERE
b.DEL_FLAG = '0'
AND i.ITEM_GROUP_ID=#{groupId}
ORDER BY b.SORT asc
</select>
<resultMap id="TableHeaderResultDTOMap" type="com.epmet.dto.result.TableHeaderResultDTO">
@ -161,4 +192,32 @@
AND a.customer_id = #{customerId}
</select>
<resultMap id="ConditionResDTOMap" type="com.epmet.dto.result.ConditionResDTO">
<id property="itemGroupId" column="ITEM_GROUP_ID"></id>
<result property="groupName" column="LABEL"/>
<collection property="queryItemList" ofType="com.epmet.dto.result.ConditionResultDTO"
column="ITEM_GROUP_ID" select="com.epmet.dao.IcFormItemDao.selectConditionListByGroupId">
</collection>
</resultMap>
<select id="selectConditionListGroup" parameterType="map" resultMap="ConditionResDTOMap">
SELECT DISTINCT
i.ITEM_GROUP_ID,
g.LABEL
FROM
ic_form_item i
LEFT JOIN ic_form_item_group g ON ( i.ITEM_GROUP_ID = g.id )
WHERE
i.DEL_FLAG = '0'
AND i.SEARCH_DISPLAY = '1'
AND g.DEL_FLAG = '0'
and i.CUSTOMER_ID=#{customerId}
and i.FORM_CODE=#{formCode}
AND(
<foreach collection="itemIdList" item="itemId" separator=" OR ">
i.ID = #{itemId}
</foreach>
)
order by g.sort asc
</select>
</mapper>

21
epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormQueryBuilderDao.xml

@ -18,5 +18,26 @@
<result property="updatedTime" column="UPDATED_TIME"/>
</resultMap>
<select id="selectDefaultQueryItem" parameterType="map" resultType="com.epmet.entity.IcFormQueryBuilderEntity">
SELECT
b.ID
FROM
ic_form_query_builder b
WHERE
b.DEL_FLAG = '0'
AND b.FORM_ITEM_ID = #{itemId}
AND b.ITEM_TYPE = #{itemType}
AND b.QUERY_TYPE = #{queryType}
</select>
<select id="selectItemId" parameterType="map" resultType="java.lang.String">
SELECT DISTINCT
b.FORM_ITEM_ID
FROM
ic_form_query_builder b
WHERE
b.CUSTOMER_ID = #{customerId}
AND b.FORM_CODE = #{formCode}
AND b.DEL_FLAG = '0'
</select>
</mapper>

5
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcVeteransDTO.java

@ -89,6 +89,11 @@ public class IcVeteransDTO implements Serializable {
*/
private String xjyqk;
/**
* 是否办理公益性岗位,0422新增
*/
private String isHandleJob;
/**
* 删除标识 0.未删除 1.已删除
*/

7
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/UserChartResultDTO.java

@ -1,5 +1,6 @@
package com.epmet.dto.result;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import java.io.Serializable;
@ -39,4 +40,10 @@ public class UserChartResultDTO implements Serializable {
*/
private String ldUserRatio;
@JsonIgnore
private Integer num;
//是否是流动人口【是:1 否:0】
@JsonIgnore
private String isFloating;
}

8
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java

@ -61,7 +61,6 @@ import com.epmet.feign.OssFeignClient;
import com.epmet.service.IcResiUserImportService;
import com.epmet.service.IcResiUserService;
import feign.RequestInterceptor;
import jodd.io.FileUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.io.FileUtils;
@ -71,9 +70,6 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.poi.poifs.filesystem.OfficeXmlFileException;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@ -900,10 +896,10 @@ public class IcResiUserController implements ResultDataResolver {
**/
@NoRepeatSubmit
@PostMapping("userchart")
public Result<HouseChartResultDTO> userChart(@LoginUser TokenDto tokenDto, @RequestBody UserChartFormDTO formDTO) {
public Result<UserChartResultDTO> userChart(@LoginUser TokenDto tokenDto, @RequestBody UserChartFormDTO formDTO) {
formDTO.setCustomerId(tokenDto.getCustomerId());
formDTO.setUserId(tokenDto.getUserId());
return new Result<HouseChartResultDTO>().ok(icResiUserService.userChart(formDTO));
return new Result<UserChartResultDTO>().ok(icResiUserService.userChart(formDTO));
}
}

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

@ -289,4 +289,6 @@ public interface IcResiUserDao extends BaseDao<IcResiUserEntity> {
List<EpidemicPreventionResultDTO> vaccineList(EpidemicPreventionFormDTO formDTO);
IcResiUserEntity selectResiNoDelFlag(@Param("icResiUserId") String icResiUserId);
List<UserChartResultDTO> userChart(@Param("orgId") String orgId, @Param("orgType") String orgType);
}

5
epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcVeteransEntity.java

@ -85,6 +85,11 @@ public class IcVeteransEntity extends BaseEpmetEntity {
*/
private String xjyqk;
/**
* 是否办理公益性岗位,0422新增
*/
private String isHandleJob;
/**
* 预留字段1
*/

6
epmet-user/epmet-user-server/src/main/java/com/epmet/excel/IcVeteransExcel.java

@ -64,6 +64,12 @@ public class IcVeteransExcel {
@Excel(name = "现就业情况")
private String xjyqk;
/**
* 是否办理公益性岗位,0422新增
*/
@Excel(name = "是否办理公益性岗位")
private String isHandleJob;
@Excel(name = "删除标识 0.未删除 1.已删除")
private Integer delFlag;

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

@ -249,5 +249,5 @@ public interface IcResiUserService extends BaseService<IcResiUserEntity> {
* @Author sun
* @Description 人房居民总数饼图
**/
HouseChartResultDTO userChart(UserChartFormDTO formDTO);
UserChartResultDTO userChart(UserChartFormDTO formDTO);
}

43
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java

@ -67,22 +67,17 @@ import com.google.common.cache.CacheBuilder;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.io.IOException;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.sql.Date;
import java.sql.Timestamp;
import java.text.NumberFormat;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.TimeUnit;
@ -1606,8 +1601,40 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
* @Description 人房居民总数饼图
**/
@Override
public HouseChartResultDTO userChart(UserChartFormDTO formDTO) {
return null;
public UserChartResultDTO userChart(UserChartFormDTO formDTO) {
UserChartResultDTO resultDTO = new UserChartResultDTO();
//计算百分比使用,保留小数点后两位
NumberFormat numberFormat = NumberFormat.getInstance();
numberFormat.setMaximumFractionDigits(NumConstant.TWO);
//1.判断入参是否有值,没有值则赋值当前工作人员缓存中所属组织信息
if (StringUtils.isEmpty(formDTO.getOrgId())) {
//2.获取工作人员缓存信息
CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getUserId());
if (null == staffInfo) {
throw new EpmetException(String.format("查询工作人员%s缓存信息失败...", formDTO.getUserId()));
}
formDTO.setOrgId(staffInfo.getAgencyId());
formDTO.setOrgType("agency");
}
//2.根据入参值查询对应的房屋统计数据
List<UserChartResultDTO> list = baseDao.userChart(formDTO.getOrgId(), formDTO.getOrgType());
//3.汇总数据
AtomicInteger userTotal = new AtomicInteger();
list.forEach(l -> {
userTotal.addAndGet(l.getNum());
if ("0".equals(l.getIsFloating())) {
resultDTO.setCzUserTotal(l.getNum());
} else {
resultDTO.setLdUserTotal(l.getNum());
}
});
resultDTO.setUserTotal(userTotal.get());
resultDTO.setCzUserRatio((resultDTO.getUserTotal() == 0 || resultDTO.getCzUserTotal() > resultDTO.getUserTotal()) ? "0%" : numberFormat.format(((float) resultDTO.getCzUserTotal() / (float) resultDTO.getUserTotal()) * 100) + "%");
resultDTO.setLdUserRatio((resultDTO.getUserTotal() == 0 || resultDTO.getLdUserTotal() > resultDTO.getUserTotal()) ? "0%" : numberFormat.format(((float) resultDTO.getLdUserTotal() / (float) resultDTO.getUserTotal()) * 100) + "%");
resultDTO.setOrgId(formDTO.getOrgId());
resultDTO.setOrgType(formDTO.getOrgType());
return resultDTO;
}
}

3
epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.41__add_is_handle_job.sql

@ -0,0 +1,3 @@
-- 退役军人表增加此列
ALTER TABLE ic_veterans ADD COLUMN IS_HANDLE_JOB CHAR(1) COMMENT '是否办理公益性岗位,0422新增' AFTER XJYQK;
update ic_veterans set ic_veterans.IS_HANDLE_JOB='0' where ic_veterans.IS_HANDLE_JOB is null or ic_veterans.IS_HANDLE_JOB='';

23
epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml

@ -820,4 +820,27 @@
<select id="selectResiNoDelFlag" resultType="com.epmet.entity.IcResiUserEntity">
SELECT ID,NAME,ID_CARD,DEL_FLAG FROM ic_resi_user WHERE ID = #{icResiUserId}
</select>
<select id="userChart" resultType="com.epmet.dto.result.UserChartResultDTO">
SELECT
COUNT(id) num,
is_floating isFloating
FROM
ic_resi_user
WHERE
del_flag = '0'
<choose>
<when test='orgType == "agency"'>
AND (agency_id = #{orgId} OR pids LIKE CONCAT('%', #{orgId}, '%'))
</when>
<when test='orgType == "grid"'>
AND grid_id = #{orgId}
</when>
<otherwise>
AND village_id = #{orgId}
</otherwise>
</choose>
GROUP BY is_floating
</select>
</mapper>

1
epmet-user/epmet-user-server/src/main/resources/mapper/IcStatsResiWarnDao.xml

@ -162,6 +162,7 @@
from ic_resi_user
where DEL_FLAG = '0'
and CUSTOMER_ID = #{customerId}
AND `STATUS` = '0'
<if test="tableName=='ic_resi_user'">
and ${columnName} = '1'
</if>

Loading…
Cancel
Save