Browse Source

增加app隐患问题controller

jiawuxian 1 year ago
parent
commit
3e0d5045ce

+ 12 - 1
project_data/sql/0.0.5/soc/soc.sql

@@ -126,4 +126,15 @@ INSERT INTO `sys_menu` (`id`, `menu_name`, `parent_id`, `order_num`, `path`, `co
 VALUES (01719892877586239490, '外包履职评价统计表', 1719287834364436482, 2, 'evaluateTable', 'evaluateTable/index', NULL, 1, 1, 'C', '0', '0', 'core:evaluateTask:statistics', '1', 'chart', NULL, '超级管理员', '2023-09-21 10:37:52', '超级管理员', '2023-09-22 09:42:43', '');
 
 
-UPDATE sys_menu set menu_type='C',perms='appquestion:list' WHERE platform_type=0 and menu_name='隐患问题清单';
+UPDATE sys_menu set menu_type='C',perms='appquestion:list' WHERE platform_type=0 and menu_name='隐患问题清单';
+
+DELETE from `sys_dict_type`  WHERE `dict_type`='app_question_status';
+DELETE from `sys_dict_data`  WHERE `dict_type`='app_question_status';
+
+INSERT INTO `sys_dict_type` ( `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES ( 'APP隐患问题状态', 'app_question_status', '0', '超级管理员', '2023-12-19 15:40:55', '', NULL, NULL);
+INSERT INTO `sys_dict_data` ( `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES ( 0, '待确认', '0', 'app_question_status', NULL, 'default', 'N', '0', '超级管理员', '2023-12-19 15:42:47', '', NULL, NULL);
+INSERT INTO `sys_dict_data` ( `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES ( 1, '提出异议', '1', 'app_question_status', NULL, 'default', 'N', '0', '超级管理员', '2023-12-19 15:42:59', '', NULL, NULL);
+INSERT INTO `sys_dict_data` ( `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES ( 3, '已关闭', '3', 'app_question_status', NULL, 'default', 'N', '0', '超级管理员', '2023-12-19 15:43:23', '超级管理员', '2023-12-19 15:43:30', NULL);
+INSERT INTO `sys_dict_data` ( `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES ( 10, '待整改', '10', 'app_question_status', NULL, 'default', 'N', '0', '超级管理员', '2023-12-19 15:43:55', '', NULL, NULL);
+INSERT INTO `sys_dict_data` ( `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES ( 11, '已整改', '11', 'app_question_status', NULL, 'default', 'N', '0', '超级管理员', '2023-12-19 15:44:07', '超级管理员', '2023-12-19 15:44:31', NULL);
+INSERT INTO `sys_dict_data` ( `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES ( 12, '已逾期', '12', 'app_question_status', NULL, 'default', 'N', '0', '超级管理员', '2023-12-19 15:44:18', '', NULL, NULL);

+ 96 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/question/controller/AppQuestionController.java

@@ -0,0 +1,96 @@
+package com.xunmei.core.question.controller;
+
+import com.xunmei.common.core.web.controller.BaseController;
+import com.xunmei.common.core.web.domain.AjaxResult;
+import com.xunmei.common.core.web.page.TableDataInfo;
+import com.xunmei.common.security.annotation.RequiresPermissions;
+import com.xunmei.core.question.domain.Question;
+import com.xunmei.core.question.dto.AppQuestionPageDto;
+import com.xunmei.core.question.dto.QuestionConfirmDto;
+import com.xunmei.core.question.dto.QuestionPageDto;
+import com.xunmei.core.question.dto.QuestionReformDto;
+import com.xunmei.core.question.service.IAppQuestionService;
+import com.xunmei.core.question.service.IQuestionReformService;
+import com.xunmei.core.question.service.IQuestionService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * 隐患问题清单Controller
+ *
+ * @author xunmei
+ * @date 2023-09-12
+ */
+@Api(tags = {"隐患问题清单"})
+@RestController
+@RequestMapping("/appquestion")
+public class AppQuestionController extends BaseController {
+    @Autowired
+    private IQuestionService questionService;
+
+    @Autowired
+    private IQuestionReformService questionReformService;
+
+    @Autowired
+    private IAppQuestionService appQuestionService;
+    /**
+     * 查询隐患问题清单列表
+     */
+    @ApiOperation(value = "查询列表")
+    @RequiresPermissions("appquestion:list")
+    @GetMapping("/list")
+    public TableDataInfo<Question> questionPage(AppQuestionPageDto query) {
+        return appQuestionService.selectPage(query);
+    }
+
+    /**
+     * 获取隐患问题清单详细信息
+     */
+    @ApiOperation(value = "获取详细信息")
+    @RequiresPermissions("appquestion:list")
+    @GetMapping(value = "/info/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return success(questionService.selectQuestionById(id));
+    }
+
+    /**
+     * 确认
+     *
+     * @return
+     */
+    @ApiOperation(value = "隐患确认")
+    @PutMapping("/confirm/{id}")
+    @RequiresPermissions("appquestion:list")
+    public AjaxResult confirm(@RequestBody QuestionConfirmDto confirmDto, @PathVariable Long id) {
+        return AjaxResult.success(questionService.confirm(confirmDto));
+    }
+
+    /**
+     * 确认
+     *
+     * @return
+     */
+    @ApiOperation(value = "异议审批")
+    @RequiresPermissions("appquestion:list")
+    @PutMapping("/confirmDissent/{id}")
+    public AjaxResult confirmDissent(@RequestBody QuestionConfirmDto confirmDto, @PathVariable Long id) {
+        return AjaxResult.success(questionService.confirmDissent(confirmDto));
+    }
+
+    /**
+     * 整改
+     *
+     * @param reformDto
+     * @return
+     */
+    @ApiOperation(value = "整改")
+    @RequiresPermissions("appquestion:list")
+    @PutMapping("/reform/{id}")
+    public AjaxResult reform(@RequestBody QuestionReformDto reformDto, @PathVariable Long id) {
+        return AjaxResult.success(questionReformService.reform(reformDto));
+    }
+}

+ 24 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/question/dto/AppQuestionPageDto.java

@@ -0,0 +1,24 @@
+package com.xunmei.core.question.dto;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.xunmei.common.core.web.domain.PageDto;
+import com.xunmei.core.question.vo.QuestionPageVo;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class AppQuestionPageDto extends PageDto<QuestionPageVo> {
+    @ApiModelProperty(value ="搜索关键字" )
+    private String searchKey;
+
+    @ApiModelProperty(value ="确认状态" )
+    private Integer status;
+
+    @ApiModelProperty(value = "整改日期")
+    private Date reformDate;
+
+    @JsonIgnore
+    private Date reformDateEnd;
+}

+ 0 - 3
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/question/dto/QuestionPageDto.java

@@ -23,7 +23,4 @@ public class QuestionPageDto extends PageDto<QuestionPageVo> {
 
     @ApiModelProperty(value = "提交日期范围")
     private Date[] submitRange;
-
-    @ApiModelProperty(value = "整改日期")
-    private Date reformDate;
 }

+ 4 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/question/mapper/QuestionMapper.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.xunmei.common.core.domain.safetyindex.domain.CoreSafetyExceptionData;
 import com.xunmei.core.question.domain.Question;
+import com.xunmei.core.question.dto.AppQuestionPageDto;
 import com.xunmei.core.question.dto.QuestionExportDto;
 import com.xunmei.core.question.dto.QuestionPageDto;
 import com.xunmei.core.question.dto.ReformPageDto;
@@ -26,6 +27,9 @@ public interface QuestionMapper extends BaseMapper<Question> {
     Page<Question> pageQuestion(@Param("page") Page<Question> page,@Param("params") QuestionPageDto query ,@Param("today") Date today);
 
     Page<Question> pageReform(@Param("page") Page<Question> page,@Param("params") ReformPageDto query ,@Param("today") Date today);
+
+    Page<Question> pageApp(@Param("page") Page<Question> page, @Param("params") AppQuestionPageDto query , @Param("today") Date today);
+
     /**
      * 查询隐患问题清单
      *

+ 33 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/question/service/IAppQuestionService.java

@@ -0,0 +1,33 @@
+package com.xunmei.core.question.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.xunmei.common.core.domain.panel.dto.PanelListDto;
+import com.xunmei.common.core.domain.panel.vo.PanelListVo;
+import com.xunmei.common.core.domain.panel.vo.WebPanelResult;
+import com.xunmei.common.core.web.page.TableDataInfo;
+import com.xunmei.core.question.QuestionSrcType;
+import com.xunmei.core.question.domain.Question;
+import com.xunmei.core.question.dto.AppQuestionPageDto;
+import com.xunmei.core.question.dto.QuestionConfirmDto;
+import com.xunmei.core.question.dto.QuestionPageDto;
+import com.xunmei.core.question.vo.QuestionVo;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 隐患问题清单Service接口
+ *
+ * @author xunmei
+ * @date 2023-09-12
+ */
+public interface IAppQuestionService extends IService<Question> {
+    /**
+     * 查询隐患问题清单分页数据
+     *
+     * @param query  查询条件对象
+     * @return Page
+     */
+    TableDataInfo<Question> selectPage(AppQuestionPageDto query);
+}

+ 98 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/question/service/impl/AppQuestionServiceImpl.java

@@ -0,0 +1,98 @@
+package com.xunmei.core.question.service.impl;
+
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.util.CollectionUtils;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.xunmei.common.core.constant.DictConstants;
+import com.xunmei.common.core.constant.SecurityConstants;
+import com.xunmei.common.core.domain.panel.dto.PanelListDto;
+import com.xunmei.common.core.domain.panel.enums.PanelTypeEnums;
+import com.xunmei.common.core.domain.panel.vo.PanelListVo;
+import com.xunmei.common.core.domain.panel.vo.WebPanelResult;
+import com.xunmei.common.core.exception.ServiceException;
+import com.xunmei.common.core.web.page.TableDataInfo;
+import com.xunmei.common.security.utils.DictUtils;
+import com.xunmei.common.security.utils.SecurityUtils;
+import com.xunmei.core.question.QuestionConfirmEnum;
+import com.xunmei.core.question.QuestionReformEnum;
+import com.xunmei.core.question.QuestionSrcType;
+import com.xunmei.core.question.QuestionStepEnum;
+import com.xunmei.core.question.domain.Question;
+import com.xunmei.core.question.domain.QuestionFlow;
+import com.xunmei.core.question.dto.AppQuestionPageDto;
+import com.xunmei.core.question.dto.QuestionConfirmDto;
+import com.xunmei.core.question.dto.QuestionExportDto;
+import com.xunmei.core.question.dto.QuestionPageDto;
+import com.xunmei.core.question.mapper.QuestionFlowMapper;
+import com.xunmei.core.question.mapper.QuestionMapper;
+import com.xunmei.core.question.service.IAppQuestionService;
+import com.xunmei.core.question.service.IQuestionService;
+import com.xunmei.core.question.vo.QuestionFlowVo;
+import com.xunmei.core.question.vo.QuestionVo;
+import com.xunmei.core.resumption.service.IAppResumptionDataRemarkimgService;
+import com.xunmei.core.safetyCheck.domain.CoreSafetyTaskDataRemarkimg;
+import com.xunmei.core.safetyCheck.service.ICoreSafetyTaskDataRemarkimgService;
+import com.xunmei.system.api.RemoteOrgService;
+import com.xunmei.system.api.RemoteUserService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 隐患问题清单Service业务层处理
+ *
+ * @author xunmei
+ * @date 2023-09-12
+ */
+@Service
+@Slf4j
+public class AppQuestionServiceImpl extends ServiceImpl<QuestionMapper, Question> implements IAppQuestionService {
+    @Autowired
+    private QuestionFlowMapper questionFlowMapper;
+    @Autowired
+    private RemoteOrgService orgService;
+
+    @Autowired
+    RemoteUserService remoteUserService;
+
+    @Autowired
+    private IAppResumptionDataRemarkimgService appResumptionDataRemarkimgService;
+
+    @Autowired
+    private ICoreSafetyTaskDataRemarkimgService iCoreSafetyTaskDataRemarkimgService;
+
+    @Override
+    public TableDataInfo<Question> selectPage(AppQuestionPageDto query) {
+        //未删除
+        Page<Question> page = query.toPage();
+        if(ObjectUtil.isNotNull(query.getReformDate())){
+            query.setReformDateEnd(DateUtil.endOfDay(query.getReformDate()));
+        }
+        //获取数据
+        page = baseMapper.pageApp(page, query, DateUtil.beginOfDay(new Date()));
+        page.getRecords().forEach(r -> {
+            if (ObjectUtil.notEqual(r.getConfirmStatus(), QuestionConfirmEnum.Closed.getValue()) &&
+                    r.getReformDeadline().before(DateUtil.beginOfDay(new Date()))) {
+                //任务未结束并且过了整改结束日期
+                r.setOverdueStatus(QuestionConfirmEnum.OverDue.getValue());
+            }
+        });
+//        Page<QuestionPageDto> r =page.
+        //抓换为TableDataInfo适配前端
+        return TableDataInfo.build(page);
+    }
+}

+ 5 - 51
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/question/service/impl/QuestionServiceImpl.java

@@ -84,58 +84,12 @@ public class QuestionServiceImpl extends ServiceImpl<QuestionMapper, Question> i
         //未删除
         Page<Question> page = query.toPage();
 
-        //查询条件
-//        LambdaQueryWrapper<Question> wrapper = new LambdaQueryWrapper<>();
-//        //下穿
-//        if (query.getCheckSub()) {
-//            List<Long> ids = orgService.selectCheckSubOrgIdList(query.getOrgId(), SecurityConstants.INNER);
-//            //添加in条件
-//            wrapper.in(Question::getOrgId, ids);
-//        } else {
-//            wrapper.eq(Question::getOrgId, query.getOrgId());
-//        }
-//
-//        if (ObjectUtil.isNotEmpty(query.getConfirmStatus())) {
-//            if (ObjectUtil.equal(query.getConfirmStatus(), QuestionConfirmEnum.OverDue.getValue())) {
-//                wrapper.ne(Question::getConfirmStatus, QuestionConfirmEnum.Closed.getValue());
-//                wrapper.lt(Question::getReformDeadline, DateUtil.beginOfDay(new Date()));
-//            } else {
-//                wrapper.eq(Question::getConfirmStatus, query.getConfirmStatus());
-//            }
-//        }
-//
-//
-        if (ObjectUtil.isNotNull(query.getReformDate())) {
-            query.setSubmitRange(new Date[2]);
-            Date submitTime = DateUtil.endOfDay(query.getReformDate());
-            query.getSubmitRange()[0] = submitTime;
-
-            Date reformDeadLine = DateUtil.beginOfDay(query.getReformDate());
-            query.getSubmitRange()[1] = reformDeadLine;
-
-
-//            if (ObjectUtil.isNotEmpty(query.getSearchKey())) {
-//                wrapper.and(w ->
-//                        w.like(Question::getQuestionDesc, query.getSearchKey())
-//                );
-//            }
-        } else {
-            //时间范围查询
-            if (ObjectUtil.isNotEmpty(query.getSubmitRange()) && query.getSubmitRange().length == 2) {
-                query.getSubmitRange()[0] = DateUtil.beginOfDay(query.getSubmitRange()[0]);
-                query.getSubmitRange()[1] = DateUtil.endOfDay(query.getSubmitRange()[1]);
-
-//                wrapper.between(Question::getSubmitTime, start, end);
-            }
-
-//            if (ObjectUtil.isNotEmpty(query.getSearchKey())) {
-//                wrapper.and(w ->
-//                        w.like(Question::getCheckContent, query.getSearchKey()).or().like(Question::getQuestionDesc, query.getSearchKey())
-//                );
-//            }
+        //时间范围查询
+        if (ObjectUtil.isNotEmpty(query.getSubmitRange()) && query.getSubmitRange().length == 2) {
+            query.getSubmitRange()[0] = DateUtil.beginOfDay(query.getSubmitRange()[0]);
+            query.getSubmitRange()[1] = DateUtil.endOfDay(query.getSubmitRange()[1]);
         }
-//
-//        wrapper.orderByDesc(Question::getId);
+
         //获取数据
         page = baseMapper.pageQuestion(page, query, DateUtil.beginOfDay(new Date()));
         page.getRecords().forEach(r -> {

+ 33 - 12
soc-modules/soc-modules-core/src/main/resources/mapper/question/QuestionMapper.xml

@@ -293,22 +293,43 @@
                 and q.confirm_status=#{params.confirmStatus}
             </if>
         </if>
-        <if test="params.reformDate!=null">
-            and q.submit_time &lt;=#{params.submitRange[0]}
-            and q.reform_deadline>=#{params.submitRange[1]}
-            <if test="params.searchKey!=null">
-                and q.question_desc like concat('%',#{params.searchKey},'%')
-            </if>
+        <if test="params.submitRange!=null and params.submitRange.length==2">
+            and q.submit_time between #{params.submitRange[0]} and #{params.submitRange[1]}
         </if>
-        <if test="params.reformDate==null">
-            <if test="params.submitRange!=null and params.submitRange.length==2">
-                and q.submit_time between #{params.submitRange[0]} and #{params.submitRange[1]}
+        <if test="params.searchKey!=null">
+            and (q.question_desc like concat('%',#{params.searchKey},'%') or q.check_content like
+            concat('%',#{params.searchKey},'%'))
+        </if>
+        order by q.submit_time desc,q.id desc
+    </select>
+    <select id="pageApp" resultType="com.xunmei.core.question.domain.Question">
+        select * from core_question q
+        inner join sys_org o on q.org_id =o.id
+        where 1=1
+        <if test="params.checkSub==true">
+            and o.path like concat((select path from sys_org where id=#{params.orgId}),"%")
+        </if>
+        <if test="params.checkSub!=true">
+            and q.org_id=#{params.orgId}
+        </if>
+        <if test="params.status!=null">
+            <if test="params.status==12">
+                and (q.confirm_status!=3) and q.reform_deadline &lt; #{today}
+            </if>
+            <if test="params.status>=10 and params.status &lt;12">
+                and q.reform_status=#{params.status}
             </if>
-            <if test="params.searchKey!=null">
-                and (q.question_desc like concat('%',#{params.searchKey},'%') or q.check_content like
-                concat('%',#{params.searchKey},'%'))
+            <if test="params.status &lt; 10">
+                and q.confirm_status=#{params.status}
             </if>
         </if>
+        <if test="params.reformDate!=null">
+            and q.reform_deadline>= #{params.reformDate} and q.submit_time&lt;=#{params.reformDateEnd}
+        </if>
+        <if test="params.searchKey!=null">
+            and (q.question_desc like concat('%',#{params.searchKey},'%') or q.check_content like
+            concat('%',#{params.searchKey},'%'))
+        </if>
         order by q.submit_time desc,q.id desc
     </select>
     <select id="pageReform" resultType="com.xunmei.core.question.domain.Question">