diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/ItemPendingHandleDTO.java b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/ItemPendingHandleDTO.java index 5888b21c4..9c845177e 100644 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/ItemPendingHandleDTO.java +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/ItemPendingHandleDTO.java @@ -128,4 +128,8 @@ public class ItemPendingHandleDTO implements Serializable { */ private String processState; + private Integer repeatFlag; + + private String repeatFlagName; + } diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/form/ItemChangeRepeatDTO.java b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/form/ItemChangeRepeatDTO.java new file mode 100644 index 000000000..bc6d13562 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/form/ItemChangeRepeatDTO.java @@ -0,0 +1,22 @@ +package com.elink.esua.epdc.dto.item.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * 重复数据 + * + * @author zhy + * @date 2022/11/29 10:18 + */ +@Data +public class ItemChangeRepeatDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + private String itemId; + + private Integer repeatFlag; +} diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/result/ItemAppealPageResultDTO.java b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/result/ItemAppealPageResultDTO.java index 69ccd8429..a167729b6 100644 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/result/ItemAppealPageResultDTO.java +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/item/result/ItemAppealPageResultDTO.java @@ -30,6 +30,11 @@ public class ItemAppealPageResultDTO implements Serializable { */ private String nickName; + /** + * 手机号 + */ + private String mobile; + /** * 流水号 */ diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/controller/ItemController.java b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/controller/ItemController.java index 5b201faca..6ff39c3b0 100755 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/controller/ItemController.java +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/controller/ItemController.java @@ -17,11 +17,22 @@ package com.elink.esua.epdc.modules.item.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.alibaba.fastjson.JSONObject; import com.elink.esua.epdc.commons.tools.annotation.MaskResponse; +import com.elink.esua.epdc.commons.tools.constant.NumConstant; import com.elink.esua.epdc.commons.tools.page.PageData; +import com.elink.esua.epdc.commons.tools.utils.ConvertUtils; +import com.elink.esua.epdc.commons.tools.utils.DateUtils; 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.utils.excel.handler.FreezeAndFilter; 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; @@ -36,6 +47,7 @@ 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.ItemAppealExcel; 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; @@ -43,10 +55,16 @@ import com.elink.esua.epdc.modules.item.redis.ItemAutoProcessRedis; import com.elink.esua.epdc.modules.item.service.ItemService; import com.elink.esua.epdc.modules.item.service.ItemTimeoutService; 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; import java.util.Map; @@ -402,6 +420,53 @@ public class ItemController { return new Result>().ok(page); } + /** + * @Description: 导出北尚诉求列表 + * @param params: + * @param response: + * @Return void + * @Author: lichao + * @Date: 2023/4/23 15:42 + */ + @GetMapping("exportItemAppealList") + public void exportItemAppealList(@RequestParam Map params, HttpServletResponse response) throws IOException { + ExcelWriter excelWriter = null; + String name = "诉求列表"; + if (params.get("appealType")!=null){ + if (params.get("appealType").toString().equals("0")){ + name = "民生诉求列表"; + }else if (params.get("appealType").toString().equals("1")){ + name = "发展诉求列表"; + }else if (params.get("appealType").toString().equals("2")){ + name = "执法诉求列表"; + } + } + try { + String fileName = name + 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), ItemAppealExcel.class) + .registerWriteHandler(horizontalCellStyleStrategy) + .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) + .registerWriteHandler(writeHandler).build(); + WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").registerWriteHandler(new FreezeAndFilter()).build(); + List list = ConvertUtils.sourceToTarget(itemService.exportList(params), ItemAppealExcel.class); + excelWriter.write(list, writeSheet); + } catch (Exception e) { + log.error(name+"export exception", e); + } finally { + if (excelWriter != null) { + excelWriter.finish(); + } + } + } + /** * @return com.elink.esua.epdc.commons.tools.utils.Result> * @describe: 北尚诉求列表(不满意列表) @@ -622,5 +687,10 @@ public class ItemController { return itemService.processNotice(formDTO); } + @PostMapping("changeRepeat") + public Result changeRepeat(@RequestBody ItemChangeRepeatDTO dto) { + return itemService.changeRepeat(dto); + } + } diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/entity/ItemEntity.java b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/entity/ItemEntity.java index 08e65a71f..724e8cc8d 100755 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/entity/ItemEntity.java +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/entity/ItemEntity.java @@ -288,4 +288,9 @@ public class ItemEntity extends BaseEpdcEntity { * 解决情况 */ private String solutionInfo; + + /** + * 是否重复 + */ + private Integer repeatFlag; } diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/excel/ItemAppealExcel.java b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/excel/ItemAppealExcel.java new file mode 100644 index 000000000..75ce04420 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/excel/ItemAppealExcel.java @@ -0,0 +1,93 @@ +package com.elink.esua.epdc.modules.item.excel; + +import cn.afterturn.easypoi.excel.annotation.Excel; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description: + * @Return + * @Author: lichao + * @Date: 2023/4/23 13:58 + */ +@Data +public class ItemAppealExcel implements Serializable { + + private static final long serialVersionUID = 1L; + + + + /** + * 属事街道 + */ + @ExcelProperty(value = "属事街道") + @ColumnWidth(25) + private String streetName; + + /** + * 属事社区 + */ + @ExcelProperty(value = "属事社区") + @ColumnWidth(25) + private String communityName; + + /** + * 属事网格 + */ + @ExcelProperty(value = "属事网格") + @ColumnWidth(25) + private String gridName; + + /** + * 手机号 + */ + @ExcelProperty(value = "手机号") + @ColumnWidth(25) + private String mobile; + + /** + * 诉求内容 + */ + @ExcelProperty(value = "诉求内容") + @ColumnWidth(25) + private String itemContent; + + /** + * 项目状态 0-处理中,5-已关闭,10-已结案 + */ + @ExcelProperty(value = "处理状态") + @ColumnWidth(25) + private String itemStateName; + /** + * 上报时间 + */ + @ExcelProperty(value = "上报时间") + @ColumnWidth(25) + private String createdTime; + /** + * 超时时间 + */ + @ExcelProperty(value = "事件事件") + @ColumnWidth(25) + private String remainTime; + + + /** + * 提交人 + */ + @ExcelProperty(value = "联系人姓名") + @ColumnWidth(25) + private String nickName; + + + /** + * 满意度评价名称 + */ + @ExcelProperty(value = "满意度") + @ColumnWidth(25) + private String evaluationScoreName; + +} 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 d6dfcced0..6ea48a1c5 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 @@ -578,6 +578,15 @@ public interface ItemService extends BaseService { */ PageData getItemAppealPage(Map params); + /** + * @Description: 导出北尚诉求列表 + * @param params: + * @Return java.util.List + * @Author: lichao + * @Date: 2023/4/23 15:41 + */ + List exportList(Map params); + /** * @describe: 北尚诉求列表(不满意列表) * @author wgf @@ -771,4 +780,5 @@ public interface ItemService extends BaseService { */ Result processNotice(AcceptProcessNoticeDTO formDTO); + Result changeRepeat(ItemChangeRepeatDTO dto); } 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 0d9d31328..8c4b6d141 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 @@ -3700,9 +3700,50 @@ public class ItemServiceImpl extends BaseServiceImpl implem IPage page = getPage(params); List list = baseDao.getItemAppealPage(params); Map map = listItemHandleDept(); - list.forEach(item -> item.setItemHandleDeptId(map.get(item.getId()))); + list.forEach(item -> + item.setItemHandleDeptId(map.get(item.getId())) + ); return new PageData<>(list, page.getTotal()); + } + + @Override + public List exportList(Map params) { + UserDetail user = SecurityUser.getUser(); + //部门ID列表 + List deptIdList = user.getDeptIdList(); + params.put("deptIdList", null); + if (null != deptIdList && deptIdList.size() > 0) { + params.put("deptIdList", deptIdList); + } + + List list = baseDao.getItemAppealPage(params); + Map map = listItemHandleDept(); + list.forEach(item -> { + item.setItemHandleDeptId(map.get(item.getId())); + if (item.getItemState()!=null && item.getItemState() == 0){ + if (item.getProcessState()!=null && item.getProcessState().equals("16")){ + item.setItemStateName("市区处理中"); + }else{ + if (item.getProcessState()!=null && item.getProcessState().equals("1")){ + if (item.getEvaluationTime()!=null && item.getEvaluationTime()!=""){ + item.setItemStateName("已评价"); + }else{ + item.setItemStateName("待评价"); + } + }else{ + if (item.getItemHandleDeptId() == null || item.getItemHandleDeptId().equals("0")){ + item.setItemStateName("街道处理中"); + }else{ + item.setItemStateName("网格处理中"); + } + } + } + }else if(item.getItemState()!=null && item.getItemState() == 10){ + item.setItemStateName("已结案"); + } + }); + return list; } @Override @@ -4975,6 +5016,18 @@ public class ItemServiceImpl extends BaseServiceImpl implem return new Result(); } + @Override + public Result changeRepeat(ItemChangeRepeatDTO dto) { + ItemEntity itemEntity = baseDao.selectById(dto.getItemId()); + if (itemEntity!=null){ + itemEntity.setRepeatFlag(dto.getRepeatFlag()); + baseDao.updateById(itemEntity); + }else { + throw new RenException("该item不存在" + dto.getItemId()); + } + return new Result(); + } + /** * 重新上报 * 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 20dd22530..fd6d78467 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 @@ -521,6 +521,8 @@ item.ID, item.ITEM_CONTENT, item.ITEM_CODE, + item.REPEAT_FLAG, + if(item.REPEAT_FLAG=1,'是','否') as repeatFlagName, item.CREATED_TIME, item.NICK_NAME, item.MOBILE, @@ -2106,6 +2108,7 @@