浏览代码

1,添加Mybatis分页插件,2,业务类型枚举类,3,优化致委托人函逻辑

wucl 8 月之前
父节点
当前提交
0501bdf8df
共有 23 个文件被更改,包括 424 次插入25 次删除
  1. 34 0
      biz-base/src/main/java/com/dayou/controller/DocumentProductionController.java
  2. 1 1
      biz-base/src/main/java/com/dayou/controller/FileUploadController.java
  3. 3 4
      biz-base/src/main/java/com/dayou/controller/HouseGuarantyDocController.java
  4. 2 1
      biz-base/src/main/resources/application.yaml
  5. 3 0
      biz-base/src/test/java/com/dayou/FreeMarkTest.java
  6. 18 0
      common/src/main/java/com/dayou/config/MybatisPlusConfig.java
  7. 54 0
      common/src/main/java/com/dayou/interceptor/DefaultPageInterceptor.java
  8. 11 0
      dao/src/main/java/com/dayou/mapper/DocumentProductionMapper.java
  9. 0 1
      dao/src/main/java/com/dayou/mapper/HouseGuarantyProcessMapper.java
  10. 26 0
      dao/src/main/resources/mapper/DocumentProductionMapper.xml
  11. 0 3
      dao/src/main/resources/mapper/HouseGuarantyProcessMapper.xml
  12. 11 0
      domain/src/main/java/com/dayou/dto/HouseGuarantyTableDTO.java
  13. 70 0
      domain/src/main/java/com/dayou/entity/DocumentProduction.java
  14. 1 4
      domain/src/main/java/com/dayou/entity/HouseGuarantyProcess.java
  15. 6 0
      domain/src/main/java/com/dayou/enums/CodeMsgEnumInterface.java
  16. 29 0
      domain/src/main/java/com/dayou/enums/DocumentType.java
  17. 63 0
      domain/src/main/java/com/dayou/enums/MainBusiness.java
  18. 18 1
      pom.xml
  19. 11 0
      service/src/main/java/com/dayou/service/DocumentProductionService.java
  20. 4 2
      service/src/main/java/com/dayou/service/HouseGuarantyService.java
  21. 22 0
      service/src/main/java/com/dayou/service/impl/DocumentProductionServiceImpl.java
  22. 29 8
      service/src/main/java/com/dayou/service/impl/HouseGuarantyServiceImpl.java
  23. 8 0
      sql/update_sql.sql

+ 34 - 0
biz-base/src/main/java/com/dayou/controller/DocumentProductionController.java

@@ -0,0 +1,34 @@
+package com.dayou.controller;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.dayou.entity.DocumentProduction;
+import com.dayou.result.Result;
+import com.dayou.service.DocumentProductionService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/production")
+@Slf4j
+//@SaCheckLogin
+public class DocumentProductionController {
+
+    @Autowired
+    private DocumentProductionService documentProductionService;
+
+    /**
+     * 文档列表
+     * @param documentProduction
+     * @return
+     */
+    @GetMapping("")
+    public Result<Page<DocumentProduction>> documentProduction(DocumentProduction documentProduction,Page page) {
+        Page<DocumentProduction> ret = documentProductionService.getPage(documentProduction,page);
+        return Result.build(ret);
+
+    }
+}

+ 1 - 1
biz-base/src/main/java/com/dayou/controller/FileUploadController.java

@@ -24,7 +24,7 @@ import static com.dayou.constants.HouseGuarantyDoc.COLLECT1_XLSX;
 @RequestMapping("/file")
 @Slf4j
 @CrossOrigin
-@SaCheckLogin
+//@SaCheckLogin
 public class FileUploadController {
 
     @Autowired

+ 3 - 4
biz-base/src/main/java/com/dayou/controller/HouseGuarantyDocController.java

@@ -1,6 +1,7 @@
 package com.dayou.controller;
 
 
+import com.dayou.dto.HouseGuarantyTableDTO;
 import com.dayou.result.Result;
 import com.dayou.service.HouseGuarantyService;
 import lombok.extern.slf4j.Slf4j;
@@ -21,13 +22,11 @@ public class HouseGuarantyDocController {
 
     /**
      * 生成估价结果一览表的word文件
-     * @param html
-     * @param homePath
      * @return 过程表id
      */
     @PostMapping("/targetTable")
-    public Result<Long> genTargetsTableWord(String html,String homePath){
-        return Result.build(houseGuarantyService.createTableWord(html,homePath));
+    public Result<Long> genTargetsTableWord(@RequestBody HouseGuarantyTableDTO houseGuarantyTableDTO){
+        return Result.build(houseGuarantyService.createTableWord(houseGuarantyTableDTO));
     }
 
     /**

+ 2 - 1
biz-base/src/main/resources/application.yaml

@@ -2,4 +2,5 @@ spring:
   profiles:
     active: local
   application:
-    name: productivity-platform
+    name: productivity-platform
+

+ 3 - 0
biz-base/src/test/java/com/dayou/FreeMarkTest.java

@@ -13,6 +13,7 @@ import com.aspose.words.DocumentBuilder;
 import com.aspose.words.Paragraph;
 import com.dayou.doc.house.ConsignorLetterDO;
 import com.dayou.dto.Address;
+import com.dayou.enums.MainBusiness;
 import com.dayou.exception.ErrorCode;
 import com.dayou.utils.*;
 import com.dayou.utils.table.WordTableHelper;
@@ -167,4 +168,6 @@ public class FreeMarkTest {
 //        mainDoc.save("/Users/wuwei/opt/temp/gen2.docx");
     }
 
+
+
 }

+ 18 - 0
common/src/main/java/com/dayou/config/MybatisPlusConfig.java

@@ -0,0 +1,18 @@
+package com.dayou.config;
+
+import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
+import com.dayou.interceptor.DefaultPageInterceptor;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.core.annotation.Order;
+
+@Configuration
+public class MybatisPlusConfig {
+    @Bean
+    @Order(Integer.MAX_VALUE - 1)
+    public PaginationInterceptor paginationInterceptor() {
+        DefaultPageInterceptor defaultPageInterceptor = new DefaultPageInterceptor();
+        defaultPageInterceptor.setLimit(100L);
+        return defaultPageInterceptor;
+    }
+}

+ 54 - 0
common/src/main/java/com/dayou/interceptor/DefaultPageInterceptor.java

@@ -0,0 +1,54 @@
+package com.dayou.interceptor;
+
+import cn.hutool.core.collection.CollUtil;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.metadata.OrderItem;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.Setter;
+import lombok.experimental.Accessors;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.ibatis.executor.statement.StatementHandler;
+import org.apache.ibatis.plugin.Intercepts;
+import org.apache.ibatis.plugin.Signature;
+
+import java.sql.Connection;
+import java.util.ArrayList;
+import java.util.List;
+
+@Setter
+@Accessors(chain = true)
+@Intercepts({@Signature(type = StatementHandler.class, method = "prepare", args = {Connection.class, Integer.class})})
+@Slf4j
+public class DefaultPageInterceptor extends PaginationInterceptor {
+
+    protected static final String DEFAULT_ORDER_CLOMUN = "id";
+
+    /**
+     * 尽可能的找出默认排序字段
+     * 查询SQL拼接Order By
+     * 优先取别名id 没取到再取id  如果已有排序 就不传
+     *
+     * @param originalSql 需要拼接的SQL
+     * @param page        page对象
+     * @return ignore
+     */
+    @Override
+    public String concatOrderBy(String originalSql, IPage<?> page) {
+        if (CollectionUtils.isEmpty(page.orders())) {
+            String defaultOrder = DEFAULT_ORDER_CLOMUN;
+            if (page instanceof Page && defaultOrder != null) {
+                List<OrderItem> item = new ArrayList<>();
+                OrderItem defaultOrderItem = new OrderItem();
+                defaultOrderItem.setColumn(defaultOrder);
+                defaultOrderItem.setAsc(false);
+                item.add(defaultOrderItem);
+                ((Page<?>) page).addOrder(item);
+            }
+        }
+        return super.concatOrderBy(originalSql, page);
+    }
+
+
+}

+ 11 - 0
dao/src/main/java/com/dayou/mapper/DocumentProductionMapper.java

@@ -0,0 +1,11 @@
+package com.dayou.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.dayou.entity.DocumentProduction;
+import org.apache.ibatis.annotations.Param;
+
+public interface DocumentProductionMapper extends BaseMapper<DocumentProduction> {
+
+    Page<DocumentProduction> getPage(Page page, @Param("doc") DocumentProduction doc);
+}

+ 0 - 1
dao/src/main/java/com/dayou/mapper/HouseGuarantyProcessMapper.java

@@ -14,5 +14,4 @@ import org.apache.ibatis.annotations.Param;
  */
 public interface HouseGuarantyProcessMapper extends BaseMapper<HouseGuarantyProcess> {
 
-    void updateDocNo(@Param("id") Long id, @Param("docNo") String docNo);
 }

+ 26 - 0
dao/src/main/resources/mapper/DocumentProductionMapper.xml

@@ -0,0 +1,26 @@
+<?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="com.dayou.mapper.DocumentProductionMapper">
+
+    <select id="getPage" parameterType="com.dayou.entity.DocumentProduction" resultType="com.dayou.entity.DocumentProduction">
+        SELECT
+            id,
+            business_type,
+            business_cate,
+            business_id,
+            doc_type,
+            doc_no,
+            doc_name,
+            doc_url,
+            doc_version,
+            is_active,
+            create_time,
+            update_time,
+            consignor
+        FROM
+            document_production
+        WHERE
+            delete_status = 0 ORDER by update_time DESC
+    </select>
+
+</mapper>

+ 0 - 3
dao/src/main/resources/mapper/HouseGuarantyProcessMapper.xml

@@ -2,8 +2,5 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.dayou.mapper.HouseGuarantyProcessMapper">
 
-    <update id="updateDocNo" >
-        update house_guaranty_process set doc_no = #{docNo} where id = #{id} and delete_status = 0
-    </update>
 
 </mapper>

+ 11 - 0
domain/src/main/java/com/dayou/dto/HouseGuarantyTableDTO.java

@@ -0,0 +1,11 @@
+package com.dayou.dto;
+
+import lombok.Data;
+
+@Data
+public class HouseGuarantyTableDTO {
+
+    private String html;
+
+    private String homePath;
+}

+ 70 - 0
domain/src/main/java/com/dayou/entity/DocumentProduction.java

@@ -0,0 +1,70 @@
+package com.dayou.entity;
+
+import com.dayou.common.BaseEntity;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class DocumentProduction extends BaseEntity implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 业务类型
+     */
+    private String businessType;
+
+    /**
+     * 业务子类
+     */
+    private String businessCate;
+
+    /**
+     * 业务id
+     */
+    private Long businessId;
+
+    /**
+     * 文档类型(各类报告、复评函、意见书、各类测算表)
+     */
+    private String docType;
+
+    /**
+     * 文档编号
+     */
+    private String docNo;
+
+    /**
+     * 文档名称
+     */
+    private String docName;
+
+    /**
+     * 文档路径
+     */
+    private String docUrl;
+
+    /**
+     * 业务版本
+     */
+    private Integer docVersion;
+
+    /**
+     * 当前使用
+     */
+    private Boolean isActive;
+
+    /**
+     * 业务生成人id
+     */
+    private Long createUserId;
+
+    /**
+     * 委托人
+     */
+    private String consignor;
+
+
+
+}

+ 1 - 4
domain/src/main/java/com/dayou/entity/HouseGuarantyProcess.java

@@ -12,10 +12,6 @@ public class HouseGuarantyProcess extends BaseEntity implements Serializable {
 
     private static final long serialVersionUID=1L;
 
-    /**
-     * 文档编号
-     */
-    private String docNo;
 
     /**
      * docHome
@@ -26,4 +22,5 @@ public class HouseGuarantyProcess extends BaseEntity implements Serializable {
      * 估价结果一览表代码
      */
     private String targetsHtml;
+
 }

+ 6 - 0
domain/src/main/java/com/dayou/enums/CodeMsgEnumInterface.java

@@ -0,0 +1,6 @@
+package com.dayou.enums;
+
+public interface CodeMsgEnumInterface<K,V> {
+    K getCode();
+    V getMsg();
+}

+ 29 - 0
domain/src/main/java/com/dayou/enums/DocumentType.java

@@ -0,0 +1,29 @@
+package com.dayou.enums;
+
+
+import lombok.Getter;
+
+@Getter
+public enum DocumentType {
+
+    REPORT("REPORT","一般报告"),
+
+    LETTER("LETTER", "复评函"),
+
+    STATEMENT("STATEMENT", "意见书"),
+
+    CALCULATE_TABLE("CALCULATE_TABLE","测算表"),
+
+    FOLDER("FOLDER","文件夹")
+    ;
+
+    private String name;
+
+    private String zhName;
+
+    DocumentType(String name, String zhName) {
+        this.name = name;
+        this.zhName = zhName;
+    }
+
+}

+ 63 - 0
domain/src/main/java/com/dayou/enums/MainBusiness.java

@@ -0,0 +1,63 @@
+package com.dayou.enums;
+
+import lombok.Data;
+
+
+public enum MainBusiness implements CodeMsgEnumInterface<String,String>{
+
+    HOUSE("HOUSE","房地产", HouseSubBusiness.values());
+
+    private String code;
+
+    private String msg;
+
+    private CodeMsgEnumInterface[] subBusiness;
+
+    MainBusiness(String code, String msg, CodeMsgEnumInterface[] subBusiness) {
+        this.code = code;
+        this.msg = msg;
+        this.subBusiness = subBusiness;
+    }
+
+    @Override
+    public String getCode() {
+        return code;
+    }
+
+    @Override
+    public String getMsg() {
+        return msg;
+    }
+
+    public enum HouseSubBusiness implements CodeMsgEnumInterface<String,String>{
+
+        GUARANTY("GUARANTY","抵押"),
+
+        CONSULT("CONSULT","咨询"),
+
+        ARMY("ARMY","军队");
+
+
+
+        private String code;
+
+        private String msg;
+
+        private HouseSubBusiness(String code, String msg) {
+            this.code = code;
+            this.msg = msg;
+        }
+
+        @Override
+        public String getCode() {
+            return code;
+        }
+
+        @Override
+        public String getMsg() {
+            return msg;
+        }
+    }
+
+
+}

+ 18 - 1
pom.xml

@@ -29,7 +29,7 @@
         <lombok.version>1.18.34</lombok.version>
         <hutool.version>5.8.32</hutool.version>
         <fastjson2.version>2.0.53</fastjson2.version>
-        <pagehelper.version>2.1.0</pagehelper.version>
+        <pagehelper.version>1.2.5</pagehelper.version>
         <commons-fileupload.version>1.5</commons-fileupload.version>
         <sa-token.version>1.39.0</sa-token.version>
         <easyexcel.vsersion>4.0.3</easyexcel.vsersion>
@@ -41,6 +41,7 @@
         <freemarker.version>2.3.29</freemarker.version>
         <aspose-cells.version>21.11</aspose-cells.version>
         <commons-lang3.version>3.7</commons-lang3.version>
+        <jsqlparser.version>2.1</jsqlparser.version>
     </properties>
 
     <dependencyManagement>
@@ -101,6 +102,22 @@
                 <groupId>com.github.pagehelper</groupId>
                 <artifactId>pagehelper-spring-boot-starter</artifactId>
                 <version>${pagehelper.version}</version>
+                <exclusions>
+                    <exclusion>
+                        <groupId>org.mybatis</groupId>
+                        <artifactId>mybatis</artifactId>
+                    </exclusion>
+                    <exclusion>
+                        <groupId>org.mybatis</groupId>
+                        <artifactId>mybatis-spring</artifactId>
+                    </exclusion>
+                </exclusions>
+            </dependency>
+
+            <dependency>
+                <groupId>com.github.jsqlparser</groupId>
+                <artifactId>jsqlparser</artifactId>
+                <version>${jsqlparser.version}</version>
             </dependency>
 
             <!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload -->

+ 11 - 0
service/src/main/java/com/dayou/service/DocumentProductionService.java

@@ -0,0 +1,11 @@
+package com.dayou.service;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.dayou.entity.DocumentProduction;
+
+public interface DocumentProductionService extends IService<DocumentProduction> {
+
+    Page<DocumentProduction> getPage(DocumentProduction documentProduction, Page page);
+}

+ 4 - 2
service/src/main/java/com/dayou/service/HouseGuarantyService.java

@@ -1,15 +1,17 @@
 package com.dayou.service;
 
 
+import com.dayou.dto.HouseGuarantyTableDTO;
+
 public interface HouseGuarantyService {
 
 
     /**
      * 创建估价结果一览表word文件
-     * @param html
+     * @param houseGuarantyTableDTO
      * @return
      */
-    Long createTableWord(String html,String homePath);
+    Long createTableWord(HouseGuarantyTableDTO houseGuarantyTableDTO);
 
     /**
      * 解析表单1

+ 22 - 0
service/src/main/java/com/dayou/service/impl/DocumentProductionServiceImpl.java

@@ -0,0 +1,22 @@
+package com.dayou.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dayou.entity.DocumentProduction;
+import com.dayou.mapper.DocumentProductionMapper;
+import com.dayou.service.DocumentProductionService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class DocumentProductionServiceImpl extends ServiceImpl<DocumentProductionMapper, DocumentProduction>
+        implements DocumentProductionService {
+
+    @Autowired
+    private DocumentProductionMapper documentProductionMapper;
+
+    @Override
+    public Page<DocumentProduction> getPage(DocumentProduction documentProduction, Page page) {
+        return  documentProductionMapper.getPage(page,documentProduction);
+    }
+}

+ 29 - 8
service/src/main/java/com/dayou/service/impl/HouseGuarantyServiceImpl.java

@@ -8,9 +8,13 @@ import com.aspose.cells.Workbook;
 import com.aspose.words.*;
 import com.dayou.config.FileNetConfig;
 import com.dayou.doc.house.ConsignorLetterDO;
+import com.dayou.dto.HouseGuarantyTableDTO;
+import com.dayou.entity.DocumentProduction;
 import com.dayou.entity.HouseGuarantyProcess;
+import com.dayou.enums.DocumentType;
+import com.dayou.enums.MainBusiness;
 import com.dayou.exception.ErrorCode;
-import com.dayou.mapper.HouseGuarantyProcessMapper;
+import com.dayou.service.DocumentProductionService;
 import com.dayou.service.HouseGuarantyProcessService;
 import com.dayou.service.HouseGuarantyService;
 import com.dayou.utils.AsposeWordUtil;
@@ -24,12 +28,10 @@ import org.springframework.stereotype.Service;
 
 import java.io.File;
 import java.io.FileOutputStream;
-import java.io.IOException;
 import java.nio.file.Files;
 import java.nio.file.Paths;
 import java.util.List;
 import java.util.Map;
-import java.util.UUID;
 import java.util.stream.Collectors;
 
 import static com.dayou.constants.HouseGuarantyDoc.*;
@@ -49,10 +51,12 @@ public class HouseGuarantyServiceImpl implements HouseGuarantyService {
     private FileNetConfig fileNetConfig;
 
     @Autowired
-    private HouseGuarantyProcessMapper houseGuarantyProcessMapper;
+    private DocumentProductionService documentProductionService;
 
     @Override
-    public Long createTableWord(String html,String homePath) {
+    public Long createTableWord(HouseGuarantyTableDTO houseGuarantyTableDTO) {
+        String html = houseGuarantyTableDTO.getHtml();
+        String homePath = houseGuarantyTableDTO.getHomePath();
         html = wordTableHelper.htmlTableFormat(html);
         HouseGuarantyProcess hgp = new HouseGuarantyProcess();
         hgp.setHome(homePath);
@@ -92,11 +96,13 @@ public class HouseGuarantyServiceImpl implements HouseGuarantyService {
             //读取基本信息
             XSSFWorkbook workbook = new XSSFWorkbook(home + COLLECT1_XLSX);
             Map<String, String> valueMap = EasyExcelUtil.getExcelCellValue(workbook, BASE_INFO_ZH);
-            //更新文档编号
-            houseGuarantyProcessMapper.updateDocNo(id,valueMap.get("docNo"));
+            String projectName = HouseDocumentUtil.getProjectName(array);
+            String docNo = valueMap.get("docNo");
+            String consignor = valueMap.get("consignor");
 
             ConsignorLetterDO clDO = JSON.parseObject(JSON.toJSONString(valueMap), ConsignorLetterDO.class);
-            clDO.setProjectName(HouseDocumentUtil.getProjectName(array));
+
+            clDO.setProjectName(projectName);
             Map<Object, List<Object>> collect = array.stream().collect(Collectors.groupingBy(x -> ((JSONObject) x).get(ID.getZhName())));
             String actDesc = "";
             int index = 1;
@@ -131,6 +137,8 @@ public class HouseGuarantyServiceImpl implements HouseGuarantyService {
             fos.write(resultWordByte);
             fos.close();
             insetTargetTableWord(consignorLetterName,home + TARGETS_DOCX,removeBlank);
+
+            documentProductionService.save(buildDocumentProduction(id,projectName,docNo,consignorLetterName,consignor));
             return consignorLetterName;
         } catch (Exception e) {
             throw new RuntimeException(e);
@@ -182,4 +190,17 @@ public class HouseGuarantyServiceImpl implements HouseGuarantyService {
             currentParagraph1.remove();
         }
     }
+
+    private DocumentProduction buildDocumentProduction(Long id,String docName,String docNo,String docUrl,String consignor){
+        DocumentProduction dp = new DocumentProduction();
+        dp.setBusinessType(MainBusiness.HOUSE.getCode());
+        dp.setBusinessCate(MainBusiness.HouseSubBusiness.GUARANTY.getCode());
+        dp.setBusinessId(id);
+        dp.setDocName(docName);
+        dp.setDocType(DocumentType.REPORT.getName());
+        dp.setDocUrl(docUrl);
+        dp.setDocNo(docNo);
+        dp.setConsignor(consignor);
+        return dp;
+    }
 }

+ 8 - 0
sql/update_sql.sql

@@ -213,3 +213,11 @@ ALTER TABLE house_guaranty_process ADD COLUMN doc_no VARCHAR(128) NOT NULL COMME
   未更新到test-env
  */
 ALTER TABLE tmpl_asset_calculate_section CHANGE COLUMN template_report_id template_calculate_id BIGINT(20) NOT NULL COMMENT '测算表模板id';
+
+/**
+  日期:2024-11-11
+  修改人:吴长林
+  未更新到test-env
+ */
+ALTER TABLE house_guaranty_process DROP COLUMN doc_no;
+ALTER TABLE document_production ADD COLUMN business_cate VARCHAR(128)  COMMENT '业务子类';