diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/form/ScreenTotalFormDTO.java b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/form/ScreenTotalFormDTO.java new file mode 100644 index 000000000..d2923b071 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/form/ScreenTotalFormDTO.java @@ -0,0 +1,42 @@ +package com.elink.esua.epdc.dto.item.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; +import java.util.List; + +/** + * 大屏统计FormDTO + * @Author wgf + * @Date 2022-10-10 + */ +@Data +public class ScreenTotalFormDTO implements Serializable { + private static final long serialVersionUID = -7871958578795227805L; + + /** + * 部门ID + */ + private String deptId; + + /** + * 开始时间 + */ + private String startTime; + + /** + * 结束时间 + */ + private String endTime; + + /** + * 年月(满意度趋势使用) + */ + private String yearMonth; + + /** + * 时间数组 + */ + private List timeArr; +} diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/result/CategoryAnalysisPieResultDTO.java b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/result/CategoryAnalysisPieResultDTO.java new file mode 100644 index 000000000..e3a9109a4 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/result/CategoryAnalysisPieResultDTO.java @@ -0,0 +1,32 @@ +package com.elink.esua.epdc.dto.item.result; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +/** + * 大屏-类别分析-返回值DTO + * @Author wgf + * @Date 2022-10-10 + */ +@Data +public class CategoryAnalysisPieResultDTO implements Serializable { + private static final long serialVersionUID = -2494874960456321677L; + + /** + * 名称 + */ + private String name; + + /** + * 值 + */ + private String value; + + /** + * 占比 + */ + private String proportion; +} diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/result/EvaluationTotalLineDetailResultDTO.java b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/result/EvaluationTotalLineDetailResultDTO.java new file mode 100644 index 000000000..039fa850f --- /dev/null +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/result/EvaluationTotalLineDetailResultDTO.java @@ -0,0 +1,35 @@ +package com.elink.esua.epdc.dto.item.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 大屏-满意度趋势-SQL返回值DTO + * @Author wgf + * @Date 2022-10-11 + */ +@Data +public class EvaluationTotalLineDetailResultDTO implements Serializable { + private static final long serialVersionUID = -2494874960456321677L; + + /** + * 时间 + */ + private String time; + + /** + * 非常满意 + */ + private String fcmy; + + /** + * 基本满意 + */ + private String jbmy; + + /** + * 不满意 + */ + private String bmy; +} diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/result/EvaluationTotalLineResultDTO.java b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/result/EvaluationTotalLineResultDTO.java new file mode 100644 index 000000000..d2575efcc --- /dev/null +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/result/EvaluationTotalLineResultDTO.java @@ -0,0 +1,36 @@ +package com.elink.esua.epdc.dto.item.result; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * 大屏-满意度趋势-返回值DTO + * @Author wgf + * @Date 2022-10-11 + */ +@Data +public class EvaluationTotalLineResultDTO implements Serializable { + private static final long serialVersionUID = -2494874960456321677L; + + /** + * 横坐标 + */ + private List xValue; + + /** + * 非常满意 + */ + private List fcmyArr; + + /** + * 基本满意 + */ + private List jbmyArr; + + /** + * 不满意 + */ + private List bmyArr; +} diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/result/EvaluationTotalPieResultDTO.java b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/result/EvaluationTotalPieResultDTO.java new file mode 100644 index 000000000..fc3fe4df7 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/result/EvaluationTotalPieResultDTO.java @@ -0,0 +1,30 @@ +package com.elink.esua.epdc.dto.item.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 大屏-满意度统计-返回值DTO + * @Author wgf + * @Date 2022-10-10 + */ +@Data +public class EvaluationTotalPieResultDTO implements Serializable { + private static final long serialVersionUID = -2494874960456321677L; + + /** + * 名称 + */ + private String name; + + /** + * 值 + */ + private String value; + + /** + * 占比 + */ + private String proportion; +} diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/controller/ItemScreenCountController.java b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/controller/ItemScreenCountController.java new file mode 100644 index 000000000..2a46dc148 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/controller/ItemScreenCountController.java @@ -0,0 +1,121 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.elink.esua.epdc.modules.item.controller; + +import com.elink.esua.epdc.commons.tools.page.PageData; +import com.elink.esua.epdc.commons.tools.utils.ExcelUtils; +import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.commons.tools.validator.AssertUtils; +import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils; +import com.elink.esua.epdc.commons.tools.validator.group.AddGroup; +import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup; +import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup; +import com.elink.esua.epdc.dto.events.EpdcEventsCommentsDTO; +import com.elink.esua.epdc.dto.events.form.EventDeleteCommentsFormDTO; +import com.elink.esua.epdc.dto.form.KpiMetaDataOfEventsFormDTO; +import com.elink.esua.epdc.dto.item.ItemDTO; +import com.elink.esua.epdc.dto.item.ItemPendingHandleDTO; +import com.elink.esua.epdc.dto.item.form.*; +import com.elink.esua.epdc.dto.item.result.*; +import com.elink.esua.epdc.dto.result.KpiEvaluationAmountResultDTO; +import com.elink.esua.epdc.dto.result.KpiItemHandleAmountResultDTO; +import com.elink.esua.epdc.modules.item.excel.ItemExcel; +import com.elink.esua.epdc.modules.item.excel.ItemTimeoutNewExcel; +import com.elink.esua.epdc.modules.item.excel.StayItemExcel; +import com.elink.esua.epdc.modules.item.service.ItemService; +import com.elink.esua.epdc.modules.item.service.ItemTimeoutService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; +import java.util.Map; + + +/** + * 大屏接口 + * + * @author wgf + * @since v1.0.0 2022-10-10 + */ +@RestController +@RequestMapping("itemScreen") +public class ItemScreenCountController { + + @Autowired + private ItemService itemService; + + /** + * 大屏诉求列表 + * + * @Params: [params] + * @Return: com.elink.esua.epdc.commons.tools.utils.Result> + * @Author: wgf + * @Date: 2022-10-10 9:56 + */ + @GetMapping("itemPageList") + public Result> itemPageList(@RequestParam Map params) { + PageData page = itemService.itemPageList(params); + return new Result>().ok(page); + } + + /** + * 大屏-类别分析 + * + * @Params: [params] + * @Return: com.elink.esua.epdc.commons.tools.utils.Result<> + * @Author: wgf + * @Date: 2022-10-10 9:56 + */ + @GetMapping("categoryAnalysis") + public Result> categoryAnalysis(@RequestBody ScreenTotalFormDTO formDTO) { + List list = itemService.categoryAnalysis(formDTO); + return new Result>().ok(list); + } + + /** + * 大屏-满意度统计 + * + * @Params: [params] + * @Return: com.elink.esua.epdc.commons.tools.utils.Result<> + * @Author: wgf + * @Date: 2022-10-10 9:56 + */ + @GetMapping("evaluationTotal") + public Result> evaluationTotal(@RequestBody ScreenTotalFormDTO formDTO) { + List list = itemService.evaluationTotal(formDTO); + return new Result>().ok(list); + } + + /** + * 大屏-满意度趋势 + * + * @Params: [params] + * @Return: com.elink.esua.epdc.commons.tools.utils.Result<> + * @Author: wgf + * @Date: 2022-10-11 9:56 + */ + @GetMapping("evaluationTrend") + public Result evaluationTrend(@RequestBody ScreenTotalFormDTO formDTO) { + EvaluationTotalLineResultDTO list = itemService.evaluationTrend(formDTO); + return new Result().ok(list); + } + + +} + diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/dao/ItemDao.java b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/dao/ItemDao.java index b9b3fca04..009a7ac4e 100755 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/dao/ItemDao.java +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/dao/ItemDao.java @@ -148,6 +148,7 @@ public interface ItemDao extends BaseDao { */ List selectListOfPendingHandleItems(Map params); List listEqPc(ItemWorkListFormDTO formDTO); + List itemPageList(Map params); /** * PC端项目驳回列表 @@ -464,4 +465,32 @@ public interface ItemDao extends BaseDao { * @date 2022/9/19 10:51 */ List listItemHandleDept(); + + /** + * 类别分析 + * @param formDTO + * @return + */ + List categoryAnalysis(ScreenTotalFormDTO formDTO); + + /** + * 满意度统计 + * @param formDTO + * @return + */ + List evaluationTotal(ScreenTotalFormDTO formDTO); + + /** + * 满意度趋势-日数据 + * @param formDTO + * @return + */ + List getEvaluationDataListByDays(ScreenTotalFormDTO formDTO); + + /** + * 满意度趋势-月数据 + * @param formDTO + * @return + */ + List getEvaluationDataListByMonths(ScreenTotalFormDTO formDTO); } diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/ItemService.java b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/ItemService.java index f00387c19..4c4b981a3 100755 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/ItemService.java +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/ItemService.java @@ -34,6 +34,7 @@ import com.elink.esua.epdc.modules.item.entity.ItemEntity; import com.elink.esua.epdc.modules.rocketmq.dto.CategoryModifyDTO; import com.elink.esua.epdc.modules.rocketmq.dto.OrganizationModifyDTO; import com.elink.esua.epdc.modules.rocketmq.dto.RejectRecordDTO; +import org.springframework.web.bind.annotation.RequestBody; import java.util.List; import java.util.Map; @@ -66,6 +67,7 @@ public interface ItemService extends BaseService { */ PageData listOfItemsForPCEnd(Map params); List listEqPc(ItemWorkListFormDTO formDTO); + PageData itemPageList(Map params); /** * PC端项目驳回列表 @@ -607,4 +609,27 @@ public interface ItemService extends BaseService { * @date 2022/9/19 10:51 */ String getSqid(String itemId); + + /** + * 大屏-类别分析 + * @param formDTO + * @return + */ + List categoryAnalysis(ScreenTotalFormDTO formDTO); + + /** + * 大屏-满意度统计 + * @param formDTO + * @return + */ + List evaluationTotal(ScreenTotalFormDTO formDTO); + + /** + * 大屏-满意度趋势 + * @param formDTO + * @return + */ + EvaluationTotalLineResultDTO evaluationTrend(ScreenTotalFormDTO formDTO); + + } diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/ItemServiceImpl.java b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/ItemServiceImpl.java index 4d3c4a8da..f76bb8fe6 100755 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/ItemServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/service/impl/ItemServiceImpl.java @@ -269,6 +269,13 @@ public class ItemServiceImpl extends BaseServiceImpl implem return new PageData<>(list, page.getTotal()); } + @Override + public PageData itemPageList(Map params) { + IPage page = getPage(params); + List list = baseDao.itemPageList(params); + return new PageData<>(list, page.getTotal()); + } + @Override public List listEqPc(ItemWorkListFormDTO formDTO) { UserDetail user = SecurityUser.getUser(); @@ -3873,4 +3880,80 @@ public class ItemServiceImpl extends BaseServiceImpl implem return ""; } + @Override + public List categoryAnalysis(ScreenTotalFormDTO formDTO) { + + List list = baseDao.categoryAnalysis(formDTO); + + return list; + } + + @Override + public List evaluationTotal(ScreenTotalFormDTO formDTO) { + + List list = baseDao.evaluationTotal(formDTO); + + return list; + } + + @Override + public EvaluationTotalLineResultDTO evaluationTrend(ScreenTotalFormDTO formDTO) { + + EvaluationTotalLineResultDTO resultDTO = new EvaluationTotalLineResultDTO(); + + // 时间数组 + List timeArr = new ArrayList<>(); + // 非常满意数组 + List fcmyArr = new ArrayList<>(); + // 不满意数组 + List bmyArr = new ArrayList<>(); + // 基本满意数组 + List jbmyArr = new ArrayList<>(); + + List dataList = new ArrayList<>(); + if(formDTO.getYearMonth().length() > 4){ + String[] arr = formDTO.getYearMonth().split("-"); + // 按日统计 + timeArr = YearMonthUtils.getMonthFullDay(Integer.parseInt(arr[0]),Integer.parseInt(arr[1])); + formDTO.setTimeArr(timeArr); + dataList = baseDao.getEvaluationDataListByDays(formDTO); + + }else{ + // 按月统计 + timeArr = YearMonthUtils.getMonthBetween(formDTO.getYearMonth() + "-01",formDTO.getYearMonth() + "-12"); + formDTO.setTimeArr(timeArr); + dataList = baseDao.getEvaluationDataListByMonths(formDTO); + + } + + for(int i = 0 ; i < timeArr.size() ; i++){ + Boolean flag = false; // 是否完成该时间赋值 + for(EvaluationTotalLineDetailResultDTO dto : dataList){ + if(timeArr.get(i).equals(dto.getTime())){ + fcmyArr.add(dto.getFcmy()); + jbmyArr.add(dto.getJbmy()); + bmyArr.add(dto.getBmy()); + flag = true; + break; + } + } + // 判断该时间是否赋值 + if(!flag){ + fcmyArr.add("0"); + jbmyArr.add("0"); + bmyArr.add("0"); + } + } + + // 组装数据 + resultDTO.setXValue(timeArr); + resultDTO.setBmyArr(bmyArr); + resultDTO.setJbmyArr(jbmyArr); + resultDTO.setFcmyArr(fcmyArr); + + return resultDTO; + } + + + } diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/item/ItemDao.xml b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/item/ItemDao.xml index 0819f7d5c..d98f4136b 100755 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/item/ItemDao.xml +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/item/ItemDao.xml @@ -701,6 +701,22 @@ LIMIT #{pageIndex},#{pageSize} + + + + + + + + + +