From 68d9932527d3fc879b0422d7d9c29d3f9437c65c Mon Sep 17 00:00:00 2001 From: tangxiaobao <303826152@qq.com> Date: 星期六, 31 七月 2021 21:01:15 +0800 Subject: [PATCH] 防火防汛接口开发 --- springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwRotaVO.java | 3 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwRotaSaveDTO.java | 1 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwDangerReportVO.java | 6 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/DateUtils.java | 25 +++ springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwDangerReportExcelVO.java | 4 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwPatrolRecordAddDTO.java | 7 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwRotaPageDTO.java | 2 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java | 16 ++ springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComSwPatrolRecordApi.java | 21 ++ springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSwDangerReportMapper.xml | 3 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSwRotaMapper.xml | 13 + springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComSwRotaDAO.java | 8 + springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComSwRotaExcelListen.java | 59 +++++++ springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwRotaServiceImpl.java | 164 +++++++++++++++++++- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwDangerReportServiceImpl.java | 18 +- springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwRotaExcelVO.java | 53 ++++++ springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComSwPatrolRecordApi.java | 62 ++++++- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComSwRotaService.java | 15 + 18 files changed, 439 insertions(+), 41 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComSwRotaExcelListen.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComSwRotaExcelListen.java new file mode 100644 index 0000000..893fcfc --- /dev/null +++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComSwRotaExcelListen.java @@ -0,0 +1,59 @@ +package com.panzhihua.common.listen; + +import com.alibaba.excel.context.AnalysisContext; +import com.alibaba.excel.event.AnalysisEventListener; +import com.alibaba.fastjson.JSONObject; +import com.panzhihua.common.exceptions.ServiceException; +import com.panzhihua.common.model.vos.R; +import com.panzhihua.common.model.vos.community.ComMngCarExcelVO; +import com.panzhihua.common.model.vos.community.ComSwRotaExcelVO; +import com.panzhihua.common.service.community.CommunityService; +import lombok.extern.slf4j.Slf4j; + +import java.util.ArrayList; +import java.util.List; + +/** + * @description: 值班表监听 + * @author: Null + * @date: 2021/7/31 13:26 + */ +@Slf4j +public class ComSwRotaExcelListen extends AnalysisEventListener<ComSwRotaExcelVO> { + + private CommunityService communityService; + + private Long communityId; + + public ComSwRotaExcelListen(CommunityService communityService, Long communityId){ + this.communityService = communityService; + this.communityId = communityId; + } + + + private static final int BATCH_COUNT = 100; + private List<ComSwRotaExcelVO> list = new ArrayList<>(); + @Override + public void invoke(ComSwRotaExcelVO comSwRotaExcelVO, AnalysisContext analysisContext) { + list.add(comSwRotaExcelVO); + // 达到BATCH_COUNT了,需要去存储一次数据库,防止数据几万条数据在内存,容易OOM + if(list.size() >= BATCH_COUNT){ + log.info("excel导入数据【{}】", JSONObject.toJSONString(list)); + R r = this.communityService.listSaveSwRotaExcelVO(list,this.communityId); + if (!R.isOk(r)) { + throw new ServiceException(r.getMsg()); + } + list.clear(); //清空list + } + + } + + @Override + public void doAfterAllAnalysed(AnalysisContext analysisContext) { + log.info("excel导入数据【{}】", JSONObject.toJSONString(list)); + R r = this.communityService.listSaveSwRotaExcelVO(list,this.communityId);//确保最后遗留的数据保存在数据库中 + if (!R.isOk(r)) { + throw new ServiceException(r.getMsg()); + } + } +} diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwPatrolRecordAddDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwPatrolRecordAddDTO.java index 00c4b46..e45a784 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwPatrolRecordAddDTO.java +++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwPatrolRecordAddDTO.java @@ -1,6 +1,5 @@ package com.panzhihua.common.model.dtos.community; -import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import io.swagger.annotations.ApiModel; @@ -44,13 +43,13 @@ /** * 巡查领导 */ - @ApiModelProperty("巡查领导") + @ApiModelProperty("巡查领导id") private String patrolLeader; /** * 巡查人员 */ - @ApiModelProperty("巡查人员") + @ApiModelProperty("巡查人员id") private String patrolPerson; /** @@ -164,7 +163,7 @@ /** * 整改人员 */ - @ApiModelProperty("整改人员") + @ApiModelProperty("整改人员id") private String rectifyPerson; /** diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwRotaPageDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwRotaPageDTO.java index f432077..704e522 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwRotaPageDTO.java +++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwRotaPageDTO.java @@ -44,6 +44,6 @@ * 联系电话 */ @ApiModelProperty("联系电话") - private Integer phone; + private String phone; } diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwRotaSaveDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwRotaSaveDTO.java index ecb60cf..e577569 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwRotaSaveDTO.java +++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwRotaSaveDTO.java @@ -1,5 +1,6 @@ package com.panzhihua.common.model.dtos.community; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwDangerReportExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwDangerReportExcelVO.java index b36c017..c76a2b2 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwDangerReportExcelVO.java +++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwDangerReportExcelVO.java @@ -41,13 +41,13 @@ * 巡查人员 */ @ExcelProperty(value = "巡查人员" ,index = 4) - private String patrolPerson; + private String personName; /** * 联系电话 */ @ExcelProperty(value = "联系电话" ,index = 5) - private String patrolPersonPhone; + private String personPhone; /** * 备注 diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwDangerReportVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwDangerReportVO.java index ffecc4d..d0f1db6 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwDangerReportVO.java +++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwDangerReportVO.java @@ -38,6 +38,12 @@ private Long communityId; /** + * 社区id + */ + @ApiModelProperty("社区名称") + private String communityName; + + /** * 巡查时间 */ @ApiModelProperty("巡查时间") diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwRotaExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwRotaExcelVO.java new file mode 100644 index 0000000..f19575d --- /dev/null +++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwRotaExcelVO.java @@ -0,0 +1,53 @@ +package com.panzhihua.common.model.vos.community; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass; +import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField; +import lombok.Data; + +import java.io.Serializable; + +/** + * @description: 批量导入值班表 + * @author: Null + * @date: 2021/7/31 11:11 + */ +@Data +public class ComSwRotaExcelVO implements Serializable { + /** + * 星期 + */ + @ExcelProperty(value = "星期" ,index = 0) + private String weekDay; + /** + * 时间 + */ + @ExcelProperty(value = "时间" ,index = 1) + private String rotaDate; + + /** + * 值班领导 + */ + @ExcelProperty(value = "值班领导" ,index = 2) + private String leaderName; + + /** + * 值班领导联系电话 + */ + @ExcelProperty(value = "值班领导联系电话" ,index = 3) + private String leaderPhone; + + /** + * 值班人员 + */ + @ExcelProperty(value = "值班人员(多个以逗号隔开)" ,index = 4) + private String personName; + + /** + * 值班人员联系电话 + */ + @ExcelProperty(value = "值班人员联系电话(多个以逗号隔开)" ,index = 5) + private String personPhone; + +} + diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwRotaVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwRotaVO.java index 5aad827..db9e733 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwRotaVO.java +++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwRotaVO.java @@ -48,8 +48,7 @@ * 值班时间 */ @ApiModelProperty("值班时间") - @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") - private Date rotaDate; + private String rotaDate; /** * 值班领导,多个以逗号隔开 diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java index 4655aee..cff8933 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java +++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java @@ -3986,6 +3986,14 @@ R pageRota(@RequestBody ComSwRotaPageDTO comSwRotaPageDTO); /** + * 根据id查询值班表 + * @param rotaId 值班表id + * @return 值班表详情 + */ + @GetMapping("/patrolRecord/rota/detail") + R detailRota(@RequestParam("rotaId") Long rotaId); + + /** * 新增值班表 * * @param comSwRotaSaveDTOs 新增参数 @@ -4018,4 +4026,12 @@ @GetMapping("/patrolRecord/rota/getRotaLeaderByDate") R getRotaLeaderByDate(@RequestParam(value = "rotaDate") String rotaDate); + /** + * 批量导入值班表 + * + * @param list 值班表集合 + */ + @PostMapping("/patrolRecord/rota/import") + R listSaveSwRotaExcelVO(@RequestBody List<ComSwRotaExcelVO> list, @RequestParam("communityId") Long communityId); + } diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/DateUtils.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/DateUtils.java index e1b88b5..c4b3648 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/DateUtils.java +++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/DateUtils.java @@ -840,6 +840,31 @@ return sdf.format(today.getTime()); } + /** + * 日期转周 + * + * @param datetime + * @return + */ + public static String dateToWeek(String datetime) { + SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd"); + String[] weekDays = { "周日", "周一", "周二", "周三", "周四", "周五", "周六" }; + Calendar cal = Calendar.getInstance(); // 获得一个日历 + Date datet = null; + try { + if (StringUtils.isNotEmpty(datetime)) { + datet = f.parse(datetime); + cal.setTime(datet); + } + } catch (ParseException e) { + e.printStackTrace(); + } + int w = cal.get(Calendar.DAY_OF_WEEK) - 1; // 指示一个周中的某天。 + if (w < 0) + w = 0; + return weekDays[w]; + } + public static void main(String[]args)throws Exception{ diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComSwPatrolRecordApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComSwPatrolRecordApi.java index 9ec6969..2ed626d 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComSwPatrolRecordApi.java +++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComSwPatrolRecordApi.java @@ -5,10 +5,14 @@ import com.alibaba.excel.write.metadata.WriteSheet; import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.panzhihua.common.controller.BaseController; +import com.panzhihua.common.listen.ComMngPopulationServeExcelListen; +import com.panzhihua.common.listen.ComSwRotaExcelListen; import com.panzhihua.common.model.dtos.community.*; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.community.*; +import com.panzhihua.common.model.vos.partybuilding.PartyBuildingComPbDynVO; import com.panzhihua.common.service.community.CommunityService; import com.panzhihua.common.service.partybuilding.PartyBuildingService; import com.panzhihua.common.utlis.SFTPUtil; @@ -19,10 +23,13 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; import java.io.File; import java.io.FileInputStream; +import java.io.IOException; import java.io.InputStream; import java.util.List; @@ -101,7 +108,7 @@ * @param comSwPatrolRecordPageDTO 查询参数 * @return 安全工作记录分页集合 */ - @ApiOperation(value = "分页查询安全工作记录") + @ApiOperation(value = "分页查询安全工作记录", response = ComSwSafetyWorkRecordVO.class) @PostMapping("/pageSafetyWorkRecord") public R pageSafetyWorkRecord(@RequestBody ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO){ Long communityId = this.getCommunityId(); @@ -115,7 +122,7 @@ * @param safetyWorkRecordId 安全工作记录 * @return 安全工作记录详情查询结果 */ - @ApiOperation(value = "根据安全工作记录id查询详情") + @ApiOperation(value = "根据安全工作记录id查询详情", response = ComSwSafetyWorkRecordVO.class) @GetMapping("/detailSafetyWorkRecord") public R detailSafetyWorkRecord(@RequestParam(value = "safetyWorkRecordId") Long safetyWorkRecordId) { return communityService.detailSafetyWorkRecord(safetyWorkRecordId); @@ -127,7 +134,7 @@ * @param patrolRecordId 巡查记录id * @return 安全工作记录详情查询结果 */ - @ApiOperation(value = "根据巡查记录id查询安全工作记录详情") + @ApiOperation(value = "根据巡查记录id查询安全工作记录详情", response = ComSwSafetyWorkRecordVO.class) @GetMapping("/detailSafetyWorkRecordByPrId") public R detailSafetyWorkRecordByPrId(@RequestParam(value = "patrolRecordId") Long patrolRecordId) { return communityService.detailSafetyWorkRecordByPrId(patrolRecordId); @@ -138,7 +145,7 @@ * @param comSwPatrolRecordPageDTO 查询参数 * @return 隐患报告分页集合 */ - @ApiOperation(value = "分页查询隐患报告") + @ApiOperation(value = "分页查询隐患报告", response = ComSwDangerReportVO.class) @PostMapping("/pageDangerReport") public R pageDangerReport(@RequestBody ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO){ Long communityId = this.getCommunityId(); @@ -152,10 +159,15 @@ * @param dangerReportId 隐患报告id * @return 隐患报告详情查询结果 */ - @ApiOperation(value = "根据隐患报告id查询详情") + @ApiOperation(value = "根据隐患报告id查询详情", response = ComSwDangerReportVO.class) @GetMapping("/detailDangerReport") public R detailDangerReport(@RequestParam(value = "dangerReportId") Long dangerReportId) { - return communityService.detailDangerReport(dangerReportId); + R r = communityService.detailDangerReport(dangerReportId); + if (R.isOk(r)) { + ComSwDangerReportVO reportVO = JSONObject.parseObject(JSONObject.toJSONString(r.getData()), ComSwDangerReportVO.class); + reportVO.setCommunityName(this.getLoginUserInfo().getCommunityName()); + } + return r; } /** @@ -164,10 +176,15 @@ * @param patrolRecordId 巡查记录id * @return 隐患报告详情查询结果 */ - @ApiOperation(value = "根据巡查记录id查询隐患报告详情") + @ApiOperation(value = "根据巡查记录id查询隐患报告详情", response = ComSwDangerReportVO.class) @GetMapping("/detailDangerReportByPrId") public R detailDangerReportByPrId(@RequestParam(value = "patrolRecordId") Long patrolRecordId) { - return communityService.detailDangerReportByPrId(patrolRecordId); + R r = communityService.detailDangerReportByPrId(patrolRecordId); + if (R.isOk(r)) { + ComSwDangerReportVO reportVO = JSONObject.parseObject(JSONObject.toJSONString(r.getData()), ComSwDangerReportVO.class); + reportVO.setCommunityName(this.getLoginUserInfo().getCommunityName()); + } + return r; } /** @@ -269,6 +286,17 @@ } /** + * 根据id查询值班表 + * @param rotaId 值班表id + * @return 值班表详情 + */ + @GetMapping("/detailRota") + @ApiOperation(value = "根据id查询值班表", response = ComSwRotaVO.class) + public R detailRota(@RequestParam("rotaId") Long rotaId){ + return communityService.detailRota(rotaId); + } + + /** * 新增值班表 * @param comSwRotaSaveDTOs 新增参数 * @return 新增结果 @@ -328,5 +356,23 @@ return partyBuildingService.getTotlePerson(param,communityId); } + @ApiOperation(value = "excel导入值班表") + @PostMapping(value = "/serve/import", consumes = "multipart/*", headers = "content-type=multipart/form-date") + public R downloadRotaTemplate(@RequestParam MultipartFile file, HttpServletRequest request) { + //获取文件名 + String fileName = file.getOriginalFilename(); + log.info("传入文件名字【{}】", fileName); + InputStream inputStream = null; + try { + inputStream = file.getInputStream(); + ComSwRotaExcelListen comSwRotaExcelListen = new ComSwRotaExcelListen(communityService, this.getCommunityId()); + EasyExcel.read(inputStream, ComSwRotaExcelVO.class, comSwRotaExcelListen).sheet().doRead(); + } catch (IOException e) { + log.error("导入模板失败【{}】", e.getMessage()); + e.printStackTrace(); + } + return R.ok(); + } + } diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComSwPatrolRecordApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComSwPatrolRecordApi.java index 5be004c..80835c8 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComSwPatrolRecordApi.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComSwPatrolRecordApi.java @@ -3,6 +3,7 @@ import com.panzhihua.common.model.dtos.community.*; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.community.ComSwPatrolRecordStatisticsVO; +import com.panzhihua.common.model.vos.community.ComSwRotaExcelVO; import com.panzhihua.service_community.dao.ComSwSafetyWorkRecordDAO; import com.panzhihua.service_community.service.ComSwDangerReportService; import com.panzhihua.service_community.service.ComSwPatrolRecordService; @@ -189,6 +190,16 @@ } /** + * 根据id查询值班表 + * @param rotaId 值班表id + * @return 值班表详情 + */ + @GetMapping("/rota/detail") + public R detailRota(@RequestParam("rotaId") Long rotaId){ + return comSwRotaService.detailRota(rotaId); + } + + /** * 新增值班表 * @param comSwRotaSaveDTOs 新增参数 * @return 新增结果 @@ -225,5 +236,15 @@ public R getRotaLeaderByDate(@RequestParam(value = "rotaDate") String rotaDate){ return comSwRotaService.getRotaLeaderByDate(rotaDate); } + + /** + * 批量导入值班表 + * + * @param list 值班表集合 + */ + @PostMapping("/rota/import") + public R listSaveSwRotaExcelVO(@RequestBody List<ComSwRotaExcelVO> list, @RequestParam("communityId") Long communityId){ + return comSwRotaService.listSaveSwRotaExcelVO(list, communityId); + } } diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComSwRotaDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComSwRotaDAO.java index 6d7562c..b510b80 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComSwRotaDAO.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComSwRotaDAO.java @@ -12,6 +12,8 @@ import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * @auther txb * @create 2021-07-30 09:48:54 @@ -27,4 +29,10 @@ */ IPage<ComSwRotaVO> pageRota(Page page, @Param("comSwRotaPageDTO") ComSwRotaPageDTO comSwRotaPageDTO); + /** + * 根据电话查询teamId + * @param teamPhone 查询参数 + * @return teamId + */ + String getTeamIdsByTeamPhone(@Param("teamPhone") String teamPhone); } diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComSwRotaService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComSwRotaService.java index e38cf3a..c0cc5d3 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComSwRotaService.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComSwRotaService.java @@ -4,7 +4,9 @@ import com.panzhihua.common.model.dtos.community.ComSwRotaPageDTO; import com.panzhihua.common.model.dtos.community.ComSwRotaSaveDTO; import com.panzhihua.common.model.vos.R; +import com.panzhihua.common.model.vos.community.ComSwRotaExcelVO; import com.panzhihua.service_community.model.dos.ComSwRotaDO; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; @@ -26,6 +28,12 @@ */ R pageRota(ComSwRotaPageDTO comSwRotaPageDTO); + /** + * 根据id查询值班表 + * @param rotaId 值班表id + * @return 值班表详情 + */ + R detailRota(Long rotaId); /** * 新增值班表 * @param comSwRotaSaveDTOs 新增参数 @@ -58,4 +66,11 @@ */ R getTotlePerson(String param,Long communityId); + /** + * 批量导入值班表 + * + * @param list 值班表集合 + */ + R listSaveSwRotaExcelVO(List<ComSwRotaExcelVO> list, Long communityId); + } diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwDangerReportServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwDangerReportServiceImpl.java index ad70165..430470e 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwDangerReportServiceImpl.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwDangerReportServiceImpl.java @@ -214,15 +214,15 @@ @Override public R exportDangerReport(List<Long> dangerReportIds) { List<ComSwDangerReportExcelVO> list = comSwDangerReportDAO.exportDangerReport(dangerReportIds); - list.forEach(comSwDangerReportExcelVO -> { - List<String> patrolUserIds = Arrays.asList(comSwDangerReportExcelVO.getPatrolPerson().split(",")); - List<String> patrolPhones = new ArrayList<>(); - for (String userId : patrolUserIds) { - LoginUserInfoVO loginUserInfoVO = userService.getUserInfoByUserId(userId).getData(); - patrolPhones.add(loginUserInfoVO.getPhone()); - } - comSwDangerReportExcelVO.setPatrolPersonPhone(StringUtils.join(patrolPhones,",")); - }); +// list.forEach(comSwDangerReportExcelVO -> { +// List<String> patrolUserIds = Arrays.asList(comSwDangerReportExcelVO.getPatrolPerson().split(",")); +// List<String> patrolPhones = new ArrayList<>(); +// for (String userId : patrolUserIds) { +// LoginUserInfoVO loginUserInfoVO = userService.getUserInfoByUserId(userId).getData(); +// patrolPhones.add(loginUserInfoVO.getPhone()); +// } +// comSwDangerReportExcelVO.setPatrolPersonPhone(StringUtils.join(patrolPhones,",")); +// }); return R.ok(list); } } diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwRotaServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwRotaServiceImpl.java index e623c1a..6875d1a 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwRotaServiceImpl.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwRotaServiceImpl.java @@ -10,19 +10,23 @@ import com.panzhihua.common.model.vos.LoginUserInfoVO; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.community.ComSwPatrolRecordVO; +import com.panzhihua.common.model.vos.community.ComSwRotaExcelVO; import com.panzhihua.common.model.vos.community.ComSwRotaPersonVO; import com.panzhihua.common.model.vos.community.ComSwRotaVO; import com.panzhihua.common.model.vos.partybuilding.PartyBuildingComPbDynVO; import com.panzhihua.common.service.user.UserService; +import com.panzhihua.common.utlis.DateUtils; import com.panzhihua.common.utlis.Snowflake; import com.panzhihua.common.utlis.StringUtils; import com.panzhihua.service_community.dao.ComOpsAccUserDAO; +import com.panzhihua.service_community.dao.ComSwPatrolRecordDAO; import com.panzhihua.service_community.dao.ComSwRotaDAO; import com.panzhihua.service_community.model.dos.ComMngUserTagDO; import com.panzhihua.service_community.model.dos.ComSwRotaDO; import com.panzhihua.service_community.service.ComSwRotaService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; +import org.springframework.context.annotation.Bean; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -31,6 +35,7 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.Map; /** * @auther txb @@ -45,6 +50,9 @@ private ComSwRotaDAO comSwRotaDAO; @Resource private UserService userService; + + @Resource + private ComSwPatrolRecordDAO comSwPatrolRecordDAO; @Override public R pageRota(ComSwRotaPageDTO comSwRotaPageDTO) { @@ -61,28 +69,126 @@ page.setCurrent(pageNum); IPage<ComSwRotaVO> iPage = comSwRotaDAO.pageRota(page, comSwRotaPageDTO); + if (null != iPage.getRecords()) { + iPage.getRecords().forEach(comSwRotaVO -> { + comSwRotaVO.setWeekDay(DateUtils.dateToWeek(comSwRotaVO.getRotaDate())); + StringBuilder leaderNameString = new StringBuilder(); + StringBuilder leaderPhoneString = new StringBuilder(); + //值班领导id查询值班领导的名字和电话 + if(StringUtils.isNotEmpty(comSwRotaVO.getRotaLeader())){ + String[] leaderIds = comSwRotaVO.getRotaLeader().split(","); + for (int i = 0; i < leaderIds.length ; i++) { + Map<String,String> leader = comSwPatrolRecordDAO.getPbServiceTeamById(leaderIds[i]); + if(leader != null){ + if(i != 0){ + leaderNameString.append(","); + leaderPhoneString.append(","); + } + leaderNameString.append(leader.get("name")); + leaderPhoneString.append(leader.get("phone")); + } + } + comSwRotaVO.setLeaderName(leaderNameString.toString()); + comSwRotaVO.setLeaderPhone(leaderPhoneString.toString()); + } + //值班人员id查询值班人员的名字和电话 + StringBuilder personNameString = new StringBuilder(); + StringBuilder personPhoneString = new StringBuilder(); + if(StringUtils.isNotEmpty(comSwRotaVO.getRotaPerson())){ + String[] personIds = comSwRotaVO.getRotaPerson().split(","); + for (int i = 0; i < personIds.length ; i++) { + Map<String,String> person = comSwPatrolRecordDAO.getPbServiceTeamById(personIds[i]); + if(person != null){ + if(i != 0){ + personNameString.append(","); + personPhoneString.append(","); + } + personNameString.append(person.get("name")); + personPhoneString.append(person.get("phone")); + } + } + comSwRotaVO.setPersonName(personNameString.toString()); + comSwRotaVO.setPersonPhone(personPhoneString.toString()); + } + }); + } return R.ok(iPage); + } + + @Override + public R detailRota(Long rotaId) { + ComSwRotaVO comSwRotaVO = new ComSwRotaVO(); + ComSwRotaDO comSwRotaDO = comSwRotaDAO.selectById(rotaId); + if (null == comSwRotaDO) { + return R.fail("该值班表不存在"); + } + BeanUtils.copyProperties(comSwRotaDO,comSwRotaVO); + comSwRotaVO.setRotaDate(new SimpleDateFormat("yyyy-MM-dd").format(comSwRotaDO.getRotaDate())); + comSwRotaVO.setWeekDay(DateUtils.dateToWeek(comSwRotaVO.getRotaDate())); + StringBuilder leaderNameString = new StringBuilder(); + StringBuilder leaderPhoneString = new StringBuilder(); + //值班领导id查询值班领导的名字和电话 + if(StringUtils.isNotEmpty(comSwRotaDO.getRotaLeader())){ + String[] leaderIds = comSwRotaDO.getRotaLeader().split(","); + for (int i = 0; i < leaderIds.length ; i++) { + Map<String,String> leader = comSwPatrolRecordDAO.getPbServiceTeamById(leaderIds[i]); + if(leader != null){ + if(i != 0){ + leaderNameString.append(","); + leaderPhoneString.append(","); + } + leaderNameString.append(leader.get("name")); + leaderPhoneString.append(leader.get("phone")); + } + } + comSwRotaVO.setLeaderName(leaderNameString.toString()); + comSwRotaVO.setLeaderPhone(leaderPhoneString.toString()); + } + //值班人员id查询值班人员的名字和电话 + StringBuilder personNameString = new StringBuilder(); + StringBuilder personPhoneString = new StringBuilder(); + if(StringUtils.isNotEmpty(comSwRotaDO.getRotaPerson())){ + String[] personIds = comSwRotaDO.getRotaPerson().split(","); + for (int i = 0; i < personIds.length ; i++) { + Map<String,String> person = comSwPatrolRecordDAO.getPbServiceTeamById(personIds[i]); + if(person != null){ + if(i != 0){ + personNameString.append(","); + personPhoneString.append(","); + } + personNameString.append(person.get("name")); + personPhoneString.append(person.get("phone")); + } + } + comSwRotaVO.setPersonName(personNameString.toString()); + comSwRotaVO.setPersonPhone(personPhoneString.toString()); + } + return R.ok(comSwRotaVO); } @Override public R addRota(List<ComSwRotaSaveDTO> comSwRotaSaveDTOs) { comSwRotaSaveDTOs.forEach(comSwRotaSaveDTO -> { - try { if (comSwRotaSaveDTO.getId() != null && comSwRotaSaveDTO.getId() != 0) { ComSwRotaDO comSwRotaDO = new ComSwRotaDO(); BeanUtils.copyProperties(comSwRotaSaveDTO, comSwRotaDO); - comSwRotaDO.setRotaDate(new SimpleDateFormat("yyyy-MM-dd").parse(comSwRotaSaveDTO.getRotaDate())); + try { + comSwRotaDO.setRotaDate(new SimpleDateFormat("yyyy-MM-dd").parse(comSwRotaSaveDTO.getRotaDate())); + } catch (ParseException e) { + e.printStackTrace(); + } comSwRotaDAO.updateById(comSwRotaDO); } else { ComSwRotaDO comSwRotaDO = new ComSwRotaDO(); BeanUtils.copyProperties(comSwRotaSaveDTO, comSwRotaDO); comSwRotaDO.setId(Snowflake.getId()); - comSwRotaDO.setRotaDate(new SimpleDateFormat("yyyy-MM-dd").parse(comSwRotaSaveDTO.getRotaDate())); + try { + comSwRotaDO.setRotaDate(new SimpleDateFormat("yyyy-MM-dd").parse(comSwRotaSaveDTO.getRotaDate())); + } catch (ParseException e) { + e.printStackTrace(); + } comSwRotaDAO.insert(comSwRotaDO); } - } catch (ParseException e) { - e.printStackTrace(); - } }); return R.ok(); } @@ -107,13 +213,13 @@ List<ComSwRotaPersonVO> rotaPersons = new ArrayList<>(); if (null != comSwRotaDO){ String rotaPerson = comSwRotaDO.getRotaPerson(); - String rotaPersonName = comSwRotaDO.getPersonName(); String[] rotaPersonArray = rotaPerson.split(","); - String[] rotaPersonNameArray = rotaPersonName.split(","); for (int i = 0; i <= rotaPersonArray.length - 1; i++){ ComSwRotaPersonVO comSwRotaPersonVO = new ComSwRotaPersonVO(); + Map<String,String> person = comSwPatrolRecordDAO.getPbServiceTeamById(rotaPersonArray[i]); comSwRotaPersonVO.setId(Long.valueOf(rotaPersonArray[i])); - comSwRotaPersonVO.setName(rotaPersonNameArray[i]); + comSwRotaPersonVO.setName(person.get("name")); + comSwRotaPersonVO.setPhone(Long.valueOf(person.get("phone"))); rotaPersons.add(comSwRotaPersonVO); } } @@ -131,13 +237,13 @@ List<ComSwRotaPersonVO> rotaLeaders = new ArrayList<>(); if (null != comSwRotaDO){ String rotaPerson = comSwRotaDO.getRotaLeader(); - String rotaPersonName = comSwRotaDO.getLeaderName(); String[] rotaPersonArray = rotaPerson.split(","); - String[] rotaPersonNameArray = rotaPersonName.split(","); for (int i = 0; i <= rotaPersonArray.length - 1; i++){ ComSwRotaPersonVO comSwRotaPersonVO = new ComSwRotaPersonVO(); + Map<String,String> leader = comSwPatrolRecordDAO.getPbServiceTeamById(rotaPersonArray[i]); comSwRotaPersonVO.setId(Long.valueOf(rotaPersonArray[i])); - comSwRotaPersonVO.setName(rotaPersonNameArray[i]); + comSwRotaPersonVO.setName(leader.get("name")); + comSwRotaPersonVO.setPhone(Long.valueOf(leader.get("phone"))); rotaLeaders.add(comSwRotaPersonVO); } } @@ -148,4 +254,38 @@ public R getTotlePerson(String param, Long communityId) { return userService.listActivityManager(param,communityId); } + + @Override + public R listSaveSwRotaExcelVO(List<ComSwRotaExcelVO> list, Long communityId) { + List<ComSwRotaDO> comSwRotaDOS = new ArrayList<>(); + list.forEach(comSwRotaExcelVO -> { + ComSwRotaDO comSwRotaDO = new ComSwRotaDO(); + String[] leaderPhones = comSwRotaExcelVO.getLeaderPhone().split(","); + List<String> leaderIds = new ArrayList<>(); + for (String leaderPhone : leaderPhones) { + String id = comSwRotaDAO.getTeamIdsByTeamPhone(leaderPhone); + leaderIds.add(id); + } + + String[] personPhones = comSwRotaExcelVO.getPersonPhone().split(","); + List<String> personIds = new ArrayList<>(); + for (String personPhone : personPhones) { + String id = comSwRotaDAO.getTeamIdsByTeamPhone(personPhone); + personIds.add(id); + } + BeanUtils.copyProperties(comSwRotaExcelVO, comSwRotaDO); + comSwRotaDO.setId(Snowflake.getId()); + comSwRotaDO.setCommunityId(communityId); + try { + comSwRotaDO.setRotaDate(new SimpleDateFormat("yyyy-MM-dd").parse(comSwRotaExcelVO.getRotaDate())); + } catch (ParseException e) { + e.printStackTrace(); + } + comSwRotaDO.setRotaLeader(StringUtils.join(leaderIds, ",")); + comSwRotaDO.setRotaPerson(StringUtils.join(personIds, ",")); + comSwRotaDOS.add(comSwRotaDO); + }); + this.saveBatch(comSwRotaDOS); + return R.ok(); + } } diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSwDangerReportMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSwDangerReportMapper.xml index 5b976da..5d8b27f 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSwDangerReportMapper.xml +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSwDangerReportMapper.xml @@ -137,7 +137,8 @@ <select id="exportDangerReport" resultType="com.panzhihua.common.model.vos.community.ComSwDangerReportExcelVO" parameterType="java.util.List"> SELECT - cspr.patrol_person AS patrolPerson, + cspr.person_name AS personName, + cspr.person_phone AS personPhone, cspr.address, csdr.remark, csdr.dager_description AS dagerDescription, diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSwRotaMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSwRotaMapper.xml index 92a514c..dd18797 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSwRotaMapper.xml +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSwRotaMapper.xml @@ -37,11 +37,20 @@ com_sw_rota csr where csr.community_id = #{comSwRotaPageDTO.communityId} <if test='comSwRotaPageDTO.rotaPerson != null and comSwRotaPageDTO.rotaPerson != ""'> - AND csr.rota_person LIKE concat('%',#{comSwRotaPageDTO.rotaPerson},'%') + AND (csr.rota_person LIKE concat('%',#{comSwRotaPageDTO.rotaPerson},'%') + or csr.rota_leader LIKE concat('%',#{comSwRotaPageDTO.rotaPerson},'%') + ) </if> <if test='comSwRotaPageDTO.phone != null and comSwRotaPageDTO.phone != ""'> - AND csr.person_phone LIKE concat('%',#{comSwRotaPageDTO.phone},'%') + AND (csr.person_phone LIKE concat('%',#{comSwRotaPageDTO.phone},'%') + or csr.leader_phone LIKE concat('%',#{comSwRotaPageDTO.phone},'%') + ) </if> order by csr.create_at desc </select> + <select id="getTeamIdsByTeamPhone" resultType="java.lang.String"> + select id + from com_pb_service_team + where phone = #{teamPhone} + </select> </mapper> \ No newline at end of file -- Gitblit v1.7.1