From 0135fa289418c5fd231fa4e7c60ee7b8f06f17a7 Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期二, 06 五月 2025 19:29:11 +0800 Subject: [PATCH] Merge branch 'dev-2.0.1' of http://120.76.84.145:10101/gitblit/r/java/zhihuishenqu into dev-2.0.1 --- springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComplaintController.java | 2 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintRejectMapper.xml | 44 ++ springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/ComplaintRejectController.java | 41 ++ springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/query/AnalyticStatisticsQuery.java | 22 + springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/ComplaintRejectVo.java | 31 ++ springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintRejectServiceImpl.java | 44 ++ springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/AnalyticStatisticsThreeVo.java | 15 + springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/SystemLogMapper.java | 2 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ComplaintAuditRecord.java | 21 + springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/scheduled/SystemLogTasks.java | 39 ++ springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ComplaintReject.java | 60 ++++ springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintRejectService.java | 26 + springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/AnalyticStatisticsController.java | 76 +++++ springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/query/ComplaintRejectQuery.java | 28 + springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/Complaint.java | 8 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java | 260 +++++++++++++++-- springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComplaintRejectMapper.java | 26 + springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/SystemLogMapper.xml | 4 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/AnalyticStatisticsOneVo.java | 43 ++ springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/AnalyticStatisticsFourVo.java | 22 + springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintService.java | 32 + springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/SystemLogServiceImpl.java | 5 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/ISystemLogService.java | 2 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/AnalyticStatisticsTwoVo.java | 17 + 24 files changed, 829 insertions(+), 41 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/AnalyticStatisticsController.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/AnalyticStatisticsController.java new file mode 100644 index 0000000..26587fc --- /dev/null +++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/AnalyticStatisticsController.java @@ -0,0 +1,76 @@ +package com.panzhihua.sangeshenbian.api; + + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.panzhihua.common.model.vos.R; +import com.panzhihua.common.utlis.DateUtils; +import com.panzhihua.sangeshenbian.model.entity.Complaint; +import com.panzhihua.sangeshenbian.model.query.AnalyticStatisticsQuery; +import com.panzhihua.sangeshenbian.model.vo.AnalyticStatisticsOneVo; +import com.panzhihua.sangeshenbian.model.vo.AnalyticStatisticsThreeVo; +import com.panzhihua.sangeshenbian.model.vo.AnalyticStatisticsTwoVo; +import com.panzhihua.sangeshenbian.service.IComplaintService; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.validation.Valid; +import java.text.SimpleDateFormat; +import java.util.List; + +/** + * <p> + * 分析统计 前端控制器 + * </p> + * + * @author + * @since 2025-04-28 + */ +@RestController +@RequestMapping("/analytic-statistics") +@Validated +public class AnalyticStatisticsController { + + @Autowired + private IComplaintService complaintService; + + @PostMapping("/data") + @ApiOperation(value = "分析统计", tags = {"三个身边后台-分析统计"}) + public R<?> data(@Valid @RequestBody AnalyticStatisticsQuery query){ + // TODO 判断当前账号的层级 如果包含市级 可以查看所有 包含区县多个 包含镇多个 包含村多个 + LambdaQueryWrapper<Complaint> wrapper = new LambdaQueryWrapper<Complaint>().eq(Complaint::getCityCode, query.getCityCode()); + if(query.getDistrictCode()!=null){ + wrapper.eq(Complaint::getDistrictsCode, query.getDistrictCode()); + } + if(query.getStreetId()!=null){ + wrapper.eq(Complaint::getStreetId, query.getStreetId()); + } + if(query.getCommunityId()!=null){ + wrapper.eq(Complaint::getCommunityId, query.getCommunityId()); + } + + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + List<Complaint> complaints =complaintService.list(wrapper); + // 第一部分数据 + AnalyticStatisticsOneVo analyticStatisticsOneVo = complaintService.analyticStatisticsOne(query,complaints,simpleDateFormat); + + // 第二部分数据 + List<AnalyticStatisticsTwoVo> analyticStatisticsTwoVos =complaintService.analyticStatisticsTwo(query,complaints,simpleDateFormat); + + // 第三部分数据 + List<AnalyticStatisticsThreeVo> analyticStatisticsThreeVos =complaintService.analyticStatisticsThree(query,complaints); + + return R.ok(analyticStatisticsThreeVos); + } + + + public static void main(String[] args) { + String beforeDay = DateUtils.getBeforeDay(6); + System.out.println(beforeDay); + } + +} diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/ComplaintRejectController.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/ComplaintRejectController.java new file mode 100644 index 0000000..b121d84 --- /dev/null +++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/api/ComplaintRejectController.java @@ -0,0 +1,41 @@ +package com.panzhihua.sangeshenbian.api; + + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.panzhihua.common.model.vos.R; +import com.panzhihua.sangeshenbian.model.query.ComplaintRejectQuery; +import com.panzhihua.sangeshenbian.model.vo.ComplaintRejectVo; +import com.panzhihua.sangeshenbian.service.IComplaintRejectService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +/** + * <p> + * 诉求驳回表 前端控制器 + * </p> + * + * @author + * @since 2025-04-30 + */ +@RestController +@RequestMapping("/complaint-reject") +@Api +public class ComplaintRejectController { + @Resource + private IComplaintRejectService complaintRejectService; + + + @GetMapping("/list") + @ApiOperation(value = "获取问题驳回统计列表", tags = {"三个身边后台-问题驳回统计"}) + public R<IPage<ComplaintRejectVo>> list(ComplaintRejectQuery query){ + IPage<ComplaintRejectVo> list = complaintRejectService.getComplaintRejectList(query); + return R.ok(list); + } + + +} diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComplaintController.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComplaintController.java index 52eac40..7baf920 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComplaintController.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/ComplaintController.java @@ -142,6 +142,7 @@ return R.ok(); } + /** * 诉求下派 */ @@ -215,6 +216,7 @@ complaintCommentService.save(complaintComment); Complaint complaint = complaintService.getById(complaintComment.getComplaintId()); complaint.setStatus(8); + complaint.setCommentRate(complaintComment.getRate()); complaintService.updateById(complaint); return R.ok(); } diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComplaintRejectMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComplaintRejectMapper.java new file mode 100644 index 0000000..a83e3cb --- /dev/null +++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/ComplaintRejectMapper.java @@ -0,0 +1,26 @@ +package com.panzhihua.sangeshenbian.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.panzhihua.sangeshenbian.model.entity.ComplaintReject; +import com.panzhihua.sangeshenbian.model.query.ComplaintRejectQuery; +import com.panzhihua.sangeshenbian.model.vo.ComplaintRejectVo; +import org.apache.ibatis.annotations.Param; + +/** + * <p> + * 诉求驳回表 Mapper 接口 + * </p> + * + * @author + * @since 2025-04-30 + */ +public interface ComplaintRejectMapper extends BaseMapper<ComplaintReject> { + + IPage<ComplaintRejectVo> getComplaintRejectList(@Param("page") Page<ComplaintRejectVo> page, @Param("applyStartTime") String applyStartTime, @Param("applyEndTime") String applyEndTime, @Param("examineStartTime") String examineStartTime, @Param("examineEndTime") String examineEndTime, @Param("query") ComplaintRejectQuery query); + + + + +} diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/SystemLogMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/SystemLogMapper.java index b081014..db7904a 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/SystemLogMapper.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/dao/SystemLogMapper.java @@ -18,4 +18,6 @@ IPage<SystemLog> getLogList(@Param("page") Page page, @Param("sTime") String sTime, @Param("eTime") String eTime, @Param("operatorName") String operatorName, @Param("operatorPhone") String operatorPhone, @Param("operatorCategory") String operatorCategory, @Param("ip") String ip); + + } diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/Complaint.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/Complaint.java index 405d2f8..1d85d8d 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/Complaint.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/Complaint.java @@ -203,4 +203,12 @@ @ApiModelProperty(value = "语音文件") @TableField("voice_file") private String voiceFile; + + @ApiModelProperty(value = "处理天数") + @TableField("handling_day") + private Double handlingDay; + + @ApiModelProperty(value = "评价") + @TableField("comment_rate") + private Integer commentRate; } diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ComplaintAuditRecord.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ComplaintAuditRecord.java index c5b09b7..b2fbc23 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ComplaintAuditRecord.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ComplaintAuditRecord.java @@ -1,19 +1,18 @@ package com.panzhihua.sangeshenbian.model.entity; -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.IdType; -import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; -import java.io.Serializable; -import java.util.Date; - +import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; /** * <p> @@ -123,4 +122,14 @@ @ApiModelProperty("审核人联系方式") @TableField("auditor_phone") private String auditorPhone; + + @ApiModelProperty("申请人id") + @TableField("apply_id") + private Long applyId; + + @ApiModelProperty("申请人id名称") + @TableField("apply_name") + private String applyName; + + } diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ComplaintReject.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ComplaintReject.java new file mode 100644 index 0000000..47b0a9d --- /dev/null +++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/entity/ComplaintReject.java @@ -0,0 +1,60 @@ +package com.panzhihua.sangeshenbian.model.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * <p> + * 诉求驳回表 + * </p> + * + * @author + * @since 2025-04-30 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName("sgsb_complaint_reject") +@ApiModel(value="ComplaintReject对象", description="诉求驳回表") +public class ComplaintReject implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "主键ID") + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + @ApiModelProperty(value = "诉求id") + private Long complaintId; + + @ApiModelProperty(value = "1上级 2党员") + private Integer userType; + + @ApiModelProperty(value = "审批人id") + private Long userId; + + @ApiModelProperty(value = "驳回理由") + private String remark; + + @ApiModelProperty(value = "流转类型 0-上报 1-下派") + private Boolean type; + + @ApiModelProperty(value = "创建时间") + private LocalDateTime createTime; + + @ApiModelProperty(value = "1上报驳回 2延期驳回") + private Boolean complaintType; + + @ApiModelProperty(value = "申请驳回记录id ") + private Long complaintAuditId; + +} diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/query/AnalyticStatisticsQuery.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/query/AnalyticStatisticsQuery.java new file mode 100644 index 0000000..2d8bf4d --- /dev/null +++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/query/AnalyticStatisticsQuery.java @@ -0,0 +1,22 @@ +package com.panzhihua.sangeshenbian.model.query; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel("数据统计数据传输对象") +public class AnalyticStatisticsQuery { + @ApiModelProperty("城市编码") + private Integer cityCode; + @ApiModelProperty("区县编码") + private Integer districtCode; + @ApiModelProperty("街道id") + private Long streetId; + @ApiModelProperty("社区id") + private Long communityId; + @ApiModelProperty("2022-02-02 - 2023-02-02") + private String time; + @ApiModelProperty("5 10 不传是所有") + private Integer rank; +} diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/query/ComplaintRejectQuery.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/query/ComplaintRejectQuery.java new file mode 100644 index 0000000..0d81b7f --- /dev/null +++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/query/ComplaintRejectQuery.java @@ -0,0 +1,28 @@ +package com.panzhihua.sangeshenbian.model.query; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel("问题驳回统计查询对象") +public class ComplaintRejectQuery extends BasePage{ + @ApiModelProperty("诉求号") + private String serialNumber; + @ApiModelProperty("录入人") + private String reportUserName; + @ApiModelProperty("录入人联系方式") + private String reportUserPhone; + @ApiModelProperty("申请人") + private String applyUserName; + @ApiModelProperty("审批人") + private String examineUserName; + @ApiModelProperty("申请时间 2022-02-02 - 2022-03-03") + private String applyTime; + @ApiModelProperty("审批时间 2022-02-02 - 2022-03-03") + private String examineTime; + @ApiModelProperty("诉求状态 0-正在办理 1-延期办理 2-超时办理 3-已办结 4-群众撤销 5-上报待审核 6-上级驳回 7-延期待审核 8-已评价 9-延期驳回") + private Integer status; + + +} diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/AnalyticStatisticsFourVo.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/AnalyticStatisticsFourVo.java new file mode 100644 index 0000000..652d57b --- /dev/null +++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/AnalyticStatisticsFourVo.java @@ -0,0 +1,22 @@ +package com.panzhihua.sangeshenbian.model.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel("数据统计第四部分Vo") +public class AnalyticStatisticsFourVo { + @ApiModelProperty("非常满意") + private Double greatSatisfactionRate; + + @ApiModelProperty("满意") + private Double satisfactionRate; + + @ApiModelProperty("一般") + private Double generalSatisfactionRate; + + @ApiModelProperty("不满意") + private Double dissatisfactionRate; + +} diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/AnalyticStatisticsOneVo.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/AnalyticStatisticsOneVo.java new file mode 100644 index 0000000..7e5b6c6 --- /dev/null +++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/AnalyticStatisticsOneVo.java @@ -0,0 +1,43 @@ +package com.panzhihua.sangeshenbian.model.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel("数据统计第一部分Vo") +public class AnalyticStatisticsOneVo { + @ApiModelProperty("诉求单量总计") + private Integer allTotal; + @ApiModelProperty("诉求单量本月") + private Integer thisMonthTotal; + @ApiModelProperty("诉求单量同比上月") + private Integer lastMonthCompareTotal; + @ApiModelProperty("正在办理") + private Integer nowTransactTotal; + @ApiModelProperty("审核中") + private Integer auditTransactTotal; + @ApiModelProperty("延期办理") + private Integer postponeTransactTotal; + @ApiModelProperty("已办结") + private Integer completeTransactTotal; + @ApiModelProperty("超时办理总量") + private Integer overtimeTransactTotal; + @ApiModelProperty("超时办理本月") + private Integer thisMonthOvertimeTransactTotal; + @ApiModelProperty("超时办理同比上月") + private Integer lastMonthOvertimeTransactCompareTotal; + @ApiModelProperty("平均处理时长") + private Double averageTime=0.0; + @ApiModelProperty("处理时长本月") + private Double thisMonthAverageTime=0.0; + @ApiModelProperty("处理时长同比上月") + private Double lastMonthCompareAverageTime=0.0; + @ApiModelProperty("总体满意率") + private Double satisfactionRate=0.0; + @ApiModelProperty("满意率本月") + private Double thisMonthSatisfactionRate=0.0; + @ApiModelProperty("满意率同比上月") + private Double lastMonthCompareSatisfactionRate=0.0; + +} diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/AnalyticStatisticsThreeVo.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/AnalyticStatisticsThreeVo.java new file mode 100644 index 0000000..536d828 --- /dev/null +++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/AnalyticStatisticsThreeVo.java @@ -0,0 +1,15 @@ +package com.panzhihua.sangeshenbian.model.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel("数据统计第三部分Vo") +public class AnalyticStatisticsThreeVo { + @ApiModelProperty("类型名称") + private String name; + @ApiModelProperty("诉求数量") + private Integer allTotal; + +} diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/AnalyticStatisticsTwoVo.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/AnalyticStatisticsTwoVo.java new file mode 100644 index 0000000..cf9a87c --- /dev/null +++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/AnalyticStatisticsTwoVo.java @@ -0,0 +1,17 @@ +package com.panzhihua.sangeshenbian.model.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel("数据统计第二部分Vo") +public class AnalyticStatisticsTwoVo { + @ApiModelProperty("诉求单量") + private Integer allTotal; + @ApiModelProperty("诉求办结数") + private Integer completeTotal; + @ApiModelProperty("时间") + private String time; + +} diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/ComplaintRejectVo.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/ComplaintRejectVo.java new file mode 100644 index 0000000..11ec791 --- /dev/null +++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/model/vo/ComplaintRejectVo.java @@ -0,0 +1,31 @@ +package com.panzhihua.sangeshenbian.model.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel("问题驳回Vo") +public class ComplaintRejectVo { + @ApiModelProperty(value = "诉求Id") + private Long complaintId; + @ApiModelProperty("诉求号") + private String serialNumber; + @ApiModelProperty("录入人") + private String reportUserName; + @ApiModelProperty("录入人联系方式") + private String reportUserPhone; + @ApiModelProperty("申请人") + private String applyUserName; + @ApiModelProperty("审批人") + private String examineUserName; + @ApiModelProperty("申请时间 2022-02-02 - 2022-03-03") + private String applyTime; + @ApiModelProperty("审批时间 2022-02-02 - 2022-03-03") + private String examineTime; + @ApiModelProperty("驳回理由") + private String remark; + @ApiModelProperty("诉求状态 0-正在办理 1-延期办理 2-超时办理 3-已办结 4-群众撤销 5-上报待审核 6-上级驳回 7-延期待审核 8-已评价 9-延期驳回") + private Integer status; + +} diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/scheduled/SystemLogTasks.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/scheduled/SystemLogTasks.java new file mode 100644 index 0000000..7fa1258 --- /dev/null +++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/scheduled/SystemLogTasks.java @@ -0,0 +1,39 @@ +package com.panzhihua.sangeshenbian.scheduled; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.panzhihua.sangeshenbian.model.entity.SystemLog; +import com.panzhihua.sangeshenbian.service.ISystemLogService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.time.LocalDate; + +@Component +@RequiredArgsConstructor +@Slf4j +public class SystemLogTasks { + + @Autowired + private ISystemLogService systemLogService; + + /** + * 每周一凌晨1点删除一年前的数据 + */ + @Scheduled(cron = "0 0 1 ? * 1") + public void SystemLogDelTasks() { + log.info("开始删除系统日志"); + // 获取当前时间一年前的时间 + String oneYearAgo = LocalDate.now().minusYears(1)+" 00:00:00"; + + systemLogService.remove(new LambdaQueryWrapper<SystemLog>().le(SystemLog::getCreateTime,oneYearAgo)); + + } + + + + + +} diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintRejectService.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintRejectService.java new file mode 100644 index 0000000..11981f5 --- /dev/null +++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintRejectService.java @@ -0,0 +1,26 @@ +package com.panzhihua.sangeshenbian.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.panzhihua.sangeshenbian.model.entity.ComplaintReject; +import com.baomidou.mybatisplus.extension.service.IService; +import com.panzhihua.sangeshenbian.model.query.ComplaintRejectQuery; +import com.panzhihua.sangeshenbian.model.vo.ComplaintRejectVo; + +/** + * <p> + * 诉求驳回表 服务类 + * </p> + * + * @author + * @since 2025-04-30 + */ +public interface IComplaintRejectService extends IService<ComplaintReject> { + + + /** + * 获取诉求驳回统计列表 + * @param query + * @return + */ + IPage<ComplaintRejectVo> getComplaintRejectList(ComplaintRejectQuery query); +} diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintService.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintService.java index 360408e..6fda0d8 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintService.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IComplaintService.java @@ -10,15 +10,15 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.panzhihua.sangeshenbian.model.entity.ComplaintAuditRecord; import com.panzhihua.sangeshenbian.model.entity.ComplaintProgress; +import com.panzhihua.sangeshenbian.model.query.AnalyticStatisticsQuery; import com.panzhihua.sangeshenbian.model.query.BasePage; import com.panzhihua.sangeshenbian.model.query.ComplaintQuery; -import com.panzhihua.sangeshenbian.model.vo.ComplaintTodoVO; -import com.panzhihua.sangeshenbian.model.vo.ComplaintVO; -import com.panzhihua.sangeshenbian.model.vo.DispatchVO; +import com.panzhihua.sangeshenbian.model.vo.*; import com.panzhihua.sangeshenbian.warpper.MgtComplaintQuery; import javax.validation.Valid; import java.io.IOException; +import java.text.SimpleDateFormat; import java.util.List; /** @@ -176,4 +176,30 @@ */ void delProgress(Long id); + /** + * 数据统计第一部分 + * @param query + * @return + */ + AnalyticStatisticsOneVo analyticStatisticsOne(AnalyticStatisticsQuery query,List<Complaint> complaints, SimpleDateFormat simpleDateFormat); + + + /** + * 数据统计第二部分 + * @param query + * @param complaints + * @param simpleDateFormat + * @return + */ + List<AnalyticStatisticsTwoVo> analyticStatisticsTwo(@Valid AnalyticStatisticsQuery query, List<Complaint> complaints, SimpleDateFormat simpleDateFormat); + + + /**+ + * 数据统计第三部分 + * @param query + * @param complaints + * @return + */ + List<AnalyticStatisticsThreeVo> analyticStatisticsThree(@Valid AnalyticStatisticsQuery query, List<Complaint> complaints); + } diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/ISystemLogService.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/ISystemLogService.java index 3141180..e003a00 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/ISystemLogService.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/ISystemLogService.java @@ -33,4 +33,6 @@ void addLogInfo(Long operatorId, String operatorCategory, String targetName,String ip,String operatorInto); + + } diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintRejectServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintRejectServiceImpl.java new file mode 100644 index 0000000..17b0bb3 --- /dev/null +++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintRejectServiceImpl.java @@ -0,0 +1,44 @@ +package com.panzhihua.sangeshenbian.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.panzhihua.common.utlis.StringUtils; +import com.panzhihua.sangeshenbian.dao.ComplaintRejectMapper; +import com.panzhihua.sangeshenbian.model.entity.ComplaintReject; +import com.panzhihua.sangeshenbian.model.query.ComplaintRejectQuery; +import com.panzhihua.sangeshenbian.model.vo.ComplaintRejectVo; +import com.panzhihua.sangeshenbian.service.IComplaintRejectService; +import org.springframework.stereotype.Service; + +/** + * <p> + * 诉求驳回表 服务实现类 + * </p> + * + * @author + * @since 2025-04-30 + */ +@Service +public class ComplaintRejectServiceImpl extends ServiceImpl<ComplaintRejectMapper, ComplaintReject> implements IComplaintRejectService { + + @Override + public IPage<ComplaintRejectVo> getComplaintRejectList(ComplaintRejectQuery query) { + Page<ComplaintRejectVo> page = new Page<>(query.getPageNum(), query.getPageSize()); + String applyStartTime=null; + String applyEndTime=null; + String examineStartTime=null; + String examineEndTime=null; + if(StringUtils.isNotEmpty(query.getApplyTime())){ + String[] split = query.getApplyTime().split(" - "); + applyStartTime=split[0]+" 00:00:00"; + applyEndTime=split[1]+" 23:59:59"; + } + if(StringUtils.isNotEmpty(query.getExamineTime())){ + String[] split = query.getExamineTime().split(" - "); + examineStartTime=split[0]+" 00:00:00"; + examineEndTime=split[1]+" 23:59:59"; + } + return this.baseMapper.getComplaintRejectList(page,applyStartTime,applyEndTime,examineStartTime,examineEndTime,query); + } +} diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java index 73d9ee9..a091857 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java @@ -12,22 +12,18 @@ import com.panzhihua.common.model.vos.LoginUserInfoVO; import com.panzhihua.common.model.vos.sangeshenbian.SystemUserVo; import com.panzhihua.common.redis.RedisUtils; +import com.panzhihua.common.utlis.DateUtils; import com.panzhihua.common.utlis.StringUtils; import com.panzhihua.sangeshenbian.config.AutoColumnWidthStrategy; import com.panzhihua.sangeshenbian.dao.ComplaintMapper; -import com.panzhihua.sangeshenbian.enums.AuditStatusEnum; -import com.panzhihua.sangeshenbian.enums.ComplaintExportEnum; -import com.panzhihua.sangeshenbian.enums.ProcessStatusEnum; -import com.panzhihua.sangeshenbian.enums.RateEnum; -import com.panzhihua.sangeshenbian.enums.ReportTypeEnum; +import com.panzhihua.sangeshenbian.enums.*; import com.panzhihua.sangeshenbian.model.dto.*; import com.panzhihua.sangeshenbian.model.entity.*; import com.panzhihua.sangeshenbian.model.excel.ComplaintExcel; +import com.panzhihua.sangeshenbian.model.query.AnalyticStatisticsQuery; import com.panzhihua.sangeshenbian.model.query.BasePage; import com.panzhihua.sangeshenbian.model.query.ComplaintQuery; -import com.panzhihua.sangeshenbian.model.vo.ComplaintTodoVO; -import com.panzhihua.sangeshenbian.model.vo.ComplaintVO; -import com.panzhihua.sangeshenbian.model.vo.DispatchVO; +import com.panzhihua.sangeshenbian.model.vo.*; import com.panzhihua.sangeshenbian.service.*; import com.panzhihua.sangeshenbian.warpper.IdentityInformation; import com.panzhihua.sangeshenbian.warpper.MgtComplaintQuery; @@ -43,9 +39,15 @@ import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.InputStream; +import java.math.BigDecimal; +import java.math.RoundingMode; import java.net.URLEncoder; +import java.text.ParseException; import java.text.SimpleDateFormat; +import java.time.Duration; +import java.time.LocalDate; import java.util.*; +import java.util.stream.Collectors; import static cn.hutool.core.util.ObjectUtil.isNull; @@ -649,6 +651,11 @@ complaint.setCompletionUserPhone(loginUserInfoVO.getPhone()); complaint.setCompletionTime(new Date()); complaint.setCompletionUserLevel(accountLevel); + // 计算处理时间 + Date createTime = complaint.getCreateTime(); + long l = Duration.between(createTime.toInstant(), complaint.getCompletionTime().toInstant()).getSeconds() / 3600; + double handlingDay = new BigDecimal(l).divide(new BigDecimal("24"), 2, RoundingMode.HALF_UP).doubleValue(); + complaint.setHandlingDay(handlingDay); this.updateById(complaint); } @@ -772,6 +779,7 @@ complaintAuditRecord.setDepartmentName(departmentName); complaintAuditRecord.setReporterLevel(reporterLevel); complaintAuditRecord.setReporterId(reporterId); + complaintAuditRecord.setApplyName(reporter); complaintAuditRecordService.save(complaintAuditRecord); } @@ -1027,6 +1035,8 @@ record1.setSort(count + 1); record1.setComment(dto.getComment()); record1.setDepartmentName(departmentName); + // 冗余申请人名称 + record1.setApplyName(reporter); complaintAuditRecordService.save(record1); } @@ -1376,28 +1386,28 @@ } - public static void main(String[] args) { - try { - /*文本*/ - Map<String, Object> map = new HashMap<>(); - map.put("community", "社区社区"); - map.put("problemType", "就业"); - map.put("descriptionContent", "描述内容"); - map.put("reportType", "党员"); - map.put("partyOrganization", "石羊党群"); - map.put("name", "张三"); - map.put("contactNumber", "1888888888"); - map.put("nickname", "李四"); - map.put("phone", "17777777777"); - // 在文本中直接使用换行符 - String content = "第一行内容\n第二行内容\n第三行内容"; - map.put("complaintProgress", content); - map.put("status", "处理中"); - XWPFTemplate.compile("F:\\DeskTop\\zhihuishequ\\springcloud_k8s_panzhihuazhihuishequ\\service_sangeshenbian\\src\\main\\resources\\template\\community_question.docx").render(map).writeToFile("F:\\DeskTop\\社区.docx"); - } catch (IOException e) { - e.printStackTrace(); - } - } +// public static void main(String[] args) { +// try { +// /*文本*/ +// Map<String, Object> map = new HashMap<>(); +// map.put("community", "社区社区"); +// map.put("problemType", "就业"); +// map.put("descriptionContent", "描述内容"); +// map.put("reportType", "党员"); +// map.put("partyOrganization", "石羊党群"); +// map.put("name", "张三"); +// map.put("contactNumber", "1888888888"); +// map.put("nickname", "李四"); +// map.put("phone", "17777777777"); +// // 在文本中直接使用换行符 +// String content = "第一行内容\n第二行内容\n第三行内容"; +// map.put("complaintProgress", content); +// map.put("status", "处理中"); +// XWPFTemplate.compile("F:\\DeskTop\\zhihuishequ\\springcloud_k8s_panzhihuazhihuishequ\\service_sangeshenbian\\src\\main\\resources\\template\\community_question.docx").render(map).writeToFile("F:\\DeskTop\\社区.docx"); +// } catch (IOException e) { +// e.printStackTrace(); +// } +// } /** @@ -1430,5 +1440,195 @@ complaintProgressService.removeById(id); } + @Override + public AnalyticStatisticsOneVo analyticStatisticsOne(AnalyticStatisticsQuery query,List<Complaint> complaints, SimpleDateFormat simpleDateFormat) { + String nowYearMonth; + String lastYearMonth; + int value = LocalDate.now().getMonth().getValue(); + if(value<10){ + nowYearMonth = LocalDate.now().getYear() + "-0" + LocalDate.now().getMonth().getValue(); + }else { + nowYearMonth = LocalDate.now().getYear() + "-" + LocalDate.now().getMonth().getValue(); + } + int value1 = LocalDate.now().minusMonths(1).getMonth().getValue(); + if(value1<10){ + lastYearMonth = LocalDate.now().minusMonths(1).getYear() + "-0" + LocalDate.now().minusMonths(1).getMonth().getValue(); + }else { + lastYearMonth = LocalDate.now().minusMonths(1).getYear() + "-" + LocalDate.now().minusMonths(1).getMonth().getValue(); + } + + + AnalyticStatisticsOneVo vo = new AnalyticStatisticsOneVo(); + + // 诉求单量总计 + vo.setAllTotal(complaints.size()); + + // 诉求单量本月 + int thisMonthTotal = (int)complaints.stream().filter(e -> simpleDateFormat.format(e.getCreateTime()).contains(nowYearMonth)).count(); + vo.setThisMonthTotal( thisMonthTotal); + + // 诉求单量同比上月 + int lastMonthTotal = (int)complaints.stream().filter(e -> simpleDateFormat.format(e.getCreateTime()).contains(lastYearMonth)).count(); + vo.setLastMonthCompareTotal(thisMonthTotal- lastMonthTotal); + + // 正在办理 + int nowTransactTotal = (int) complaints.stream().filter(e -> e.getStatus() == 0).count(); + vo.setNowTransactTotal(nowTransactTotal); + + // 审核中 + int auditTransactTotal = (int) complaints.stream().filter(e -> e.getStatus() == 5 || e.getStatus() == 7).count(); + vo.setAuditTransactTotal(auditTransactTotal); + + // 延期办理 + int postponeTransactTotal = (int) complaints.stream().filter(e -> e.getStatus() == 1).count(); + vo.setPostponeTransactTotal(postponeTransactTotal); + + // 已办结 + int completeTransactTotal = (int) complaints.stream().filter(e -> e.getStatus() == 3).count(); + vo.setCompleteTransactTotal(completeTransactTotal); + + // 超时办理总量 + List<Complaint> overtimeComplaints = complaints.stream().filter(e -> e.getStatus() == 2).collect(Collectors.toList()); + vo.setOvertimeTransactTotal(overtimeComplaints.size()); + + // 超时办理本月 + int thisMonthOvertimeTransactTotal = (int) overtimeComplaints.stream().filter(e -> simpleDateFormat.format(e.getCreateTime()).contains(nowYearMonth)).count(); + vo.setThisMonthOvertimeTransactTotal(thisMonthOvertimeTransactTotal); + + // 超时办理同比上月 + int lastMonthOvertimeTransactTotal = (int) overtimeComplaints.stream().filter(e -> simpleDateFormat.format(e.getCreateTime()).contains(lastYearMonth)).count(); + vo.setLastMonthOvertimeTransactCompareTotal(thisMonthOvertimeTransactTotal-lastMonthOvertimeTransactTotal); + + // 平均处理时长 + if(complaints.size()>0) { + double averageDay = complaints.stream().mapToDouble(v -> v.getHandlingDay() == null ? 0 : v.getHandlingDay()).average().getAsDouble(); + averageDay = BigDecimal.valueOf(averageDay).setScale(2, RoundingMode.HALF_UP).doubleValue(); + vo.setAverageTime(averageDay); + + List<Complaint> thisMonthAverageTimeComplaints = complaints.stream().filter(e -> simpleDateFormat.format(e.getCreateTime()).contains(nowYearMonth)).collect(Collectors.toList()); + if(thisMonthAverageTimeComplaints.size()>0){ + double thisMonthAverageTime = thisMonthAverageTimeComplaints.stream().mapToDouble(v -> v.getHandlingDay() == null ? 0 : v.getHandlingDay()).average().getAsDouble(); + thisMonthAverageTime = BigDecimal.valueOf(thisMonthAverageTime).setScale(2, RoundingMode.HALF_UP).doubleValue(); + vo.setThisMonthAverageTime(thisMonthAverageTime); + } + List<Complaint> lastMonthAverageTimeComplaints = complaints.stream().filter(e -> simpleDateFormat.format(e.getCreateTime()).contains(lastYearMonth)).collect(Collectors.toList()); + if(lastMonthAverageTimeComplaints.size()>0){ + double lastMonthAverageTime = lastMonthAverageTimeComplaints.stream().mapToDouble(v -> v.getHandlingDay() == null ? 0 : v.getHandlingDay()).average().getAsDouble(); + lastMonthAverageTime = BigDecimal.valueOf(lastMonthAverageTime).setScale(2, RoundingMode.HALF_UP).doubleValue(); + vo.setAverageTime(vo.getThisMonthAverageTime() - lastMonthAverageTime); + } + + } + // 获取评价了的诉求 + List<Complaint> commentRateComplaints = complaints.stream().filter(e -> e.getCommentRate() != null).collect(Collectors.toList()); + long count = commentRateComplaints.stream().filter(e -> e.getCommentRate() > 1).count(); + int size = commentRateComplaints.size(); + if(size>0){ + BigDecimal multiply = BigDecimal.valueOf(count).divide(new BigDecimal(size), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")); + vo.setSatisfactionRate(multiply.doubleValue()); + + List<Complaint> nowMonth = commentRateComplaints.stream().filter(e -> simpleDateFormat.format(e.getCreateTime()).contains(nowYearMonth)).collect(Collectors.toList()); + // 当月满意 + long count1 = nowMonth.stream().filter(e -> e.getCommentRate() > 1).count(); + // 当月的评价数 + int nowMonthSize = nowMonth.size(); + if(nowMonthSize>0){ + BigDecimal multiply1 = BigDecimal.valueOf(count1).divide(new BigDecimal(nowMonthSize), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")); + vo.setThisMonthSatisfactionRate(multiply1.doubleValue()); + } + + List<Complaint> lastMonth = commentRateComplaints.stream().filter(e -> simpleDateFormat.format(e.getCreateTime()).contains(nowYearMonth)).collect(Collectors.toList()); + // 当月满意 + long count2 = lastMonth.stream().filter(e -> e.getCommentRate() > 1).count(); + // 当月的评价数 + int lastMonthSize = lastMonth.size(); + if(lastMonthSize>0){ + BigDecimal multiply2 = BigDecimal.valueOf(count2).divide(new BigDecimal(lastMonthSize), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")); + vo.setLastMonthCompareSatisfactionRate(vo.getThisMonthSatisfactionRate()-multiply2.doubleValue()); + } + } + return vo; + } + + @Override + public List<AnalyticStatisticsTwoVo> analyticStatisticsTwo(AnalyticStatisticsQuery query, List<Complaint> complaints, SimpleDateFormat simpleDateFormat) { + ArrayList<AnalyticStatisticsTwoVo> list = new ArrayList<>(); + try { + if (StringUtils.isNotEmpty(query.getTime())) { + String[] split = query.getTime().split(" - "); + Date parse = simpleDateFormat.parse(split[0] + " 00:00:00"); + Date parse1 = simpleDateFormat.parse(split[1] + " 23:59:59"); + complaints = complaints.stream().filter(e -> e.getCreateTime().getTime() <= parse1.getTime() && e.getCreateTime().getTime() >= parse.getTime()).collect(Collectors.toList()); + int day = DateUtils.getDay(parse, parse1); + + for (int i = 0; i <= day; i++) { + AnalyticStatisticsTwoVo analyticStatisticsTwoVo = new AnalyticStatisticsTwoVo(); + if(i==0){ + List<Complaint> collect = complaints.stream().filter(e -> simpleDateFormat.format(e.getCreateTime()).contains(split[0])).collect(Collectors.toList()); + analyticStatisticsTwoVo.setTime(split[0]); + analyticStatisticsTwoVo.setAllTotal(collect.size()); + int count = (int) collect.stream().filter(e -> e.getStatus() == 3).count(); + analyticStatisticsTwoVo.setCompleteTotal(count); + list.add(analyticStatisticsTwoVo); + }else { + String nextDay = DateUtils.getNextDay(parse, i); + List<Complaint> collect = complaints.stream().filter(e -> simpleDateFormat.format(e.getCreateTime()).contains(nextDay)).collect(Collectors.toList()); + analyticStatisticsTwoVo.setTime(nextDay); + analyticStatisticsTwoVo.setAllTotal(collect.size()); + int count = (int) collect.stream().filter(e -> e.getStatus() == 3).count(); + analyticStatisticsTwoVo.setCompleteTotal(count); + list.add(analyticStatisticsTwoVo); + } + } + + } else { + String time = DateUtils.getBeforeDay(6) + " 00:00:00"; + Date parse = simpleDateFormat.parse(time); + // 近7天数据 + complaints = complaints.stream().filter(e -> e.getCreateTime().getTime() <= new Date().getTime() && e.getCreateTime().getTime() >= parse.getTime()).collect(Collectors.toList()); + + for (int i = 6; i > 0; i--) { + // 获取前7天的时间 + String day = DateUtils.getBeforeDay(i); + List<Complaint> complaintList = complaints.stream().filter(e -> simpleDateFormat.format(e.getCreateTime()).contains(day)).collect(Collectors.toList()); + AnalyticStatisticsTwoVo analyticStatisticsTwoVo = new AnalyticStatisticsTwoVo(); + analyticStatisticsTwoVo.setTime(day); + analyticStatisticsTwoVo.setAllTotal(complaintList.size()); + int count = (int) complaintList.stream().filter(e -> e.getStatus() == 3).count(); + analyticStatisticsTwoVo.setCompleteTotal(count); + list.add(analyticStatisticsTwoVo); + } + + } + } catch (ParseException e) { + throw new RuntimeException(e); + } + return list; + } + + @Override + public List<AnalyticStatisticsThreeVo> analyticStatisticsThree(AnalyticStatisticsQuery query, List<Complaint> complaints) { + Map<String, List<Complaint>> groupedByProblemType = complaints.stream() + .collect(Collectors.groupingBy(Complaint::getProblemType)); + List<AnalyticStatisticsThreeVo> analyticStatisticsThreeVos = groupedByProblemType.entrySet().stream() + .map(entry -> { + AnalyticStatisticsThreeVo analyticStatisticsThreeVo = new AnalyticStatisticsThreeVo(); + analyticStatisticsThreeVo.setName(entry.getKey()); + analyticStatisticsThreeVo.setAllTotal(entry.getValue().size()); + return analyticStatisticsThreeVo; + }) + .collect(Collectors.toList()); + analyticStatisticsThreeVos = analyticStatisticsThreeVos.stream().sorted(Comparator.comparing(AnalyticStatisticsThreeVo::getAllTotal).reversed()).collect(Collectors.toList()); + if(query.getRank()==null){ + return analyticStatisticsThreeVos; + }else if(query.getRank()==5){ + return analyticStatisticsThreeVos.stream().limit(5).collect(Collectors.toList()); + }else if(query.getRank()==10){ + return analyticStatisticsThreeVos.stream().limit(10).collect(Collectors.toList()); + } + return Collections.emptyList(); + } + + } diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/SystemLogServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/SystemLogServiceImpl.java index a49251a..995d2ef 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/SystemLogServiceImpl.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/SystemLogServiceImpl.java @@ -2,12 +2,12 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.panzhihua.common.utlis.StringUtils; -import com.panzhihua.sangeshenbian.model.entity.SystemLog; import com.panzhihua.sangeshenbian.dao.SystemLogMapper; +import com.panzhihua.sangeshenbian.model.entity.SystemLog; import com.panzhihua.sangeshenbian.model.query.SystemLogQuery; import com.panzhihua.sangeshenbian.service.ISystemLogService; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; /** @@ -47,4 +47,5 @@ systemLog.setOperatorInto(operatorInto); this.save(systemLog); } + } diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintRejectMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintRejectMapper.xml new file mode 100644 index 0000000..5021ff2 --- /dev/null +++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintRejectMapper.xml @@ -0,0 +1,44 @@ +<?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.panzhihua.sangeshenbian.dao.ComplaintRejectMapper"> + + + + + + + + + <select id="getComplaintRejectList" resultType="com.panzhihua.sangeshenbian.model.vo.ComplaintRejectVo"> + select t1.remark,t1.create_time examineTime,t2.id complaintId,t2.serial_number serialNumber,t2.report_user_name reportUserName,t2.status, + t2.report_user_phone reportUserPhone,t3.auditor_name examineUserName,t3.create_time applyTime,t3.apply_name applyUserName + from sgsb_complaint_reject t1 + left join sgsb_complaint t2 on t1.complaint_id = t2.id + left join sgsb_complaint_audit_record t3 on t1.complaint_audit_id = t3.id + <where> + <if test="query.serialNumber != null and query.serialNumber != ''"> + and t2.serial_number = #{query.serialNumber} + </if> + <if test="query.reportUserName != null and query.reportUserName != ''"> + and t2.report_user_name like concat("%",#{query.reportUserName},"%") + </if> + <if test="query.reportUserPhone != null and query.reportUserPhone != ''"> + and t2.report_user_phone like concat("%",#{query.reportUserPhone},"%") + </if> + <if test="query.applyUserName != null and query.applyUserName != ''"> + and t3.apply_name like concat("%",#{query.applyUserName},"%") + </if> + <if test="query.examineUserName != null and query.examineUserName != ''"> + and t3.auditor_name like concat("%",#{query.examineUserName},"%") + </if> + <if test="applyStartTime !=null"> + and t3.create_time between #{applyStartTime} and #{applyEndTime} + </if> + <if test="examineStartTime !=null"> + and t1.create_time between #{applyStartTime} and #{applyEndTime} + </if> + + </where> + order by t1.create_time desc + </select> +</mapper> diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/SystemLogMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/SystemLogMapper.xml index 8486201..a2ae502 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/SystemLogMapper.xml +++ b/springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/SystemLogMapper.xml @@ -2,6 +2,7 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.panzhihua.sangeshenbian.dao.SystemLogMapper"> + <select id="getLogList" resultType="com.panzhihua.sangeshenbian.model.entity.SystemLog"> select t1.id, t1.operator_id, t2.name as operatorName, t2.phone as operatorPhone, t1.operator_category, t1.target_name, t1.ip, t1.create_time, t1.operator_into from sgsb_system_log t1 left join sgsb_system_user t2 on t1.operator_id = t2.id @@ -23,4 +24,7 @@ </if> order by t1.create_time desc </select> + + + </mapper> -- Gitblit v1.7.1