diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/DictTypeEnum.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/DictTypeEnum.java index a07838684d..99338ee9c6 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/DictTypeEnum.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/DictTypeEnum.java @@ -34,6 +34,7 @@ public enum DictTypeEnum { TRAFFIC_TYPE("traffic_type", "交通方式", 36), SOJOURN_HISTORY("sojourn_history", "7天内旅居史情况", 37), TRIP_DATA_TYPE("trip_data_type", "行程记录类型", 39), + LINGSHAN_OFFICE_HALL_SERVICE_RECORD("lingshan_office_hall_service_record","灵山-办事大厅业务类型",40), ; private final String code; diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/LingshanOfficeHallServiceRecordDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/LingshanOfficeHallServiceRecordDTO.java new file mode 100644 index 0000000000..f95bd871ec --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/LingshanOfficeHallServiceRecordDTO.java @@ -0,0 +1,199 @@ +package com.epmet.dto; + +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.util.Date; + + +/** + * 灵山_办事大厅服务记录 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2023-05-15 + */ +@Data +public class LingshanOfficeHallServiceRecordDTO implements Serializable { + private static final long serialVersionUID = 2157075710544884607L; + + public interface AddInternalGroup { + } + + public interface AddShowGroup extends CustomerClientShowGroup { + } + + public interface UpdateInternalGroup { + } + + public interface UpdateShowGroup extends CustomerClientShowGroup { + } + + + /** + * 主键 + */ + @NotBlank(message = "id不能为空",groups = {UpdateInternalGroup.class}) + private String id; + + /** + * 租户号 + */ + private String customerId; + + /** + * 工作人员录入:gov_pc;居民端小程序:resi_mp + */ + private String sourceType; + + /** + * 事项类型 + */ + @NotBlank(message = "事项类型不能为空",groups = {AddShowGroup.class,UpdateShowGroup.class}) + private String categoryCode; + + /** + * 类别名称 + * 举例:营业执照服务、食品许可证服务、医疗保险业务、养老保险业务 + */ + private String categoryName; + + /** + * 事项说明 + */ + @NotBlank(message = "事项说明不能为空",groups = {AddShowGroup.class,UpdateShowGroup.class}) + @Length(max = 500, message = "事项说明最多输入500字", groups = {AddShowGroup.class, UpdateShowGroup.class}) + private String content; + + /** + * 申请人所属组织id或者网格id + */ + @NotBlank(message = "申请人所属组织不能为空",groups = {AddShowGroup.class,UpdateShowGroup.class}) + private String applicantOrgId; + + /** + * agency或者grid + */ + @NotBlank(message = "orgType不能为空",groups = {AddInternalGroup.class,UpdateInternalGroup.class}) + private String applicantOrgType; + + /** + * ORG_ID全路径 + */ + private String applicantOrgIdPath; + + /** + * 申请人所属组织名称 + */ + private String applicantOrgName; + + /** + * 申请人姓名 + */ + // @NotBlank(message = "申请人姓名不能为空",groups = {AddShowGroup.class,UpdateShowGroup.class}) + // @Length(max = 30, message = "申请人姓名最多输入30字", groups = {AddShowGroup.class, UpdateShowGroup.class}) + private String applicantName; + + /** + * 申请人联系电话 + */ + // @NotBlank(message = "申请人电话不能为空",groups = {AddShowGroup.class,UpdateShowGroup.class}) + // @Length(max = 30, message = "申请人电话最多输入30字", groups = {AddShowGroup.class, UpdateShowGroup.class}) + private String applicantMobile; + + /** + * 申请人身份证号 + */ + // @NotBlank(message = "申请人身份证号不能为空",groups = {AddShowGroup.class,UpdateShowGroup.class}) + // @Length(max = 30, message = "申请人身份证号最多输入30字", groups = {AddShowGroup.class, UpdateShowGroup.class}) + private String applicantIdCard; + + /** + * 申请日期 + */ + @NotNull(message = "申请日期不能为空",groups = {AddShowGroup.class,UpdateShowGroup.class}) + private Date applicantTime; + + /** + * 办理人姓名 + */ + @NotBlank(message = "办理人姓名不能为空",groups = {AddShowGroup.class,UpdateShowGroup.class}) + @Length(max = 30, message = "办理人姓名最多输入30字", groups = {AddShowGroup.class, UpdateShowGroup.class}) + private String transactorName; + + /** + * 未办结:0;已办结:1 + */ + @NotBlank(message = "办理状态不能为空",groups = {AddShowGroup.class,UpdateShowGroup.class}) + private String status; + + private String statusName; + /** + * 办结日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + private Date closeTime; + + /** + * 满意度评价。-1不满意,0基本满意,1非常满意 + */ + private Integer satisfication; + + private String satisficationName; + + /** + * 本条数据所属组织id/所属网格id + */ + private String orgId; + + /** + * agency或者grid + */ + private String orgType; + + /** + * 本条数据所属组织的org_id_path + */ + private String orgIdPath; + /** + * 乐观锁 + */ + @JsonIgnore + private Integer revision; + + /** + * 删除标记 + */ + @JsonIgnore + private String delFlag; + + /** + * 创建人 + */ + @JsonIgnore + private String createdBy; + + /** + * 创建时间 + */ + @JsonIgnore + private Date createdTime; + + /** + * 更新人 + */ + @JsonIgnore + private String updatedBy; + + /** + * 更新时间 + */ + @JsonIgnore + private Date updatedTime; + +} \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/lingshan/LingshanOfficeHallServiceRecordPageFormDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/lingshan/LingshanOfficeHallServiceRecordPageFormDTO.java new file mode 100644 index 0000000000..9f6102afff --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/lingshan/LingshanOfficeHallServiceRecordPageFormDTO.java @@ -0,0 +1,48 @@ +package com.epmet.dto.form.lingshan; + +import com.epmet.commons.tools.dto.form.PageFormDTO; +import lombok.Data; + +/** + * @Description + * @Author yzm + * @Date 2023/5/15 16:31 + */ +@Data +public class LingshanOfficeHallServiceRecordPageFormDTO extends PageFormDTO { + private String orgId; + private String orgType; + /** + * 事项类型 + */ + private String categoryCode; + /** + * 事项说明 + */ + private String content; + /** + * 满意度评价。-1不满意,0基本满意,1非常满意 + */ + private Integer satisfication; + /** + * 办结日期 + */ + // @DateTimeFormat(pattern = "yyyy-MM-dd") + // @JsonFormat(pattern = "yyyy-MM-dd") + private String startDate; + + // @DateTimeFormat(pattern = "yyyy-MM-dd") + // @JsonFormat(pattern = "yyyy-MM-dd") + private String endDate; + + /** + * 未办结:0;已办结:1 + */ + private String status; + + //tokenDto. + private String customerId; + //tokenDto. + private String staffId; +} + diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/LingshanOfficeHallServiceRecordController.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/LingshanOfficeHallServiceRecordController.java new file mode 100644 index 0000000000..8ce453b22d --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/LingshanOfficeHallServiceRecordController.java @@ -0,0 +1,175 @@ +package com.epmet.controller; + +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.ExcelWriter; +import com.alibaba.excel.write.metadata.WriteSheet; +import com.alibaba.excel.write.metadata.style.WriteCellStyle; +import com.alibaba.excel.write.style.HorizontalCellStyleStrategy; +import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; +import com.alibaba.fastjson.JSON; +import com.epmet.commons.tools.annotation.LoginUser; +import com.epmet.commons.tools.aop.NoRepeatSubmit; +import com.epmet.commons.tools.constant.NumConstant; +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.security.dto.TokenDto; +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.commons.tools.validator.ValidatorUtils; +import com.epmet.dto.LingshanOfficeHallServiceRecordDTO; +import com.epmet.dto.form.lingshan.LingshanOfficeHallServiceRecordPageFormDTO; +import com.epmet.service.LingshanOfficeHallServiceRecordService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.poi.ss.usermodel.IndexedColors; +import org.apache.poi.ss.usermodel.VerticalAlignment; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.PrintWriter; +import java.util.Date; +import java.util.List; + + +/** + * 灵山_办事大厅服务记录 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2023-05-15 + */ +@Slf4j +@RestController +@RequestMapping("lingshanOfficeHallServiceRecord") +public class LingshanOfficeHallServiceRecordController { + + @Autowired + private LingshanOfficeHallServiceRecordService lingshanOfficeHallServiceRecordService; + + /** + * 分页列表 + * + * @param formDTO + * @return + */ + @PostMapping("page") + public Result> page(@LoginUser TokenDto tokenDto, @RequestBody LingshanOfficeHallServiceRecordPageFormDTO formDTO) { + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setStaffId(tokenDto.getUserId()); + PageData page = lingshanOfficeHallServiceRecordService.page(formDTO); + return new Result>().ok(page); + } + + /** + * 办事大厅-查看详情 + * + * @param id + * @return + */ + @RequestMapping(value = "detail/{id}", method = {RequestMethod.POST}) + public Result get(@PathVariable("id") String id) { + LingshanOfficeHallServiceRecordDTO data = lingshanOfficeHallServiceRecordService.get(id); + return new Result().ok(data); + } + + /** + * 工作端添加 + * + * @param dto + * @return + */ + @NoRepeatSubmit + @PostMapping("save") + public Result save(@LoginUser TokenDto tokenDto, @RequestBody LingshanOfficeHallServiceRecordDTO dto) { + dto.setCustomerId(tokenDto.getCustomerId()); + dto.setSourceType("gov_pc"); + ValidatorUtils.validateEntity(dto, LingshanOfficeHallServiceRecordDTO.AddShowGroup.class, LingshanOfficeHallServiceRecordDTO.AddInternalGroup.class); + lingshanOfficeHallServiceRecordService.save(dto); + return new Result(); + } + + /** + * 工作端修改 + * + * @param dto + * @return + */ + @NoRepeatSubmit + @PostMapping("update") + public Result update(@LoginUser TokenDto tokenDto, @RequestBody LingshanOfficeHallServiceRecordDTO dto) { + dto.setCustomerId(tokenDto.getCustomerId()); + dto.setSourceType("gov_pc"); + ValidatorUtils.validateEntity(dto, LingshanOfficeHallServiceRecordDTO.UpdateShowGroup.class, LingshanOfficeHallServiceRecordDTO.UpdateInternalGroup.class); + lingshanOfficeHallServiceRecordService.update(dto); + return new Result(); + } + + /** + * 批量删除 + * 单挑删除 + * + * @param ids + * @return + */ + @PostMapping("delete") + public Result delete(@RequestBody List ids) { + if (CollectionUtils.isNotEmpty(ids)) { + lingshanOfficeHallServiceRecordService.delete(ids); + } + return new Result(); + } + + @PostMapping("export") + public void exportEnterprise(@LoginUser TokenDto tokenDto, @RequestBody LingshanOfficeHallServiceRecordPageFormDTO formDTO, HttpServletResponse response) throws IOException { + formDTO.setCustomerId(tokenDto.getCustomerId()); + ExcelWriter excelWriter = null; + formDTO.setPageNo(NumConstant.ONE); + formDTO.setPageSize(NumConstant.TEN_THOUSAND); + try { + String fileName = "办事大厅" + DateUtils.format(new Date()) + ".xlsx"; + // 头的策略 + WriteCellStyle headWriteCellStyle = new WriteCellStyle(); + // 背景设置为红色 + headWriteCellStyle.setFillForegroundColor(IndexedColors.PALE_BLUE.getIndex()); + WriteCellStyle contentWriteCellStyle = new WriteCellStyle(); + contentWriteCellStyle.setVerticalAlignment(VerticalAlignment.CENTER); + HorizontalCellStyleStrategy horizontalCellStyleStrategy = new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle); + FreezeAndFilter writeHandler = new FreezeAndFilter(); + excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel(fileName, response), LingshanOfficeHallServiceRecordDTO.class) + .registerWriteHandler(horizontalCellStyleStrategy) + .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) + .registerWriteHandler(writeHandler).build(); + WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").registerWriteHandler(new FreezeAndFilter()).build(); + PageData data = null; + List list = null; + do { + data = lingshanOfficeHallServiceRecordService.page(formDTO); + list = ConvertUtils.sourceToTarget(data.getList(), LingshanOfficeHallServiceRecordDTO.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-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/LingshanOfficeHallServiceRecordDao.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/LingshanOfficeHallServiceRecordDao.java new file mode 100644 index 0000000000..51cc8bc63b --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/LingshanOfficeHallServiceRecordDao.java @@ -0,0 +1,28 @@ +package com.epmet.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.LingshanOfficeHallServiceRecordDTO; +import com.epmet.entity.LingshanOfficeHallServiceRecordEntity; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 灵山_办事大厅服务记录 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2023-05-15 + */ +@Mapper +public interface LingshanOfficeHallServiceRecordDao extends BaseDao { + + List pageList(@Param("customerId") String customerId, + @Param("orgIdPath") String orgIdPath, + @Param("categoryCode") String categoryCode, + @Param("content") String content, + @Param("satisfication") Integer satisfication, + @Param("startDate") String startDate, + @Param("endDate") String endDate, + @Param("status") String status); +} \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/LingshanOfficeHallServiceRecordEntity.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/LingshanOfficeHallServiceRecordEntity.java new file mode 100644 index 0000000000..3f649fd6e7 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/LingshanOfficeHallServiceRecordEntity.java @@ -0,0 +1,118 @@ +package com.epmet.entity; + +import com.baomidou.mybatisplus.annotation.TableName; + +import com.epmet.commons.mybatis.entity.BaseEpmetEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Date; + +/** + * 灵山_办事大厅服务记录 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2023-05-15 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("lingshan_office_hall_service_record") +public class LingshanOfficeHallServiceRecordEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 租户号 + */ + private String customerId; + + /** + * 工作人员录入:gov_pc;居民端小程序:resi_mp + */ + private String sourceType; + + /** + * 事项类型 + */ + private String categoryCode; + + /** + * 事项说明 + */ + private String content; + + /** + * 申请人所属组织id或者网格id + */ + private String applicantOrgId; + + /** + * agency或者grid + */ + private String applicantOrgType; + + /** + * ORG_ID全路径 + */ + private String applicantOrgIdPath; + + /** + * 申请人所属组织名称 + */ + private String applicantOrgName; + + /** + * 申请人姓名 + */ + private String applicantName; + + /** + * 申请人联系电话 + */ + private String applicantMobile; + + /** + * 申请人身份证号 + */ + private String applicantIdCard; + + /** + * 申请日期 + */ + private Date applicantTime; + + /** + * 办理人姓名 + */ + private String transactorName; + + /** + * 未办结:0;已办结:1 + */ + private String status; + + /** + * 办结日期 + */ + private Date closeTime; + + /** + * 满意度评价。-1不满意,0基本满意,1非常满意 + */ + private Integer satisfication; + + /** + * 本条数据所属组织id/所属网格id + */ + private String orgId; + /** + * agency或者grid + */ + private String orgType; + + /** + * 本条数据所属组织的org_id_path + */ + private String orgIdPath; + +} diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/LingshanOfficeHallServiceRecordExportExcel.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/LingshanOfficeHallServiceRecordExportExcel.java new file mode 100644 index 0000000000..2e97bced41 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/LingshanOfficeHallServiceRecordExportExcel.java @@ -0,0 +1,92 @@ +package com.epmet.excel; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.util.Date; + +/** + * @Description + * @Author yzm + * @Date 2023/5/15 18:24 + */ +@Data +public class LingshanOfficeHallServiceRecordExportExcel { + + /** + * 申请人所属组织名称 + */ + @ExcelProperty(value = "所属组织") + @ColumnWidth(30) + private String applicantOrgName; + + /** + * 类别名称 + * 举例:营业执照服务、食品许可证服务、医疗保险业务、养老保险业务 + */ + @ExcelProperty(value = "事项类型") + @ColumnWidth(25) + private String categoryName; + + /** + * 事项说明 + */ + @ExcelProperty(value = "事项说明") + @ColumnWidth(40) + private String content; + + /** + * 申请人姓名 + */ + @ExcelProperty(value = "申请人") + @ColumnWidth(30) + private String applicantName; + + /** + * 申请人联系电话 + */ + @ExcelProperty(value = "申请人联系电话") + @ColumnWidth(30) + private String applicantMobile; + + /** + * 申请人身份证号 + */ + @ExcelProperty(value = "申请人身份证号") + @ColumnWidth(30) + private String applicantIdCard; + + @ExcelProperty(value = "申请日期") + @ColumnWidth(30) + @JsonFormat(pattern = "yyyy-MM-dd") + private Date applicantTime; + + /** + * 办理人姓名 + */ + @ExcelProperty(value = "办理人") + @ColumnWidth(30) + private String transactorName; + + @ExcelProperty(value = "办理状态") + @ColumnWidth(30) + private String statusName; + /** + * 办结日期 + */ + @ExcelProperty(value = "办结日期") + @ColumnWidth(30) + @JsonFormat(pattern = "yyyy-MM-dd") + private Date closeTime; + + /** + * 满意度评价。-1不满意,0基本满意,1非常满意 + */ + @ExcelProperty(value = "满意度") + @ColumnWidth(25) + private String satisficationName; + +} + diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/LingshanOfficeHallServiceRecordService.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/LingshanOfficeHallServiceRecordService.java new file mode 100644 index 0000000000..d2f2f96834 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/LingshanOfficeHallServiceRecordService.java @@ -0,0 +1,70 @@ +package com.epmet.service; + +import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.commons.tools.page.PageData; +import com.epmet.dto.LingshanOfficeHallServiceRecordDTO; +import com.epmet.dto.form.lingshan.LingshanOfficeHallServiceRecordPageFormDTO; +import com.epmet.entity.LingshanOfficeHallServiceRecordEntity; + +import java.util.List; + +/** + * 灵山_办事大厅服务记录 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2023-05-15 + */ +public interface LingshanOfficeHallServiceRecordService extends BaseService { + + /** + * 办事大厅-分页列表 + * + * @param formDTO + * @return PageData + * @author generator + * @date 2023-05-15 + */ + PageData page(LingshanOfficeHallServiceRecordPageFormDTO formDTO); + + /** + * 单条查询 + * + * @param id + * @return LingshanOfficeHallServiceRecordDTO + * @author generator + * @date 2023-05-15 + */ + LingshanOfficeHallServiceRecordDTO get(String id); + + /** + * 默认保存 + * + * @param dto + * @return void + * @author generator + * @date 2023-05-15 + */ + void save(LingshanOfficeHallServiceRecordDTO dto); + + /** + * 默认更新 + * + * @param dto + * @return void + * @author generator + * @date 2023-05-15 + */ + void update(LingshanOfficeHallServiceRecordDTO dto); + + /** + * 批量删除 + * + * @param ids + * @return void + * @author generator + * @date 2023-05-15 + */ + void delete(List ids); + + +} \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/LingshanOfficeHallServiceRecordServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/LingshanOfficeHallServiceRecordServiceImpl.java new file mode 100644 index 0000000000..a5f3f275e4 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/LingshanOfficeHallServiceRecordServiceImpl.java @@ -0,0 +1,169 @@ +package com.epmet.service.impl; + +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.commons.tools.dto.result.CustomerStaffInfoCacheResult; +import com.epmet.commons.tools.enums.DictTypeEnum; +import com.epmet.commons.tools.enums.OrgTypeEnum; +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.redis.common.bean.GridInfoCache; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.EpmetRequestHolder; +import com.epmet.commons.tools.utils.PidUtils; +import com.epmet.commons.tools.utils.Result; +import com.epmet.dao.LingshanOfficeHallServiceRecordDao; +import com.epmet.dto.LingshanOfficeHallServiceRecordDTO; +import com.epmet.dto.form.lingshan.LingshanOfficeHallServiceRecordPageFormDTO; +import com.epmet.entity.LingshanOfficeHallServiceRecordEntity; +import com.epmet.feign.EpmetAdminOpenFeignClient; +import com.epmet.service.LingshanOfficeHallServiceRecordService; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.collections4.MapUtils; +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.List; +import java.util.Map; + +/** + * 灵山_办事大厅服务记录 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2023-05-15 + */ +@Service +public class LingshanOfficeHallServiceRecordServiceImpl extends BaseServiceImpl implements LingshanOfficeHallServiceRecordService { + @Autowired + private EpmetAdminOpenFeignClient adminOpenFeignClient; + + + /** + * 办事大厅-分页列表 + * + * @param formDTO + * @return + */ + @Override + public PageData page(LingshanOfficeHallServiceRecordPageFormDTO formDTO) { + if (StringUtils.isBlank(formDTO.getOrgId()) && StringUtils.isBlank(formDTO.getOrgType())) { + formDTO.setOrgId(CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getStaffId()).getAgencyId()); + formDTO.setOrgType(OrgTypeEnum.AGENCY.getCode()); + } + String orgIdPath = queryOrgIdPath(formDTO.getCustomerId(), formDTO.getStaffId(), formDTO.getOrgId(), formDTO.getOrgType()); + PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()); + List resultList = baseDao.pageList(formDTO.getCustomerId(), orgIdPath, formDTO.getCategoryCode(), formDTO.getContent(), formDTO.getSatisfication(), formDTO.getStartDate(), formDTO.getEndDate(), formDTO.getStatus()); + if (CollectionUtils.isNotEmpty(resultList)) { + Result> categoryRes = adminOpenFeignClient.dictMap(DictTypeEnum.LINGSHAN_OFFICE_HALL_SERVICE_RECORD.getCode()); + resultList.forEach(dto -> { + dto.setCategoryName(MapUtils.isNotEmpty(categoryRes.getData()) ? categoryRes.getData().get(dto.getCategoryCode()) : StrConstant.EPMETY_STR); + }); + } + PageInfo pageInfo = new PageInfo<>(resultList); + return new PageData<>(resultList, pageInfo.getTotal()); + } + + /** + * 办事大厅-查看详情 + * + * @param id + * @return + */ + @Override + public LingshanOfficeHallServiceRecordDTO get(String id) { + LingshanOfficeHallServiceRecordEntity entity = baseDao.selectById(id); + return ConvertUtils.sourceToTarget(entity, LingshanOfficeHallServiceRecordDTO.class); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void save(LingshanOfficeHallServiceRecordDTO dto) { + LingshanOfficeHallServiceRecordEntity entity = ConvertUtils.sourceToTarget(dto, LingshanOfficeHallServiceRecordEntity.class); + entity.setStatus(NumConstant.ZERO_STR); + if (StringUtils.isNotBlank(dto.getApplicantOrgId())) { + if (OrgTypeEnum.GRID.getCode().equals(dto.getApplicantOrgType())) { + GridInfoCache gridInfoCache = CustomerOrgRedis.getGridInfo(dto.getApplicantOrgId()); + entity.setApplicantOrgIdPath(PidUtils.convertPid2OrgIdPath(gridInfoCache.getId(), gridInfoCache.getPids())); + entity.setApplicantOrgName(gridInfoCache.getGridNamePath()); + + // 本条数据属于网格 + entity.setOrgId(gridInfoCache.getId()); + entity.setOrgType(dto.getOrgType()); + entity.setOrgIdPath(entity.getApplicantOrgIdPath()); + } else if (OrgTypeEnum.AGENCY.getCode().equals(dto.getApplicantOrgType())) { + AgencyInfoCache agencyInfoCache = CustomerOrgRedis.getAgencyInfo(dto.getApplicantOrgId()); + entity.setApplicantOrgIdPath(PidUtils.convertPid2OrgIdPath(agencyInfoCache.getId(), agencyInfoCache.getPids())); + entity.setApplicantOrgName(agencyInfoCache.getOrganizationName()); + // 本条数据属于组织 + entity.setOrgId(agencyInfoCache.getId()); + entity.setOrgType(dto.getOrgType()); + entity.setOrgIdPath(entity.getApplicantOrgIdPath()); + } + } else { + // 如果申请人所属组织没填写, 本条数据属于当前工作人员所属组织 + entity.setOrgId(CustomerStaffRedis.getStaffInfo(dto.getCustomerId(), EpmetRequestHolder.getLoginUserId()).getAgencyId()); + entity.setOrgType(OrgTypeEnum.AGENCY.getCode()); + entity.setOrgIdPath(CustomerOrgRedis.getOrgIdPath(entity.getOrgId(), entity.getOrgType())); + } + insert(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(LingshanOfficeHallServiceRecordDTO dto) { + LingshanOfficeHallServiceRecordEntity entity = ConvertUtils.sourceToTarget(dto, LingshanOfficeHallServiceRecordEntity.class); + if (StringUtils.isNotBlank(dto.getApplicantOrgId())) { + if (OrgTypeEnum.GRID.getCode().equals(dto.getApplicantOrgType())) { + GridInfoCache gridInfoCache = CustomerOrgRedis.getGridInfo(dto.getApplicantOrgId()); + entity.setApplicantOrgIdPath(PidUtils.convertPid2OrgIdPath(gridInfoCache.getId(), gridInfoCache.getPids())); + entity.setApplicantOrgName(gridInfoCache.getGridNamePath()); + // 本条数据属于网格 + entity.setOrgId(gridInfoCache.getId()); + entity.setOrgType(dto.getOrgType()); + entity.setOrgIdPath(entity.getApplicantOrgIdPath()); + } else if (OrgTypeEnum.AGENCY.getCode().equals(dto.getApplicantOrgType())) { + AgencyInfoCache agencyInfoCache = CustomerOrgRedis.getAgencyInfo(dto.getApplicantOrgId()); + entity.setApplicantOrgIdPath(PidUtils.convertPid2OrgIdPath(agencyInfoCache.getId(), agencyInfoCache.getPids())); + entity.setApplicantOrgName(agencyInfoCache.getOrganizationName()); + // 本条数据属于组织 + entity.setOrgId(agencyInfoCache.getId()); + entity.setOrgType(dto.getOrgType()); + entity.setOrgIdPath(entity.getApplicantOrgIdPath()); + } + } else { + // 如果申请人所属组织没填写, 本条数据属于当前工作人员所属组织 + entity.setOrgId(CustomerStaffRedis.getStaffInfo(dto.getCustomerId(), EpmetRequestHolder.getLoginUserId()).getAgencyId()); + entity.setOrgType(OrgTypeEnum.AGENCY.getCode()); + entity.setOrgIdPath(CustomerOrgRedis.getOrgIdPath(entity.getOrgId(), entity.getOrgType())); + } + updateById(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void delete(List ids) { + // 逻辑删除(@TableLogic 注解) + baseDao.deleteBatchIds(ids); + } + + private String queryOrgIdPath(String customerId, String staffId, String orgId, String orgType) { + String orgIdPath = ""; + // 如果没传,默认查询当前工作人员所属组织 + if (StringUtils.isBlank(orgId) && StringUtils.isBlank(orgType)) { + CustomerStaffInfoCacheResult staffInfoCacheResult = CustomerStaffRedis.getStaffInfo(customerId, staffId); + orgId = staffInfoCacheResult.getAgencyId(); + orgType = OrgTypeEnum.AGENCY.getCode(); + } + orgIdPath = CustomerOrgRedis.getOrgIdPath(orgId, orgType); + return orgIdPath; + } + + +} \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/LingshanOfficeHallServiceRecordDao.xml b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/LingshanOfficeHallServiceRecordDao.xml new file mode 100644 index 0000000000..2b09eaf521 --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/LingshanOfficeHallServiceRecordDao.xml @@ -0,0 +1,42 @@ + + + + + + + \ No newline at end of file