Browse Source

办事大厅,待测试

master
yinzuomei 2 years ago
parent
commit
3b5eca8f47
  1. 1
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/DictTypeEnum.java
  2. 199
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/LingshanOfficeHallServiceRecordDTO.java
  3. 48
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/lingshan/LingshanOfficeHallServiceRecordPageFormDTO.java
  4. 175
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/LingshanOfficeHallServiceRecordController.java
  5. 28
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/LingshanOfficeHallServiceRecordDao.java
  6. 118
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/LingshanOfficeHallServiceRecordEntity.java
  7. 92
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/excel/LingshanOfficeHallServiceRecordExportExcel.java
  8. 70
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/LingshanOfficeHallServiceRecordService.java
  9. 169
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/LingshanOfficeHallServiceRecordServiceImpl.java
  10. 42
      epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/LingshanOfficeHallServiceRecordDao.xml

1
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;

199
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;
}

48
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;
}

175
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<PageData<LingshanOfficeHallServiceRecordDTO>> page(@LoginUser TokenDto tokenDto, @RequestBody LingshanOfficeHallServiceRecordPageFormDTO formDTO) {
formDTO.setCustomerId(tokenDto.getCustomerId());
formDTO.setStaffId(tokenDto.getUserId());
PageData<LingshanOfficeHallServiceRecordDTO> page = lingshanOfficeHallServiceRecordService.page(formDTO);
return new Result<PageData<LingshanOfficeHallServiceRecordDTO>>().ok(page);
}
/**
* 办事大厅-查看详情
*
* @param id
* @return
*/
@RequestMapping(value = "detail/{id}", method = {RequestMethod.POST})
public Result<LingshanOfficeHallServiceRecordDTO> get(@PathVariable("id") String id) {
LingshanOfficeHallServiceRecordDTO data = lingshanOfficeHallServiceRecordService.get(id);
return new Result<LingshanOfficeHallServiceRecordDTO>().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<String> 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<LingshanOfficeHallServiceRecordDTO> data = null;
List<LingshanOfficeHallServiceRecordDTO> 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<Object> 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();
}
}
}
}

28
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<LingshanOfficeHallServiceRecordEntity> {
List<LingshanOfficeHallServiceRecordDTO> 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);
}

118
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;
}

92
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;
}

70
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<LingshanOfficeHallServiceRecordEntity> {
/**
* 办事大厅-分页列表
*
* @param formDTO
* @return PageData<LingshanOfficeHallServiceRecordDTO>
* @author generator
* @date 2023-05-15
*/
PageData<LingshanOfficeHallServiceRecordDTO> 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<String> ids);
}

169
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<LingshanOfficeHallServiceRecordDao, LingshanOfficeHallServiceRecordEntity> implements LingshanOfficeHallServiceRecordService {
@Autowired
private EpmetAdminOpenFeignClient adminOpenFeignClient;
/**
* 办事大厅-分页列表
*
* @param formDTO
* @return
*/
@Override
public PageData<LingshanOfficeHallServiceRecordDTO> 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<LingshanOfficeHallServiceRecordDTO> resultList = baseDao.pageList(formDTO.getCustomerId(), orgIdPath, formDTO.getCategoryCode(), formDTO.getContent(), formDTO.getSatisfication(), formDTO.getStartDate(), formDTO.getEndDate(), formDTO.getStatus());
if (CollectionUtils.isNotEmpty(resultList)) {
Result<Map<String, String>> 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<String> 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;
}
}

42
epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/LingshanOfficeHallServiceRecordDao.xml

@ -0,0 +1,42 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.epmet.dao.LingshanOfficeHallServiceRecordDao">
<select id="pageList" parameterType="map" resultType="com.epmet.dto.LingshanOfficeHallServiceRecordDTO">
select r.*,
(case when r.STATUS='0' then '未办结'
when r.STATUS='1' then '已办结'
else ''
end)as statusName,
(
case when r.SATISFICATION='-1' then '不满意'
when r.SATISFICATION='0' then '基本满意'
when r.SATISFICATION='1' then '非常满意'
else ''
end)as satisficationName
from lingshan_office_hall_service_record r
where r.DEL_FLAG = '0'
and r.CUSTOMER_ID = #{customerId}
and r.ORG_ID_PATH like concat(#{orgIdPath},'%')
<if test="categoryCode != null and categoryCode != ''">
and r.CATEGORY_CODE = #{categoryCode}
</if>
<if test="content != null and content != ''">
and r.CONTENT like concat('%',#{content},'%')
</if>
<if test="satisfication != null">
and r.SATISFICATION = #{satisfication}
</if>
<if test="status != null and status != ''">
and r.STATUS = #{status}
</if>
<if test='startDate != null and startDate != "" '>
AND DATE_FORMAT(r.CLOSE_TIME,'%Y-%m-%d') >= #{startDate}
</if>
<if test='endDate != null and endDate != "" '>
AND DATE_FORMAT(r.CLOSE_TIME,'%Y-%m-%d') <![CDATA[ <= ]]> #{endDate}
</if>
ORDER BY R.CREATED_TIME DESC
</select>
</mapper>
Loading…
Cancel
Save