lin
2024-04-19 73ceaaa73dd6b73808aac425c70e0d9184f9f415
校园安全+议事问题优化
20 files modified
9 files added
995 ■■■■■ changed files
src/main/java/org/springblade/common/constant/CommonConstant.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/common/constant/DictConstant.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/discuss/entity/PublicDiscussEntity.java 9 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/discuss/mapper/PublicDiscussMapper.xml 4 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/discuss/service/impl/UserTopicsServiceImpl.java 8 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/nursingCheckIn/entity/NursingCheckInEntity.java 10 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/sms/controller/SmsSendController.java 18 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/sms/mapper/SmsRecordMapper.xml 1 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/sms/service/ISmsSendService.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/sms/service/impl/SmsSendServiceImpl.java 73 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/task/controller/TaskSchoolEvenController.java 125 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/task/dto/TaskSchoolEvenDTO.java 130 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/task/entity/TaskEntity.java 2 ●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/task/entity/TaskPlaceRecordEntity.java 2 ●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/task/entity/TaskPlaceSelfCheckEntity.java 10 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/task/entity/TaskSchoolEvenEntity.java 129 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/task/mapper/TaskPlaceSelfCheckMapper.java 2 ●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/task/mapper/TaskPlaceSelfCheckMapper.xml 2 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/task/mapper/TaskSchoolEvenMapper.java 43 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/task/mapper/TaskSchoolEvenMapper.xml 86 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/task/service/ITaskPlaceSelfCheckService.java 7 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/task/service/ITaskSchoolEvenService.java 44 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/task/service/ITaskService.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/task/service/impl/TaskPlaceSelfCheckServiceImpl.java 24 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/task/service/impl/TaskSchoolEvenServiceImpl.java 43 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/task/service/impl/TaskServiceImpl.java 116 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/task/vo/TaskSchoolEvenVO.java 34 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/task/wrapper/TaskSchoolEvenWrapper.java 51 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/xxljob/jobhandler/LabelHandleJob.java 14 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/common/constant/CommonConstant.java
@@ -86,6 +86,8 @@
    Integer NUMBER_TWO = 2;
    Integer NUMBER_FIVE = 5;
    Integer NUMBER_THREE = 3;
    Integer NUMBER_FOUR = 4;
src/main/java/org/springblade/common/constant/DictConstant.java
@@ -57,6 +57,8 @@
    String FIRE_SELF_CHECK_NOTICE = "消防自查";
    String FIRE_SCHOOL_CHECK_NOTICE = "校园安全检查";
    String NO_FRAUD_REPORTING = "无诈宣传";
    String RESIDENCE_PERMIT_APPLICATION = "居住证申请";
src/main/java/org/springblade/modules/discuss/entity/PublicDiscussEntity.java
@@ -89,6 +89,15 @@
    private Date endTime;
    /**
     * 开始时间
     */
    @ApiModelProperty(value = "开始时间", example = "")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField("start_time")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;
    /**
     * 文章id
     */
    @ApiModelProperty(value = "文章id", example = "")
src/main/java/org/springblade/modules/discuss/mapper/PublicDiscussMapper.xml
@@ -11,6 +11,7 @@
        <result property="voteRestrictions"     column="vote_restrictions"    />
        <result property="userRestrictions"    column="user_restrictions"    />
        <result property="endTime"              column="end_time"    />
        <result property="startTime"              column="start_time"    />
        <result property="articleId"            column="article_id"    />
        <result property="createTime"            column="create_time"    />
        <result property="updateTime"            column="update_time"    />
@@ -32,6 +33,7 @@
            vote_restrictions,
            user_restrictions,
            end_time,
            start_time,
            article_id,
            create_time,
            update_time,
@@ -54,6 +56,7 @@
        jpd.vote_restrictions,
        jpd.user_restrictions,
        jpd.end_time,
        jpd.start_time,
        jpd.article_id,
        jpd.create_time,
        jpd.update_time,
@@ -120,6 +123,7 @@
        jpd.vote_restrictions,
        jpd.user_restrictions,
        jpd.end_time,
        jpd.start_time,
        jpd.article_id,
        jpd.create_time,
        jpd.update_time,
src/main/java/org/springblade/modules/discuss/service/impl/UserTopicsServiceImpl.java
@@ -130,9 +130,13 @@
            .eq(HouseholdEntity::getIsDeleted, 0)
            .last("limit 1"));
        IPublicDiscussService bean = SpringUtil.getBean(IPublicDiscussService.class);
        PublicDiscussEntity one = bean.getOne(Wrappers.<PublicDiscussEntity>lambdaQuery().eq(PublicDiscussEntity::getArticleId, topicsList.get(0).getArticleId()));
        PublicDiscussEntity discussEntity = bean.getOne(Wrappers.<PublicDiscussEntity>lambdaQuery().eq(PublicDiscussEntity::getArticleId, topicsList.get(0).getArticleId()));
        // 判断是否在开始和结束时间内
        if (discussEntity.getStartTime().getTime() > System.currentTimeMillis() || discussEntity.getEndTime().getTime() < System.currentTimeMillis()) {
            return "目前不在投票时间内";
        }
        // 一户一票
        if (one.getVoteRestrictions().equals(CommonConstant.NUMBER_ONE)) {
        if (discussEntity.getVoteRestrictions().equals(CommonConstant.NUMBER_ONE)) {
            long count = count(Wrappers.<UserTopicsEntity>lambdaQuery()
                .eq(UserTopicsEntity::getHouseCode, topicsList.get(0).getHouseCode())
                .eq(UserTopicsEntity::getArticleId, topicsList.get(0).getArticleId()));
src/main/java/org/springblade/modules/nursingCheckIn/entity/NursingCheckInEntity.java
@@ -87,4 +87,14 @@
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField(value = "create_time",fill = FieldFill.INSERT)
    private Date createTime;
    /** 经度 */
    @ApiModelProperty(value = "经度", example = "")
    @TableField("longitude")
    private String longitude;
    /** 纬度 */
    @ApiModelProperty(value = "纬度", example = "")
    @TableField("latitude")
    private String latitude;
}
src/main/java/org/springblade/modules/sms/controller/SmsSendController.java
@@ -53,6 +53,9 @@
    /**
     * 发送居住申请通知
     * @param templateId 模版id
     * @param residenceId 居住证申请记录id
     * @return
     */
    @GetMapping("/sendNotice")
    @ApiOperationSupport(order = 1)
@@ -63,5 +66,20 @@
        return R.status(aBoolean);
    }
    /**
     *
     * @param templateId
     * @param placeSelfCheckId
     * @return
     */
    @GetMapping("/sendRectificationNotice")
    @ApiOperationSupport(order = 1)
    @ApiOperation(value = "发送整改完成通知")
    public R<SmsTemplateVO> sendRectificationNotice(@RequestParam("templateId") Long templateId,
                                       @RequestParam(value = "placeSelfCheckId",required = false) Long placeSelfCheckId) {
        Boolean aBoolean = iSmsSendService.sendRectificationNotice(templateId,placeSelfCheckId);
        return R.status(aBoolean);
    }
}
src/main/java/org/springblade/modules/sms/mapper/SmsRecordMapper.xml
@@ -20,6 +20,7 @@
            <if test="smsRecord.updateTime != null ">and update_time = #{smsRecord.updateTime}</if>
            <if test="smsRecord.status != null ">and status = #{smsRecord.status}</if>
            <if test="smsRecord.isDeleted != null ">and is_deleted = #{smsRecord.isDeleted}</if>
            order by create_time desc
        </where>
    </select>
src/main/java/org/springblade/modules/sms/service/ISmsSendService.java
@@ -36,4 +36,6 @@
    Boolean sendNotice(Long templateId,Long residenceId);
    Boolean sendRectificationNotice(Long templateId,Long placeSelfCheckId);
}
src/main/java/org/springblade/modules/sms/service/impl/SmsSendServiceImpl.java
@@ -37,7 +37,11 @@
import org.springblade.modules.sms.service.ISmsTemplateService;
import org.springblade.modules.sms.entity.SmsRecordEntity;
import org.springblade.modules.sms.service.ISmsRecordService;
import org.springblade.modules.system.service.IUserService;
import org.springblade.modules.system.vo.UserVO;
import org.springblade.modules.task.entity.TaskPlaceSelfCheckEntity;
import org.springblade.modules.task.entity.TaskResidencePermitApplyEntity;
import org.springblade.modules.task.service.ITaskPlaceSelfCheckService;
import org.springblade.modules.task.service.ITaskResidencePermitApplyService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -78,6 +82,11 @@
    public Boolean sendVerificationCode(String phone) {
        if (phone == null || phone.length() != 11) {
            logger.error("手机号格式错误");
            return false;
        }
        if (redisTemplate.exists(SMS_VALIDATE_PHONE_NUM + phone)) {
            logger.error("同一个手机号一分钟内只能发送一条记录");
            return false;
        }
@@ -138,13 +147,12 @@
    /**
     *
     * @param templateId
     * @param residenceId
     * @return
     */
    @Override
    public Boolean sendNotice( Long templateId, Long residenceId) {
    public Boolean sendNotice(Long templateId, Long residenceId) {
        Sms serviceOne = iSmsService.getOne(Wrappers.<Sms>lambdaQuery().eq(Sms::getStatus, 2));
        if (serviceOne == null) {
@@ -197,6 +205,67 @@
    }
    /**
     * @param templateId
     * @param placeSelfCheckId
     * @return
     */
    @Override
    public Boolean sendRectificationNotice(Long templateId, Long placeSelfCheckId) {
        Sms serviceOne = iSmsService.getOne(Wrappers.<Sms>lambdaQuery().eq(Sms::getStatus, 2));
        if (serviceOne == null) {
            logger.error("未找到状态为2的Sms服务");
            return false;
        }
        SmsTemplateEntity smsTemplateEntity = iSmsTemplateService.getOne(Wrappers.<SmsTemplateEntity>lambdaQuery()
            .eq(SmsTemplateEntity::getId, templateId));
        if (smsTemplateEntity == null) {
            logger.error("未找到对应的短信模板");
            return false;
        }
        ITaskPlaceSelfCheckService bean = SpringUtils.getBean(ITaskPlaceSelfCheckService.class);
        TaskPlaceSelfCheckEntity placeSelfCheckEntity = bean.getById(placeSelfCheckId);
        IUserService userService = SpringUtils.getBean(IUserService.class);
        UserVO userVO = userService.getuserById(placeSelfCheckEntity.getId());
        String phone = userVO.getPhone();
        //发送的手机号
        List<Map> phonesList = new ArrayList<>();
        Map phoneMap = new HashMap();
        phoneMap.put("phone", phone);
        List<String> varList = new ArrayList<>();
        // 设置参数
        varList.add(userVO.getName());
        varList.add(placeSelfCheckEntity.getPlaceName());
        phoneMap.put("varList", varList);
        phonesList.add(phoneMap);
        //短信内容
        String content = smsTemplateEntity.getContent();
        //发送时间
        LocalDateTime nowDateTime = LocalDateTime.now();
        String send_time = nowDateTime.format(SECOND_FORMATTER);
        Map params = new HashMap();
        params.put("phones", phonesList);
        //短信主题
        params.put("subject", "对外接口不同内容发送-动态模板");
        params.put("content", content);
        //短信模板
        params.put("template_id", null);
        // 发送时间
        params.put("send_time", send_time);
        //优先级,高级=5,中级=3,低级=1
        params.put("priority", "1");
        //不同内容发送类型,1=动态模板发送,2=文件内容发送
        params.put("type", "1");
        //创建人主键
        params.put("sop_create_by", serviceOne.getSmsCode());
        //短信发送记录
        saveSmsRecord(phone, serviceOne, placeSelfCheckEntity.getPlaceName(), content);
        Boolean aBoolean = sendSmsGet(serviceOne, params);
        return aBoolean;
    }
    /**
     * 发送短信并获取发送结果。
     *
     * @param serviceOne 用于发送短信的服务对象
src/main/java/org/springblade/modules/task/controller/TaskSchoolEvenController.java
New file
@@ -0,0 +1,125 @@
/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill 庄骞 (smallchill@163.com)
 */
package org.springblade.modules.task.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import lombok.AllArgsConstructor;
import javax.validation.Valid;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.modules.task.service.ITaskSchoolEvenService;
import org.springblade.modules.task.vo.TaskSchoolEvenVO;
import org.springblade.modules.task.wrapper.TaskSchoolEvenWrapper;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.modules.task.entity.TaskSchoolEvenEntity;
import org.springblade.core.boot.ctrl.BladeController;
/**
 * 校园事件 控制器
 *
 * @author BladeX
 * @since 2024-04-18
 */
@RestController
@AllArgsConstructor
@RequestMapping("blade-taskSchoolEven/taskSchoolEven")
@Api(value = "校园事件", tags = "校园事件接口")
public class TaskSchoolEvenController extends BladeController {
    private final ITaskSchoolEvenService taskSchoolEvenService;
    /**
     * 校园事件 详情
     */
    @GetMapping("/detail")
    @ApiOperationSupport(order = 1)
    @ApiOperation(value = "详情", notes = "传入taskSchoolEven")
    public R<TaskSchoolEvenVO> detail(TaskSchoolEvenEntity taskSchoolEven) {
        TaskSchoolEvenEntity detail = taskSchoolEvenService.getOne(Condition.getQueryWrapper(taskSchoolEven));
        return R.data(TaskSchoolEvenWrapper.build().entityVO(detail));
    }
    /**
     * 校园事件 分页
     */
    @GetMapping("/list")
    @ApiOperationSupport(order = 2)
    @ApiOperation(value = "分页", notes = "传入taskSchoolEven")
    public R<IPage<TaskSchoolEvenVO>> list(TaskSchoolEvenEntity taskSchoolEven, Query query) {
        IPage<TaskSchoolEvenEntity> pages = taskSchoolEvenService.page(Condition.getPage(query), Condition.getQueryWrapper(taskSchoolEven));
        return R.data(TaskSchoolEvenWrapper.build().pageVO(pages));
    }
    /**
     * 校园事件 自定义分页
     */
    @GetMapping("/page")
    @ApiOperationSupport(order = 3)
    @ApiOperation(value = "分页", notes = "传入taskSchoolEven")
    public R<IPage<TaskSchoolEvenVO>> page(TaskSchoolEvenVO taskSchoolEven, Query query) {
        IPage<TaskSchoolEvenVO> pages = taskSchoolEvenService.selectTaskSchoolEvenPage(Condition.getPage(query), taskSchoolEven);
        return R.data(pages);
    }
    /**
     * 校园事件 新增
     */
    @PostMapping("/save")
    @ApiOperationSupport(order = 4)
    @ApiOperation(value = "新增", notes = "传入taskSchoolEven")
    public R save(@Valid @RequestBody TaskSchoolEvenEntity taskSchoolEven) {
        return R.status(taskSchoolEvenService.save(taskSchoolEven));
    }
    /**
     * 校园事件 修改
     */
    @PostMapping("/update")
    @ApiOperationSupport(order = 5)
    @ApiOperation(value = "修改", notes = "传入taskSchoolEven")
    public R update(@Valid @RequestBody TaskSchoolEvenEntity taskSchoolEven) {
        return R.status(taskSchoolEvenService.updateById(taskSchoolEven));
    }
    /**
     * 校园事件 新增或修改
     */
    @PostMapping("/submit")
    @ApiOperationSupport(order = 6)
    @ApiOperation(value = "新增或修改", notes = "传入taskSchoolEven")
    public R submit(@Valid @RequestBody TaskSchoolEvenEntity taskSchoolEven) {
        return R.status(taskSchoolEvenService.saveOrUpdate(taskSchoolEven));
    }
    /**
     * 校园事件 删除
     */
    @PostMapping("/remove")
    @ApiOperationSupport(order = 7)
    @ApiOperation(value = "逻辑删除", notes = "传入ids")
    public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
        return R.status(taskSchoolEvenService.removeBatchByIds(Func.toLongList(ids)));
    }
}
src/main/java/org/springblade/modules/task/dto/TaskSchoolEvenDTO.java
New file
@@ -0,0 +1,130 @@
/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill 庄骞 (smallchill@163.com)
 */
package org.springblade.modules.task.dto;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import org.springblade.modules.task.entity.TaskSchoolEvenEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
 * 校园事件 数据传输对象实体类
 *
 * @author BladeX
 * @since 2024-04-18
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class TaskSchoolEvenDTO extends TaskSchoolEvenEntity {
    private static final long serialVersionUID = 1L;
    /** id */
    @ApiModelProperty(value = "主键ID", example = "")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /** 创建人 */
    @ApiModelProperty(value = "创建人", example = "")
    @TableField("create_user")
    private Long createUser;
    /** 图片 */
    @ApiModelProperty(value = "图片", example = "")
    @TableField("images")
    private String images;
    /** 描述 */
    @ApiModelProperty(value = "描述", example = "")
    @TableField("describe")
    private String describe;
    /** 隐患类型 */
    @ApiModelProperty(value = "隐患类型", example = "")
    @TableField("hidden_danger_type")
    private String hiddenDangerType;
    /** 类型 1:隐患 2:矛盾 */
    @ApiModelProperty(value = "类型 1:隐患 2:矛盾", example = "")
    @TableField("type")
    private String type;
    /** 是否问题 1:是 2:否 */
    @ApiModelProperty(value = "是否问题 1:是 2:否", example = "")
    @TableField("is_problem")
    private String isProblem;
    /** 是否处理 1:是 2:否 */
    @ApiModelProperty(value = "是否处理 1:是 2:否", example = "")
    @TableField("is_handle")
    private String isHandle;
    /** 是否上报 1:是 2:否 */
    @ApiModelProperty(value = "是否上报 1:是 2:否", example = "")
    @TableField("is_reporting")
    private String isReporting;
    /** 工作照片 */
    @ApiModelProperty(value = "工作照片", example = "")
    @TableField("work_image")
    private String workImage;
    /** 确认标记 1:待审核  2:审核通过  3:审核不通过  */
    @ApiModelProperty(value = "确认标记 1:待审核  2:审核通过  3:审核不通过 ", example = "")
    @TableField("confirm_flag")
    private String confirmFlag;
    /** 确认时间 */
    @ApiModelProperty(value = "确认时间", example = "")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField("confirm_time")
    private Date confirmTime;
    /** 确认用户ID */
    @ApiModelProperty(value = "确认用户ID", example = "")
    @TableField("confirm_user_id")
    private Long confirmUserId;
    /** 确认用户ID */
    @ApiModelProperty(value = "确认用户ID", example = "")
    @TableField("confirm_user_name")
    private String confirmUserName;
    /** 确认意见 */
    @ApiModelProperty(value = "确认意见", example = "")
    @TableField("confirm_notion")
    private String confirmNotion;
    /** 创建时间 */
    @ApiModelProperty(value = "创建时间", example = "")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField(value = "create_time",fill = FieldFill.INSERT)
    private Date createTime;
    /** 更新时间 */
    @ApiModelProperty(value = "更新时间", example = "")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField(value = "update_time",fill = FieldFill.UPDATE)
    private Date updateTime;
}
src/main/java/org/springblade/modules/task/entity/TaskEntity.java
@@ -63,7 +63,7 @@
    private String houseCode;
    /** 事件类型(1:取保候审,2.居住证申请 3 统战部事件上报 5二手交易 6.无诈 7.消防自查任务 8 九小整改任务) */
    @ApiModelProperty(value = "事件类型(1:取保候审,2.居住证申请 3 统战部事件上报 5二手交易 6.无诈 7.消防自查任务 8 九小整改任务  )", example = "")
    @ApiModelProperty(value = "事件类型(1:取保候审,2.居住证申请 3 统战部事件上报 4校园安全 5二手交易 6.无诈 7.消防自查任务 8 九小整改任务  )", example = "")
    @TableField("report_type")
    private Integer reportType;
    /**
src/main/java/org/springblade/modules/task/entity/TaskPlaceRecordEntity.java
@@ -103,7 +103,7 @@
    private Date rectificationTime;
    /** 1 自查 2.无诈 */
    @ApiModelProperty(value = "1 自查 2.无诈", example = "")
    @ApiModelProperty(value = "1 自查 2.无诈 3:校园安全检查", example = "")
    @TableField("type")
    private String type;
}
src/main/java/org/springblade/modules/task/entity/TaskPlaceSelfCheckEntity.java
@@ -133,4 +133,14 @@
    @ApiModelProperty(value = "0:否 1:是", example = "")
    @TableField("delete_flag")
    private Integer deleteFlag;
    /** 1:消防自查 2:校园安全检查 */
    @ApiModelProperty(value = "1:消防自查 2:校园安全检查", example = "")
    @TableField("type")
    private String type;
    /** 1:否 2:是 */
    @ApiModelProperty(value = "1:否 2:是", example = "")
    @TableField("send_sms_flag")
    private String sendSmsFlag;
}
src/main/java/org/springblade/modules/task/entity/TaskSchoolEvenEntity.java
New file
@@ -0,0 +1,129 @@
/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill 庄骞 (smallchill@163.com)
 */
package org.springblade.modules.task.entity;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;
import java.util.Date;
/**
 * 校园事件 实体类
 *
 * @author BladeX
 * @since 2024-04-18
 */
@Data
@TableName("jczz_task_school_even")
@ApiModel(value = "TaskSchoolEven对象", description = "校园事件")
public class TaskSchoolEvenEntity {
    /** id */
    @ApiModelProperty(value = "主键ID", example = "")
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private Long id;
    /** 创建人 */
    @ApiModelProperty(value = "创建人", example = "")
    @TableField("create_user")
    private Long createUser;
    /** 图片 */
    @ApiModelProperty(value = "图片", example = "")
    @TableField("images")
    private String images;
    /** 描述 */
    @ApiModelProperty(value = "描述", example = "")
    @TableField("describe")
    private String describe;
    /** 隐患类型 */
    @ApiModelProperty(value = "隐患类型", example = "")
    @TableField("hidden_danger_type")
    private String hiddenDangerType;
    /** 类型 1:隐患 2:矛盾 */
    @ApiModelProperty(value = "类型 1:隐患 2:矛盾", example = "")
    @TableField("type")
    private String type;
    /** 是否问题 1:是 2:否 */
    @ApiModelProperty(value = "是否问题 1:是 2:否", example = "")
    @TableField("is_problem")
    private String isProblem;
    /** 是否处理 1:是 2:否 */
    @ApiModelProperty(value = "是否处理 1:是 2:否", example = "")
    @TableField("is_handle")
    private String isHandle;
    /** 是否上报 1:是 2:否 */
    @ApiModelProperty(value = "是否上报 1:是 2:否", example = "")
    @TableField("is_reporting")
    private String isReporting;
    /** 工作照片 */
    @ApiModelProperty(value = "工作照片", example = "")
    @TableField("work_image")
    private String workImage;
    /** 确认标记 1:待审核  2:审核通过  3:审核不通过  */
    @ApiModelProperty(value = "确认标记 1:待审核  2:审核通过  3:审核不通过 ", example = "")
    @TableField("confirm_flag")
    private String confirmFlag;
    /** 确认时间 */
    @ApiModelProperty(value = "确认时间", example = "")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField("confirm_time")
    private Date confirmTime;
    /** 确认用户ID */
    @ApiModelProperty(value = "确认用户ID", example = "")
    @TableField("confirm_user_id")
    private Long confirmUserId;
    /** 确认用户ID */
    @ApiModelProperty(value = "确认用户ID", example = "")
    @TableField("confirm_user_name")
    private String confirmUserName;
    /** 确认意见 */
    @ApiModelProperty(value = "确认意见", example = "")
    @TableField("confirm_notion")
    private String confirmNotion;
    /** 创建时间 */
    @ApiModelProperty(value = "创建时间", example = "")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField(value = "create_time",fill = FieldFill.INSERT)
    private Date createTime;
    /** 更新时间 */
    @ApiModelProperty(value = "更新时间", example = "")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField(value = "update_time",fill = FieldFill.UPDATE)
    private Date updateTime;
}
src/main/java/org/springblade/modules/task/mapper/TaskPlaceSelfCheckMapper.java
@@ -78,7 +78,7 @@
                                                           @Param("regionChildCodesList") List<String> regionChildCodesList,
                                                           @Param("gridCodeList") List<String> gridCodeList);
    Integer getCount(String neiCode, int i,Long userId);
    Integer getCount(String neiCode, int status,Long userId, int type);
    /**
     * 消防自查详情查询
src/main/java/org/springblade/modules/task/mapper/TaskPlaceSelfCheckMapper.xml
@@ -80,6 +80,7 @@
            <if test="place.updateTime != null ">and jpc.update_time = #{place.updateTime}</if>
            <if test="place.createTime != null ">and jpc.create_time = #{place.createTime}</if>
            <if test="place.houseCode != null  and place.houseCode != ''">and jpc.house_code = #{place.houseCode}</if>
            <if test="place.type != null  and place.type != ''">and jpc.type = #{place.type}</if>
            <if test="place.rectificationEndTime != null ">and jpc.rectification_end_time =
                #{place.rectificationEndTime}
            </if>
@@ -492,6 +493,7 @@
        WHERE jp.jw_grid_code IN
              (SELECT jpag.jw_grid_code FROM jczz_police_affairs_grid jpag WHERE jpag.police_user_id like concat('%',#{userId},'%') )
          AND jtpsc.`status` = 1
          AND jtpsc.`type` = #{type}
          AND jg.community_code=#{neiCode}
    </select>
src/main/java/org/springblade/modules/task/mapper/TaskSchoolEvenMapper.java
New file
@@ -0,0 +1,43 @@
/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill 庄骞 (smallchill@163.com)
 */
package org.springblade.modules.task.mapper;
import org.springblade.modules.task.entity.TaskSchoolEvenEntity;
import org.springblade.modules.task.vo.TaskSchoolEvenVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import java.util.List;
/**
 * 校园事件 Mapper 接口
 *
 * @author BladeX
 * @since 2024-04-18
 */
public interface TaskSchoolEvenMapper extends BaseMapper<TaskSchoolEvenEntity> {
    /**
     * 自定义分页
     *
     * @param page
     * @param taskSchoolEven
     * @return
     */
    List<TaskSchoolEvenVO> selectTaskSchoolEvenPage(IPage page, TaskSchoolEvenVO taskSchoolEven);
}
src/main/java/org/springblade/modules/task/mapper/TaskSchoolEvenMapper.xml
New file
@@ -0,0 +1,86 @@
<?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="org.springblade.modules.task.mapper.TaskSchoolEvenMapper">
    <!-- 通用查询映射结果 -->
    <resultMap id="taskSchoolEvenResultMap" type="org.springblade.modules.task.entity.TaskSchoolEvenEntity">
    </resultMap>
    <select id="selectTaskSchoolEvenPage" resultMap="taskSchoolEvenResultMap">
        select * from jczz_task_school_even
    </select>
    <resultMap type="org.springblade.modules.task.dto.TaskSchoolEvenDTO" id="TaskSchoolEvenDTOResult">
        <result property="id"    column="id"    />
        <result property="createUser"    column="create_user"    />
        <result property="images"    column="images"    />
        <result property="describe"    column="describe"    />
        <result property="hiddenDangerType"    column="hidden_danger_type"    />
        <result property="type"    column="type"    />
        <result property="isProblem"    column="is_problem"    />
        <result property="isHandle"    column="is_handle"    />
        <result property="isReporting"    column="is_reporting"    />
        <result property="workImage"    column="work_image"    />
        <result property="confirmFlag"    column="confirm_flag"    />
        <result property="confirmTime"    column="confirm_time"    />
        <result property="confirmUserId"    column="confirm_user_id"    />
        <result property="confirmUserName"    column="confirm_user_name"    />
        <result property="confirmNotion"    column="confirm_notion"    />
        <result property="createTime"    column="create_time"    />
        <result property="updateTime"    column="update_time"    />
    </resultMap>
    <sql id="selectTaskSchoolEven">
        select
            id,
            create_user,
            images,
            describe,
            hidden_danger_type,
            type,
            is_problem,
            is_handle,
            is_reporting,
            work_image,
            confirm_flag,
            confirm_time,
            confirm_user_id,
            confirm_user_name,
            confirm_notion,
            create_time,
            update_time
        from
            jczz_task_school_even
    </sql>
<!--    <select id="selectTaskSchoolEvenById" parameterType="long" resultMap="TaskSchoolEvenDTOResult">-->
<!--        <include refid="selectTaskSchoolEven"/>-->
<!--        where-->
<!--        id = #{id}-->
<!--    </select>-->
<!--    <select id="selectTaskSchoolEvenList" parameterType="org.springblade.modules..dto.TaskSchoolEvenDTO" resultMap="TaskSchoolEvenDTOResult">-->
<!--        <include refid="selectTaskSchoolEven"/>-->
<!--        <where>-->
<!--            <if test="id != null "> and id = #{id}</if>-->
<!--            <if test="createUser != null "> and create_user = #{createUser}</if>-->
<!--            <if test="images != null  and images != ''"> and images = #{images}</if>-->
<!--            <if test="describe != null  and describe != ''"> and describe = #{describe}</if>-->
<!--            <if test="hiddenDangerType != null  and hiddenDangerType != ''"> and hidden_danger_type = #{hiddenDangerType}</if>-->
<!--            <if test="type != null  and type != ''"> and type = #{type}</if>-->
<!--            <if test="isProblem != null  and isProblem != ''"> and is_problem = #{isProblem}</if>-->
<!--            <if test="isHandle != null  and isHandle != ''"> and is_handle = #{isHandle}</if>-->
<!--            <if test="isReporting != null  and isReporting != ''"> and is_reporting = #{isReporting}</if>-->
<!--            <if test="workImage != null  and workImage != ''"> and work_image = #{workImage}</if>-->
<!--            <if test="confirmFlag != null  and confirmFlag != ''"> and confirm_flag = #{confirmFlag}</if>-->
<!--            <if test="confirmTime != null "> and confirm_time = #{confirmTime}</if>-->
<!--            <if test="confirmUserId != null "> and confirm_user_id = #{confirmUserId}</if>-->
<!--            <if test="confirmUserName != null  and confirmUserName != ''"> and confirm_user_name = #{confirmUserName}</if>-->
<!--            <if test="confirmNotion != null  and confirmNotion != ''"> and confirm_notion = #{confirmNotion}</if>-->
<!--            <if test="createTime != null "> and create_time = #{createTime}</if>-->
<!--            <if test="updateTime != null "> and update_time = #{updateTime}</if>-->
<!--        </where>-->
<!--    </select>-->
</mapper>
src/main/java/org/springblade/modules/task/service/ITaskPlaceSelfCheckService.java
@@ -42,6 +42,7 @@
     * @return
     */
    IPage<TaskPlaceSelfCheckVO> selectTaskPlaceSelfCheckPage(IPage<TaskPlaceSelfCheckVO> page, TaskPlaceSelfCheckVO taskPlaceSelfCheck);
    /**
     * 查询消防自查记任务表
     *
@@ -59,21 +60,21 @@
    public List<TaskPlaceSelfCheckDTO> selectTaskPlaceSelfCheckList(TaskPlaceSelfCheckDTO taskPlaceSelfCheckDTO);
    Boolean savePlace(TaskPlaceSelfCheckVO taskPlaceSelfCheck) ;
    Boolean savePlace(TaskPlaceSelfCheckVO taskPlaceSelfCheck);
    Boolean updateTaskPlaceSelfCheck(TaskPlaceSelfCheckVO taskPlaceSelfCheck);
    /**
     * 导出消防自查信息
     *
     * @param taskPlaceSelfCheck
     * @return
     */
    List<TaskPlaceSelfCheckExcel> exportTaskPlaceSelfCheck(TaskPlaceSelfCheckVO taskPlaceSelfCheck);
    Integer getCount(String neiCode, int i);
    Integer getCount(String neiCode, int i, int type);
    /**
     *
     * @param taskId
     * @return
     */
src/main/java/org/springblade/modules/task/service/ITaskSchoolEvenService.java
New file
@@ -0,0 +1,44 @@
/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill 庄骞 (smallchill@163.com)
 */
package org.springblade.modules.task.service;
import com.baomidou.mybatisplus.extension.service.IService;
import liquibase.pro.packaged.I;
import org.springblade.modules.task.vo.TaskSchoolEvenVO;
import org.springblade.modules.task.entity.TaskSchoolEvenEntity;
import org.springblade.core.mp.base.BaseService;
import com.baomidou.mybatisplus.core.metadata.IPage;
/**
 * 校园事件 服务类
 *
 * @author BladeX
 * @since 2024-04-18
 */
public interface ITaskSchoolEvenService extends IService<TaskSchoolEvenEntity> {
    /**
     * 自定义分页
     *
     * @param page
     * @param taskSchoolEven
     * @return
     */
    IPage<TaskSchoolEvenVO> selectTaskSchoolEvenPage(IPage<TaskSchoolEvenVO> page, TaskSchoolEvenVO taskSchoolEven);
}
src/main/java/org/springblade/modules/task/service/ITaskService.java
@@ -87,4 +87,6 @@
    Boolean examine(TaskEntity task);
    boolean createResidenceSendSms(String param);
    boolean createSchoolSendSms(String param);
}
src/main/java/org/springblade/modules/task/service/impl/TaskPlaceSelfCheckServiceImpl.java
@@ -137,16 +137,22 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Boolean savePlace(TaskPlaceSelfCheckVO taskPlaceSelfCheck)  {
    public Boolean savePlace(TaskPlaceSelfCheckVO taskPlaceSelfCheck) {
        taskPlaceSelfCheck.setCreateUser(AuthUtil.getUserId());
        // 1.保存任务表
        ITaskService bean2 = SpringUtils.getBean(ITaskService.class);
        Long aLong = bean2.saveTask(CommonConstant.NUMBER_ONE, DictConstant.FIRE_SELF_CHECK_NOTICE, 1,
            "", AuthUtil.getUserId(), taskPlaceSelfCheck.getHouseCode(), CommonConstant.NUMBER_SEVEN, 1);
        if (aLong <= 0) {
        ITaskService iTaskService = SpringUtils.getBean(ITaskService.class);
        Long restults;
        if (taskPlaceSelfCheck.getType().equals("2")) {
            restults = iTaskService.saveTask(CommonConstant.NUMBER_ONE, DictConstant.FIRE_SCHOOL_CHECK_NOTICE, 1,
                "", AuthUtil.getUserId(), taskPlaceSelfCheck.getHouseCode(), CommonConstant.NUMBER_FOUR, 1);
        } else {
            restults = iTaskService.saveTask(CommonConstant.NUMBER_ONE, DictConstant.FIRE_SELF_CHECK_NOTICE, 1,
                "", AuthUtil.getUserId(), taskPlaceSelfCheck.getHouseCode(), CommonConstant.NUMBER_SEVEN, 1);
        }
        if (restults <= 0) {
            return false;
        }
        taskPlaceSelfCheck.setTaskId(aLong);
        taskPlaceSelfCheck.setTaskId(restults);
        // 2.保存任务详情
        boolean save = save(taskPlaceSelfCheck);
        if (save) {
@@ -245,17 +251,17 @@
    }
    @Override
    public Integer getCount(String neiCode, int i) {
    public Integer getCount(String neiCode, int status, int type) {
        // 获取请求头中的角色别名
        String roleName = SpringUtils.getRequestParam("roleName");
        if (AuthUtils.isMj(roleName)) {
            return baseMapper.getCount(neiCode, i, AuthUtil.getUserId());
            return baseMapper.getCount(neiCode, status, AuthUtil.getUserId(), type);
        }
        return 0;
    }
    @Override
    public TaskPlaceSelfCheckEntity getDetailByTaskId(Long taskId) {
        return baseMapper.getDetailByTaskId( taskId);
        return baseMapper.getDetailByTaskId(taskId);
    }
}
src/main/java/org/springblade/modules/task/service/impl/TaskSchoolEvenServiceImpl.java
New file
@@ -0,0 +1,43 @@
/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill 庄骞 (smallchill@163.com)
 */
package org.springblade.modules.task.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springblade.modules.task.service.ITaskSchoolEvenService;
import org.springblade.modules.task.vo.TaskSchoolEvenVO;
import org.springblade.modules.task.entity.TaskSchoolEvenEntity;
import org.springblade.modules.task.mapper.TaskSchoolEvenMapper;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.metadata.IPage;
/**
 * 校园事件 服务实现类
 *
 * @author BladeX
 * @since 2024-04-18
 */
@Service
public class TaskSchoolEvenServiceImpl extends ServiceImpl<TaskSchoolEvenMapper, TaskSchoolEvenEntity> implements ITaskSchoolEvenService {
    @Override
    public IPage<TaskSchoolEvenVO> selectTaskSchoolEvenPage(IPage<TaskSchoolEvenVO> page, TaskSchoolEvenVO taskSchoolEven) {
        return page.setRecords(baseMapper.selectTaskSchoolEvenPage(page, taskSchoolEven));
    }
}
src/main/java/org/springblade/modules/task/service/impl/TaskServiceImpl.java
@@ -57,6 +57,8 @@
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.temporal.ChronoUnit;
import java.util.*;
import java.util.stream.Collectors;
@@ -237,22 +239,22 @@
    public Object countTypeNumber(Integer roleType, String neiCode) {
        TaskVO taskVO = new TaskVO();
        Map<String, Object> objectObjectHashMap = new HashMap<>();
        taskVO.setStatus(1);
        taskVO.setUserId(roleType > 0 ? AuthUtil.getUserId() : null);
        taskVO.setStatus(CommonConstant.NUMBER_ONE);
        taskVO.setUserId(roleType > CommonConstant.NUMBER_ZERO ? AuthUtil.getUserId() : null);
        taskVO.setNeiCode(neiCode);
        taskVO.setReportType(5);
        taskVO.setIsDeleted(0);
        taskVO.setReportType(CommonConstant.NUMBER_FIVE);
        taskVO.setIsDeleted(CommonConstant.NUMBER_ZERO);
        CommonParamSet commonParamSet = new CommonParamSet().invoke(TaskVO.class, taskVO);
        // 标签报事-二手交易
        Integer bqsj = baseMapper.selectTaskCount(taskVO, commonParamSet.getRegionChildCodesList(),
            commonParamSet.getIsAdministrator(), commonParamSet.getGridCodeList());
        taskVO.setReportType(1);
        taskVO.setReportType(CommonConstant.NUMBER_ONE);
        // 取保候审
        Integer qbhs = baseMapper.selectTaskCount(taskVO, commonParamSet.getRegionChildCodesList(),
            commonParamSet.getIsAdministrator(), commonParamSet.getGridCodeList());
        // 报事报修
        Integer bsbx = SpringUtils.getBean(ITaskReportForRepairsService.class).getStatistics(roleType > 0 ? AuthUtil.getUserId() : null, neiCode,commonParamSet.getRegionChildCodesList(),
        Integer bsbx = SpringUtils.getBean(ITaskReportForRepairsService.class).getStatistics(roleType > 0 ? AuthUtil.getUserId() : null, neiCode, commonParamSet.getRegionChildCodesList(),
            commonParamSet.getIsAdministrator(), commonParamSet.getGridCodeList());
        // 住户审核
        Integer zhsh = iHouseholdService.statistics(roleType > 0 ? AuthUtil.getUserId() : null, neiCode, 0);
@@ -262,17 +264,19 @@
        houseRentalTenantVO.setAuditStatus(2);
        Integer czsh = iHouseRentalService.getStatisticsCount(houseRentalTenantVO);
        // 场所审核
        Integer cssh = SpringUtils.getBean(IPlaceExtService.class).selectCount(roleType > 0 ? AuthUtil.getUserId() : null, neiCode, 1);
        Integer cssh = SpringUtils.getBean(IPlaceExtService.class).selectCount(roleType > 0 ? AuthUtil.getUserId() : null, neiCode, CommonConstant.NUMBER_ONE);
        // 走访日志
        // 查询网格员对应的网格id
        String gridCode = getGridCode();
        Integer zfrw = SpringUtils.getBean(IGridWorkLogService.class).getGridWorkCountHandleCount(gridCode, 1);
        Integer zfrw = SpringUtils.getBean(IGridWorkLogService.class).getGridWorkCountHandleCount(gridCode, CommonConstant.NUMBER_ONE);
        // 消防自查
        Integer xfzc = SpringUtils.getBean(ITaskPlaceSelfCheckService.class).getCount(neiCode, 1);
        Integer xfzc = SpringUtils.getBean(ITaskPlaceSelfCheckService.class).getCount(neiCode, CommonConstant.NUMBER_ONE, CommonConstant.NUMBER_ONE);
        // 校园检查
        Integer xyjc = SpringUtils.getBean(ITaskPlaceSelfCheckService.class).getCount(neiCode, CommonConstant.NUMBER_ONE, CommonConstant.NUMBER_TWO);
        // 消防隐患整改
        Integer xfyhzg = SpringUtils.getBean(ITaskPlaceRectificationService.class).getCount(neiCode, 1);
        Integer xfyhzg = SpringUtils.getBean(ITaskPlaceRectificationService.class).getCount(neiCode, CommonConstant.NUMBER_ONE);
        // 居住证申请
        Integer jzzsq = residencePermitApplyService.getCount(neiCode, 1);
        Integer jzzsq = residencePermitApplyService.getCount(neiCode, CommonConstant.NUMBER_ONE);
        // 无诈统计
        taskVO.setReportType(6);
        Integer wztj = baseMapper.selectTaskCount(taskVO, commonParamSet.getRegionChildCodesList(),
@@ -289,6 +293,7 @@
        objectObjectHashMap.put("xfyhzg", xfyhzg);// 消防隐患整改
        objectObjectHashMap.put("jzzsq", jzzsq);// 居住证申请
        objectObjectHashMap.put("wztj", wztj);// 无诈
        objectObjectHashMap.put("xyjc", xyjc);// 校园检查
        return objectObjectHashMap;
    }
@@ -676,7 +681,7 @@
     *
     * @param param 传递给发送短信任务的参数,具体用途根据实现而定。
     * @return 返回一个布尔值,通常用于指示任务是否创建成功。
     *         根据实际逻辑需要调整返回值,当前示例中返回值始终为false。
     * 根据实际逻辑需要调整返回值,当前示例中返回值始终为false。
     */
    @Override
    public boolean createResidenceSendSms(String param) {
@@ -695,6 +700,45 @@
        return false; // 根据实际逻辑调整返回值
    }
    @Override
    public boolean createSchoolSendSms(String param) {
        try {
            // 计算当前时间加一天
            LocalDate endDate = LocalDate.now().plusDays(1);
            // 创建表示一天结束时刻的 LocalTime 对象
            LocalTime endOfDayTime = LocalTime.of(23, 59, 59, 999_000_000); // 纳秒精度为999毫微秒,接近最大值
            // 合并得到加一天后的最后时刻的 LocalDateTime
            LocalDateTime endTime = LocalDateTime.of(endDate, endOfDayTime);
            ITaskPlaceSelfCheckService taskPlaceSelfCheckService = SpringUtils.getBean(ITaskPlaceSelfCheckService.class);
            // 查询整改完毕且未发送短信的记录
            List<TaskPlaceSelfCheckEntity> list = taskPlaceSelfCheckService.list(new LambdaQueryWrapper<TaskPlaceSelfCheckEntity>()
                .eq(TaskPlaceSelfCheckEntity::getRectificationFlag, CommonConstant.NUMBER_TWO)
                .eq(TaskPlaceSelfCheckEntity::getSendSmsFlag, CommonConstant.NUMBER_ONE)
                .le(TaskPlaceSelfCheckEntity::getRectificationEndTime, endTime));
            if (list == null || list.isEmpty()) {
                return false;
            }
            // 用于收集成功发送短信并需更新状态的实体列表
            List<TaskPlaceSelfCheckEntity> updatedEntities = new ArrayList<>();
            for (TaskPlaceSelfCheckEntity updatedEntity : list) {
                // 尝试发送短信,发送成功则更新实体状态
                Boolean smsSent = smsSendService.sendNotice(SMS_TEMPLATE_ID, updatedEntity.getId());
                if (smsSent) {
                    updatedEntity.setSendSmsFlag("2"); // 标记为已发送短信
                    updatedEntities.add(updatedEntity); // 加入到需更新的实体列表中
                }
            }
            // 若存在需更新的实体,则批量更新这些实体的状态
            if (!updatedEntities.isEmpty()) {
                taskPlaceSelfCheckService.updateBatchById(updatedEntities);
            }
        } catch (Exception e) {
            // 处理发送短信过程中可能出现的异常,如记录日志
            logger.error("Error occurred while sending SMS: " + e.getMessage(), e);
            return false; // 根据异常处理逻辑决定是否返回false或其他值
        }
        return false; // 根据实际逻辑调整返回值
    }
    /**
     * 获取六个月前的日期。
@@ -703,8 +747,8 @@
     * @return 返回一个LocalDate对象,表示六个月前的日期。
     */
    private LocalDate getSixMonthsAgo() {
        // 获取当前日期并减去6个月
        return LocalDate.now().minus(6, ChronoUnit.MONTHS);
        // 获取当前日期并减去6个月
        return LocalDate.now().minus(6, ChronoUnit.MONTHS);
    }
    /**
@@ -713,35 +757,35 @@
     * @param sixMonthsAgo 六个月前的日期,用于筛选确认时间在六个月之前的申请记录。
     * @return 返回一个包含所有符合条件的居住证申请实体的列表。
     */
        private List<TaskResidencePermitApplyEntity> queryEntitiesToSms(LocalDate sixMonthsAgo) {
            // 使用LambdaQueryWrapper构建查询条件,筛选出确认状态为2(即确认),且未发送过短信(发送短信标志为1),确认时间在指定日期(sixMonthsAgo)之前的所有申请记录。
            return residencePermitApplyService.list(new LambdaQueryWrapper<TaskResidencePermitApplyEntity>()
                .eq(TaskResidencePermitApplyEntity::getConfirmFlag, 2)
                .eq(TaskResidencePermitApplyEntity::getSendSmsFlag, 1)
                .le(TaskResidencePermitApplyEntity::getConfirmTime, sixMonthsAgo));
        }
    private List<TaskResidencePermitApplyEntity> queryEntitiesToSms(LocalDate sixMonthsAgo) {
        // 使用LambdaQueryWrapper构建查询条件,筛选出确认状态为2(即确认),且未发送过短信(发送短信标志为1),确认时间在指定日期(sixMonthsAgo)之前的所有申请记录。
        return residencePermitApplyService.list(new LambdaQueryWrapper<TaskResidencePermitApplyEntity>()
            .eq(TaskResidencePermitApplyEntity::getConfirmFlag, 2)
            .eq(TaskResidencePermitApplyEntity::getSendSmsFlag, 1)
            .le(TaskResidencePermitApplyEntity::getConfirmTime, sixMonthsAgo));
    }
    /**
     * 发送短信并更新实体状态
     *
     * @param entitiesToSms 需要发送短信并更新状态的实体列表,每个实体代表一个居住证申请任务。
     *                       实体列表中每个元素应包含至少一个ID属性,用于标识申请任务。
     *                      实体列表中每个元素应包含至少一个ID属性,用于标识申请任务。
     */
        private void sendSmsAndUpdateEntities(List<TaskResidencePermitApplyEntity> entitiesToSms) {
            List<TaskResidencePermitApplyEntity> updatedEntities = new ArrayList<>(); // 用于收集成功发送短信并需更新状态的实体列表
    private void sendSmsAndUpdateEntities(List<TaskResidencePermitApplyEntity> entitiesToSms) {
        List<TaskResidencePermitApplyEntity> updatedEntities = new ArrayList<>(); // 用于收集成功发送短信并需更新状态的实体列表
            for (TaskResidencePermitApplyEntity entity : entitiesToSms) {
                // 尝试发送短信,发送成功则更新实体状态
                Boolean smsSent = smsSendService.sendNotice(SMS_TEMPLATE_ID, entity.getId());
                if (smsSent) {
                    entity.setSendSmsFlag(2); // 标记为已发送短信
                    updatedEntities.add(entity); // 加入到需更新的实体列表中
                }
            }
            // 若存在需更新的实体,则批量更新这些实体的状态
            if (!updatedEntities.isEmpty()) {
                residencePermitApplyService.updateBatchById(updatedEntities);
        for (TaskResidencePermitApplyEntity entity : entitiesToSms) {
            // 尝试发送短信,发送成功则更新实体状态
            Boolean smsSent = smsSendService.sendNotice(SMS_TEMPLATE_ID, entity.getId());
            if (smsSent) {
                entity.setSendSmsFlag(2); // 标记为已发送短信
                updatedEntities.add(entity); // 加入到需更新的实体列表中
            }
        }
        // 若存在需更新的实体,则批量更新这些实体的状态
        if (!updatedEntities.isEmpty()) {
            residencePermitApplyService.updateBatchById(updatedEntities);
        }
    }
}
src/main/java/org/springblade/modules/task/vo/TaskSchoolEvenVO.java
New file
@@ -0,0 +1,34 @@
/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill 庄骞 (smallchill@163.com)
 */
package org.springblade.modules.task.vo;
import org.springblade.modules.task.entity.TaskSchoolEvenEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
 * 校园事件 视图实体类
 *
 * @author BladeX
 * @since 2024-04-18
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class TaskSchoolEvenVO extends TaskSchoolEvenEntity {
    private static final long serialVersionUID = 1L;
}
src/main/java/org/springblade/modules/task/wrapper/TaskSchoolEvenWrapper.java
New file
@@ -0,0 +1,51 @@
/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill 庄骞 (smallchill@163.com)
 */
package org.springblade.modules.task.wrapper;
import org.springblade.core.mp.support.BaseEntityWrapper;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.modules.task.vo.TaskSchoolEvenVO;
import org.springblade.modules.task.entity.TaskSchoolEvenEntity;
import java.util.Objects;
/**
 * 校园事件 包装类,返回视图层所需的字段
 *
 * @author BladeX
 * @since 2024-04-18
 */
public class TaskSchoolEvenWrapper extends BaseEntityWrapper<TaskSchoolEvenEntity, TaskSchoolEvenVO>  {
    public static TaskSchoolEvenWrapper build() {
        return new TaskSchoolEvenWrapper();
     }
    @Override
    public TaskSchoolEvenVO entityVO(TaskSchoolEvenEntity taskSchoolEven) {
        TaskSchoolEvenVO taskSchoolEvenVO = Objects.requireNonNull(BeanUtil.copy(taskSchoolEven, TaskSchoolEvenVO.class));
        //User createUser = UserCache.getUser(taskSchoolEven.getCreateUser());
        //User updateUser = UserCache.getUser(taskSchoolEven.getUpdateUser());
        //taskSchoolEvenVO.setCreateUserName(createUser.getName());
        //taskSchoolEvenVO.setUpdateUserName(updateUser.getName());
        return taskSchoolEvenVO;
    }
}
src/main/java/org/springblade/xxljob/jobhandler/LabelHandleJob.java
@@ -55,7 +55,6 @@
    @XxlJob("residenceSendSmsJobHandler")
    public void residenceJobHandler (String param){
        XxlJobHelper.log("开始执行任务...创建居住证发送短信定时任务");
        // 创建居住证发送短信定时任务
        boolean result = taskService.createResidenceSendSms(param);
        XxlJobHelper.log("任务响应结果..." + result);
@@ -63,4 +62,17 @@
        XxlJobHelper.log("结束自动创建任务...");
    }
    /**
     * 创建校园安全发送短信定时任务
     */
    @XxlJob("schoolSendSmsJobHandler")
    public void schoolJobHandler (String param){
        XxlJobHelper.log("开始执行任务...创建校园安全发送短信定时任务");
        // 创建居住证发送短信定时任务
        boolean result = taskService.createSchoolSendSms(param);
        XxlJobHelper.log("任务响应结果..." + result);
        // 创建居住证发送短信定时任务
        XxlJobHelper.log("结束自动创建任务...");
    }
}