浏览代码

延期预警

shudonghui 1 年之前
父节点
当前提交
8aa7fa64ea

+ 83 - 0
sop-business/src/main/java/com/qmth/sop/business/bean/result/TBDelayWarnResult.java

@@ -0,0 +1,83 @@
+package com.qmth.sop.business.bean.result;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.qmth.sop.business.entity.TBDelayWarn;
+import com.qmth.sop.common.base.BaseEntity;
+import com.qmth.sop.common.enums.DelayWarnStatusEnum;
+import com.qmth.sop.common.enums.DelayWarnTypeEnum;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 延期预警跟进表
+ * </p>
+ *
+ * @author wangliang
+ * @since 2023-08-01
+ */
+@ApiModel(value = "TBDelayWarnResult对象", description = "延期预警查询")
+public class TBDelayWarnResult extends TBDelayWarn implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+
+
+    @ApiModelProperty(value = "服务单元")
+    private String service;
+
+    @ApiModelProperty(value = "负责人")
+    private String userName;
+
+    @ApiModelProperty(value = "客户名称")
+    private String custom;
+
+    @ApiModelProperty(value = "客户类型")
+    private String customType;
+
+    @ApiModelProperty(value = "项目名称")
+    private String crmName;
+
+    public String getService() {
+        return service;
+    }
+
+    public void setService(String service) {
+        this.service = service;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public String getCustom() {
+        return custom;
+    }
+
+    public void setCustom(String custom) {
+        this.custom = custom;
+    }
+
+    public String getCustomType() {
+        return customType;
+    }
+
+    public void setCustomType(String customType) {
+        this.customType = customType;
+    }
+
+    public String getCrmName() {
+        return crmName;
+    }
+
+    public void setCrmName(String crmName) {
+        this.crmName = crmName;
+    }
+}

+ 23 - 8
sop-business/src/main/java/com/qmth/sop/business/mapper/TBDelayWarnMapper.java

@@ -1,16 +1,31 @@
 package com.qmth.sop.business.mapper;
 
-import com.qmth.sop.business.entity.TBDelayWarn;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.qmth.sop.business.bean.result.TBDelayWarnResult;
+import com.qmth.sop.business.entity.TBDelayWarn;
+import com.qmth.sop.common.enums.DelayWarnStatusEnum;
+import com.qmth.sop.common.enums.DelayWarnTypeEnum;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Param;
+import java.util.Map;
 
 /**
- * <p>
- * 延期预警跟进表 Mapper 接口
- * </p>
- *
- * @author wangliang
- * @since 2023-08-01
+ * 延期预警跟进表 Mapper 接口.
+ * 
+ * @author: shudonghui
+ * @date: 2023-08-08 16:02:21
+ * @version: 1.0
+ * @email: shudonghui@qmth.com.cn
+ * @Company: www.qmth.com.cn
  */
 public interface TBDelayWarnMapper extends BaseMapper<TBDelayWarn> {
 
-}
+	/**
+	 * 查询列表
+	 * @param iPage
+	 * @return
+	 */
+    IPage<TBDelayWarnResult> query(IPage<Map> iPage, @Param("type") String type, @Param("status") String status, @Param("serviceId")  Long serviceId, @Param("custom")  String custom, @Param("fieldObj")  String fieldObj, @Param("sopNo")  String sopNo, @Param("startTime")  Long startTime, @Param("endTime")  Long endTime,@Param("id") Long id);
+
+}

+ 21 - 7
sop-business/src/main/java/com/qmth/sop/business/service/TBDelayWarnDetailService.java

@@ -1,16 +1,30 @@
 package com.qmth.sop.business.service;
 
-import com.qmth.sop.business.entity.TBDelayWarnDetail;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.qmth.sop.business.entity.TBDelayWarnDetail;
+
+import java.util.List;
 
 /**
- * <p>
  * 延期预警明细表 服务类
- * </p>
  *
- * @author wangliang
- * @since 2023-08-01
+ * @author: shudonghui
+ * @date: 2023-08-08 16:02:21
+ * @version: 1.0
+ * @email: shudonghui@qmth.com.cn
+ * @Company: www.qmth.com.cn
  */
-public interface TBDelayWarnDetailService extends IService<TBDelayWarnDetail> {
+public interface TBDelayWarnDetailService extends IService<TBDelayWarnDetail>{
+
+
+    /**
+    * 新增修改延期预警明细表
+    *
+    * @param tBDelayWarnDetail
+    */
+    Boolean saveTBDelayWarnDetail(TBDelayWarnDetail tBDelayWarnDetail);
+
+
+
 
-}
+}

+ 39 - 7
sop-business/src/main/java/com/qmth/sop/business/service/TBDelayWarnService.java

@@ -1,16 +1,48 @@
 package com.qmth.sop.business.service;
 
-import com.qmth.sop.business.entity.TBDelayWarn;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.qmth.sop.business.bean.result.TBDelayWarnResult;
+import com.qmth.sop.business.entity.TBDelayWarn;
+import com.qmth.sop.common.enums.DelayWarnStatusEnum;
+import com.qmth.sop.common.enums.DelayWarnTypeEnum;
+
+import java.util.Map;
 
 /**
- * <p>
  * 延期预警跟进表 服务类
- * </p>
  *
- * @author wangliang
- * @since 2023-08-01
+ * @author: shudonghui
+ * @date: 2023-08-08 16:02:21
+ * @version: 1.0
+ * @email: shudonghui@qmth.com.cn
+ * @Company: www.qmth.com.cn
  */
-public interface TBDelayWarnService extends IService<TBDelayWarn> {
+public interface TBDelayWarnService extends IService<TBDelayWarn>{
+
+    /**
+    * 查询列表
+    *
+    * @param iPage
+    * @return
+    */
+    IPage<TBDelayWarnResult> query(IPage<Map> iPage, DelayWarnTypeEnum type, DelayWarnStatusEnum status, Long serviceId, String custom, String fieldObj, String sopNo, Long startTime, Long endTime, Long id);
+
+    /**
+    * 新增修改延期预警跟进表
+    *
+    * @param tBDelayWarn
+    */
+    Boolean saveTBDelayWarn(TBDelayWarn tBDelayWarn);
+
+
+    /**
+    * 删除延期预警跟进表
+    *
+    * @param id
+    */
+    Boolean delete(Long id);
+
 
-}
+}

+ 59 - 8
sop-business/src/main/java/com/qmth/sop/business/service/impl/TBDelayWarnDetailServiceImpl.java

@@ -1,20 +1,71 @@
 package com.qmth.sop.business.service.impl;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.qmth.boot.api.exception.ApiException;
 import com.qmth.sop.business.entity.TBDelayWarnDetail;
+import com.qmth.sop.business.entity.SysUser;
 import com.qmth.sop.business.mapper.TBDelayWarnDetailMapper;
 import com.qmth.sop.business.service.TBDelayWarnDetailService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.qmth.sop.common.contant.SystemConstant;
+import com.qmth.sop.common.enums.ExceptionResultEnum;
+import com.qmth.sop.common.enums.FieldUniqueEnum;
+import com.qmth.sop.common.util.ResultUtil;
+import com.qmth.sop.common.util.ServletUtil;
+import org.springframework.dao.DuplicateKeyException;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
 
 /**
- * <p>
- * 延期预警明细表 服务实现类
- * </p>
+ * 延期预警明细表 服务实现.
  *
- * @author wangliang
- * @since 2023-08-01
+ * @author: shudonghui
+ * @date: 2023-08-08 16:02:22
+ * @version: 1.0
+ * @email: shudonghui@qmth.com.cn
+ * @Company: www.qmth.com.cn
  */
 @Service
-public class TBDelayWarnDetailServiceImpl extends ServiceImpl<TBDelayWarnDetailMapper, TBDelayWarnDetail> implements TBDelayWarnDetailService {
+public class TBDelayWarnDetailServiceImpl extends ServiceImpl<TBDelayWarnDetailMapper, TBDelayWarnDetail> implements TBDelayWarnDetailService{
+
+
+		/**
+		* 新增修改延期预警明细表
+		*
+		* @param tBDelayWarnDetail
+		*/
+		@Override
+		@Transactional
+		public Boolean saveTBDelayWarnDetail(TBDelayWarnDetail tBDelayWarnDetail) {
+			try {
+				//SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+				if (Objects.isNull(tBDelayWarnDetail.getId())) {// 新增
+					tBDelayWarnDetail.setCreateId(1l);
+					tBDelayWarnDetail.setCreateTime(System.currentTimeMillis());
+				} else { // 修改
+					//tBDelayWarnDetail.updateInfo(sysUser.getId());
+				}
+				return saveOrUpdate(tBDelayWarnDetail);
+			} catch (Exception e) {
+				if (e instanceof DuplicateKeyException) {
+				String errorColumn = e.getCause().toString();
+				String columnStr = errorColumn.substring(errorColumn.lastIndexOf("key") + 3, errorColumn.length()).replaceAll("'", "");
+				throw ExceptionResultEnum.SQL_ERROR.exception("[" + FieldUniqueEnum.convertToTitle(columnStr) + "]数据不允许重复插入");
+				} else if (e instanceof ApiException) {
+				ResultUtil.error((ApiException) e, e.getMessage());
+				} else {
+				ResultUtil.error(e.getMessage());
+				}
+			}
+			return null;
+
+		}
+
+
 
-}
+}

+ 78 - 7
sop-business/src/main/java/com/qmth/sop/business/service/impl/TBDelayWarnServiceImpl.java

@@ -1,20 +1,91 @@
 package com.qmth.sop.business.service.impl;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.qmth.boot.api.exception.ApiException;
+import com.qmth.sop.business.bean.result.TBDelayWarnResult;
+import com.qmth.sop.business.entity.SysUser;
 import com.qmth.sop.business.entity.TBDelayWarn;
 import com.qmth.sop.business.mapper.TBDelayWarnMapper;
 import com.qmth.sop.business.service.TBDelayWarnService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.qmth.sop.common.enums.DelayWarnStatusEnum;
+import com.qmth.sop.common.enums.DelayWarnTypeEnum;
+import com.qmth.sop.common.enums.ExceptionResultEnum;
+import com.qmth.sop.common.enums.FieldUniqueEnum;
+import com.qmth.sop.common.util.ResultUtil;
+import com.qmth.sop.common.util.ServletUtil;
+import org.springframework.dao.DuplicateKeyException;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Map;
+import java.util.Objects;
 
 /**
- * <p>
- * 延期预警跟进表 服务实现类
- * </p>
+ * 延期预警跟进表 服务实现.
  *
- * @author wangliang
- * @since 2023-08-01
+ * @author: shudonghui
+ * @date: 2023-08-08 16:02:21
+ * @version: 1.0
+ * @email: shudonghui@qmth.com.cn
+ * @Company: www.qmth.com.cn
  */
 @Service
 public class TBDelayWarnServiceImpl extends ServiceImpl<TBDelayWarnMapper, TBDelayWarn> implements TBDelayWarnService {
 
-}
+
+    /**
+     * 查询列表
+     *
+     * @param iPage
+     * @return
+     */
+    @Override
+    public IPage<TBDelayWarnResult> query(IPage<Map> iPage, DelayWarnTypeEnum type, DelayWarnStatusEnum status, Long serviceId, String custom, String fieldObj, String sopNo, Long startTime, Long endTime,Long id) {
+        return this.baseMapper.query(iPage, Objects.nonNull(type) ? type.name() : null, Objects.nonNull(status) ? status.name() : null, serviceId, custom, fieldObj, sopNo, startTime, endTime,id);
+    }
+
+    /**
+     * 新增修改延期预警跟进表
+     *
+     * @param tBDelayWarn
+     */
+    @Override
+    @Transactional
+    public Boolean saveTBDelayWarn(TBDelayWarn tBDelayWarn) {
+        try {
+            SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+            if (Objects.isNull(tBDelayWarn.getId())) {// 新增
+                tBDelayWarn.insertInfo(sysUser.getId());
+            } else { // 修改
+                tBDelayWarn.updateInfo(sysUser.getId());
+            }
+            return saveOrUpdate(tBDelayWarn);
+        } catch (Exception e) {
+            if (e instanceof DuplicateKeyException) {
+                String errorColumn = e.getCause().toString();
+                String columnStr = errorColumn.substring(errorColumn.lastIndexOf("key") + 3, errorColumn.length()).replaceAll("'", "");
+                throw ExceptionResultEnum.SQL_ERROR.exception("[" + FieldUniqueEnum.convertToTitle(columnStr) + "]数据不允许重复插入");
+            } else if (e instanceof ApiException) {
+                ResultUtil.error((ApiException) e, e.getMessage());
+            } else {
+                ResultUtil.error(e.getMessage());
+            }
+        }
+        return null;
+
+    }
+
+    /**
+     * 删除延期预警跟进表
+     *
+     * @param id
+     */
+    @Override
+    @Transactional
+    public Boolean delete(Long id) {
+        return this.removeById(id);
+    }
+
+
+}

+ 17 - 1
sop-business/src/main/resources/db/log/shudonghui_update_log.sql

@@ -98,4 +98,20 @@ INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence
 UPDATE `sys_privilege` SET `name` = '消息提醒', `url` = 'message', `type` = 'MENU', `parent_id` = 59, `sequence` = 1, `property` = NULL, `related` = '1009,1011,1012', `enable` = 1, `default_auth` = 0, `front_display` = 1 WHERE `id` = 60;
 UPDATE `sys_privilege` SET `name` = '待办任务', `url` = 'work', `type` = 'MENU', `parent_id` = 59, `sequence` = 2, `property` = NULL, `related` = '1009,1011,1012', `enable` = 1, `default_auth` = 0, `front_display` = 1 WHERE `id` = 61;
 UPDATE `sys_privilege` SET `name` = '通知公告', `url` = 'notice', `type` = 'MENU', `parent_id` = 59, `sequence` = 3, `property` = NULL, `related` = '1009,1010,1011,1012', `enable` = 1, `default_auth` = 0, `front_display` = 1 WHERE `id` = 62;
----------------------------
+---------------------------
+
+
+------------------------------
+-----2023.8.9延期预警
+INSERT INTO `sop_db`.`sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (1013, '延期预警关闭', '/api/admin/tb/delay/warn/close', 'URL', 47, 1, 'AUTH', NULL, 1, 1, 0);
+INSERT INTO `sop_db`.`sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (1014, '延期预警跟进', '/api/admin/tb/delay/warn/get', 'URL', 47, 2, 'AUTH', NULL, 1, 1, 0);
+INSERT INTO `sop_db`.`sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (1015, '延期预警查询', '/api/admin/tb/delay/warn/query', 'URL', 47, 3, 'AUTH', NULL, 1, 1, 0);
+INSERT INTO `sop_db`.`sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (1016, '延期预警重启', '/api/admin/tb/delay/warn/restart', 'URL', 47, 4, 'AUTH', NULL, 1, 1, 0);
+INSERT INTO `sop_db`.`sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (1017, '延期预警跟进', '/api/admin/tb/delay/warn/detail/list', 'URL', 47, 5, 'AUTH', NULL, 1, 1, 0);
+INSERT INTO `sop_db`.`sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (1018, '延期预警跟进', '/api/admin/tb/delay/warn/detail/save', 'URL', 47, 6, 'AUTH', NULL, 1, 1, 0);
+UPDATE `sop_db`.`sys_privilege` SET `name` = '列表', `url` = 'List', `type` = 'LIST', `parent_id` = 47, `sequence` = 1, `property` = 'AUTH', `related` = '1015', `enable` = 1, `default_auth` = 0, `front_display` = 1 WHERE `id` = 197;
+UPDATE `sop_db`.`sys_privilege` SET `name` = '查询条件', `url` = 'Condition', `type` = 'CONDITION', `parent_id` = 47, `sequence` = 1, `property` = 'AUTH', `related` = NULL, `enable` = 1, `default_auth` = 0, `front_display` = 1 WHERE `id` = 198;
+UPDATE `sop_db`.`sys_privilege` SET `name` = '查询', `url` = 'Select', `type` = 'BUTTON', `parent_id` = 47, `sequence` = 1, `property` = 'AUTH', `related` = '1015', `enable` = 1, `default_auth` = 0, `front_display` = 1 WHERE `id` = 199;
+UPDATE `sop_db`.`sys_privilege` SET `name` = '跟进', `url` = 'Follow', `type` = 'LINK', `parent_id` = 47, `sequence` = 1, `property` = 'AUTH', `related` = '1014,1017,1018', `enable` = 1, `default_auth` = 0, `front_display` = 1 WHERE `id` = 200;
+UPDATE `sop_db`.`sys_privilege` SET `name` = '关闭', `url` = 'Close', `type` = 'LINK', `parent_id` = 47, `sequence` = 2, `property` = 'AUTH', `related` = '1013', `enable` = 1, `default_auth` = 0, `front_display` = 1 WHERE `id` = 201;
+-------------------------------

+ 2 - 1
sop-business/src/main/resources/mapper/SysMessageMapper.xml

@@ -71,7 +71,8 @@
         LEFT JOIN sys_user u ON u.id = m.form_user_id
         LEFT JOIN sys_custom c ON c.manager_id = m.receive_user_id
         LEFT JOIN t_b_service bs ON bs.id = m.service_id
-        left join t_b_delay_warn w on w.crm_no=m.crm_no
+<!--        left join t_b_delay_warn w on w.crm_no=m.crm_no-->
+        left join t_b_delay_warn w on w.message_id=m.id
         <where>
             <if test="userId != null and userId != ''">
                 and m.receive_user_id = #{userId}

+ 51 - 1
sop-business/src/main/resources/mapper/TBDelayWarnMapper.xml

@@ -2,4 +2,54 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.qmth.sop.business.mapper.TBDelayWarnMapper">
 
-</mapper>
+    <select id="query" resultType="com.qmth.sop.business.bean.result.TBDelayWarnResult">
+        SELECT
+        a.*,
+        s.NAME service,
+        u.real_name user_name,
+        sc.NAME custom,
+        sc.type custom_type,
+        c.NAME crm_name
+        FROM
+        t_b_delay_warn a
+        LEFT JOIN sys_user u ON u.id = a.user_id
+        LEFT JOIN t_b_crm c ON c.crm_no = a.crm_no
+        LEFT JOIN sys_custom sc ON sc.id = c.custom_id
+        LEFT JOIN t_b_service s ON s.id = a.service_id
+        <where>
+            <if test="id != null and id != ''">
+                and a.id = #{id}
+            </if>
+            <if test="type != null and type != ''">
+                and a.type = #{type}
+            </if>
+            <if test="status != null and status != ''">
+                and a.status = #{status}
+            </if>
+            <if test="serviceId != null and serviceId != ''">
+                and a.service_id = #{serviceId}
+            </if>
+            <if test="custom != null and custom != ''">
+                and sc.name like concat('%', #{custom} , '%')
+            </if>
+            <if test="fieldObj != null and fieldObj != ''">
+                and a.field_obj like concat('%', #{fieldObj} , '%')
+            </if>
+            <if test="sopNo != null and sopNo != ''">
+                and a.sop_no like concat('%', #{sopNo} , '%')
+            </if>
+            <if test="startTime != null and startTime != '' ">
+                <![CDATA[
+               and a.warn_time >= #{startTime}
+               ]]>
+            </if>
+            <if test="endTime != null and endTime != ''">
+                <![CDATA[
+                and a.warn_time <= #{endTime}
+                ]]>
+            </if>
+        </where>
+
+        ORDER BY a.create_time DESC
+    </select>
+</mapper>

+ 4 - 0
sop-common/src/main/java/com/qmth/sop/common/contant/SystemConstant.java

@@ -1,12 +1,14 @@
 package com.qmth.sop.common.contant;
 
 import com.aventrix.jnanoid.jnanoid.NanoIdUtils;
+import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.boot.core.uid.service.UidService;
 import com.qmth.sop.common.enums.ExceptionResultEnum;
 import com.qmth.sop.common.enums.UploadFileEnum;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.util.LinkedMultiValueMap;
+import org.springframework.web.bind.annotation.RequestMapping;
 
 import java.io.File;
 import java.io.IOException;
@@ -136,6 +138,8 @@ public class SystemConstant {
     public static final String PREFIX_URL_MESSAGE = "/sys/message";
     public static final String PREFIX_URL_SERVICE_UNIT = "/service/unit";
     public static final String PREFIX_URL_ROLE = "/admin/role";
+    public static final String PREFIX_URL_DELAY_WARN = "/admin/tb/delay/warn";
+    public static final String PREFIX_URL_DELAY_WARN_DETAIL = "/admin/tb/delay/warn/detail";
 
     /**
      * 缓存配置

+ 93 - 12
sop-server/src/main/java/com/qmth/sop/server/api/TBDelayWarnController.java

@@ -1,20 +1,101 @@
 package com.qmth.sop.server.api;
 
-
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import org.springframework.web.bind.annotation.RestController;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.qmth.boot.api.constant.ApiConstant;
+import com.qmth.boot.api.annotation.Aac;
+import com.qmth.boot.api.annotation.BOOL;
+import com.qmth.sop.business.bean.result.EditResult;
+import com.qmth.sop.business.bean.result.TBDelayWarnResult;
+import com.qmth.sop.business.entity.TBDelayWarn;
+import com.qmth.sop.business.service.TBDelayWarnService;
+import com.qmth.sop.common.contant.SystemConstant;
+import com.qmth.sop.common.enums.DelayWarnStatusEnum;
+import com.qmth.sop.common.enums.DelayWarnTypeEnum;
+import com.qmth.sop.common.enums.MessageTypeEnum;
+import com.qmth.sop.common.util.Result;
+import com.qmth.sop.common.util.ResultUtil;
+import io.swagger.annotations.*;
+import org.springframework.util.CollectionUtils; 
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import javax.annotation.Resource;
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Min;
+import java.util.List;
+import java.util.Objects;
 
 /**
- * <p>
- * 延期预警跟进表 前端控制器
- * </p>
- *
- * @author wangliang
- * @since 2023-08-01
+ * 延期预警跟进表 控制器
+ * 
+ * @author: shudonghui
+ * @date: 2023-08-08 16:02:21
+ * @version: 1.0
+ * @email: shudonghui@qmth.com.cn
+ * @Company: www.qmth.com.cn
  */
+@Api(tags = "延期预警跟进表 Controller")
 @RestController
-@RequestMapping("/t-bdelay-warn")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX+SystemConstant.PREFIX_URL_DELAY_WARN)
+@Validated
 public class TBDelayWarnController {
 
-}
+
+    @Resource
+    TBDelayWarnService tBDelayWarnService;
+
+    
+    @ApiOperation(value = "延期预警跟进表查询接口")
+    @RequestMapping(value = "/query", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "延期预警跟进表查询结果", response = TBDelayWarnResult.class)})
+    public Result query(
+                @ApiParam(value = "预警类型", required = false) @RequestParam(required = false) DelayWarnTypeEnum type,
+                @ApiParam(value = "跟进状态", required = false) @RequestParam(required = false) DelayWarnStatusEnum status,
+                @ApiParam(value = "服务单元", required = false) @RequestParam(required = false) Long serviceId,
+                @ApiParam(value = "客户名称(模糊查询)", required = false) @RequestParam(required = false) String custom,
+                @ApiParam(value = "预警字段(模糊查询)", required = false) @RequestParam(required = false) String fieldObj,
+                @ApiParam(value = "SOP流水号(模糊查询)", required = false) @RequestParam(required = false) String sopNo,
+                @ApiParam(value = "预警时间开始", required = false) @RequestParam(required = false) Long startTime,
+                @ApiParam(value = "预警时间结束", required = false) @RequestParam(required = false) Long endTime,
+                @ApiParam(value = "分页页码", required = true) @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
+                @ApiParam(value = "分页数", required = true) @RequestParam @Min(SystemConstant.PAGE_SIZE_MIN) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
+        IPage<TBDelayWarnResult> resultIPage = tBDelayWarnService.query(new Page<>(pageNumber, pageSize),type,status,serviceId,custom,fieldObj,sopNo,startTime,endTime,null);
+
+        return ResultUtil.ok(resultIPage);
+    }
+
+
+    
+    @ApiOperation(value = "延期预警跟进表获取单个接口")
+    @RequestMapping(value = "/get", method = RequestMethod.GET)
+    @ApiResponses({@ApiResponse(code = 200, message = "延期预警跟进表信息", response = TBDelayWarnResult.class)})
+    public Result get(@ApiParam(value = "延期预警跟进表id", required = true) @RequestParam long id) {
+        IPage<TBDelayWarnResult> resultIPage = tBDelayWarnService.query(new Page<>(1, 1),null,null,null,null,null,null,null,null,id);
+        return ResultUtil.ok(resultIPage.getRecords().get(0));
+    }
+
+    //关闭延期预警跟进
+    
+    @ApiOperation(value = "关闭延期预警跟进")
+    @RequestMapping(value = "/close", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "关闭成功")})
+    public Result close(@ApiParam(value = "延期预警跟进表id", required = true) @RequestParam long id) {
+        TBDelayWarn tBDelayWarn = tBDelayWarnService.getById(id);
+        tBDelayWarn.setStatus(DelayWarnStatusEnum.CLOSE);
+        tBDelayWarnService.saveTBDelayWarn(tBDelayWarn);
+        return ResultUtil.ok();
+    }
+    //重启延期预警跟进
+    
+    @ApiOperation(value = "重启延期预警跟进")
+    @RequestMapping(value = "/restart", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "重启成功")})
+    public Result restart(@ApiParam(value = "延期预警跟进表id", required = true) @RequestParam long id) {
+        TBDelayWarn tBDelayWarn = tBDelayWarnService.getById(id);
+        tBDelayWarn.setStatus(DelayWarnStatusEnum.RESTART);
+        tBDelayWarnService.saveTBDelayWarn(tBDelayWarn);
+        return ResultUtil.ok();
+    }
+
+
+}

+ 46 - 10
sop-server/src/main/java/com/qmth/sop/server/api/TBDelayWarnDetailController.java

@@ -1,20 +1,56 @@
 package com.qmth.sop.server.api;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.qmth.boot.api.annotation.Aac;
+import com.qmth.boot.api.annotation.BOOL;
+import com.qmth.boot.api.constant.ApiConstant;
+import com.qmth.sop.business.entity.TBDelayWarnDetail;
+import com.qmth.sop.business.service.TBDelayWarnDetailService;
+import com.qmth.sop.common.contant.SystemConstant;
+import com.qmth.sop.common.util.Result;
+import com.qmth.sop.common.util.ResultUtil;
+import io.swagger.annotations.*;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
 
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import org.springframework.web.bind.annotation.RestController;
+import javax.annotation.Resource;
+import java.util.List;
 
 /**
- * <p>
- * 延期预警明细表 前端控制器
- * </p>
+ * 延期预警明细表 控制器
  *
- * @author wangliang
- * @since 2023-08-01
+ * @author: shudonghui
+ * @date: 2023-08-08 16:02:22
+ * @version: 1.0
+ * @email: shudonghui@qmth.com.cn
+ * @Company: www.qmth.com.cn
  */
+@Api(tags = "延期预警明细表 Controller")
 @RestController
-@RequestMapping("/t-bdelay-warn-detail")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_DELAY_WARN_DETAIL)
+@Validated
 public class TBDelayWarnDetailController {
 
-}
+
+    @Resource
+    TBDelayWarnDetailService tBDelayWarnDetailService;
+
+    @Aac(auth = BOOL.FALSE)
+    @ApiOperation(value = "延期预警明细表查询接口")
+    @RequestMapping(value = "/list", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "延期预警明细表查询结果", response = TBDelayWarnDetail.class)})
+    public Result list(@ApiParam(value = "延期预警表id", required = true) @RequestParam(required = true) long id) {
+        List<TBDelayWarnDetail> resultIPage = tBDelayWarnDetailService.list(new QueryWrapper<TBDelayWarnDetail>().lambda().eq(TBDelayWarnDetail::getDelayWarnId, id).orderByDesc(TBDelayWarnDetail::getCreateTime));
+        return ResultUtil.ok(resultIPage);
+    }
+
+    @Aac(auth = BOOL.FALSE)
+    @ApiOperation(value = "延期预警明细表新增修改接口")
+    @RequestMapping(value = "/save", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = Object.class)})
+    public Result save(@ApiParam(value = "延期预警明细表信息", required = true) @RequestBody(required = true) TBDelayWarnDetail tBDelayWarnDetail) {
+        return ResultUtil.ok(tBDelayWarnDetailService.saveTBDelayWarnDetail(tBDelayWarnDetail));
+    }
+
+
+}