src/main/java/org/springblade/common/constant/CommonConstant.java
@@ -97,5 +97,9 @@ String RESIDENT = "居民"; int REPORT_TYPE_SECONDHAND_TRADE = 5; // 二手车 int REPORT_TYPE_FIRE_INSPECTION = 2; // 自查 int REPORT_TYPE_NO_FRAUD = 6; // 无诈 } src/main/java/org/springblade/modules/task/controller/TaskNoFraudReportingController.java
@@ -21,8 +21,11 @@ import io.swagger.annotations.ApiParam; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import lombok.AllArgsConstructor; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import org.springblade.core.excel.util.ExcelUtil; import org.springblade.core.log.annotation.ApiLog; import org.springblade.core.log.logger.BladeLogger; import org.springblade.core.mp.support.Condition; @@ -30,10 +33,13 @@ import org.springblade.core.tool.api.R; import org.springblade.core.tool.jackson.JsonUtil; import org.springblade.core.tool.utils.BeanUtil; import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.Func; import org.springblade.modules.task.dto.TaskNoFraudReportingDTO; import org.springblade.modules.task.dto.TaskPlaceSelfCheckDTO; import org.springblade.modules.task.entity.TaskPlaceSelfCheckEntity; import org.springblade.modules.task.excel.TaskNoExplosionExcel; import org.springblade.modules.task.excel.TaskPlaceSelfCheckExcel; import org.springblade.modules.task.service.ITaskNoFraudReportingService; import org.springblade.modules.task.vo.TaskPlaceSelfCheckVO; import org.springblade.modules.task.wrapper.TaskNoFraudReportingWrapper; @@ -42,6 +48,8 @@ import org.springblade.modules.task.entity.TaskNoFraudReportingEntity; import org.springblade.modules.task.vo.TaskNoFraudReportingVO; import org.springblade.core.boot.ctrl.BladeController; import java.util.List; /** * 无炸上报任务表 控制器 @@ -153,5 +161,19 @@ return R.status(taskNoFraudReportingService.removeBatchByIds(Func.toLongList(ids))); } /** * 无诈导出 * @param taskNoFraudReportingVO */ @GetMapping("export-taskNoFraudReporting") @ApiLog("无诈导出") @ApiOperationSupport(order = 9) @ApiOperation(value = "无诈导出", notes = "") public void exportTaskPlaceSelfCheck(TaskNoFraudReportingVO taskNoFraudReportingVO, HttpServletResponse response) { bladeLogger.info("无诈导出", JsonUtil.toJson(taskNoFraudReportingVO)); List<TaskNoExplosionExcel> list = taskNoFraudReportingService.exportTaskNoFraudReporting(taskNoFraudReportingVO); ExcelUtil.export(response, "无诈导出" + DateUtil.time(), "记录表", list, TaskNoExplosionExcel.class); } } src/main/java/org/springblade/modules/task/excel/TaskNoExplosionExcel.java
New file @@ -0,0 +1,71 @@ package org.springblade.modules.task.excel; import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.write.style.ColumnWidth; import com.alibaba.excel.annotation.write.style.ContentRowHeight; import com.alibaba.excel.annotation.write.style.HeadRowHeight; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.springblade.common.excel.ExcelDictConverter; import org.springblade.common.excel.ExcelDictItem; import java.io.Serializable; /** * 消费自查检查 * * @author zhongrj * @date 2024/02/22 */ @Data @ColumnWidth(25) @HeadRowHeight(20) @ContentRowHeight(18) public class TaskNoExplosionExcel implements Serializable { private static final long serialVersionUID = 2L; @ExcelProperty(value = "场所名称") private String placeName; @ExcelProperty(value = "场所地址") private String location; @ExcelProperty( value = "无诈类别",converter = ExcelDictConverter.class) @ExcelDictItem(type = "noExplosionCategory") private String noExplosionCategory; /** * 街道名称 */ @ExcelProperty("所属街道") private String streetName; @ExcelProperty(value = "所属社区") private String communityName; @ExcelProperty(value = "所属网格") private String gridName; // @ExcelProperty( value = "场所隐患") // private String remark; // @ApiModelProperty(value = "上报数量", example = "") // private Integer number; @ExcelProperty(value = "场所负责人") private String principal; @ExcelProperty(value = "场所负责人电话") private String principalPhone; @ExcelProperty(value = "创建时间") private String createTime; @ExcelProperty( value = "审核状态",converter = ExcelDictConverter.class) @ExcelDictItem(type = "reviewStatus") private String status; } src/main/java/org/springblade/modules/task/excel/TaskPlaceSelfCheckExcel.java
@@ -56,7 +56,8 @@ @ExcelProperty(value = "创建时间") private String createTime; @ExcelProperty(value = "审核状态") @ExcelProperty( value = "审核状态",converter = ExcelDictConverter.class) @ExcelDictItem(type = "reviewStatus") private String status; src/main/java/org/springblade/modules/task/mapper/TaskNoFraudReportingMapper.java
@@ -19,6 +19,7 @@ import org.apache.ibatis.annotations.Param; import org.springblade.modules.task.dto.TaskNoFraudReportingDTO; import org.springblade.modules.task.entity.TaskNoFraudReportingEntity; import org.springblade.modules.task.excel.TaskNoExplosionExcel; import org.springblade.modules.task.vo.TaskNoFraudReportingVO; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -62,4 +63,9 @@ * @return 无炸上报任务表集合 */ public List<TaskNoFraudReportingDTO> selectTaskNoFraudReportingList(TaskNoFraudReportingDTO taskNoFraudReportingDTO); List<TaskNoExplosionExcel> selectTaskNoFraudReporting(@Param("place") TaskNoFraudReportingVO taskNoFraudReporting, @Param("isAdministrator") Integer isAdministrator, @Param("regionChildCodesList") List<String> regionChildCodesList, @Param("gridCodeList") List<String> gridCodeList); } src/main/java/org/springblade/modules/task/mapper/TaskNoFraudReportingMapper.xml
@@ -24,7 +24,19 @@ <select id="selectTaskNoFraudReportingPage" resultMap="taskNoFraudReportingResultMap"> select jtnfr.* from jczz_task_no_fraud_reporting jtnfr select jtnfr.*, jp.id jpid, jp.place_name, jp.location, jg.grid_name, jp.principal, jp.principal_phone, jp.no_explosion_category, br.town_name as streetName, br.village_name as communityName, bu.`name`, jpe.legal_tel, jpe.legal_person from jczz_task_no_fraud_reporting jtnfr LEFT JOIN jczz_place jp ON jtnfr.house_code = jp.house_code and jp.is_deleted = 0 LEFT JOIN jczz_grid jg ON jg.grid_code = jp.grid_code and jg.is_deleted = 0 LEFT JOIN blade_region br ON br.`code` = jg.community_code @@ -44,6 +56,25 @@ <if test="place.imageUrls != null and place.imageUrls != ''">and jtnfr.image_urls = #{place.imageUrls}</if> <if test="place.status != null ">and jtnfr.status = #{place.status}</if> <if test="place.deleteFlag != null ">and jtnfr.delete_flag = #{place.deleteFlag}</if> <if test="place.noExplosionCategory != null ">and jp.no_explosion_category = #{place.noExplosionCategory}</if> <if test="place.placeName != null and place.placeName != ''"> and jp.place_name like concat('%', #{place.placeName},'%') </if> <if test="place.principal != null and place.principal != ''"> and jp.principal like concat('%', #{place.principal},'%') </if> <if test="place.streetName!=null and place.streetName!=''"> and br.town_name like concat('%', #{place.streetName},'%') </if> <if test="place.communityName!=null and place.communityName!=''"> and br.village_name like concat('%', #{place.communityName},'%') </if> <if test="place.gridName!=null and place.gridName!=''"> and jg.grid_name like concat('%', #{place.gridName},'%') </if> <if test="isAdministrator==2"> <choose> @@ -221,5 +252,119 @@ </where> </select> <select id="selectTaskNoFraudReporting" resultType="org.springblade.modules.task.excel.TaskNoExplosionExcel"> select jtnfr.*, jp.id jpid, jp.place_name, jp.location, jg.grid_name, jp.principal, jp.principal_phone, jp.no_explosion_category, br.town_name as streetName, br.village_name as communityName, bu.`name`, jpe.legal_tel, jpe.legal_person from jczz_task_no_fraud_reporting jtnfr LEFT JOIN jczz_place jp ON jtnfr.house_code = jp.house_code and jp.is_deleted = 0 LEFT JOIN jczz_grid jg ON jg.grid_code = jp.grid_code and jg.is_deleted = 0 LEFT JOIN blade_region br ON br.`code` = jg.community_code LEFT JOIN jczz_place_ext jpe ON jpe.place_id = jp.id and jpe.is_deleted = 0 LEFT JOIN blade_user bu ON bu.id = jtnfr.create_user and bu.is_deleted = 0 LEFT JOIN jczz_police_affairs_grid jpag on jp.jw_grid_code= jpag.jw_grid_code and jpag.is_deleted = 0 <where> <if test="place.id != null ">and jtnfr.id = #{place.id}</if> <if test="place.taskId != null ">and jtnfr.task_id = #{place.taskId}</if> <if test="place.taskName != null and place.taskName != ''">and jtnfr.task_name = #{place.taskName}</if> <if test="place.placeName != null and place.placeName != ''">and jtnfr.place_name = #{place.placeName}</if> <if test="place.remark != null and place.remark != ''">and jtnfr.remark = #{place.remark}</if> <if test="place.updateTime != null ">and jtnfr.update_time = #{place.updateTime}</if> <if test="place.createTime != null ">and jtnfr.create_time = #{place.createTime}</if> <if test="place.houseCode != null and place.houseCode != ''">and jtnfr.house_code = #{place.houseCode}</if> <if test="place.createUser != null ">and jtnfr.create_user = #{createUser}</if> <if test="place.imageUrls != null and place.imageUrls != ''">and jtnfr.image_urls = #{place.imageUrls}</if> <if test="place.status != null ">and jtnfr.status = #{place.status}</if> <if test="place.deleteFlag != null ">and jtnfr.delete_flag = #{place.deleteFlag}</if> <if test="place.noExplosionCategory != null ">and jp.no_explosion_category = #{place.noExplosionCategory}</if> <if test="place.placeName != null and place.placeName != ''"> and jp.place_name like concat('%', #{place.placeName},'%') </if> <if test="place.principal != null and place.principal != ''"> and jp.principal like concat('%', #{place.principal},'%') </if> <if test="place.streetName!=null and place.streetName!=''"> and br.town_name like concat('%', #{place.streetName},'%') </if> <if test="place.communityName!=null and place.communityName!=''"> and br.village_name like concat('%', #{place.communityName},'%') </if> <if test="place.gridName!=null and place.gridName!=''"> and jg.grid_name like concat('%', #{place.gridName},'%') </if> <if test="isAdministrator==2"> <choose> <when test="place.roleName != null and place.roleName != ''"> <if test="place.roleName=='wgy'"> <choose> <when test="gridCodeList !=null and gridCodeList.size()>0"> and jp.grid_code in <foreach collection="gridCodeList" item="code" open="(" close=")" separator=","> #{code} </foreach> </when> <otherwise> and jp.grid_code in ('') </otherwise> </choose> </if> <if test="place.roleName=='mj'"> <choose> <when test="regionChildCodesList !=null and regionChildCodesList.size()>0"> and jpag.community_code in <foreach collection="regionChildCodesList" item="code" open="(" close=")" separator=","> #{code} </foreach> </when> <otherwise> and jpag.community_code in ('') </otherwise> </choose> </if> </when> <otherwise> <choose> <when test="regionChildCodesList !=null and regionChildCodesList.size()>0"> and ( jg.grid_code in <foreach collection="regionChildCodesList" item="code" open="(" close=")" separator=","> #{code} </foreach> or jpag.community_code in <foreach collection="regionChildCodesList" item="code" open="(" close=")" separator=","> #{code} </foreach> ) </when> <otherwise> </otherwise> </choose> </otherwise> </choose> </if> </where> order by jtnfr.create_time desc </select> </mapper> src/main/java/org/springblade/modules/task/service/ITaskNoFraudReportingService.java
@@ -20,9 +20,12 @@ import org.springblade.modules.task.dto.TaskNoFraudReportingDTO; import org.springblade.modules.task.dto.TaskPlaceSelfCheckDTO; import org.springblade.modules.task.entity.TaskNoFraudReportingEntity; import org.springblade.modules.task.excel.TaskNoExplosionExcel; import org.springblade.modules.task.vo.TaskNoFraudReportingVO; import org.springblade.core.mp.base.BaseService; import com.baomidou.mybatisplus.core.metadata.IPage; import java.util.List; /** * 无炸上报任务表 服务类 @@ -45,4 +48,6 @@ Boolean saveNoFraudReporting(TaskNoFraudReportingVO taskNoFraudReporting); TaskNoFraudReportingVO selectTaskNoFraudReportingById(TaskNoFraudReportingEntity taskNoFraudReporting); List<TaskNoExplosionExcel> exportTaskNoFraudReporting(TaskNoFraudReportingVO taskNoFraudReportingVO); } src/main/java/org/springblade/modules/task/service/impl/TaskNoFraudReportingServiceImpl.java
@@ -24,9 +24,11 @@ import org.springblade.common.utils.SpringUtils; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.utils.SpringUtil; import org.springblade.modules.system.entity.DictBiz; import org.springblade.modules.task.dto.TaskNoFraudReportingDTO; import org.springblade.modules.task.dto.TaskPlaceSelfCheckDTO; import org.springblade.modules.task.entity.TaskPlaceRecordEntity; import org.springblade.modules.task.excel.TaskNoExplosionExcel; import org.springblade.modules.task.mapper.TaskNoFraudReportingMapper; import org.springblade.modules.task.service.ITaskNoFraudReportingService; import org.springblade.modules.task.entity.TaskNoFraudReportingEntity; @@ -59,6 +61,16 @@ commonParamSet.getIsAdministrator(), commonParamSet.getRegionChildCodesList(), commonParamSet.getGridCodeList()); // 上报数量 for (TaskNoFraudReportingVO taskNoFraudReportingVO : taskNoFraudReportingVOS) { int number = 0; for (TaskPlaceRecordVO patrolRecord : taskNoFraudReportingVO.getTaskPlaceRecordVOList()) { if (StringUtils.isNotBlank(patrolRecord.getImageUrls())) { number++; } } taskNoFraudReportingVO.setNumber(number); } return page.setRecords(taskNoFraudReportingVOS); } @@ -98,4 +110,15 @@ } return false; } @Override public List<TaskNoExplosionExcel> exportTaskNoFraudReporting(TaskNoFraudReportingVO taskNoFraudReportingVO) { CommonParamSet commonParamSet = new CommonParamSet().invoke(TaskNoFraudReportingVO.class, taskNoFraudReportingVO); List<TaskNoExplosionExcel> taskNoExplosionExcels = baseMapper.selectTaskNoFraudReporting( taskNoFraudReportingVO, commonParamSet.getIsAdministrator(), commonParamSet.getRegionChildCodesList(), commonParamSet.getGridCodeList()); return taskNoExplosionExcels; } } src/main/java/org/springblade/modules/task/service/impl/TaskServiceImpl.java
@@ -24,6 +24,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.commons.lang3.StringUtils; import org.springblade.common.constant.CommonConstant; import org.springblade.common.constant.DictConstant; import org.springblade.common.param.CommonParamSet; import org.springblade.common.utils.SpringUtils; @@ -604,33 +605,47 @@ } /** * 任务审核 * @param task * @return * 审核任务。 * 根据任务的报告类型,更新相应的任务状态,并触发相应的事件更新。 * * @param task 任务实体,包含任务信息和报告类型。 * @return 返回审核结果,成功为true,失败为false。 */ @Override public Boolean examine(TaskEntity task) { // 二手交易 if (task.getReportType().equals(5)) { boolean b = updateById(task); if (b) { if (task == null || task.getReportType() == null) { // 检查任务和报告类型是否为空,若为空则直接返回false return false; } // 根据任务报告类型,更新任务状态并触发相应的事件更新 boolean result = updateById(task); if (task.getReportType().equals(CommonConstant.REPORT_TYPE_SECONDHAND_TRADE)) { // 如果报告类型匹配,尝试更新任务标签报告事件状态 if (result) { ITaskLabelReportingEventService bean = SpringUtils.getBean(ITaskLabelReportingEventService.class); return bean.update(Wrappers.<TaskLabelReportingEventEntity>lambdaUpdate() .set(TaskLabelReportingEventEntity::getConfirmFlag, task.getStatus()) .eq(TaskLabelReportingEventEntity::getTaskId, task.getId())); } } // 消防只查 if (task.getReportType().equals(2)) { boolean b = updateById(task); if (b) { } else if (task.getReportType().equals(CommonConstant.REPORT_TYPE_FIRE_INSPECTION)) { // 如果报告类型为消防自查,尝试更新消防自查状态 if (result) { ITaskPlaceSelfCheckService bean = SpringUtils.getBean(ITaskPlaceSelfCheckService.class); return bean.update(Wrappers.<TaskPlaceSelfCheckEntity>lambdaUpdate() .set(TaskPlaceSelfCheckEntity::getStatus, task.getStatus()) .eq(TaskPlaceSelfCheckEntity::getTaskId, task.getId())); } } else if (task.getReportType().equals(CommonConstant.REPORT_TYPE_NO_FRAUD)) { // 如果报告类型为无诈,尝试更新无诈报告状态 if (result) { ITaskNoFraudReportingService bean = SpringUtils.getBean(ITaskNoFraudReportingService.class); return bean.update(Wrappers.<TaskNoFraudReportingEntity>lambdaUpdate() .set(TaskNoFraudReportingEntity::getStatus, task.getStatus()) .eq(TaskNoFraudReportingEntity::getTaskId, task.getId())); } } // 如果没有匹配的报告类型,返回false return false; } } src/main/java/org/springblade/modules/task/vo/TaskNoFraudReportingVO.java
@@ -16,6 +16,7 @@ */ package org.springblade.modules.task.vo; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import org.springblade.modules.task.entity.TaskNoFraudReportingEntity; import lombok.Data; @@ -34,9 +35,72 @@ public class TaskNoFraudReportingVO extends TaskNoFraudReportingEntity { private static final long serialVersionUID = 1L; @ApiModelProperty(value = "隐患项目", example = "") @ApiModelProperty(value = "上报项目", example = "") private List<TaskPlaceRecordVO> taskPlaceRecordVOList; @ApiModelProperty(value = "场所名称", example = "") private String placeName; @ApiModelProperty(value = "场所地址", example = "") private String location; @ApiModelProperty(value = "负责人", example = "") private String principal; @ApiModelProperty(value = "网格名称", example = "") private String gridName; @ApiModelProperty(value = "负责人电话", example = "") private String principalPhone; @ApiModelProperty(value = "街道名称", example = "") private String streetName; @ApiModelProperty(value = "社区名称", example = "") private String communityName; @ApiModelProperty(value = "法人", example = "") private String legalPerson; @ApiModelProperty(value = "法人电话", example = "") private String legalTel; @ApiModelProperty(value = "检查人名称", example = "") private String name; @ApiModelProperty(value = "上报数量", example = "") private Integer number; @ApiModelProperty(value = "机构名称", example = "") private String deptName; @ApiModelProperty(value = "无诈类别", example = "") private String noExplosionCategory; // @ApiModelProperty(value = "隐患问题", example = "") // private String hiddenDanger; @ApiModelProperty(value = "不通过原因", example = "") private String reasonFailure; @ApiModelProperty(value = "地址编码", example = "") private String addressName; @ApiModelProperty(value = "开始时间", example = "") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private String startTime; /** 创建时间 */ @ApiModelProperty(value = "结束时间", example = "") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private String endTime; // 角色名称 @ApiModelProperty(value = "角色名称", example = "") private String roleName; // 社区编号 @ApiModelProperty(value = "社区编号", example = "") private String communityCode; }