diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/DataSyncRecordDisabilityDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/DataSyncRecordDisabilityDTO.java index 8c99d8f95b..d1a35d8d77 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/DataSyncRecordDisabilityDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/DataSyncRecordDisabilityDTO.java @@ -1,5 +1,6 @@ package com.epmet.dto; +import com.epmet.dto.form.dataSync.ResiInfoDTO; import lombok.Data; import java.io.Serializable; @@ -101,6 +102,7 @@ public class DataSyncRecordDisabilityDTO implements Serializable { * 处理状态(更新至居民信息) 0:未处理;1:处理成功;2处理失败 */ private Integer dealStatus; + private String dealStatusName; /** * 残疾状态 0:非残疾;1:残疾 @@ -142,4 +144,6 @@ public class DataSyncRecordDisabilityDTO implements Serializable { */ private Date updatedTime; + private ResiInfoDTO resiInfo; + } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/dataSync/DataSyncRecordDisabilityFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/dataSync/DataSyncRecordDisabilityFormDTO.java new file mode 100644 index 0000000000..0de7c52e15 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/dataSync/DataSyncRecordDisabilityFormDTO.java @@ -0,0 +1,24 @@ +package com.epmet.dto.form.dataSync; + +import com.epmet.commons.tools.dto.form.PageFormDTO; +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2022/10/13 14:47 + * @DESC + */ +@Data +public class DataSyncRecordDisabilityFormDTO extends PageFormDTO implements Serializable { + + private static final long serialVersionUID = -20061989190666183L; + + private String name; + private String idCard; + private String mobile; + private String customerId; + private String userId; + private String agencyId; +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/dataSync/ResiInfoDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/dataSync/ResiInfoDTO.java new file mode 100644 index 0000000000..b42e47618d --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/dataSync/ResiInfoDTO.java @@ -0,0 +1,81 @@ +package com.epmet.dto.form.dataSync; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2022/10/13 15:58 + * @DESC + */ +@Data +public class ResiInfoDTO implements Serializable { + + private static final long serialVersionUID = -3320460795150912451L; + + + /** + * 姓名 + */ + private String name; + + /** + * 身份证 + */ + private String idCard; + + /** + * 电话 + */ + private String mobile; + + + /** + * 残疾证号 + */ + private String cardNum; + + /** + * 残疾等级(状况) + */ + private String cjzk; + + /** + * 残疾类别 + */ + private String cjlb; + + /** + * 民族 + */ + private String mz; + + /** + * 家庭住址 + */ + private String address; + + /** + * 性别 + */ + private String gender; + + /** + * 监护人 + */ + private String guardian; + + public ResiInfoDTO() { + this.name = ""; + this.idCard = ""; + this.mobile = ""; + this.cardNum = ""; + this.cjzk = ""; + this.cjlb = ""; + this.mz = ""; + this.address = ""; + this.gender = ""; + this.guardian = ""; + } +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/DataSyncRecordDisabilityController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/DataSyncRecordDisabilityController.java index c8a3bed494..4685545676 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/DataSyncRecordDisabilityController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/DataSyncRecordDisabilityController.java @@ -1,7 +1,9 @@ package com.epmet.controller; +import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.aop.NoRepeatSubmit; import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.AssertUtils; import com.epmet.commons.tools.validator.ValidatorUtils; @@ -9,10 +11,13 @@ import com.epmet.commons.tools.validator.group.AddGroup; import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.dto.DataSyncRecordDisabilityDTO; +import com.epmet.dto.form.dataSync.DataSyncRecordDisabilityFormDTO; import com.epmet.service.DataSyncRecordDisabilityService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; import java.util.Map; @@ -29,13 +34,15 @@ public class DataSyncRecordDisabilityController { @Autowired private DataSyncRecordDisabilityService dataSyncRecordDisabilityService; - @RequestMapping("page") - public Result> page(@RequestParam Map params){ - PageData page = dataSyncRecordDisabilityService.page(params); + @PostMapping("page") + public Result> page(@LoginUser TokenDto tokenDto,@RequestBody DataSyncRecordDisabilityFormDTO formDTO){ + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setUserId(tokenDto.getUserId()); + PageData page = dataSyncRecordDisabilityService.list(formDTO); return new Result>().ok(page); } - @RequestMapping(value = "{id}",method = {RequestMethod.POST,RequestMethod.GET}) + @PostMapping("detail/{id}") public Result get(@PathVariable("id") String id){ DataSyncRecordDisabilityDTO data = dataSyncRecordDisabilityService.get(id); return new Result().ok(data); @@ -67,5 +74,16 @@ public class DataSyncRecordDisabilityController { return new Result(); } + @PostMapping("export") + public void export(@LoginUser TokenDto tokenDto, @RequestBody DataSyncRecordDisabilityFormDTO formDTO, HttpServletResponse response) throws IOException { + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setUserId(tokenDto.getUserId()); + dataSyncRecordDisabilityService.export(formDTO,response); + } + + @PostMapping("batchUpdate") + public Result batchUpdate(){ + return new Result(); + } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/DataSyncRecordDisabilityDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/DataSyncRecordDisabilityDao.java index caad1854be..8f7d1f4713 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/DataSyncRecordDisabilityDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/DataSyncRecordDisabilityDao.java @@ -1,9 +1,13 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.DataSyncRecordDisabilityDTO; +import com.epmet.dto.form.dataSync.DataSyncRecordDisabilityFormDTO; import com.epmet.entity.DataSyncRecordDisabilityEntity; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * 数据同步记录-居民残疾信息 * @@ -14,4 +18,6 @@ import org.apache.ibatis.annotations.Mapper; public interface DataSyncRecordDisabilityDao extends BaseDao { //int upsertBatch(List list); + + List list(DataSyncRecordDisabilityFormDTO formDTO); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/DataSyncRecordDisabilityExcel.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/DataSyncRecordDisabilityExcel.java new file mode 100644 index 0000000000..e7a52a2b40 --- /dev/null +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/DataSyncRecordDisabilityExcel.java @@ -0,0 +1,59 @@ +package com.epmet.excel; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import lombok.Data; + +/** + * @Author zxc + * @DateTime 2022/10/13 15:29 + * @DESC + */ +@Data +public class DataSyncRecordDisabilityExcel { + + @ExcelProperty(value = "姓名") + @ColumnWidth(20) + private String name; + + @ExcelProperty(value = "证件号") + @ColumnWidth(20) + private String idCard; + + @ExcelProperty(value = "手机") + @ColumnWidth(20) + private String mobile; + + @ExcelProperty(value = "性别") + @ColumnWidth(20) + private String gender; + + @ExcelProperty(value = "民族") + @ColumnWidth(20) + private String mz; + + @ExcelProperty(value = "家庭住址") + @ColumnWidth(20) + private String address; + + @ExcelProperty(value = "残疾类别") + @ColumnWidth(20) + private String cjlb; + + @ExcelProperty(value = "残疾等级") + @ColumnWidth(20) + private String cjzk; + + @ExcelProperty(value = "监护人") + @ColumnWidth(20) + private String guardian; + + @ExcelProperty(value = "状态") + @ColumnWidth(20) + private String dealStatusName; + + @ExcelProperty(value = "失败原因") + @ColumnWidth(20) + private String dealResult; + +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/DataSyncRecordDisabilityService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/DataSyncRecordDisabilityService.java index 73408be3f2..99ea18d578 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/DataSyncRecordDisabilityService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/DataSyncRecordDisabilityService.java @@ -4,8 +4,11 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.dto.DataSyncRecordDisabilityDTO; +import com.epmet.dto.form.dataSync.DataSyncRecordDisabilityFormDTO; import com.epmet.entity.DataSyncRecordDisabilityEntity; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; import java.util.List; import java.util.Map; @@ -78,4 +81,8 @@ public interface DataSyncRecordDisabilityService extends BaseService queryWrapper); + + PageData list(DataSyncRecordDisabilityFormDTO formDTO); + + void export(DataSyncRecordDisabilityFormDTO formDTO, HttpServletResponse response) throws IOException; } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/DataSyncRecordDisabilityServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/DataSyncRecordDisabilityServiceImpl.java index f8e093e6f1..a08f6c9502 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/DataSyncRecordDisabilityServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/DataSyncRecordDisabilityServiceImpl.java @@ -1,23 +1,47 @@ package com.epmet.service.impl; +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.ExcelWriter; +import com.alibaba.excel.write.metadata.WriteSheet; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.FieldConstant; +import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; +import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.redis.common.CustomerStaffRedis; import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.DateUtils; +import com.epmet.commons.tools.utils.ExcelUtils; +import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.utils.poi.excel.handler.FreezeAndFilter; import com.epmet.dao.DataSyncRecordDisabilityDao; import com.epmet.dto.DataSyncRecordDisabilityDTO; +import com.epmet.dto.IcResiUserDTO; +import com.epmet.dto.form.dataSync.DataSyncRecordDisabilityFormDTO; +import com.epmet.dto.form.dataSync.ResiInfoDTO; import com.epmet.entity.DataSyncRecordDisabilityEntity; +import com.epmet.excel.DataSyncRecordDisabilityExcel; import com.epmet.service.DataSyncRecordDisabilityService; +import com.epmet.service.IcResiUserService; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.Arrays; -import java.util.List; -import java.util.Map; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.PrintWriter; +import java.util.*; /** * 数据同步记录-居民残疾信息 @@ -26,8 +50,12 @@ import java.util.Map; * @since v1.0.0 2022-10-11 */ @Service +@Slf4j public class DataSyncRecordDisabilityServiceImpl extends BaseServiceImpl implements DataSyncRecordDisabilityService { + @Autowired + private IcResiUserService icResiUserService; + @Override public PageData page(Map params) { IPage page = baseDao.selectPage( @@ -56,7 +84,11 @@ public class DataSyncRecordDisabilityServiceImpl extends BaseServiceImpl list(DataSyncRecordDisabilityFormDTO formDTO) { + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getUserId()); + if (null == staffInfo){ + throw new EpmetException("查询工作人员失败:"+formDTO.getUserId()); + } + formDTO.setAgencyId(staffInfo.getAgencyId()); + PageData result = new PageData<>(new ArrayList<>(), NumConstant.ZERO_L); + if (formDTO.getIsPage()){ + PageInfo pageInfo = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()).doSelectPageInfo(() -> baseDao.list(formDTO)); + result.setList(pageInfo.getList()); + result.setTotal(Integer.valueOf(String.valueOf(pageInfo.getTotal()))); + }else { + List list = baseDao.list(formDTO); + result.setList(list); + result.setTotal(list.size()); + } + return result; + } + + @Override + public void export(DataSyncRecordDisabilityFormDTO formDTO, HttpServletResponse response) throws IOException { + ExcelWriter excelWriter = null; + formDTO.setPageNo(NumConstant.ONE); + formDTO.setPageSize(NumConstant.TEN_THOUSAND); + try { + String fileName = "残疾" + DateUtils.format(new Date()) + ".xlsx"; + excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel(fileName, response), DataSyncRecordDisabilityExcel.class).build(); + WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").registerWriteHandler(new FreezeAndFilter()).build(); + List list = null; + do { + PageData data = list(formDTO); + list = ConvertUtils.sourceToTarget(data.getList(), DataSyncRecordDisabilityExcel.class); + formDTO.setPageNo(formDTO.getPageNo() + NumConstant.ONE); + excelWriter.write(list, writeSheet); + } while (CollectionUtils.isNotEmpty(list) && list.size() == formDTO.getPageSize()); + } catch (EpmetException e) { + response.reset(); + response.setCharacterEncoding("UTF-8"); + response.setHeader("content-type", "application/json; charset=UTF-8"); + PrintWriter printWriter = response.getWriter(); + Result result = new Result<>().error(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),e.getMsg()); + printWriter.write(JSON.toJSONString(result)); + printWriter.close(); + } catch (Exception e) { + log.error("export exception", e); + } finally { + if (excelWriter != null) { + excelWriter.finish(); + } + } + } + } diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/DataSyncRecordDisabilityDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/DataSyncRecordDisabilityDao.xml index a08fdfc710..0326e8b1f5 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/DataSyncRecordDisabilityDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/DataSyncRecordDisabilityDao.xml @@ -32,7 +32,29 @@ - + + +