k94314517
2024-10-10 cdbd21ea73eef5d7cf4024654e1f31ab7be1ed81
代码初始化
已修改10个文件
230 ■■■■ 文件已修改
server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java 49 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/core/utils/SmsConstants.java 81 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/openapi/HkOpenApiController.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformWarnEventListResponse.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformWaterGasService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformWarnEventServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformWaterGasServiceImpl.java 41 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java
@@ -317,6 +317,35 @@
        }
    }
    /**
     * 获取X月份之前的月份数
     * @param currentDate
     * @param month
     * @return
     */
    public static List<String> getBeforMonth(Date currentDate , Integer month) {
        SimpleDateFormat sdfYear = new SimpleDateFormat("yyyy");
        SimpleDateFormat sdfMonth = new SimpleDateFormat("MM");
        int currentYear = Integer.parseInt(sdfYear.format(currentDate));
        int currentMonth = Integer.parseInt(sdfMonth.format(currentDate));
        List<String> list = new ArrayList<>();
        System.out.println("近12个月份:");
        for (int i = 0; i < month; i++) {
            int tempYear = currentYear;
            int tempMonth = currentMonth - i;
            if (tempMonth <= 0) {
                tempYear--;
                tempMonth += 12;
            }
            list.add(tempYear +"-" + StringUtils.leftPad(Integer.toString(tempMonth),2,"0"));
        }
        return list;
    }
    /**
     * Descrption:取得当前日期时间,格式为:YYYYMMDDHHMISS
     *
@@ -2775,16 +2804,18 @@
//            System.out.println(DateUtil.afterMinutesDate(-5));
            Date startTime = DateUtil.StringToDate("2024-05-01 08:00:00" ,"yyyy-MM-dd HH:mm:ss");
            Date endTime = DateUtil.StringToDate("2024-05-01 17:00:00" ,"yyyy-MM-dd HH:mm:ss");
            Long intervalTime = 35L;
            DateUtil.getBeforMonth(new Date(),12);
            DateUtil.checkDateInterval( startTime.toInstant()
                    .atZone(ZoneId.systemDefault())
                    .toLocalDateTime(), endTime.toInstant()
                    .atZone(ZoneId.systemDefault())
                    .toLocalDateTime(),intervalTime);
//            Date startTime = DateUtil.StringToDate("2024-05-01 08:00:00" ,"yyyy-MM-dd HH:mm:ss");
//            Date endTime = DateUtil.StringToDate("2024-05-01 17:00:00" ,"yyyy-MM-dd HH:mm:ss");
//            Long intervalTime = 35L;
//
//
//            DateUtil.checkDateInterval( startTime.toInstant()
//                    .atZone(ZoneId.systemDefault())
//                    .toLocalDateTime(), endTime.toInstant()
//                    .atZone(ZoneId.systemDefault())
//                    .toLocalDateTime(),intervalTime);
        } catch (Exception ex) {
            ex.printStackTrace();
server/system_service/src/main/java/com/doumee/core/utils/SmsConstants.java
@@ -19,31 +19,32 @@
public class SmsConstants {
    public interface SmsObjectType{
        String inventCode = "0"; //验证码
        String visit= "1"; //访客申请
        String visitReport = "2"; //访客报备
        String hiddenDanger ="3";//隐患随手拍
        String carUse ="4";//用车申请
        String meeting ="5";//会议预约
        String platformBook ="6";//物流车预约
        String platformJob ="7";//月台作业
    }
    public static final String inventCode ="inventCode" ;
    public static final String visit ="visit" ;
    public static final String visitReport ="visitReport" ;
    public static final String hiddenDanger ="hiddenDanger" ;
    public static final String carUse ="carUse" ;
    public static final String meeting ="meeting" ;
    public static final String platformBook ="platformBook" ;
    public static final String platformJob ="platformJob" ;
    /**
     * 访客申请
     */
    public interface visitContent{
        //访客申请-通知(给审批人)
        String visitNotice = "您有一条【{访客申请}】需要处理,详细信息请前往微信公众号查看。";
        String visitNotice = "visitNotice";
        //访客申请-审批通过通知(给申请人):。
        String visitAuditSuccess = "您的【{访客申请}】已经审批通过,请于{预约入园开始时间}前往门卫室访客机签到入园,如有疑问,请联系被访人";
        String visitAuditSuccess = "visitAuditSuccess";
        //访客申请-审批驳回通知(给申请人):。
        String visitAuditFail = "您的【{访客申请}】已被驳回,驳回原因为:{驳回原因}。如有疑问,请联系被访人。";
        String visitAuditFail = "visitAuditFail";
        //访客申请-超时未签离-通知(给申请人):
        String visitTimeOutSignOut = "您的【访客申请】已于{到期时间}到期,请及时离场并前往门卫室访客机签离,如有疑问,请联系被访人";
        String visitTimeOutSignOut = "visitTimeOutSignOut";
        //访客申请-超时未签离-通知(给指定接收人)
        String visitTimeOutSignOutNum = "今日还有{未签离数量}个访客未签离,请前往PC端查看详细信息。";
        String visitTimeOutSignOutNum = "visitTimeOutSignOutNum";
    }
@@ -53,15 +54,15 @@
     */
    public interface visitReportingContent{
        //访客报备-通知(给审批人)
        String visitReportingNotice = "您有一条【{访客报备}】需要处理,详细信息请前往微信公众号查看。";
        String visitReportingNotice = "visitReportingNotice";
        //访客报备-审批通过通知(给申请人):。
        String visitReportingAuditSuccess = "您的【{访客报备}】已经审批通过,请通知访客于{预约入园开始时间}后乘坐{车牌号}入园,如有疑问,请联系被访人。";
        String visitReportingAuditSuccess = "visitReportingAuditSuccess";
        //访客报备-审批驳回通知(给申请人):。
        String visitReportingAuditFail = "您的【{访客报备}】已被驳回,驳回原因为:{驳回原因}。如有疑问,请联系审批人。";
        String visitReportingAuditFail = "visitReportingAuditFail";
        //访客报备-超时未离场-通知(给申请人):
        String visitReportingTimeOutSignOut = "您的【访客报备】已于{预约入园结束时间}到期,请及时离场,如有疑问,请联系被访人";
        String visitReportingTimeOutSignOut = "visitReportingTimeOutSignOut";
        //访客报备-超时未离场-通知(给指定接收人)
        String visitReporting_time_out_sign_out_num = "今日还有{未签离数量}个访客报备车辆未离场,请前往PC端查看详细信息。";
        String visitReportingTimeOutSignOutNum = "visitReportingTimeOutSignOutNum";
    }
@@ -70,9 +71,9 @@
     */
    public interface hiddenDangerContent{
        //隐患随手拍-通知(给处理人)
        String hiddenDanger_deal_user = "您有一条【{隐患随手拍-消防隐患}】需要处理,详细信息请前往微信公众号查看";
        String hiddenDangerDealUser = "hiddenDangerDealUser";
        //隐患随手拍-处理完成(给申请人):。
        String hiddenDanger_deal_over = "您提交的【{隐患随手拍-消防隐患}】已经处理完毕,详细信息请前往微信公众号查看。";
        String hiddenDangerDealOver = "hiddenDangerDealOver";
    }
@@ -81,13 +82,13 @@
     */
    public interface carUseBookContent{
        //短信通知模板(给处理人)
        String carUseBook_wait_audit = "您有一条【{用车申请}】需要处理,详细信息请前往微信公众号查看。";
        String carUseBookWaitAudit = "carUseBookWaitAudit";
        //用车申请-审批通过通知(给申请人):。
        String carUseBook_audit_success = "您的【{用车申请}】已经审批通过,出发时间为{提交的出发时间},请按时用车。如用车计划有变,请及时联系派车员。";
        String carUseBookAuditSuccess = "carUseBookAuditSuccess";
        //用车申请-审批驳回通知(给申请人):。
        String carUseBook_audit_fail = "您的【{用车申请}】已被驳回,驳回原因为:{驳回原因}。如有疑问,请联系派车员。";
        String carUseBookAuditFail = "carUseBookAuditFail";
        //用车申请-审批驳回通知(给申请人):。
        String carUseBook_cancel = "您的【{用车申请}】已被取消,取消原因为:{取消原因}。如有疑问,请联系派车员。";
        String carUseBookCancel = "carUseBookCancel";
    }
@@ -96,13 +97,13 @@
     */
    public interface platformBookContent{
        //短信通知模板(给处理人)
        String platformBook_wait_audit = "您有一条【车辆入园申请】需要处理,详细信息请前往微信公众号查看。";
        String platformBookWaitAudit = "platformBookContent";
        //物流车预约-审批通过通知(给申请人):。
        String platformBook_audit_success = "您的【车辆入园申请】已经审批通过,入园时间为2024-7-19 09:00,请提前30分钟前往现场签到。如计划有变,请及时联系审核人员。";
        String platformBookAuditSuccess = "platformBookAuditSuccess";
        //物流车预约-审批驳回短信通知模板(给申请人)
        String platformBook_audit_fail = "您的【车辆入园申请】已被驳回,驳回原因为:{驳回原因}。如有疑问,请联系审核人员。";
        String platformBookAuditFail = "platformBookAuditFail";
        //物流车预约-入园预约取消短信通知模板(给申请人)
        String carUseBook_cancel = "您的【车辆入园申请】已被取消,取消原因为:{取消原因}。如有疑问,请联系审核人员。";
        String carUseBookCancel = "carUseBookCancel";
    }
@@ -111,25 +112,25 @@
     */
    public interface platformJobContent{
        // 运输任务下达 (给司机)
        String platformJob_new_job = "【车牌号】车主您好,您有一个新的运输任务,详细信息请前往微信公众号查看。";
        String platformJobNewJob = "platformJobNewJob";
        //物流车作业-运输任务中止提醒(给司机):。
        String platformJob_stop_job = "【车牌号】车主您好,您的运输任务已被取消,详细信息请前往微信公众号查看。";
        String platformJobStopJob = "platformJobStopJob";
        //物流车预约-叫号入园等待(给司机)
        String platformBook_call_in = "【车牌号】车主您好,请在10分钟内,前往园区等待区等待叫号作业。";
        String platformBookCallIn = "platformBookCallIn";
        //物流车预约-月台叫号(给司机)
        String platformBook_sing_in = "【车牌号】车主您好,请在10分钟内,前往{月台名称}进行作业。";
        String platformBookSingIn = "platformBookSingIn";
        //物流车预约-月台叫号过号(给司机)
        String platformBook_over_num = "【车牌号】车主您好,您的任务已过号,请重新签到排队等待。";
        String platformBookOverNum = "platformBookOverNum";
        //物流车预约-作业开始(给司机)
        String platformBook_working = "【车牌号】车主您好,您的车辆已在{月台名称}开始作业,请随时关注作业情况。";
        String platformBookWorking = "platformBookWorking";
        //物流车预约-作业完成(给司机)
        String platformBook_finish = "【车牌号】车主您好,您的车辆已在{月台名称}完成作业,请及时驶离月台。";
        String platformBookFinish = "platformBookFinish";
        //物流车预约-作业异常挂起(给司机)
        String platformBook_error = "【车牌号】车主您好,您在{月台名称}的作业任务已经被异常挂起,请及时关注具体情况";
        String platformBookError = "platformBookError";
        //物流车预约-月台转移(给司机)
        String platformBook_move = "【车牌号】车主您好,您在{月台名称}的作业任务已经已被转移至{转移后月台名称},请及时关注叫号情况。";
        String platformBookMove = "platformBookMove";
        //物流车预约-月台停靠超时(给司机)
        String platformBook_time_out = "【车牌号】车主您好,您在{月台名称}已停靠超时,请尽快驶离以免影响后续作业。";
        String platformBookTimeOut = "platformBookTimeOut";
    }
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/openapi/HkOpenApiController.java
@@ -123,10 +123,27 @@
    @LoginNoRequired
    @PreventRepeat
    @ApiOperation("【用水量】近12个月用水量信息列表")
    @PostMapping("/water/lastMonthsDataList")
    public ApiResponse<List<PlatformLastMonthListResponse>> lastMonthsWaterList() {
        return ApiResponse.success(platformWaterGasService.getPlatformLastMonthListResponse(Constants.ZERO));
    }
    @LoginNoRequired
    @PreventRepeat
    @ApiOperation("【用气量】本月、上月和去年同月")
    @PostMapping("/gas/dataByMonth")
    public ApiResponse<GasByMonthResponse> gasDataByMonth(@RequestBody GasByMonthRequest param) {
        return ApiResponse.success(platformWaterGasService.gasDataByMonth(param));
    }
    @LoginNoRequired
    @PreventRepeat
    @ApiOperation("【用气量】近12个月用气量信息列表")
    @PostMapping("/gas/lastMonthsDataList")
    public ApiResponse<List<PlatformLastMonthListResponse>> lastMonthsGasList () {
        return ApiResponse.success(platformWaterGasService.getPlatformLastMonthListResponse(Constants.ONE));
    }
    @LoginNoRequired
@@ -151,7 +168,7 @@
    @PreventRepeat
    @ApiOperation("【月台】月台当前作业信息列表")
    @PostMapping("/platform/workingDataList")
    public ApiResponse<List<PlatformDataListResponse>> platformWorkingDataList(@RequestBody PlatformDataListRequest param) {
    public ApiResponse<List<PlatformDataListResponse>> workingDataList(@RequestBody PlatformDataListRequest param) {
        return ApiResponse.success(platformJobService.platformWorkingDataList(param));
    }
@@ -159,7 +176,7 @@
    @PreventRepeat
    @ApiOperation("【月台】月台作业详情信息")
    @PostMapping("/platform/workDataInfo")
    public ApiResponse<PlatformDataInfoResponse> platformWorkingDataList(@RequestBody PlatformDataInfoRequest param) {
    public ApiResponse<PlatformDataInfoResponse> workDataInfo(@RequestBody PlatformDataInfoRequest param) {
        return ApiResponse.success(platformJobService.platformWorkingDataList(param));
    }
server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformWarnEventListResponse.java
@@ -19,6 +19,8 @@
    private String title;
    @ApiModelProperty(value = "时间")
    private Date createDate;
    @ApiModelProperty(value = "车牌号")
    private String carCode;
    @ApiModelProperty(value = "事件内容说明")
    private String content;
    @ApiModelProperty(value = "月台名称")
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformWaterGasService.java
@@ -8,6 +8,7 @@
import com.doumee.dao.openapi.request.GasByMonthRequest;
import com.doumee.dao.openapi.request.WaterByMonthRequest;
import com.doumee.dao.openapi.response.GasByMonthResponse;
import com.doumee.dao.openapi.response.PlatformLastMonthListResponse;
import com.doumee.dao.openapi.response.WaterByMonthResponse;
import java.util.List;
@@ -107,4 +108,6 @@
    WaterByMonthResponse waterDataByMonth(WaterByMonthRequest param);
    GasByMonthResponse gasDataByMonth(GasByMonthRequest param);
    List<PlatformLastMonthListResponse> getPlatformLastMonthListResponse(Integer type);
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java
@@ -98,6 +98,8 @@
    private PlatformLogMapper platformLogMapper;
    @Autowired
    private PlatformReasonMapper platformReasonMapper;
    @Autowired
    private PlatformGroupMapper platformGroupMapper;
    @Autowired
@@ -1513,12 +1515,25 @@
            platformBooks.setEditDate(new Date());
            platformBooks.setEditor(approveDTO.getLoginUserInfo().getMemberId());
            PlatformReason platformReason = platformReasonMapper.selectById(platformBooks.getReasonId());
            if(Objects.isNull(platformReason)){
                throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到入园原因数据");
            }
            PlatformGroup platformGroup = platformGroupMapper.selectById(platformReason.getGroupId());
            if(Objects.isNull(platformGroup)){
                throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到入园原因配置月台组数据");
            }
            //生成任务记录
            PlatformJob platformJob = platformBooks.toPlatformJob();
            platformJob.setId(null);
            platformJob.setPlatformGroupId(platformReason.getGroupId().intValue());
            platformJob.setType(Constants.platformJobType.sgscxh);
            if(Constants.equalsInteger(platformGroup.getType(),Constants.ZERO)){
                platformJob.setType(Constants.platformJobType.wxcxh);
            }else if(Constants.equalsInteger(platformGroup.getType(),Constants.ONE)){
                platformJob.setType(Constants.platformJobType.wxczh);
            }else{
                platformJob.setType(Constants.platformJobType.sgscxh);
            }
            platformJob.setStatus(Constants.PlatformJobStatus.WART_SIGN_IN.getKey());
            platformJobMapper.insert(platformJob);
            platformBooks.setJobId(platformJob.getId());
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java
@@ -1570,9 +1570,12 @@
                );
                platformDataListResponse.setWorkStatus(Constants.ONE);
                //查询作业时长
//                Long workTime = this.getWorkTime(platformJob);
                Long min = (System.currentTimeMillis() - platformJob.getNewStartDate().getTime())/1000/60;
                platformDataListResponse.setWorkTime(
                        this.getWorkTime(platformJob)
                        min
                );
                //计算已作业时长 根据月台工作效率 计算任务量需要时间
                if (Objects.isNull(platformJob.getWorkNum()) || Objects.isNull(platformJob.getWorkRate())) {
                    platformDataListResponse.setFinishTime(null);
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformWarnEventServiceImpl.java
@@ -120,6 +120,7 @@
                platformWarnEventListResponse.setContent(event.getEventContent());
                platformWarnEventListResponse.setTitle(event.getTitle());
                platformWarnEventListResponse.setPlatfromHkId(event.getPlatfromHkId());
                platformWarnEventListResponse.setCarCode(event.getCarCode());
                list.add(platformWarnEventListResponse);
            }
        }
@@ -201,6 +202,7 @@
        platformWarnEvent.setCreateDate(new Date());
        platformWarnEvent.setIsdeleted(Constants.ZERO);
        platformWarnEvent.setPlatformId(savePlatformWarnEventDTO.getPlatformId());
        platformWarnEvent.setCarCode(savePlatformWarnEventDTO.getCarCode());
        Constants.PlatformWarnEvent cPl = Constants.PlatformWarnEvent.STOP_TIMEOUT;
        if(Constants.equalsInteger(savePlatformWarnEventDTO.getEventType(),Constants.ZERO)){
            if(Objects.isNull(savePlatformWarnEventDTO.getPlatformJobId())){
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformWaterGasServiceImpl.java
@@ -15,6 +15,7 @@
import com.doumee.dao.openapi.request.GasByMonthRequest;
import com.doumee.dao.openapi.request.WaterByMonthRequest;
import com.doumee.dao.openapi.response.GasByMonthResponse;
import com.doumee.dao.openapi.response.PlatformLastMonthListResponse;
import com.doumee.dao.openapi.response.WaterByMonthResponse;
import com.doumee.service.business.PlatformWaterGasService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -29,10 +30,7 @@
import org.springframework.web.bind.annotation.RequestBody;
import java.math.BigDecimal;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.util.*;
/**
 * 月台_用水用气信息记录表Service实现
@@ -244,7 +242,7 @@
        list = platformWaterGasMapper.selectList(new QueryWrapper<PlatformWaterGas>().lambda()
                .eq(PlatformWaterGas::getIsdeleted,Constants.ZERO)
                .eq(PlatformWaterGas::getType,Constants.ZERO)
                .like(PlatformWaterGas::getTimeInfo,beforMonth)
                .like(PlatformWaterGas::getTimeInfo,DateUtil.getDate(beforMonth,"yyyy-MM"))
        );
        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(list)){
            waterByMonthResponse.setLastMonth(list.stream().map(m->m.getNum()).reduce(BigDecimal.ZERO,BigDecimal::add));
@@ -253,7 +251,7 @@
        list = platformWaterGasMapper.selectList(new QueryWrapper<PlatformWaterGas>().lambda()
                .eq(PlatformWaterGas::getIsdeleted,Constants.ZERO)
                .eq(PlatformWaterGas::getType,Constants.ZERO)
                .like(PlatformWaterGas::getTimeInfo,beforYearMonth)
                .like(PlatformWaterGas::getTimeInfo,DateUtil.getDate(beforYearMonth,"yyyy-MM"))
        );
        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(list)){
            waterByMonthResponse.setLastYearMonth(list.stream().map(m->m.getNum()).reduce(BigDecimal.ZERO,BigDecimal::add));
@@ -287,7 +285,7 @@
        list = platformWaterGasMapper.selectList(new QueryWrapper<PlatformWaterGas>().lambda()
                .eq(PlatformWaterGas::getIsdeleted,Constants.ZERO)
                .eq(PlatformWaterGas::getType,Constants.ONE)
                .like(PlatformWaterGas::getTimeInfo,beforMonth)
                .like(PlatformWaterGas::getTimeInfo,DateUtil.getDate(beforMonth,"yyyy-MM"))
        );
        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(list)){
            response.setLastMonth(list.stream().map(m->m.getNum()).reduce(BigDecimal.ZERO,BigDecimal::add));
@@ -296,7 +294,7 @@
        list = platformWaterGasMapper.selectList(new QueryWrapper<PlatformWaterGas>().lambda()
                .eq(PlatformWaterGas::getIsdeleted,Constants.ZERO)
                .eq(PlatformWaterGas::getType,Constants.ONE)
                .like(PlatformWaterGas::getTimeInfo,beforYearMonth)
                .like(PlatformWaterGas::getTimeInfo,DateUtil.getDate(beforYearMonth,"yyyy-MM"))
        );
        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(list)){
            response.setLastYearMonth(list.stream().map(m->m.getNum()).reduce(BigDecimal.ZERO,BigDecimal::add));
@@ -304,4 +302,31 @@
        return response;
    }
    /**
     *
     * @param type 0用水 1用气
     * @return
     */
    @Override
    public List<PlatformLastMonthListResponse> getPlatformLastMonthListResponse(Integer type){
        List<PlatformLastMonthListResponse> lastMonthListResponses = new ArrayList<>();
        List<PlatformWaterGas> platformWaterGasList = platformWaterGasMapper.selectList(new QueryWrapper<PlatformWaterGas>().lambda()
                .eq(PlatformWaterGas::getIsdeleted,Constants.ZERO)
                .eq(PlatformWaterGas::getType,type)
        );
        List<String> monthList = DateUtil.getBeforMonth(new Date(),12);
        for (String str:monthList) {
            PlatformLastMonthListResponse platformLastMonthListResponse = new PlatformLastMonthListResponse();
            platformLastMonthListResponse.setNum(platformWaterGasList.stream().filter(i->DateUtil.dateToString(i.getTimeInfo(),"yyyy-MM").equals(str)).map(i->i.getNum()).reduce(BigDecimal.ZERO,BigDecimal::add));
            platformLastMonthListResponse.setTimeInfo(str);
            lastMonthListResponses.add(platformLastMonthListResponse);
        }
        return lastMonthListResponses;
    }
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java
@@ -251,9 +251,14 @@
    }
    public static void sendBusiness(EmayService emayService ,SmsEmailMapper smsEmailMapper ,List<String> phoneList,String objType,String content,Integer objId){
        //TODO 是否发送短信
    public static void sendBusiness(EmayService emayService ,SmsEmailMapper smsEmailMapper ,List<String> phoneList,String objType,String content,Integer objId){
        for (String phone:phoneList) {
            boolean result=   emayService.sendSingleSms(phone,content);
            if(!result){