10 changed files with 942 additions and 0 deletions
@ -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; |
|||
|
|||
} |
@ -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; |
|||
} |
|||
|
@ -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(); |
|||
} |
|||
} |
|||
} |
|||
|
|||
|
|||
|
|||
} |
@ -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); |
|||
} |
@ -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; |
|||
|
|||
} |
@ -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; |
|||
|
|||
} |
|||
|
@ -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); |
|||
|
|||
|
|||
} |
@ -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; |
|||
} |
|||
|
|||
|
|||
} |
@ -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…
Reference in new issue