Bladeren bron

1、办事指南调整
2、我的承办初始化

dzx 7 maanden geleden
bovenliggende
commit
06e2956bfd

+ 1 - 1
src/main/java/com/xjrsoft/module/oa/controller/NewsController.java

@@ -184,7 +184,7 @@ public class NewsController {
                                 .selectAs(File::getFileUrl, NewsAppendixVo::getFileUrl))
         );
 
-        if (newsAppendixVoList.size() > 0) {
+        if (!newsAppendixVoList.isEmpty()) {
             newsVo.setAppendixList(newsAppendixVoList);
         }
 

+ 120 - 0
src/main/java/com/xjrsoft/module/oa/controller/OfficialDocumentReceivedHandleController.java

@@ -0,0 +1,120 @@
+package com.xjrsoft.module.oa.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.xjrsoft.common.annotation.XjrLog;
+import com.xjrsoft.common.model.result.RT;
+import com.xjrsoft.common.page.ConventPage;
+import com.xjrsoft.common.page.PageOutput;
+import com.xjrsoft.common.utils.VoToColumnUtil;
+import com.xjrsoft.module.oa.dto.AddOfficialDocumentReceivedHandleDto;
+import com.xjrsoft.module.oa.dto.OfficialDocumentReceivedHandlePageDto;
+import com.xjrsoft.module.oa.dto.UpdateOfficialDocumentReceivedHandleDto;
+import com.xjrsoft.module.oa.entity.OfficialDocumentReceived;
+import com.xjrsoft.module.oa.entity.OfficialDocumentReceivedHandle;
+import com.xjrsoft.module.oa.service.IOfficialDocumentReceivedHandleService;
+import com.xjrsoft.module.oa.service.IOfficialDocumentReceivedService;
+import com.xjrsoft.module.oa.vo.OfficialDocumentReceivedHandlePageVo;
+import com.xjrsoft.module.oa.vo.OfficialDocumentReceivedHandleVo;
+import com.xjrsoft.module.workflow.entity.WorkflowFormRelation;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.camunda.bpm.engine.history.HistoricProcessInstance;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
+import java.util.List;
+
+/**
+* @title: 公文收文-承办表
+* @Author dzx
+* @Date: 2025-04-14
+* @Version 1.0
+*/
+@RestController
+@RequestMapping("/oa" + "/officialDocumentReceivedHandle")
+@Api(value = "/oa"  + "/officialDocumentReceivedHandle",tags = "公文收文-承办表代码")
+@AllArgsConstructor
+public class OfficialDocumentReceivedHandleController {
+
+    private final IOfficialDocumentReceivedService officialDocumentReceivedService;
+    private final IOfficialDocumentReceivedHandleService officialDocumentReceivedHandleService;
+
+    @GetMapping(value = "/page")
+    @ApiOperation(value="公文收文-承办表列表(分页)")
+    @SaCheckPermission("officialdocumentreceivedhandle:detail")
+    @XjrLog(value = "公文收文-承办表列表(分页)")
+    public RT<PageOutput<OfficialDocumentReceivedHandlePageVo>> page(@Valid OfficialDocumentReceivedHandlePageDto dto){
+
+        MPJLambdaWrapper<OfficialDocumentReceived> queryWrapper = new MPJLambdaWrapper<>();
+        queryWrapper
+                .select(OfficialDocumentReceived::getId)
+                .select(OfficialDocumentReceived.class,x -> VoToColumnUtil.fieldsToColumns(OfficialDocumentReceived.class).contains(x.getProperty()))
+                .innerJoin(WorkflowFormRelation.class, WorkflowFormRelation::getFormKeyValue, OfficialDocumentReceived::getId)
+                .eq(WorkflowFormRelation::getCurrentState, HistoricProcessInstance.STATE_COMPLETED)
+                .eq(StrUtil.isNotEmpty(dto.getReceivedType()), OfficialDocumentReceived::getReceivedType, dto.getReceivedType())
+                .like(StrUtil.isNotEmpty(dto.getReceivedTitle()), OfficialDocumentReceived::getReceivedTitle, dto.getReceivedTitle())
+                .eq(ObjectUtil.isNotNull(dto.getIsHandle()), OfficialDocumentReceived::getIsHandle, dto.getIsHandle())
+                .eq(ObjectUtil.isNotNull(dto.getIsHandle()), OfficialDocumentReceived::getIsHandle, dto.getIsHandle())
+                .orderByDesc(OfficialDocumentReceived::getId);
+        IPage<OfficialDocumentReceived> page = officialDocumentReceivedService.page(ConventPage.getPage(dto), queryWrapper);
+        PageOutput<OfficialDocumentReceivedHandlePageVo> pageOutput = ConventPage.getPageOutput(page, OfficialDocumentReceivedHandlePageVo.class);
+        return RT.ok(pageOutput);
+    }
+
+    @GetMapping(value = "/info")
+    @ApiOperation(value="根据id查询公文收文-承办表信息")
+    @SaCheckPermission("officialdocumentreceivedhandle:detail")
+    @XjrLog(value = "根据id查询公文收文-承办表信息")
+    public RT<OfficialDocumentReceivedHandleVo> info(@RequestParam Long id){
+        OfficialDocumentReceivedHandle officialDocumentReceivedHandle = officialDocumentReceivedHandleService.getById(id);
+        if (officialDocumentReceivedHandle == null) {
+           return RT.error("找不到此数据!");
+        }
+        return RT.ok(BeanUtil.toBean(officialDocumentReceivedHandle, OfficialDocumentReceivedHandleVo.class));
+    }
+
+
+    @PostMapping
+    @ApiOperation(value = "新增公文收文-承办表")
+    @SaCheckPermission("officialdocumentreceivedhandle:add")
+    @XjrLog(value = "新增公文收文-承办表")
+    public RT<Boolean> add(@Valid @RequestBody AddOfficialDocumentReceivedHandleDto dto){
+        OfficialDocumentReceivedHandle officialDocumentReceivedHandle = BeanUtil.toBean(dto, OfficialDocumentReceivedHandle.class);
+        boolean isSuccess = officialDocumentReceivedHandleService.save(officialDocumentReceivedHandle);
+        return RT.ok(isSuccess);
+    }
+
+    @PutMapping
+    @ApiOperation(value = "修改公文收文-承办表")
+    @SaCheckPermission("officialdocumentreceivedhandle:edit")
+    @XjrLog(value = "修改公文收文-承办表")
+    public RT<Boolean> update(@Valid @RequestBody UpdateOfficialDocumentReceivedHandleDto dto){
+
+        OfficialDocumentReceivedHandle officialDocumentReceivedHandle = BeanUtil.toBean(dto, OfficialDocumentReceivedHandle.class);
+        return RT.ok(officialDocumentReceivedHandleService.updateById(officialDocumentReceivedHandle));
+
+    }
+
+    @DeleteMapping
+    @ApiOperation(value = "删除公文收文-承办表")
+    @SaCheckPermission("officialdocumentreceivedhandle:delete")
+    @XjrLog(value = "删除公文收文-承办表")
+    public RT<Boolean> delete(@Valid @RequestBody List<Long> ids){
+        return RT.ok(officialDocumentReceivedHandleService.removeBatchByIds(ids));
+
+    }
+
+}

+ 3 - 0
src/main/java/com/xjrsoft/module/oa/dto/AddNewsDto.java

@@ -202,4 +202,7 @@ public class AddNewsDto {
     @TableField(exist = false)
     @EntityMapping(thisField = "id", joinField = "newsId")
     private List<AddNewsRelationDto> relationList;
+
+    @ApiModelProperty("办事指南显示范围")
+    private String guideShowRange;
 }

+ 53 - 0
src/main/java/com/xjrsoft/module/oa/dto/AddOfficialDocumentReceivedHandleDto.java

@@ -0,0 +1,53 @@
+package com.xjrsoft.module.oa.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+
+
+/**
+* @title: 公文收文-承办表
+* @Author dzx
+* @Date: 2025-04-14
+* @Version 1.0
+*/
+@Data
+public class AddOfficialDocumentReceivedHandleDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 公文收文id(official_document_post)
+    */
+    @ApiModelProperty("公文收文id(official_document_post)")
+    private Long officialDocumentReceivedId;
+    /**
+    * 转办人id(xjr_user)
+    */
+    @ApiModelProperty("转办人id(xjr_user)")
+    private Long receiveUserId;
+    /**
+    * 是否落实
+    */
+    @ApiModelProperty("是否落实")
+    private Integer isHandle;
+    /**
+    * 落实时间
+    */
+    @ApiModelProperty("落实时间")
+    private LocalDateTime handleTime;
+    /**
+    * 提醒时间
+    */
+    @ApiModelProperty("提醒时间")
+    private LocalDateTime alertTime;
+    /**
+    * 是否转办
+    */
+    @ApiModelProperty("是否转办")
+    private Integer isTransfer;
+
+}

+ 33 - 0
src/main/java/com/xjrsoft/module/oa/dto/OfficialDocumentReceivedHandlePageDto.java

@@ -0,0 +1,33 @@
+package com.xjrsoft.module.oa.dto;
+
+import com.xjrsoft.common.page.PageInput;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+
+/**
+* @title: 公文收文-承办表分页查询入参
+* @Author dzx
+* @Date: 2025-04-14
+* @Version 1.0
+*/
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class OfficialDocumentReceivedHandlePageDto extends PageInput {
+
+    @ApiModelProperty("收文类型(xjr_dictionary_item[received_type])")
+    private String receivedType;
+
+    @ApiModelProperty("收文标题")
+    private String receivedTitle;
+
+    @ApiModelProperty("是否已落实")
+    private Integer isHandle;
+
+    @ApiModelProperty("落实人")
+    private String handleUserName;
+
+    @ApiModelProperty("落实负责人")
+    private String handleDutyUserName;
+}

+ 24 - 0
src/main/java/com/xjrsoft/module/oa/dto/UpdateOfficialDocumentReceivedHandleDto.java

@@ -0,0 +1,24 @@
+package com.xjrsoft.module.oa.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+
+/**
+* @title: 公文收文-承办表
+* @Author dzx
+* @Date: 2025-04-14
+* @Version 1.0
+*/
+@Data
+public class UpdateOfficialDocumentReceivedHandleDto extends AddOfficialDocumentReceivedHandleDto {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 主键编号
+    */
+    @ApiModelProperty("主键编号")
+    private Long id;
+}

+ 3 - 0
src/main/java/com/xjrsoft/module/oa/entity/News.java

@@ -132,4 +132,7 @@ public class News extends AuditEntity implements Serializable {
 
     @ApiModelProperty("创建人id")
     private Long createUserId;
+
+    @ApiModelProperty("办事指南显示范围")
+    private String guideShowRange;
 }

+ 104 - 0
src/main/java/com/xjrsoft/module/oa/entity/OfficialDocumentReceivedHandle.java

@@ -0,0 +1,104 @@
+package com.xjrsoft.module.oa.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+
+/**
+* @title: 公文收文-承办表
+* @Author dzx
+* @Date: 2025-04-14
+* @Version 1.0
+*/
+@Data
+@TableName("official_document_received_handle")
+@ApiModel(value = "official_document_received_handle", description = "公文收文-承办表")
+public class OfficialDocumentReceivedHandle implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 主键编号
+    */
+    @ApiModelProperty("主键编号")
+    @TableId
+    private Long id;
+    /**
+    * 创建人
+    */
+    @ApiModelProperty("创建人")
+    @TableField(fill = FieldFill.INSERT)
+    private Long createUserId;
+    /**
+    * 创建时间
+    */
+    @ApiModelProperty("创建时间")
+    @TableField(fill = FieldFill.INSERT)
+    private LocalDateTime createDate;
+    /**
+    * 修改人
+    */
+    @ApiModelProperty("修改人")
+    @TableField(fill = FieldFill.UPDATE)
+    private Long modifyUserId;
+    /**
+    * 修改时间
+    */
+    @ApiModelProperty("修改时间")
+    @TableField(fill = FieldFill.UPDATE)
+    private LocalDateTime modifyDate;
+    /**
+    * 删除标记
+    */
+    @ApiModelProperty("删除标记")
+    @TableField(fill = FieldFill.INSERT)
+    @TableLogic
+    private Integer deleteMark;
+    /**
+    * 有效标志
+    */
+    @ApiModelProperty("有效标志")
+    @TableField(fill = FieldFill.INSERT)
+    private Integer enabledMark;
+    /**
+    * 公文收文id(official_document_post)
+    */
+    @ApiModelProperty("公文收文id(official_document_post)")
+    private Long officialDocumentReceivedId;
+    /**
+    * 转办人id(xjr_user)
+    */
+    @ApiModelProperty("转办人id(xjr_user)")
+    private Long receiveUserId;
+    /**
+    * 是否落实
+    */
+    @ApiModelProperty("是否落实")
+    private Integer isHandle;
+    /**
+    * 落实时间
+    */
+    @ApiModelProperty("落实时间")
+    private LocalDateTime handleTime;
+    /**
+    * 提醒时间
+    */
+    @ApiModelProperty("提醒时间")
+    private LocalDateTime alertTime;
+    /**
+    * 是否转办
+    */
+    @ApiModelProperty("是否转办")
+    private Integer isTransfer;
+
+
+}

+ 16 - 0
src/main/java/com/xjrsoft/module/oa/mapper/OfficialDocumentReceivedHandleMapper.java

@@ -0,0 +1,16 @@
+package com.xjrsoft.module.oa.mapper;
+
+import com.github.yulichang.base.MPJBaseMapper;
+import com.xjrsoft.module.oa.entity.OfficialDocumentReceivedHandle;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @title: 公文收文-承办表
+* @Author dzx
+* @Date: 2025-04-14
+* @Version 1.0
+*/
+@Mapper
+public interface OfficialDocumentReceivedHandleMapper extends MPJBaseMapper<OfficialDocumentReceivedHandle> {
+
+}

+ 14 - 0
src/main/java/com/xjrsoft/module/oa/service/IOfficialDocumentReceivedHandleService.java

@@ -0,0 +1,14 @@
+package com.xjrsoft.module.oa.service;
+
+import com.github.yulichang.base.MPJBaseService;
+import com.xjrsoft.module.oa.entity.OfficialDocumentReceivedHandle;
+
+/**
+* @title: 公文收文-承办表
+* @Author dzx
+* @Date: 2025-04-14
+* @Version 1.0
+*/
+
+public interface IOfficialDocumentReceivedHandleService extends MPJBaseService<OfficialDocumentReceivedHandle> {
+}

+ 5 - 1
src/main/java/com/xjrsoft/module/oa/service/impl/NewsServiceImpl.java

@@ -510,6 +510,10 @@ public class NewsServiceImpl extends MPJBaseServiceImpl<NewsMapper, News> implem
 
         News news = BeanUtil.toBean(addNewsDto, News.class);
         news.setEnabledMark(EnabledMark.ENABLED.getCode());
+        if(news.getTypeId() != null && news.getTypeId() == 3){
+            news.setWfStatus(1);
+            news.setStatus(2);
+        }
 
         newsMapper.insert(news);
         //添加附件子表
@@ -525,7 +529,7 @@ public class NewsServiceImpl extends MPJBaseServiceImpl<NewsMapper, News> implem
         //1=全校教职工,添加全校教职工到关系表
         addRelation(news, BeanUtil.toBean(addNewsDto, AddProclamationDto.class), 1);
         //添加新闻和公告的时候,如果状态是2,表示新闻和公告实时发布了,张贴开始时间就应该是发布时间需要发送消息
-        if (ObjectUtil.isNotNull(addNewsDto.getStatus()) && addNewsDto.getStatus() == 2) {
+        if (ObjectUtil.isNotNull(addNewsDto.getStatus()) && addNewsDto.getStatus() == 2 && addNewsDto.getTypeId() != 3) {
             SendMessage(news.getId());
         }
 

+ 19 - 0
src/main/java/com/xjrsoft/module/oa/service/impl/OfficialDocumentReceivedHandleServiceImpl.java

@@ -0,0 +1,19 @@
+package com.xjrsoft.module.oa.service.impl;
+
+import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.xjrsoft.module.oa.entity.OfficialDocumentReceivedHandle;
+import com.xjrsoft.module.oa.mapper.OfficialDocumentReceivedHandleMapper;
+import com.xjrsoft.module.oa.service.IOfficialDocumentReceivedHandleService;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+/**
+* @title: 公文收文-承办表
+* @Author dzx
+* @Date: 2025-04-14
+* @Version 1.0
+*/
+@Service
+@AllArgsConstructor
+public class OfficialDocumentReceivedHandleServiceImpl extends MPJBaseServiceImpl<OfficialDocumentReceivedHandleMapper, OfficialDocumentReceivedHandle> implements IOfficialDocumentReceivedHandleService {
+}

+ 83 - 0
src/main/java/com/xjrsoft/module/oa/vo/OfficialDocumentReceivedHandlePageVo.java

@@ -0,0 +1,83 @@
+package com.xjrsoft.module.oa.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+* @title: 公文收文-承办表分页列表出参
+* @Author dzx
+* @Date: 2025-04-14
+* @Version 1.0
+*/
+@Data
+public class OfficialDocumentReceivedHandlePageVo {
+
+    /**
+    * 主键编号
+    */
+    @ApiModelProperty("主键编号")
+    private String id;
+    /**
+    * 创建人
+    */
+    @ApiModelProperty("创建人")
+    private Long createUserId;
+    /**
+    * 创建时间
+    */
+    @ApiModelProperty("创建时间")
+    private LocalDateTime createDate;
+    /**
+    * 修改人
+    */
+    @ApiModelProperty("修改人")
+    private Long modifyUserId;
+    /**
+    * 修改时间
+    */
+    @ApiModelProperty("修改时间")
+    private LocalDateTime modifyDate;
+    /**
+    * 删除标记
+    */
+    @ApiModelProperty("删除标记")
+    private Integer deleteMark;
+    /**
+    * 有效标志
+    */
+    @ApiModelProperty("有效标志")
+    private Integer enabledMark;
+    /**
+    * 公文收文id(official_document_post)
+    */
+    @ApiModelProperty("公文收文id(official_document_post)")
+    private Long officialDocumentReceivedId;
+    /**
+    * 转办人id(xjr_user)
+    */
+    @ApiModelProperty("转办人id(xjr_user)")
+    private Long receiveUserId;
+    /**
+    * 是否落实
+    */
+    @ApiModelProperty("是否落实")
+    private Integer isHandle;
+    /**
+    * 落实时间
+    */
+    @ApiModelProperty("落实时间")
+    private LocalDateTime handleTime;
+    /**
+    * 提醒时间
+    */
+    @ApiModelProperty("提醒时间")
+    private LocalDateTime alertTime;
+    /**
+    * 是否转办
+    */
+    @ApiModelProperty("是否转办")
+    private Integer isTransfer;
+
+}

+ 55 - 0
src/main/java/com/xjrsoft/module/oa/vo/OfficialDocumentReceivedHandleVo.java

@@ -0,0 +1,55 @@
+package com.xjrsoft.module.oa.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+* @title: 公文收文-承办表表单出参
+* @Author dzx
+* @Date: 2025-04-14
+* @Version 1.0
+*/
+@Data
+public class OfficialDocumentReceivedHandleVo {
+
+    /**
+    * 主键编号
+    */
+    @ApiModelProperty("主键编号")
+    private Long id;
+    /**
+    * 公文收文id(official_document_post)
+    */
+    @ApiModelProperty("公文收文id(official_document_post)")
+    private Long officialDocumentReceivedId;
+    /**
+    * 转办人id(xjr_user)
+    */
+    @ApiModelProperty("转办人id(xjr_user)")
+    private Long receiveUserId;
+    /**
+    * 是否落实
+    */
+    @ApiModelProperty("是否落实")
+    private Integer isHandle;
+    /**
+    * 落实时间
+    */
+    @ApiModelProperty("落实时间")
+    private LocalDateTime handleTime;
+    /**
+    * 提醒时间
+    */
+    @ApiModelProperty("提醒时间")
+    private LocalDateTime alertTime;
+    /**
+    * 是否转办
+    */
+    @ApiModelProperty("是否转办")
+    private Integer isTransfer;
+
+
+
+}

+ 33 - 0
src/main/resources/sqlScript/20250414_sql.sql

@@ -0,0 +1,33 @@
+ALTER TABLE xjr_oa_news
+  CHANGE type_id type_id INT NULL COMMENT '类型(1-新闻2-公告3-办事指南)',
+  ADD COLUMN guide_show_range VARCHAR (10) NULL COMMENT '办事指南显示范围' AFTER cover;
+
+
+DROP TABLE IF EXISTS `official_document_received_handle`;
+CREATE TABLE `official_document_received_handle`
+(
+id  BIGINT NOT NULL COMMENT '主键编号'
+PRIMARY KEY,
+create_user_id BIGINT NULL COMMENT '创建人',
+create_date DATETIME NULL COMMENT '创建时间',
+modify_user_id BIGINT NULL COMMENT '修改人',
+modify_date DATETIME NULL COMMENT '修改时间',
+delete_mark INT NOT NULL COMMENT '删除标记',
+enabled_mark INT NOT NULL COMMENT '有效标志',
+
+`official_document_received_id` BIGINT NOT NULL COMMENT '公文收文id(official_document_post)',
+`receive_user_id` BIGINT NOT NULL COMMENT '转办人id(xjr_user)',
+`is_handle` INT DEFAULT NULL COMMENT '是否落实',
+`handle_time` DATETIME DEFAULT NULL COMMENT '落实时间',
+`alert_time` DATETIME DEFAULT NULL COMMENT '提醒时间',
+`is_transfer` INT DEFAULT 0 COMMENT '是否转办'
+) ENGINE = INNODB
+  DEFAULT CHARSET = utf8mb4 COMMENT = '公文收文-承办表';
+  
+ALTER TABLE official_document_received
+  ADD COLUMN is_handle INT DEFAULT 0 NULL COMMENT '是否已落实',
+  ADD COLUMN handle_time DATETIME NULL COMMENT '落实时间',
+  ADD COLUMN handle_user_id BIGINT NULL COMMENT '落实人';
+
+ALTER TABLE official_document_received
+  ADD COLUMN handle_duty_user_id BIGINT DEFAULT 0 NULL COMMENT '落实负责人';