he2802 1 anno fa
parent
commit
7cef0e9579
29 ha cambiato i file con 4235 aggiunte e 0 eliminazioni
  1. 2 0
      .drone-dev.yml
  2. 11 0
      Dockerfile-business
  3. 1 0
      pom.xml
  4. 47 0
      run-dev.sh
  5. 128 0
      zhongzheng-admin-business/pom.xml
  6. 23 0
      zhongzheng-admin-business/src/main/java/com/zhongzheng/AdminBusinessApplication.java
  7. 18 0
      zhongzheng-admin-business/src/main/java/com/zhongzheng/AdminBusinessServletInitializer.java
  8. 397 0
      zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/goods/GoodsController.java
  9. 150 0
      zhongzheng-admin-business/src/main/java/com/zhongzheng/core/config/SwaggerConfig.java
  10. 1 0
      zhongzheng-admin-business/src/main/resources/META-INF/spring-devtools.properties
  11. 213 0
      zhongzheng-admin-business/src/main/resources/application-dev.yml
  12. 193 0
      zhongzheng-admin-business/src/main/resources/application-pre.yml
  13. 212 0
      zhongzheng-admin-business/src/main/resources/application-prod.yml
  14. 151 0
      zhongzheng-admin-business/src/main/resources/application-trial.yml
  15. 305 0
      zhongzheng-admin-business/src/main/resources/application.yml
  16. 2 0
      zhongzheng-admin-business/src/main/resources/banner.txt
  17. BIN
      zhongzheng-admin-business/src/main/resources/config/1342013901/apiclient_cert.p12
  18. BIN
      zhongzheng-admin-business/src/main/resources/config/1637492608/apiclient_cert.p12
  19. BIN
      zhongzheng-admin-business/src/main/resources/config/1640084970/apiclient_cert.p12
  20. BIN
      zhongzheng-admin-business/src/main/resources/config/1645338056/apiclient_cert.p12
  21. BIN
      zhongzheng-admin-business/src/main/resources/config/1664882784/apiclient_cert.p12
  22. BIN
      zhongzheng-admin-business/src/main/resources/config/1665678341/apiclient_cert.p12
  23. BIN
      zhongzheng-admin-business/src/main/resources/config/1666320573/apiclient_cert.p12
  24. BIN
      zhongzheng-admin-business/src/main/resources/config/1667498563/apiclient_cert.p12
  25. 36 0
      zhongzheng-admin-business/src/main/resources/i18n/messages.properties
  26. 108 0
      zhongzheng-admin-business/src/main/resources/logback.xml
  27. 0 0
      zhongzheng-admin-business/src/main/resources/mybatis/mybatis-config.xml
  28. 2119 0
      zhongzheng-admin-business/src/main/resources/templates/word.ftl
  29. 118 0
      zhongzheng-admin-business/src/main/resources/templates/wordPhone.ftl

+ 2 - 0
.drone-dev.yml

@@ -17,9 +17,11 @@ steps: # 定义流水线执行步骤,这些步骤将顺序执行
       - cp /drone/src/zhongzheng-api/target/zhongzheng-api.jar /app/build/zhongzheng-api.jar
       - cp /drone/src/zhongzheng-admin/target/zhongzheng-admin.jar /app/build/zhongzheng-admin.jar
       - cp /drone/src/zhongzheng-admin-saas/target/zhongzheng-admin-saas.jar /app/build/zhongzheng-admin-saas.jar
+      - - cp /drone/src/zhongzheng-admin-business/target/zhongzheng-admin-business.jar /app/build/zhongzheng-admin-business.jar
       - cp Dockerfile /app/build/Dockerfile
       - cp Dockerfile-admi /app/build/Dockerfile-admi
       - cp Dockerfile-saas /app/build/Dockerfile-saas
+      - cp Dockerfile-business /app/build/Dockerfile-business
       - cp run-dev.sh /app/build/run-dev.sh
 
   - name: build-start

+ 11 - 0
Dockerfile-business

@@ -0,0 +1,11 @@
+
+# 该镜像需要依赖的基础镜像
+FROM java:8
+# 将当前目录下的jar包复制到docker容器的/目录下
+ADD zhongzheng-admin-business.jar /app-saas-business.jar
+# 声明服务运行在9099端口
+EXPOSE 5080
+# 指定docker容器启动时运行jar包
+ENTRYPOINT ["java", "-jar","/app-saas-admin.jar"]
+# 指定维护者的名字
+MAINTAINER zhongZheng

+ 1 - 0
pom.xml

@@ -218,6 +218,7 @@
         <module>zhongzheng-generator</module>
         <module>zhongzheng-common</module>
         <module>zhongzheng-admin-saas</module>
+        <module>zhongzheng-admin-business</module>
     </modules>
     <packaging>pom</packaging>
 

+ 47 - 0
run-dev.sh

@@ -117,4 +117,51 @@ docker run \
 echo '----start container admin top----'
 
 
+echo "开始等待20秒..."
+# 1-10秒内随机
+sleep 5
+echo "等待后继续"
+
+#!/usr/bin/env bash
+# 定义应用组名
+group_admin_name='zhongzheng'
+# 定义应用名称
+app_admin_name='zhongzheng-saas-business'
+# 定义应用版本
+app_admin_version='1.0-SNAPSHOT'
+# 定义应用环境
+profile_active='dev'
+echo '----copy jar admin----'
+docker stop ${app_admin_name}
+echo '----stop container admin----'
+docker rm ${app_admin_name}
+echo '----rm container admin----'
+docker rmi ${group_admin_name}/${app_admin_name}:${app_admin_version}
+echo '----rm image admin----'
+# 打包编译docker镜像
+docker build -f /mydata/maven/build/Dockerfile-admi -t ${group_admin_name}/${app_admin_name}:${app_admin_version} .
+echo '----build image admin----'
+docker run \
+-p 5080:5080 \
+--name ${app_admin_name} \
+--restart=always \
+--link mysql:db \
+--log-opt max-size=50m \
+--log-opt max-file=3 \
+-e 'spring.profiles.active'=${profile_active} \
+-e TZ="Asia/Shanghai" \
+--add-host=gdxypx.xy.com:192.168.1.210 \
+-v /etc/localtime:/etc/localtime \
+-v /usr/share/fonts:/usr/share/fonts \
+-v /data/logs/dev_admin:/logs \
+-v /mydata/app/${app_admin_name}/logs:/var/logs \
+-v /data/nginx/conf.d:/data/nginx/conf.d \
+-d ${group_admin_name}/${app_admin_name}:${app_admin_version}
+echo '----start container admin----'
+
+echo "开始等待20秒..."
+# 1-10秒内随机
+sleep 5
+echo "等待后继续"
+
 

+ 128 - 0
zhongzheng-admin-business/pom.xml

@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>zhongzheng</artifactId>
+        <groupId>com.zhongzheng</groupId>
+        <version>3.4.0</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+    <packaging>jar</packaging>
+    <artifactId>zhongzheng-admin-business</artifactId>
+
+    <description>
+        web服务入口
+    </description>
+
+    <dependencies>
+
+        <!-- spring-boot-devtools -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-devtools</artifactId>
+            <optional>true</optional> <!-- 表示依赖不会传递 -->
+        </dependency>
+
+
+
+<!--        &lt;!&ndash; swagger2&ndash;&gt;-->
+<!--        <dependency>-->
+<!--            <groupId>io.springfox</groupId>-->
+<!--            <artifactId>springfox-swagger2</artifactId>-->
+<!--        </dependency>-->
+
+<!--        &lt;!&ndash;防止进入swagger页面报类型转换错误,排除2.9.2中的引用,手动增加1.5.21版本&ndash;&gt;-->
+<!--        <dependency>-->
+<!--            <groupId>io.swagger</groupId>-->
+<!--            <artifactId>swagger-annotations</artifactId>-->
+<!--            <version>1.5.21</version>-->
+<!--        </dependency>-->
+
+<!--        <dependency>-->
+<!--            <groupId>io.swagger</groupId>-->
+<!--            <artifactId>swagger-models</artifactId>-->
+<!--            <version>1.5.21</version>-->
+<!--        </dependency>-->
+
+<!--        <dependency>-->
+<!--            <groupId>com.github.xiaoymin</groupId>-->
+<!--            <artifactId>swagger-bootstrap-ui</artifactId>-->
+<!--        </dependency>-->
+
+        <dependency>
+            <groupId>com.github.xiaoymin</groupId>
+            <artifactId>knife4j-spring-boot-starter</artifactId>
+        </dependency>
+
+         <!-- Mysql驱动包 -->
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+        </dependency>
+
+        <!-- 核心模块-->
+        <dependency>
+            <groupId>com.zhongzheng</groupId>
+            <artifactId>zhongzheng-framework</artifactId>
+        </dependency>
+
+        <!-- 定时任务-->
+        <dependency>
+            <groupId>com.zhongzheng</groupId>
+            <artifactId>zhongzheng-quartz</artifactId>
+        </dependency>
+
+        <!-- 代码生成-->
+        <dependency>
+            <groupId>com.zhongzheng</groupId>
+            <artifactId>zhongzheng-generator</artifactId>
+        </dependency>
+
+
+
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>2.1.1.RELEASE</version>
+                <configuration>
+                    <fork>true</fork> <!-- 如果没有该配置,devtools不会生效 -->
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-war-plugin</artifactId>
+                <version>3.1.0</version>
+                <configuration>
+                    <failOnMissingWebXml>false</failOnMissingWebXml>
+                    <warName>${project.artifactId}</warName>
+                </configuration>
+           </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-resources-plugin</artifactId>
+                <configuration>
+                    <encoding>UTF-8</encoding>
+                    <nonFilteredFileExtensions>
+                        <nonFilteredFileExtension>pem</nonFilteredFileExtension>
+                        <nonFilteredFileExtension>pfx</nonFilteredFileExtension>
+                        <nonFilteredFileExtension>p12</nonFilteredFileExtension>
+                    </nonFilteredFileExtensions>
+                </configuration>
+            </plugin>
+        </plugins>
+        <finalName>${project.artifactId}</finalName>
+    </build>
+
+</project>

+ 23 - 0
zhongzheng-admin-business/src/main/java/com/zhongzheng/AdminBusinessApplication.java

@@ -0,0 +1,23 @@
+package com.zhongzheng;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
+import org.springframework.scheduling.annotation.EnableScheduling;
+
+/**
+ * 启动程序
+ *
+ * @author zhongzheng
+ */
+
+@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
+@EnableScheduling
+public class AdminBusinessApplication
+{
+    public static void main(String[] args)
+    {
+        SpringApplication.run(AdminBusinessApplication.class, args);
+        System.out.println("(♥◠‿◠)ノ゙  中正B端启动成功   ლ(´ڡ`ლ)゙"+"ZSADMIN");
+    }
+}

+ 18 - 0
zhongzheng-admin-business/src/main/java/com/zhongzheng/AdminBusinessServletInitializer.java

@@ -0,0 +1,18 @@
+package com.zhongzheng;
+
+import org.springframework.boot.builder.SpringApplicationBuilder;
+import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
+
+/**
+ * web容器中进行部署
+ *
+ * @author zhongzheng
+ */
+public class AdminBusinessServletInitializer extends SpringBootServletInitializer
+{
+    @Override
+    protected SpringApplicationBuilder configure(SpringApplicationBuilder application)
+    {
+        return application.sources(AdminBusinessApplication.class);
+    }
+}

+ 397 - 0
zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/goods/GoodsController.java

@@ -0,0 +1,397 @@
+package com.zhongzheng.controller.goods;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.lang.Validator;
+import com.zhongzheng.common.annotation.Log;
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.common.core.page.TableDataInfo;
+import com.zhongzheng.common.enums.BusinessType;
+import com.zhongzheng.common.utils.poi.ExcelUtil;
+import com.zhongzheng.modules.bank.service.IQuestionService;
+import com.zhongzheng.modules.exam.bo.ExamNumberGoodsQueryBo;
+import com.zhongzheng.modules.exam.vo.ExamNumberGoodsVo;
+import com.zhongzheng.modules.goods.bo.*;
+import com.zhongzheng.modules.goods.service.IGoodsAttachedService;
+import com.zhongzheng.modules.goods.service.IGoodsService;
+import com.zhongzheng.modules.goods.vo.*;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 商品Controller
+ *
+ * @author hjl
+ * @date 2021-10-12
+ */
+@Api(value = "商品控制器", tags = {"商品管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/goods")
+public class GoodsController extends BaseController {
+
+    private final IGoodsService iGoodsService;
+
+    private final IGoodsAttachedService iGoodsAttachedService;
+
+    private final IQuestionService iQuestionService;
+
+    /**
+     * 查询商品列表
+     */
+    @ApiOperation("查询商品列表")
+    @PreAuthorize("@ss.hasPermi('system:goods:list')")
+    @GetMapping("/list")
+    public TableDataInfo<GoodsVo> list(GoodsQueryBo bo) {
+      /*  bo.setStatus(new ArrayList<Integer>(){{
+            add(1);
+        }});*/
+        startPage();
+        List<GoodsVo> list = iGoodsService.selectList(bo);
+        return getDataTable(list);
+    }
+
+    @ApiOperation("导出直播商品列表")
+    @PreAuthorize("@ss.hasPermi('system:goods:list')")
+    @GetMapping("/export_list")
+    public AjaxResult<ExportLiveGoodsVo> export_list(GoodsQueryBo bo) {
+        List<GoodsVo> list = iGoodsService.selectList(bo);
+        List<ExportLiveGoodsVo> list1 = new ArrayList<>();
+        for(GoodsVo vo : list){
+            ExportLiveGoodsVo goodsVo = BeanUtil.toBean(vo, ExportLiveGoodsVo.class);
+            goodsVo.setBusinessName(vo.getEducationName()+"-"+vo.getProjectName()+"-"+vo.getBusinessName());
+            if(Validator.isEmpty(vo.getPeriod())){
+                goodsVo.setPeriod(0L);
+            }
+            list1.add(goodsVo);
+        }
+        ExcelUtil<ExportLiveGoodsVo> util = new ExcelUtil<>(ExportLiveGoodsVo.class);
+        return util.exportExcel(list1,"直播学习记录");
+    }
+
+
+    @ApiOperation("查询商品列表To录单")
+    @PreAuthorize("@ss.hasPermi('system:goods:list')")
+    @GetMapping("/listToInput")
+    public TableDataInfo<GoodsVo> listToInput(GoodsQueryBo bo) {
+        startPage();
+        List<GoodsVo> list = iGoodsService.selectListToInput(bo);
+        return getDataTable(list);
+    }
+
+    @ApiOperation("获取商品规格模板列表")
+    @GetMapping("/spec/list/{goodsId}")
+    public AjaxResult<List<GoodsSpecTemplateVo>> getSpecTemplateList(@PathVariable("goodsId") Long goodsId) {
+        List<GoodsSpecTemplateVo> list = iGoodsService.getSpecTemplateList(goodsId);
+        return AjaxResult.success(list);
+    }
+
+    @ApiOperation("修改商品默认规格模板")
+    @PostMapping("/update/spec")
+    public AjaxResult<Void> updateSpecTemplate(@RequestBody GoodsSpecTempEditBo bo) {
+        return toAjax(iGoodsService.updateSpecTemplate(bo) ? 1 : 0);
+    }
+
+    @ApiOperation("取消商品默认规格模板")
+    @PostMapping("/cancel/spec")
+    public AjaxResult<Void> cancelSpecTemplate(@RequestBody GoodsSpecTempEditBo bo) {
+        return toAjax(iGoodsService.cancelSpecTemplate(bo) ? 1 : 0);
+    }
+
+    /**
+     * 导出商品列表
+     */
+    /*selectList*/
+
+    /**
+     * 获取商品详细信息
+     */
+    @ApiOperation("获取商品详细信息")
+    @PreAuthorize("@ss.hasPermi('system:goods:query')")
+    @GetMapping("/{goodsId}")
+    public AjaxResult<GoodsVo> getInfo(@PathVariable("goodsId" ) Long goodsId) {
+        return AjaxResult.success(iGoodsService.selectDetail(goodsId));
+    }
+
+    /**
+     * 新增课程商品
+     */
+    @ApiOperation("新增课程商品")
+    @PreAuthorize("@ss.hasPermi('system:goods:add')")
+    @Log(title = "商品", businessType = BusinessType.INSERT)
+    @PostMapping()
+    public AjaxResult<Void> add(@RequestBody GoodsAddBo bo) {
+        return toAjax(iGoodsService.insertByAddBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 修改商品
+     */
+    @ApiOperation("修改商品")
+    @PreAuthorize("@ss.hasPermi('system:goods:edit')")
+    @Log(title = "商品", businessType = BusinessType.UPDATE)
+    @PostMapping("/edit")
+    public AjaxResult<Void> edit(@RequestBody GoodsEditBo bo) {
+        return toAjax(iGoodsService.updateByEditBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 商品批量上下架
+     */
+    @ApiOperation("商品批量上下架")
+    @PostMapping("/batch/updateStatus")
+    public AjaxResult<Void> batchUpdateStatus(@RequestBody GoodsBatchUpdateStatusBo bo) {
+        return toAjax(iGoodsService.GoodsBatchUpdateStatusBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 商品批量删除
+     */
+    @ApiOperation("商品批量删除")
+    @PostMapping("/batch/del")
+    public AjaxResult<Void> batchDelGoods(@RequestBody GoodsBatchDelBo bo) {
+        return toAjax(iGoodsService.batchDelGoods(bo) ? 1 : 0);
+    }
+
+    /**
+     * 删除商品
+     */
+   /* @ApiOperation("删除商品")
+    @PreAuthorize("@ss.hasPermi('system:goods:remove')")
+    @Log(title = "商品" , businessType = BusinessType.DELETE)
+    @DeleteMapping("/{goodsIds}")
+    public AjaxResult<Void> remove(@PathVariable Long[] goodsIds) {
+        return toAjax(iGoodsService.deleteWithValidByIds(Arrays.asList(goodsIds), true) ? 1 : 0);
+    }*/
+
+    /**
+     * 新增题库商品
+     */
+    @ApiOperation("新增题库商品")
+    @PreAuthorize("@ss.hasPermi('system:goods:add')")
+    @Log(title = "商品", businessType = BusinessType.INSERT)
+    @PostMapping("/bank")
+    public AjaxResult<Void> addBank(@RequestBody GoodsBankAddBo bo) {
+        return toAjax(iGoodsService.insertBankByAddBo(bo)>0 ? 1 : 0);
+    }
+
+    @ApiOperation("新增讲义商品")
+    @PreAuthorize("@ss.hasPermi('system:goods:add')")
+    @Log(title = "商品", businessType = BusinessType.INSERT)
+    @PostMapping("/handouts")
+    public AjaxResult<Void> addHandouts(@RequestBody GoodsAddBo bo) {
+        return toAjax(iGoodsService.insertHandoutsByAddBo(bo)>0 ? 1 : 0);
+    }
+
+    /**
+     * 修改商品
+     */
+    @ApiOperation("修改题库商品")
+    @PreAuthorize("@ss.hasPermi('system:goods:edit')")
+    @Log(title = "题库商品", businessType = BusinessType.UPDATE)
+    @PostMapping("/bank/edit")
+    public AjaxResult<Void> editBank(@RequestBody GoodsBankEditBo bo) {
+        return toAjax(iGoodsService.updateBankByEditBo(bo) ? 1 : 0);
+    }
+
+    @ApiOperation("修改讲义商品")
+    @PreAuthorize("@ss.hasPermi('system:goods:edit')")
+    @Log(title = "讲义商品", businessType = BusinessType.UPDATE)
+    @PostMapping("/handouts/edit")
+    public AjaxResult<Void> editHandouts(@RequestBody GoodsEditBo bo) {
+        return toAjax(iGoodsService.updateHandoutsByEditBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 查询题目业务层次关系列表
+     */
+    @ApiOperation("查询题库商品试卷列表")
+    @PreAuthorize("@ss.hasPermi('system:business:list')")
+    @GetMapping("/bank/list")
+    public AjaxResult<List<GoodsAttachedVo>> bankList(GoodsAttachedQueryBo bo) {
+        List<GoodsAttachedVo> list = iGoodsAttachedService.getList(bo);
+        return AjaxResult.success(list);
+    }
+
+
+    /**
+     * 新增课程商品
+     */
+    @ApiOperation("新增补考商品")
+    @PreAuthorize("@ss.hasPermi('system:goods:add')")
+    @Log(title = "商品", businessType = BusinessType.INSERT)
+    @PostMapping("/make")
+    public AjaxResult<Void> addMake(@RequestBody GoodsAddBo bo) {
+        return toAjax(iGoodsService.insertMakeByAddBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 修改商品
+     */
+    @ApiOperation("修改补考商品")
+    @PreAuthorize("@ss.hasPermi('system:goods:edit')")
+    @Log(title = "商品", businessType = BusinessType.UPDATE)
+    @PostMapping("/make/edit")
+    public AjaxResult<Void> editMake(@RequestBody GoodsEditBo bo) {
+        return toAjax(iGoodsService.updateMakeByEditBo(bo) ? 1 : 0);
+    }
+
+
+    /**
+     * 新增课程商品
+     */
+    @ApiOperation("新增前培商品")
+    @PreAuthorize("@ss.hasPermi('system:goods:add')")
+    @Log(title = "商品", businessType = BusinessType.INSERT)
+    @PostMapping("/front")
+    public AjaxResult<Void> addFront(@RequestBody GoodsAddBo bo) {
+        return toAjax(iGoodsService.insertFrontByAddBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 修改商品
+     */
+    @ApiOperation("修改前培商品")
+    @PreAuthorize("@ss.hasPermi('system:goods:edit')")
+    @Log(title = "商品", businessType = BusinessType.UPDATE)
+    @PostMapping("/front/edit")
+    public AjaxResult<Void> editFront(@RequestBody GoodsEditBo bo) {
+        return toAjax(iGoodsService.updateFrontByEditBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 查询考试配置绑定商品列表
+     */
+    @ApiOperation("查询前培或补考商品列表")
+    @PreAuthorize("@ss.hasPermi('system:goods:list')")
+    @GetMapping("/listGoods")
+    public TableDataInfo<ExamNumberGoodsVo> listGoods(ExamNumberGoodsQueryBo bo) {
+        startPage();
+        List<ExamNumberGoodsVo> list = iGoodsService.listGoods(bo);
+        return getDataTable(list);
+    }
+
+    /**
+     * 查询免费题库商品列表
+     */
+    @ApiOperation("查询免费题库商品列表")
+    @GetMapping("/listFreeGoodsList")
+    public TableDataInfo<GoodsUserQuestionVo> listFreeGoodsList(GoodsQueryBo bo) {
+        startPage();
+        List<GoodsUserQuestionVo> list = iQuestionService.listFreeGoodsList(bo);
+        return getDataTable(list);
+    }
+
+    /**
+     * 查询免费题库商品列表
+     */
+    @ApiOperation("查询用户题库商品列表")
+    @GetMapping("/listBankGoodsList")
+    public TableDataInfo<GoodsUserQuestionVo> listBankGoodsList(GoodsQueryBo bo) {
+        startPage();
+        List<GoodsUserQuestionVo> list = iQuestionService.listBankGoodsList(bo);
+        return getDataTable(list);
+    }
+
+    /**
+     * 获取题库商品每日一练试卷列表
+     */
+    @ApiOperation("获取题库商品每日一练试卷列表")
+    @GetMapping("/getBankGoodsExamList/{goodsId}")
+    public AjaxResult<List<BankGoodsExamVo>> getBankGoodsExamList(@PathVariable("goodsId") Long goodsId) {
+        List<BankGoodsExamVo> list = iQuestionService.getBankGoodsExamList(goodsId);
+        return AjaxResult.success(list);
+    }
+
+    /**
+     * 新增每日一练试卷时间
+     */
+    @ApiOperation("新增每日一练试卷时间")
+    @PostMapping("/addExamTime")
+    public AjaxResult<Void> addGoodsExamTime(@RequestBody List<BankGoodsExamAddBo> addBo) {
+        return toAjax(iQuestionService.addGoodsExamTime(addBo) ? 1 : 0);
+    }
+
+    /**
+     * 商品批量复制(新机构)
+     */
+    @ApiOperation("商品批量复制(全量)")
+    @PostMapping("/batch/copy/all")
+    public AjaxResult<Void> goodsBatchCopyTenant(@RequestBody GoodsBatchCopyTenantBo bo) {
+        return toAjax(iGoodsService.goodsBatchCopyTenant(bo) ? 1 : 0);
+    }
+
+    /**
+     * 商品批量复制(新机构)
+     */
+    @ApiOperation("商品批量复制(增量)")
+    @PostMapping("/batch/copy/add")
+    public AjaxResult<Void> goodsBatchCopyAddTenant(@RequestBody GoodsBatchCopyTenantBo bo) {
+        return toAjax(iGoodsService.goodsBatchCopyIncrementTenant(bo) ? 1 : 0);
+    }
+
+    /**
+     * 商品节点复制
+     */
+    @ApiOperation("商品节点复制")
+    @PostMapping("/node/copy/add")
+    public AjaxResult<Void> goodsNodeCopyAddTenant(@RequestBody GoodsNodeCopyTenantBo bo) {
+        return toAjax(iGoodsService.goodsNodeCopyAddTenant(bo) ? 1 : 0);
+    }
+
+    /**
+     * 商品讲义复制
+     */
+    @ApiOperation("商品讲义复制")
+    @PostMapping("/handouts/copy/add")
+    public AjaxResult<Void> goodsHandoutsCopyAddTenant(@RequestBody GoodsHandoutsCopyTenantBo bo) {
+        return toAjax(iGoodsService.goodsHandoutsCopyAddTenant(bo) ? 1 : 0);
+    }
+
+    /**
+     * 商品关系ID处理(全量复制后的处理方法)
+     */
+    @ApiOperation("商品关系ID处理(全量复制后的处理方法)")
+    @GetMapping("/batch/copy/dispose")
+    public AjaxResult<Void> goodsBatchCopyDisposeTenant() {
+        return toAjax(iGoodsService.goodsBatchCopyDisposeTenant() ? 1 : 0);
+    }
+
+    /**
+     * 修改商品课程关联
+     */
+    @ApiOperation("修改商品课程关联")
+    @PostMapping("/update/course")
+    public AjaxResult<Void> updateCourse() {
+        return toAjax(iGoodsService.goodsBatchCopyDisposeTenant() ? 1 : 0);
+    }
+
+
+    /**
+     * 修复二建/二造商品(注意不接页面,自己使用)
+     */
+    @ApiOperation("修复二建/二造商品")
+    @PostMapping("/update/goods/repair")
+    public AjaxResult<Void> updateGoodsRepair(@RequestBody UpdateGoodsRepairBo bo) {
+        return toAjax(iGoodsService.updateGoodsRepair(bo) ? 1 : 0);
+    }
+
+    @ApiOperation("查询商品普通列表")
+    @PreAuthorize("@ss.hasPermi('system:goods:list')")
+    @GetMapping("/queryList")
+    public AjaxResult<List<GoodsVo>> queryList(GoodsQueryBo bo) {
+        bo.setStatus(new ArrayList<Integer>(){{
+            add(1);
+        }});
+        List<GoodsVo> list = iGoodsService.queryList(bo);
+        return AjaxResult.success(list);
+    }
+
+}

+ 150 - 0
zhongzheng-admin-business/src/main/java/com/zhongzheng/core/config/SwaggerConfig.java

@@ -0,0 +1,150 @@
+package com.zhongzheng.core.config;
+
+import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
+import com.github.xiaoymin.knife4j.spring.extension.OpenApiExtensionResolver;
+import com.zhongzheng.common.config.RuoYiConfig;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import springfox.documentation.builders.ApiInfoBuilder;
+import springfox.documentation.builders.ParameterBuilder;
+import springfox.documentation.builders.PathSelectors;
+import springfox.documentation.builders.RequestHandlerSelectors;
+import springfox.documentation.schema.ModelRef;
+import springfox.documentation.service.*;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spi.service.contexts.SecurityContext;
+import springfox.documentation.spring.web.plugins.Docket;
+import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Swagger2的接口配置
+ *
+ * @author zhongzheng
+ */
+@Configuration
+@EnableSwagger2WebMvc
+@EnableKnife4j
+public class SwaggerConfig
+{
+    /** 系统基础配置 */
+    @Autowired
+    private RuoYiConfig ruoyiConfig;
+
+    /** 是否开启swagger */
+    @Value("${swagger.enabled}")
+    private boolean enabled;
+
+    /** 设置请求的统一前缀 */
+    @Value("${swagger.pathMapping}")
+    private String pathMapping;
+
+    private final OpenApiExtensionResolver openApiExtensionResolver;
+
+    /**
+     * 创建API
+     */
+    @Bean
+    public Docket createRestApi()
+    {
+        return new Docket(DocumentationType.SWAGGER_2)
+                // 是否启用Swagger
+                .enable(enabled)
+                // 用来创建该API的基本信息,展示在文档的页面中(自定义展示的信息)
+                .apiInfo(apiInfo())
+                // 设置哪些接口暴露给Swagger展示
+                .select()
+                // 扫描所有有注解的api,用这种方式更灵活
+                .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
+                // 扫描指定包中的swagger注解
+                // .apis(RequestHandlerSelectors.basePackage("com.zhongzheng.project.tool.swagger"))
+                // 扫描所有 .apis(RequestHandlerSelectors.any())
+                .paths(PathSelectors.any())
+                .build()
+                /* 设置安全模式,swagger可以设置访问token */
+           //     .securitySchemes(securitySchemes())
+                .securityContexts(securityContexts())
+                .pathMapping(pathMapping)
+                .globalOperationParameters(getGlobalOperationParameters())
+                .extensions(openApiExtensionResolver.buildSettingExtensions());
+    }
+
+    @Autowired
+    public SwaggerConfig(OpenApiExtensionResolver openApiExtensionResolver) {
+        this.openApiExtensionResolver = openApiExtensionResolver;
+    }
+
+    /**
+     * 安全模式,这里指定token通过AuthorizationToken头请求头传递
+     */
+    private List<ApiKey> securitySchemes()
+    {
+        List<ApiKey> apiKeyList = new ArrayList<ApiKey>();
+    //    apiKeyList.add(new ApiKey("AuthorizationToken", "AuthorizationToken", "header"));//强制全局参数
+        return apiKeyList;
+    }
+
+    /**
+     * 安全上下文
+     */
+    private List<SecurityContext> securityContexts()
+    {
+        List<SecurityContext> securityContexts = new ArrayList<>();
+        securityContexts.add(
+                SecurityContext.builder()
+                        .securityReferences(defaultAuth())
+                        .forPaths(PathSelectors.regex("^(?!auth).*$"))
+                        .build());
+        return securityContexts;
+    }
+
+    /**
+     * 默认的安全上引用
+     */
+    private List<SecurityReference> defaultAuth()
+    {
+        AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
+        AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
+        authorizationScopes[0] = authorizationScope;
+        List<SecurityReference> securityReferences = new ArrayList<>();
+        securityReferences.add(new SecurityReference("AuthorizationToken", authorizationScopes));
+        return securityReferences;
+    }
+
+    /**
+     * 添加摘要信息
+     */
+    private ApiInfo apiInfo()
+    {
+        // 用ApiInfoBuilder进行定制
+        return new ApiInfoBuilder()
+                // 设置标题
+                .title("标题:中正B端管理系统_接口文档")
+                // 描述
+                .description("描述:用于中正B端管理系统_接口文档")
+                // 作者信息
+                .contact(new Contact(ruoyiConfig.getName(), null, null))
+                // 版本
+                .version("版本号:0.0.1")
+
+                .build();
+    }
+
+    private List<Parameter> getGlobalOperationParameters() {
+        List<Parameter> pars = new ArrayList<>();
+        ParameterBuilder parameterBuilder = new ParameterBuilder();
+        // header query cookie
+        parameterBuilder.name("X-Auth-Token").description("token").modelRef(new ModelRef("string")).parameterType("header").defaultValue("test").required(false);
+        pars.add(parameterBuilder.build());
+        ParameterBuilder parameterBuilder1 = new ParameterBuilder();
+        parameterBuilder1.name("TenantId").description("TenantId").modelRef(new ModelRef("string")).parameterType("header").defaultValue("867735392558919680").required(false);
+        pars.add(parameterBuilder1.build());
+        return pars;
+    }
+
+}

+ 1 - 0
zhongzheng-admin-business/src/main/resources/META-INF/spring-devtools.properties

@@ -0,0 +1 @@
+restart.include.json=/com.alibaba.fastjson.*.jar

+ 213 - 0
zhongzheng-admin-business/src/main/resources/application-dev.yml

@@ -0,0 +1,213 @@
+# 数据源配置
+spring:
+    datasource:
+        type: com.alibaba.druid.pool.DruidDataSource
+        driverClassName: com.mysql.cj.jdbc.Driver
+        druid:
+            url: jdbc:mysql://192.168.1.222:3306/zz_edu_saas?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
+            username: root
+            password: zhongzheng2021
+            # 初始连接数
+            initialSize: 5
+            # 最小连接池数量
+            minIdle: 10
+            # 最大连接池数量
+            maxActive: 20
+            # 配置获取连接等待超时的时间
+            maxWait: 60000
+            # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
+            timeBetweenEvictionRunsMillis: 60000
+            # 配置一个连接在池中最小生存的时间,单位是毫秒
+            minEvictableIdleTimeMillis: 300000
+            # 配置一个连接在池中最大生存的时间,单位是毫秒
+            maxEvictableIdleTimeMillis: 900000
+            # 配置检测连接是否有效
+            validationQuery: SELECT 1 FROM DUAL
+            testWhileIdle: true
+            testOnBorrow: false
+            testOnReturn: false
+            webStatFilter:
+                enabled: true
+            statViewServlet:
+                enabled: true
+                # 设置白名单,不填则允许所有访问
+                allow:
+                url-pattern: /druid/*
+                # 控制台管理用户名和密码
+                login-username: ruoyi
+                login-password: 123456
+            filter:
+                stat:
+                    enabled: true
+                    # 慢SQL记录
+                    log-slow-sql: true
+                    slow-sql-millis: 1000
+                    merge-sql: true
+                wall:
+                    config:
+                        multi-statement-allow: true
+    # redis 配置
+    redis:
+        # 地址
+        host: 192.168.1.222
+        # 端口,默认为6379
+        port: 6379
+        # 数据库索引
+        database: 0
+        # 密码
+        password: zhongzheng2021_redis
+        # 连接超时时间
+        timeout: 10s
+        lettuce:
+            pool:
+                # 连接池中的最小空闲连接
+                min-idle: 0
+                # 连接池中的最大空闲连接
+                max-idle: 8
+                # 连接池的最大数据库连接数
+                max-active: 8
+                # #连接池最大阻塞等待时间(使用负值表示没有限制)
+                max-wait: -1ms
+aliyun:
+    oss:
+        endpoint: https://file-dev.xyyxt.net # oss对外服务的访问域名
+        accessKeyId: LTAI5tDbpYmpifZYNX8S3kt1  # 访问身份验证中用到用户标识
+        accessKeySecret: jCdSPAj58ZXOLsWpV8bCgNOYrEK0de # 用户用于加密签名字符串和oss用来验证签名字符串的密钥
+        bucketName: zhongzheng-test # oss的存储空间
+        policy:
+            expire: 30 # 签名有效期(S)
+        maxSize: 100 # 上传文件大小(M)
+        callback: http://120.79.166.78:19013/aliyun/oss/callback # 文件上传成功后的回调地址
+        dir:
+            prefix: oss/images/ # 上传文件夹路径前缀 `
+
+poliv:
+    token:
+        userid: d5f6d309fe
+        writetoken: 8f14a371-9d02-4ec1-922d-54d7b4f79dca
+        readtoken: f2c397b4-e2a3-46dc-9266-e6a43ac26a35
+        secretkey: xpPrYdcbA1
+
+wx:
+    small:
+        appid: wxd3c8ae80cf43a305
+        appsecret: 193a001ebfd46f227008a21e9d13e750
+    gzh:
+        appid: wx6f48f721d18244eb
+        appsecret: 2f8b2b4ff66e2f6adfb9f08ae22d7474
+        studyNoteTpId: DndIixcAp15Sqgb4KOGTMf73VLF09NlCUifPSel5Y_s
+        qdyTpId: s981yq3SyIODNUEXFzVSWn0OYj90E72aKdtKtSp05_E
+        qdySubTpId: gzE6zddD7OzDLUtOO4GfU-KPCxpMqWFhCj86uXExqB8
+        qdySubStatusTpId: 7oKaAHmc4P7jqfonuiM1wnjfNLh9T662Ywm1OAFaUFA
+        qdyExamTpId: 66LitnYp0AIWFclo0rLdyLQP4-_vVc4pM95fyFs6l-c
+        qdyExamStatusTpId: J7nNogGhD38OD20gI-3CzwawfEMu7lOjR8fsi4LgJ5g
+        signatureTpId: 66LitnYp0AIWFclo0rLdyLQP4-_vVc4pM95fyFs6l-c
+    wepay:
+        mchid: 1342013901
+        key: GdXyPxYjZx1234123yJzXgDxYpXyjpx9
+        appsecret: GdXyPxYjZx1234123yJzXgDxYpXyjpx9
+        notifyUrl: http://120.79.166.78:19012/wx/pay/callback
+    scanLogin:
+        host: https://testm.xyyxt.net/
+
+wisdomExamRoom:
+    mchid: 10001
+    appid: ZZ-YXT-GZ-20220820-0001
+    app_secret: mt70O1s/Xd5LwuH7yHLpj9R+tKUn5j9vTnCvmgBnbJDA11Hpl7+q4lEZliqPAjN+YHPn9bGmHkAbw5XwhhMiYg==
+    host:  http://bg.sam457.site:9020
+
+certificate:
+    host: http://192.168.1.38:8000/
+
+liveGotoURL: http://
+
+enCodeVersion: trial
+
+oldStudySys:
+    syncPath: http://gdxypx.xy.com/System/BussinessApi/PostUserStudyRecords
+    sharePath: http://192.168.1.210:8086/witsystem/dataapi/SaleOrder
+    shareCanclePath: http://192.168.1.210:8086/witsystem/dataapi/ordercance
+    searchGradeCount: http://gdxypx.xy.com/System/BussinessApi/OfficialGradeCount
+    pushGradeCount: http://gdxypx.xy.com/System/BussinessApi/OfficialGradeCountAuto
+    educationalInspector: http://192.168.1.210/EduSystem/BusinessApi/NewYxtUserPrompt
+    classUserListPath: http://gdxypx.xy.com/System/BussinessApi/UserCourseCategoryListcno
+    classOpenPath: http://gdxypx.xy.com/System/BussinessApi/OpenClass
+    salePassword: http://gdxypx.xy.com/WitSystem/BussinessApi/GetSaleInfo
+    updateInvoicePath: http://gdxypx.xy.com/system/BussinessApi/UpdateInvoiceData
+    createExamPath: http://gdxypx.xy.com/system/BussinessApi/CreateSameClass
+
+officialPush:
+    infoPath: closehttps://jypt-dev.gdcic.net/organjxjy/ShangBaoMingdan
+    periodPath: https://jypt-dev.gdcic.net/organjxjy/XueshiShenqing
+    infoAccount: peixunjigou
+    token: 0ca175b9c0f726a831d895e26933246
+    sevenInfoPath: http://sgry-dev.gdcic.net/organjxjy/ShangBaoMingdan
+    sevenPeriodPath: http://sgry-dev.gdcic.net/organjxjy/XueshiShenqing
+
+
+distributionOldPay:
+    host: http://gdxypx.xy.com/System/BussinessApi/AddRedPackData
+
+handouts:
+    savePath: http://192.168.1.7:9090/course/handouts/save
+    updatePath: http://192.168.1.7:9090/course/handouts/edit
+
+Nuonuo:
+    host: https://sdk.nuonuo.com/open/v1/services
+    APPkey: 39149760
+    APPSecret: 07168A248B2844E0
+
+oldOrder:
+    studyRecord: http://gdxypx.xy.com/WitSystem/BussinessApi/GetStudyRecord
+    orderCheck: http://gdxypx.xy.com/WitSystem/BussinessApi/AuditUnderOrder
+    finishOrder: http://gdxypx.xy.com/WitSystem/BussinessApi/CompleteOrder
+    refuseCheck: http://gdxypx.xy.com/WitSystem/BussinessApi/ReFundAuditResult
+    inputOrderSn: http://gdxypx.xy.com/WitSystem/BussinessApi/GetNewYxtinputOrderSn
+    checkOrderStudent: http://gdxypx.xy.com/WitSystem/BussinessApi/ReAuditUnderOrder
+    checkOrderBrokerage: http://gdxypx.xy.com/WitSystem/BussinessApi/CommissionRate
+    refundPay: http://192.168.1.222:5030/common/platform/pay
+    refundPayHandle: http://192.168.1.222:5030/common/platform/pay/handle
+    updateRemark: http://gdxypx.xy.com/WitSystem/BussinessApi/UpdateOrderAuditRemark
+
+oldSys:
+    host: http://gdxypx.xy.com
+    goods: http://gdxypx.xy.com/WitSystem/BussinessApi/NewYxtLogin
+    question: http://192.168.1.121:8057/WordData/GetMeasureList
+    questionDetail: http://192.168.1.121:8057/WordData/GetTopicList
+
+invoice:
+    host: http://192.168.1.222:7077/sys/common/openMplatform/log
+
+liveHost: http://192.168.1.222:6009
+
+fileHost: http://192.168.1.24:9099
+
+exam:
+    applySave: http://192.168.1.7:9099/cd/exam/save
+    applyUpdate: http://192.168.1.7:9099/cd/exam/update
+    applyDelete: http://192.168.1.7:9099/cd/exam/delete
+    subscribeSave: http://192.168.1.7:9099/cd/subscribe/save
+    subscribeSaveExam: http://192.168.1.7:9099/cd/subscribe/save/exam
+    subscribeUpdateExam: http://192.168.1.7:9099/cd/subscribe/update/exam
+    subscribeAddExamNum: http://192.168.1.7:9099/cd/subscribe/add/num
+    question: http://120.79.166.78:19013/common/question/getMeasureList
+    questionDetail: http://120.79.166.78:19013/common/question/getTopicList
+
+shared:
+    statistics: http://gdxypx.xy.com/WitSystem/BussinessApi/HighSeasData
+    customer: http://gdxypx.xy.com/WitSystem/BussinessApi/CustomerStatsData
+    cert: http://gdxypx.xy.com/WitSystem/BussinessApi/CertStatsData
+    orderArea: http://gdxypx.xy.com/WitSystem/BussinessApi/OrderAreaData
+    rateData: http://gdxypx.xy.com//WitSystem/BussinessApi/CustomerConversionRateData
+    rateTrend: http://gdxypx.xy.com/WitSystem/BussinessApi/CustomerConversionRateTrendData
+    customerOrder: http://gdxypx.xy.com/WitSystem/BussinessApi/CustomerOrderData
+    tenantData: http://gdxypx.xy.com/witsystem/bussinessapi/GetOrgList
+    saleData: http://gdxypx.xy.com/witsystem/bussinessapi/GetSaleListByOrgId
+
+ZsBank:
+    publickey: BNsIe9U0x8IeSe4h/dxUzVEz9pie0hDSfMRINRXc7s1UIXfkExnYECF4QqJ2SnHxLv3z/99gsfDQrQ6dzN5lZj0=
+    privatekey: NBtl7WnuUtA2v5FaebEkU0/Jj1IodLGT6lQqwkzmd2E=
+    sm4key: VuAzSWQhsoNqzn0K
+
+record:
+    downloadPath: http://192.168.1.7:9090/common/user/data/download

+ 193 - 0
zhongzheng-admin-business/src/main/resources/application-pre.yml

@@ -0,0 +1,193 @@
+# 数据源配置
+spring:
+    datasource:
+        type: com.alibaba.druid.pool.DruidDataSource
+        driverClassName: com.mysql.cj.jdbc.Driver
+        druid:
+            url: jdbc:mysql://192.168.1.222:3306/zz_edu_saas_pre?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
+            username: root
+            password: zhongzheng2021
+            # 初始连接数
+            initialSize: 5
+            # 最小连接池数量
+            minIdle: 10
+            # 最大连接池数量
+            maxActive: 20
+            # 配置获取连接等待超时的时间
+            maxWait: 60000
+            # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
+            timeBetweenEvictionRunsMillis: 60000
+            # 配置一个连接在池中最小生存的时间,单位是毫秒
+            minEvictableIdleTimeMillis: 300000
+            # 配置一个连接在池中最大生存的时间,单位是毫秒
+            maxEvictableIdleTimeMillis: 900000
+            # 配置检测连接是否有效
+            validationQuery: SELECT 1 FROM DUAL
+            testWhileIdle: true
+            testOnBorrow: false
+            testOnReturn: false
+            webStatFilter:
+                enabled: true
+            statViewServlet:
+                enabled: true
+                # 设置白名单,不填则允许所有访问
+                allow:
+                url-pattern: /druid/*
+                # 控制台管理用户名和密码
+                login-username: ruoyi
+                login-password: 123456
+            filter:
+                stat:
+                    enabled: true
+                    # 慢SQL记录
+                    log-slow-sql: true
+                    slow-sql-millis: 1000
+                    merge-sql: true
+                wall:
+                    config:
+                        multi-statement-allow: true
+    # redis 配置
+    redis:
+        # 地址
+        host: 192.168.1.222
+        # 端口,默认为6379
+        port: 6379
+        # 数据库索引
+        database: 1
+        # 密码
+        password: zhongzheng@@2024
+        # 连接超时时间
+        timeout: 10s
+        lettuce:
+            pool:
+                # 连接池中的最小空闲连接
+                min-idle: 0
+                # 连接池中的最大空闲连接
+                max-idle: 8
+                # 连接池的最大数据库连接数
+                max-active: 8
+                # #连接池最大阻塞等待时间(使用负值表示没有限制)
+                max-wait: -1ms
+aliyun:
+    oss:
+        endpoint: https://file.xyyxt.net # oss对外服务的访问域名
+        accessKeyId: LTAI5tDbpYmpifZYNX8S3kt1  # 访问身份验证中用到用户标识
+        accessKeySecret: jCdSPAj58ZXOLsWpV8bCgNOYrEK0de # 用户用于加密签名字符串和oss用来验证签名字符串的密钥
+        bucketName: zhongzheng-prod # oss的存储空间
+        policy:
+            expire: 30 # 签名有效期(S)
+        maxSize: 100 # 上传文件大小(M)
+        callback: https://cloud.xyyxt.net/aliyun/oss/callback # 文件上传成功后的回调地址
+        dir:
+            prefix: oss/images/ # 上传文件夹路径前缀 ` `
+
+poliv:
+    token:
+        userid: d5f6d309fe
+        writetoken: 8f14a371-9d02-4ec1-922d-54d7b4f79dca
+        readtoken: f2c397b4-e2a3-46dc-9266-e6a43ac26a35
+        secretkey: xpPrYdcbA1
+
+wx:
+    small:
+        appid: wxd3c8ae80cf43a305
+        appsecret: 193a001ebfd46f227008a21e9d13e750
+    gzh:
+        appid: wx6f48f721d18244eb
+        appsecret: 2f8b2b4ff66e2f6adfb9f08ae22d7474
+        studyNoteTpId: DndIixcAp15Sqgb4KOGTMf73VLF09NlCUifPSel5Y_s
+        qdyTpId: s981yq3SyIODNUEXFzVSWn0OYj90E72aKdtKtSp05_E
+        qdySubTpId: gzE6zddD7OzDLUtOO4GfU-KPCxpMqWFhCj86uXExqB8
+        qdySubStatusTpId: 7oKaAHmc4P7jqfonuiM1wnjfNLh9T662Ywm1OAFaUFA
+        qdyExamTpId: 66LitnYp0AIWFclo0rLdyLQP4-_vVc4pM95fyFs6l-c
+        qdyExamStatusTpId: J7nNogGhD38OD20gI-3CzwawfEMu7lOjR8fsi4LgJ5g
+        signatureTpId: 66LitnYp0AIWFclo0rLdyLQP4-_vVc4pM95fyFs6l-c
+    wepay:
+        mchid: 1342013901
+        key: GdXyPxYjZx1234123yJzXgDxYpXyjpx9
+        appsecret: GdXyPxYjZx1234123yJzXgDxYpXyjpx9
+        notifyUrl: http://120.79.166.78:19009/wx/pay/callback
+    scanLogin:
+        host: https://web.xyyxt.net/
+
+wisdomExamRoom:
+    mchid: 10001
+    appid: ZZ-YXT-GZ-20220820-0001
+    app_secret: mt70O1s/Xd5LwuH7yHLpj9R+tKUn5j9vTnCvmgBnbJDA11Hpl7+q4lEZliqPAjN+YHPn9bGmHkAbw5XwhhMiYg==
+    host: http://bg.sam457.site:9020
+
+certificate:
+    host: http://192.168.1.38:8000/
+
+liveGotoURL: http://
+
+enCodeVersion: trial
+
+oldStudySys:
+    syncPath: http://test.jqbao.net/System/BussinessApi/PostUserStudyRecords
+    sharePath: http://test.jqbao.net/witsystem/dataapi/SaleOrder
+    shareCanclePath: http://test.jqbao.net/witsystem/dataapi/ordercance
+    searchGradeCount: http://test.jqbao.net/System/BussinessApi/OfficialGradeCount
+    pushGradeCount: http://test.jqbao.net/System/BussinessApi/OfficialGradeCountAuto
+    educationalInspector: http://192.168.1.210/EduSystem/BusinessApi/NewYxtUserPrompt
+    classUserListPath: http://gdxypx.xy.com/System/BussinessApi/UserCourseCategoryListcno
+    classOpenPath: http://gdxypx.xy.com/System/BussinessApi/OpenClass
+    salePassword: http://gdxypx.xy.com/WitSystem/BussinessApi/GetSaleInfo
+    updateInvoicePath: http://gdxypx.xy.com/system/BussinessApi/UpdateInvoiceData
+    createExamPath: http://gdxypx.xy.com/system/BussinessApi/CreateSameClass
+
+officialPush:
+    infoPath: https://jypt-dev.gdcic.net/organjxjy/ShangBaoMingdan
+    periodPath: https://jypt-dev.gdcic.net/organjxjy/XueshiShenqing
+    infoAccount: peixunjigou
+    token: 0ca175b9c0f726a831d895e26933246
+    sevenInfoPath: http://sgry.gdcic.net/organjxjy/ShangBaoMingdan
+    sevenPeriodPath: http://sgry.gdcic.net/organjxjy/XueshiShenqing
+
+distributionOldPay:
+    host: http://test.jqbao.net/System/BussinessApi/AddRedPackData
+
+handouts:
+    savePath: https://attach.xyyxt.net/course/handouts/save
+    updatePath: https://attach.xyyxt.net/course/handouts/edit
+
+Nuonuo:
+    host: https://sdk.nuonuo.com/open/v1/services
+    APPkey: 39149760
+    APPSecret: 07168A248B2844E0
+
+oldOrder:
+    studyRecord: http://test.jqbao.net/WitSystem/BussinessApi/GetStudyRecord
+    orderCheck: http://test.jqbao.net/WitSystem/BussinessApi/AuditUnderOrder
+    finishOrder: http://test.jqbao.net/WitSystem/BussinessApi/CompleteOrder
+    refuseCheck: http://test.jqbao.net/WitSystem/BussinessApi/ReFundAuditResult
+    inputOrderSn: http://test.jqbao.net/WitSystem/BussinessApi/GetNewYxtinputOrderSn
+    checkOrderStudent: http://test.jqbao.net/WitSystem/BussinessApi/ReAuditUnderOrder
+    checkOrderBrokerage: http://test.jqbao.net/WitSystem/BussinessApi/CommissionRate
+    refundPay: http://192.168.1.222:6030/common/platform/pay
+    refundPayHandle: http://192.168.1.222:6030/common/platform/pay/handle
+    updateRemark: http://test.jqbao.net/WitSystem/BussinessApi/UpdateOrderAuditRemark
+
+oldSys:
+    host: http://test.jqbao.net
+
+invoice:
+    host: http://192.168.1.222:8077/sys/common/openMplatform/log
+
+liveHost: http://192.168.1.222:6009
+
+fileHost: http://192.168.1.24:9099
+
+exam:
+    applySave: http://192.168.1.7:9099/cd/exam/save
+    applyUpdate: http://192.168.1.7:9099/cd/exam/update
+    applyDelete: http://192.168.1.7:9099/cd/exam/delete
+    subscribeSave: http://192.168.1.7:9099/cd/subscribe/save
+    subscribeSaveExam: http://192.168.1.7:9099/cd/subscribe/save/exam
+    subscribeUpdateExam: http://192.168.1.7:9099/cd/subscribe/update/exam
+    subscribeAddExamNum: http://192.168.1.7:9099/cd/subscribe/add/num
+
+ZsBank:
+    publickey: BNsIe9U0x8IeSe4h/dxUzVEz9pie0hDSfMRINRXc7s1UIXfkExnYECF4QqJ2SnHxLv3z/99gsfDQrQ6dzN5lZj0=
+    privatekey: NBtl7WnuUtA2v5FaebEkU0/Jj1IodLGT6lQqwkzmd2E=
+    sm4key: VuAzSWQhsoNqzn0K

+ 212 - 0
zhongzheng-admin-business/src/main/resources/application-prod.yml

@@ -0,0 +1,212 @@
+# 数据源配置
+spring:
+    datasource:
+        type: com.alibaba.druid.pool.DruidDataSource
+        driverClassName: com.mysql.cj.jdbc.Driver
+        druid:
+            url: jdbc:mysql://rm-wz950fu2v70864v85.mysql.rds.aliyuncs.com/zz_edu_saas?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
+            username: root
+            password: gdxy2021!@#zzjykj
+            # 初始连接数
+            initialSize: 5
+            # 最小连接池数量
+            minIdle: 10
+            # 最大连接池数量
+            maxActive: 20
+            # 配置获取连接等待超时的时间
+            maxWait: 60000
+            # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
+            timeBetweenEvictionRunsMillis: 60000
+            # 配置一个连接在池中最小生存的时间,单位是毫秒
+            minEvictableIdleTimeMillis: 300000
+            # 配置一个连接在池中最大生存的时间,单位是毫秒
+            maxEvictableIdleTimeMillis: 900000
+            # 配置检测连接是否有效
+            validationQuery: SELECT 1 FROM DUAL
+            testWhileIdle: true
+            testOnBorrow: false
+            testOnReturn: false
+            webStatFilter:
+                enabled: true
+            statViewServlet:
+                enabled: true
+                # 设置白名单,不填则允许所有访问
+                allow:
+                url-pattern: /druid/*
+                # 控制台管理用户名和密码
+                login-username: ruoyi
+                login-password: 123456
+            filter:
+                stat:
+                    enabled: true
+                    # 慢SQL记录
+                    log-slow-sql: true
+                    slow-sql-millis: 1000
+                    merge-sql: true
+                wall:
+                    config:
+                        multi-statement-allow: true
+    # redis 配置
+    redis:
+        # 地址
+        host: 172.18.19.227
+        # 端口,默认为6379
+        port: 6379
+        # 数据库索引
+        database: 0
+        # 密码
+        password: zhongzheng@@2024
+        # 连接超时时间
+        timeout: 10s
+        lettuce:
+            pool:
+                # 连接池中的最小空闲连接
+                min-idle: 0
+                # 连接池中的最大空闲连接
+                max-idle: 8
+                # 连接池的最大数据库连接数
+                max-active: 8
+                # #连接池最大阻塞等待时间(使用负值表示没有限制)
+                max-wait: -1ms
+aliyun:
+    oss:
+        endpoint: https://file.xyyxt.net # oss对外服务的访问域名
+        accessKeyId: LTAI5tDbpYmpifZYNX8S3kt1  # 访问身份验证中用到用户标识
+        accessKeySecret: jCdSPAj58ZXOLsWpV8bCgNOYrEK0de # 用户用于加密签名字符串和oss用来验证签名字符串的密钥
+        bucketName: zhongzheng-prod # oss的存储空间
+        policy:
+            expire: 30 # 签名有效期(S)
+        maxSize: 100 # 上传文件大小(M)
+        callback: https://cloud.xyyxt.net/aliyun/oss/callback # 文件上传成功后的回调地址
+        dir:
+            prefix: oss/images/ # 上传文件夹路径前缀 `
+
+poliv:
+    token:
+        userid: d5f6d309fe
+        writetoken: 8f14a371-9d02-4ec1-922d-54d7b4f79dca
+        readtoken: f2c397b4-e2a3-46dc-9266-e6a43ac26a35
+        secretkey: xpPrYdcbA1
+
+wx:
+    small:
+        appid: wxd3c8ae80cf43a305
+        appsecret: 193a001ebfd46f227008a21e9d13e750
+    gzh:
+        appid: wx6f48f721d18244eb
+        appsecret: 2f8b2b4ff66e2f6adfb9f08ae22d7474
+        studyNoteTpId: DndIixcAp15Sqgb4KOGTMf73VLF09NlCUifPSel5Y_s
+        qdyTpId: s981yq3SyIODNUEXFzVSWn0OYj90E72aKdtKtSp05_E
+        qdySubTpId: gzE6zddD7OzDLUtOO4GfU-KPCxpMqWFhCj86uXExqB8
+        qdySubStatusTpId: 7oKaAHmc4P7jqfonuiM1wnjfNLh9T662Ywm1OAFaUFA
+        qdyExamTpId: 66LitnYp0AIWFclo0rLdyLQP4-_vVc4pM95fyFs6l-c
+        qdyExamStatusTpId: J7nNogGhD38OD20gI-3CzwawfEMu7lOjR8fsi4LgJ5g
+        signatureTpId: 66LitnYp0AIWFclo0rLdyLQP4-_vVc4pM95fyFs6l-c
+    wepay:
+        mchid: 1342013901
+        key: GdXyPxYjZx1234123yJzXgDxYpXyjpx9
+        appsecret: GdXyPxYjZx1234123yJzXgDxYpXyjpx9
+        notifyUrl: https://api.xyyxt.net/wx/pay/callback
+    scanLogin:
+        host: https://m.xyyxt.net/
+
+wisdomExamRoom:
+    mchid: 10001
+    appid: ZZ-YXT-GZ-20220820-0001
+    app_secret: mt70O1s/Xd5LwuH7yHLpj9R+tKUn5j9vTnCvmgBnbJDA11Hpl7+q4lEZliqPAjN+YHPn9bGmHkAbw5XwhhMiYg==
+    host: http://bg.sam457.site:9020
+
+certificate:
+    host: https://m.xyyxt.net/
+
+liveGotoURL: https://
+
+enCodeVersion: release
+
+oldStudySys:
+    syncPath: https://www.xyyxt.net/System/BussinessApi/PostUserStudyRecords
+    sharePath: https://www.xyyxt.net/witsystem/dataapi/SaleOrder
+    shareCanclePath: https://www.xyyxt.net/witsystem/dataapi/ordercance
+    searchGradeCount: https://www.xyyxt.net/System/BussinessApi/OfficialGradeCount
+    pushGradeCount: https://www.xyyxt.net/System/BussinessApi/OfficialGradeCountAuto
+    educationalInspector: https://zs.gdzzkj.net/EduSystem/BusinessApi/NewYxtUserPrompt
+    classUserListPath: https://www.xyyxt.net/System/BussinessApi/UserCourseCategoryListcno
+    classOpenPath: https://www.xyyxt.net/System/BussinessApi/OpenClass
+    salePassword: http://www.xyyxt.net/WitSystem/BussinessApi/GetSaleInfo
+    updateInvoicePath: http://www.xyyxt.net/system/BussinessApi/UpdateInvoiceData
+    createExamPath: http://www.xyyxt.net/system/BussinessApi/CreateSameClass
+
+officialPush:
+    infoPath: https://jypt.gdcic.net/organjxjy/ShangBaoMingdan
+    periodPath: https://jypt.gdcic.net/organjxjy/XueshiShenqing
+    infoAccount: GDSXY
+    token: 01b5d9833987efdff54483cdc9720da6
+    sevenInfoPath: http://sgry.gdcic.net/organjxjy/ShangBaoMingdan
+    sevenPeriodPath: http://sgry.gdcic.net/organjxjy/XueshiShenqing
+
+distributionOldPay:
+    host: https://www.xyyxt.net/System/BussinessApi/AddRedPackData
+
+handouts:
+    savePath: https://attach.xyyxt.net/course/handouts/save
+    updatePath: https://attach.xyyxt.net/course/handouts/edit
+
+Nuonuo:
+    host: https://sdk.nuonuo.com/open/v1/services
+    APPkey: 39149760
+    APPSecret: 07168A248B2844E0
+
+oldOrder:
+    studyRecord: http://www.xyyxt.net/WitSystem/BussinessApi/GetStudyRecord
+    orderCheck: http://www.xyyxt.net/WitSystem/BussinessApi/AuditUnderOrder
+    finishOrder: http://www.xyyxt.net/WitSystem/BussinessApi/CompleteOrder
+    refuseCheck: http://www.xyyxt.net/WitSystem/BussinessApi/ReFundAuditResult
+    inputOrderSn: http://www.xyyxt.net/WitSystem/BussinessApi/GetNewYxtinputOrderSn
+    checkOrderStudent: http://www.xyyxt.net/WitSystem/BussinessApi/ReAuditUnderOrder
+    checkOrderBrokerage: http://www.xyyxt.net/WitSystem/BussinessApi/CommissionRate
+    refundPay: https://cloud.xyyxt.net/common/platform/pay
+    refundPayHandle: https://cloud.xyyxt.net/common/platform/pay/handle
+    updateRemark: http://www.xyyxt.net/WitSystem/BussinessApi/UpdateOrderAuditRemark
+
+oldSys:
+    host: http://www.xyyxt.net
+    goods: http://www.xyyxt.net/system/BussinessApi/NewYxtLogin
+    question: http://192.168.1.121:8057/WordData/GetMeasureList
+    questionDetail: http://192.168.1.121:8057/WordData/GetTopicList
+
+invoice:
+    host: https://ptapi.gdzzkj.net/sys/common/openMplatform/log
+
+liveHost: https://sso.xyyxt.net
+
+fileHost: http://39.108.7.155:9099
+
+exam:
+    applySave: http://39.108.7.155:9099/cd/exam/save
+    applyUpdate: http://39.108.7.155:9099/cd/exam/update
+    applyDelete: http://39.108.7.155:9099/cd/exam/delete
+    subscribeSave: http://39.108.7.155:9099/cd/subscribe/save
+    subscribeSaveExam: http://39.108.7.155:9099/cd/subscribe/save/exam
+    subscribeUpdateExam: http://39.108.7.155:9099/cd/subscribe/update/exam
+    subscribeAddExamNum: http://39.108.7.155:9099/cd/subscribe/add/num
+    question: http://120.79.166.78:19013/common/question/getMeasureList
+    questionDetail: http://120.79.166.78:19013/common/question/getTopicList
+
+shared:
+    statistics: http://www.xyyxt.net/WitSystem/BussinessApi/HighSeasData
+    customer: http://www.xyyxt.net/WitSystem/BussinessApi/CustomerStatsData
+    cert: http://www.xyyxt.net/WitSystem/BussinessApi/CertStatsData
+    orderArea: http://www.xyyxt.net/WitSystem/BussinessApi/OrderAreaData
+    rateData: http://www.xyyxt.net//WitSystem/BussinessApi/CustomerConversionRateData
+    rateTrend: http://www.xyyxt.net/WitSystem/BussinessApi/CustomerConversionRateTrendData
+    customerOrder: http://www.xyyxt.net/WitSystem/BussinessApi/CustomerOrderData
+    tenantData: http://www.xyyxt.net/witsystem/bussinessapi/GetOrgList
+    saleData: http://www.xyyxt.net/witsystem/bussinessapi/GetSaleListByOrgId
+
+ZsBank:
+    publickey: BNsIe9U0x8IeSe4h/dxUzVEz9pie0hDSfMRINRXc7s1UIXfkExnYECF4QqJ2SnHxLv3z/99gsfDQrQ6dzN5lZj0=
+    privatekey: NBtl7WnuUtA2v5FaebEkU0/Jj1IodLGT6lQqwkzmd2E=
+    sm4key: VuAzSWQhsoNqzn0K
+
+record:
+    downloadPath: http://39.108.7.155:9090/common/user/data/download

+ 151 - 0
zhongzheng-admin-business/src/main/resources/application-trial.yml

@@ -0,0 +1,151 @@
+# 数据源配置
+spring:
+    datasource:
+        type: com.alibaba.druid.pool.DruidDataSource
+        driverClassName: com.mysql.cj.jdbc.Driver
+        druid:
+            # 主库数据源
+            master:
+                url: jdbc:mysql://rm-wz950fu2v70864v85.mysql.rds.aliyuncs.com/zz_edu_saas_trial?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
+                username: root
+                password: gdxy2021!@#zzjykj
+            # 从库数据源
+            slave:
+                # 从数据源开关/默认关闭
+                enabled: false
+                url:
+                username:
+                password:
+            # 初始连接数
+            initialSize: 5
+            # 最小连接池数量
+            minIdle: 10
+            # 最大连接池数量
+            maxActive: 20
+            # 配置获取连接等待超时的时间
+            maxWait: 60000
+            # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
+            timeBetweenEvictionRunsMillis: 60000
+            # 配置一个连接在池中最小生存的时间,单位是毫秒
+            minEvictableIdleTimeMillis: 300000
+            # 配置一个连接在池中最大生存的时间,单位是毫秒
+            maxEvictableIdleTimeMillis: 900000
+            # 配置检测连接是否有效
+            validationQuery: SELECT 1 FROM DUAL
+            testWhileIdle: true
+            testOnBorrow: false
+            testOnReturn: false
+            webStatFilter:
+                enabled: true
+            statViewServlet:
+                enabled: true
+                # 设置白名单,不填则允许所有访问
+                allow:
+                url-pattern: /druid/*
+                # 控制台管理用户名和密码
+                login-username: ruoyi
+                login-password: 123456
+            filter:
+                stat:
+                    enabled: true
+                    # 慢SQL记录
+                    log-slow-sql: true
+                    slow-sql-millis: 4000
+                    merge-sql: true
+                wall:
+                    config:
+                        multi-statement-allow: true
+    # redis 配置
+    redis:
+        # 地址
+        host: 172.18.19.227
+        # 端口,默认为6379
+        port: 6379
+        # 数据库索引
+        database: 0
+        # 密码
+        password: zhongzheng@@2024
+        # 连接超时时间
+        timeout: 10s
+        lettuce:
+            pool:
+                # 连接池中的最小空闲连接
+                min-idle: 0
+                # 连接池中的最大空闲连接
+                max-idle: 8
+                # 连接池的最大数据库连接数
+                max-active: 8
+                # #连接池最大阻塞等待时间(使用负值表示没有限制)
+                max-wait: -1ms
+aliyun:
+    oss:
+        endpoint: https://file.xyyxt.net # oss对外服务的访问域名
+        accessKeyId: LTAI5tDbpYmpifZYNX8S3kt1  # 访问身份验证中用到用户标识
+        accessKeySecret: jCdSPAj58ZXOLsWpV8bCgNOYrEK0de # 用户用于加密签名字符串和oss用来验证签名字符串的密钥
+        bucketName: zhongzheng-prod # oss的存储空间
+        policy:
+            expire: 30 # 签名有效期(S)
+        maxSize: 100 # 上传文件大小(M)
+        callback: https://cloud.gdzzkj.net/aliyun/oss/callback # 文件上传成功后的回调地址
+        dir:
+            prefix: oss/images/ # 上传文件夹路径前缀 `
+
+poliv:
+    token:
+        userid: d5f6d309fe
+        writetoken: 8f14a371-9d02-4ec1-922d-54d7b4f79dca
+        readtoken: f2c397b4-e2a3-46dc-9266-e6a43ac26a35
+        secretkey: xpPrYdcbA1
+
+wx:
+    small:
+        appid: wxd3c8ae80cf43a305
+        appsecret: 193a001ebfd46f227008a21e9d13e750
+    gzh:
+        appid: wx6f48f721d18244eb
+        appsecret: 2f8b2b4ff66e2f6adfb9f08ae22d7474
+        studyNoteTpId: DndIixcAp15Sqgb4KOGTMf73VLF09NlCUifPSel5Y_s
+        qdyTpId: s981yq3SyIODNUEXFzVSWn0OYj90E72aKdtKtSp05_E
+        qdySubTpId: gzE6zddD7OzDLUtOO4GfU-KPCxpMqWFhCj86uXExqB8
+        qdySubStatusTpId: 7oKaAHmc4P7jqfonuiM1wnjfNLh9T662Ywm1OAFaUFA
+        qdyExamTpId: 66LitnYp0AIWFclo0rLdyLQP4-_vVc4pM95fyFs6l-c
+        qdyExamStatusTpId: J7nNogGhD38OD20gI-3CzwawfEMu7lOjR8fsi4LgJ5g
+        signatureTpId: 66LitnYp0AIWFclo0rLdyLQP4-_vVc4pM95fyFs6l-c
+    wepay:
+        mchid: 1342013901
+        key: GdXyPxYjZx1234123yJzXgDxYpXyjpx9
+        appsecret: GdXyPxYjZx1234123yJzXgDxYpXyjpx9
+        notifyUrl: https://api.xyyxt.net/wx/pay/callback
+    scanLogin:
+        host: https://m.xyyxt.net/
+
+wisdomExamRoom:
+    mchid: 10001
+    appid: ZZ-YXT-GZ-20220820-0001
+    app_secret: mt70O1s/Xd5LwuH7yHLpj9R+tKUn5j9vTnCvmgBnbJDA11Hpl7+q4lEZliqPAjN+YHPn9bGmHkAbw5XwhhMiYg==
+    host: http://bg.sam457.site:9020
+
+certificate:
+    host: https://m.xyyxt.net/
+
+liveGotoURL: https://
+
+enCodeVersion: release
+
+oldStudySys:
+    syncPath: https://www.xyyxt.net/System/BussinessApi/PostUserStudyRecords
+    sharePath: https://www.xyyxt.net/witsystem/dataapi/SaleOrder
+    shareCanclePath: https://www.xyyxt.net/witsystem/dataapi/ordercance
+    searchGradeCount: https://www.xyyxt.net/System/BussinessApi/OfficialGradeCount
+    pushGradeCount: https://www.xyyxt.net/System/BussinessApi/OfficialGradeCountAuto
+    educationalInspector: https://zs.gdzzkj.net/EduSystem/BusinessApi/NewYxtUserPrompt
+    classUserListPath: https://www.xyyxt.net/System/BussinessApi/UserCourseCategoryListcno
+    classOpenPath: https://www.xyyxt.net/System/BussinessApi/OpenClass
+    salePassword: http:///www.xyyxt.net/WitSystem/BussinessApi/GetSaleInfo
+    updateInvoicePath: http://gdxypx.xy.com/system/BussinessApi/UpdateInvoiceData
+
+officialPush:
+    infoPath: https://jypt.gdcic.net/organjxjy/ShangBaoMingdan
+    periodPath: https://jypt.gdcic.net/organjxjy/XueshiShenqing
+    infoAccount: GDSXY
+    token: 01b5d9833987efdff54483cdc9720da6

+ 305 - 0
zhongzheng-admin-business/src/main/resources/application.yml

@@ -0,0 +1,305 @@
+# 项目相关配置
+zhongzheng:
+  # 名称
+  name: zhongzheng
+  # 版本
+  version: 3.4.0
+  # 版权年份
+  copyrightYear: 2021
+  # 实例演示开关
+  demoEnabled: true
+  # 文件路径,使用jvm系统变量,兼容windows和linux;
+  profile: ${user.dir}/zhongzheng/uploadPath
+  # 获取ip地址开关
+  addressEnabled: false
+
+captcha:
+  # 验证码类型 math 数组计算 char 字符验证
+  captchaType: math
+  # line 线段干扰 circle 圆圈干扰 shear 扭曲干扰
+  captchaCategory: circle
+  # 数字验证码位数
+  captchaNumberLength: 1
+  # 字符验证码长度
+  captchaCharLength: 4
+
+# 开发环境配置
+server:
+  # 服务器的HTTP端口,默认为8080
+  port: 5080
+  servlet:
+    # 应用的访问路径
+    context-path: /
+  # undertow 配置
+  undertow:
+    # HTTP post内容的最大大小。当值为-1时,默认值为大小是无限的
+    max-http-post-size: -1
+    # 以下的配置会影响buffer,这些buffer会用于服务器连接的IO操作,有点类似netty的池化内存管理
+    # 每块buffer的空间大小,越小的空间被利用越充分
+    buffer-size: 512
+    # 设置IO线程数, 它主要执行非阻塞的任务,它们会负责多个连接, 默认设置每个CPU核心一个线程
+    io-threads: 8
+    # 阻塞任务线程池, 当执行类似servlet请求阻塞操作, undertow会从这个线程池中取得线程,它的值设置取决于系统的负载
+    worker-threads: 256
+    # 是否分配的直接内存
+    direct-buffers: true
+#  # tomcat 配置
+#  tomcat:
+#    # tomcat的URI编码
+#    uri-encoding: UTF-8
+#    # tomcat最大线程数,默认为200
+#    max-threads: 500
+#    # Tomcat启动初始化的线程数,默认值25
+#    min-spare-threads: 30
+
+# 日志配置
+logging:
+  level:
+    com.zhongzheng: @logging.level@
+    org.springframework: warn
+  config: classpath:logback.xml
+
+# Spring配置
+spring:
+  mvc:
+    async:
+      request-timeout: 30000
+  main:
+    allow-bean-definition-overriding: true
+  # 资源信息
+  messages:
+    # 国际化资源文件路径
+    basename: i18n/messages
+  profiles:
+    active: @profiles.active@
+  # 文件上传
+  servlet:
+     multipart:
+       # 单个文件大小
+       max-file-size:  1024MB
+       # 设置总上传的文件大小
+       max-request-size:  1024MB
+  # 服务模块
+  devtools:
+    restart:
+      # 热部署开关
+      enabled: true
+  application:
+    name: zz_edu
+  boot:
+    admin:
+      # Spring Boot Admin Client 客户端的相关配置
+      client:
+        # 设置 Spring Boot Admin Server 地址
+        url: http://localhost:${server.port}${spring.boot.admin.context-path}
+        instance:
+          prefer-ip: true # 注册实例时,优先使用 IP
+      # Spring Boot Admin Server 服务端的相关配置
+      context-path: /admin # 配置 Spring
+
+# Actuator 监控端点的配置项
+management:
+  endpoints:
+    web:
+      # Actuator 提供的 API 接口的根目录。默认为 /actuator
+      base-path: /actuator
+      exposure:
+        # 需要开放的端点。默认值只打开 health 和 info 两个端点。通过设置 * ,可以开放所有端点。
+        include: '*'
+  endpoint:
+    logfile:
+      external-file: ./logs/sys-console.log
+
+# token配置
+token:
+    # 令牌自定义标识
+    header: AuthorizationToken
+    # 令牌密钥
+    secret: abcdefghijklmnopqrstuvwxyz
+    # 令牌有效期(默认30分钟)
+    expireTime: 720
+
+# MyBatis配置
+# https://baomidou.com/config/
+mybatis-plus:
+  # 对应的 XML 文件位置
+  mapperLocations: classpath*:mapper/**/*Mapper.xml
+  # 实体扫描,多个package用逗号或者分号分隔
+  typeAliasesPackage: com.zhongzheng.**.domain
+  # 针对 typeAliasesPackage,如果配置了该属性,则仅仅会扫描路径下以该类作为父类的域对象
+  #typeAliasesSuperType: Class<?>
+  # 如果配置了该属性,SqlSessionFactoryBean 会把该包下面的类注册为对应的 TypeHandler
+  #typeHandlersPackage: null
+  # 如果配置了该属性,会将路径下的枚举类进行注入,让实体类字段能够简单快捷的使用枚举属性
+  #typeEnumsPackage: null
+  # 启动时是否检查 MyBatis XML 文件的存在,默认不检查
+  checkConfigLocation: false
+  # 通过该属性可指定 MyBatis 的执行器,MyBatis 的执行器总共有三种:
+  # SIMPLE:该执行器类型不做特殊的事情,为每个语句的执行创建一个新的预处理语句(PreparedStatement)
+  # REUSE:该执行器类型会复用预处理语句(PreparedStatement)
+  # BATCH:该执行器类型会批量执行所有的更新语句
+  executorType: SIMPLE
+  # 指定外部化 MyBatis Properties 配置,通过该配置可以抽离配置,实现不同环境的配置部署
+  configurationProperties: null
+  typeHandlersPackage: com.zhongzheng.common.type
+  configuration:
+    # 自动驼峰命名规则(camel case)映射
+    # 如果您的数据库命名符合规则无需使用 @TableField 注解指定数据库字段名
+    mapUnderscoreToCamelCase: true
+    # 默认枚举处理类,如果配置了该属性,枚举将统一使用指定处理器进行处理
+    # org.apache.ibatis.type.EnumTypeHandler : 存储枚举的名称
+    # org.apache.ibatis.type.EnumOrdinalTypeHandler : 存储枚举的索引
+    # com.baomidou.mybatisplus.extension.handlers.MybatisEnumTypeHandler : 枚举类需要实现IEnum接口或字段标记@EnumValue注解.
+    defaultEnumTypeHandler: org.apache.ibatis.type.EnumTypeHandler
+    # 当设置为 true 的时候,懒加载的对象可能被任何懒属性全部加载,否则,每个属性都按需加载。需要和 lazyLoadingEnabled 一起使用。
+    aggressiveLazyLoading: true
+    # MyBatis 自动映射策略
+    # NONE:不启用自动映射
+    # PARTIAL:只对非嵌套的 resultMap 进行自动映射
+    # FULL:对所有的 resultMap 都进行自动映射
+    autoMappingBehavior: PARTIAL
+    # MyBatis 自动映射时未知列或未知属性处理策
+    # NONE:不做任何处理 (默认值)
+    # WARNING:以日志的形式打印相关警告信息
+    # FAILING:当作映射失败处理,并抛出异常和详细信息
+    autoMappingUnknownColumnBehavior: NONE
+    # Mybatis一级缓存,默认为 SESSION
+    # SESSION session级别缓存,同一个session相同查询语句不会再次查询数据库
+    # STATEMENT 关闭一级缓存
+    localCacheScope: SESSION
+    # 开启Mybatis二级缓存,默认为 true
+    cacheEnabled: true
+  global-config:
+    # 是否打印 Logo banner
+    banner: true
+    # 是否初始化 SqlRunner
+    enableSqlRunner: false
+    dbConfig:
+      # 主键类型
+      # AUTO 数据库ID自增
+      # NONE 空
+      # INPUT 用户输入ID
+      # ASSIGN_ID 全局唯一ID
+      # ASSIGN_UUID 全局唯一ID UUID
+      idType: AUTO
+      # 表名前缀
+      tablePrefix: null
+      # 字段 format,例: %s,(对主键无效)
+      columnFormat: null
+      # 表名是否使用驼峰转下划线命名,只对表名生效
+      tableUnderline: true
+      # 大写命名,对表名和字段名均生效
+      capitalMode: false
+      # 全局的entity的逻辑删除字段属性名
+      logicDeleteField: null
+      # 逻辑已删除值
+      logicDeleteValue: 2
+      # 逻辑未删除值
+      logicNotDeleteValue: 0
+      # 字段验证策略之 insert,在 insert 的时候的字段验证策略
+      # IGNORED 忽略判断
+      # NOT_NULL 非NULL判断
+      # NOT_EMPTY 非空判断(只对字符串类型字段,其他类型字段依然为非NULL判断)
+      # DEFAULT 默认的,一般只用于注解里
+      # NEVER 不加入 SQL
+      insertStrategy: NOT_EMPTY
+      # 字段验证策略之 update,在 update 的时候的字段验证策略
+      updateStrategy: NOT_EMPTY
+      # 字段验证策略之 select,在 select 的时候的字段验证策略既 wrapper 根据内部 entity 生成的 where 条件
+      selectStrategy: NOT_EMPTY
+  # 开启多租户
+  tenant:
+    enabled-tenant: true
+# PageHelper分页插件
+pagehelper:
+  helperDialect: mysql
+  reasonable: true
+  supportMethodsArguments: true
+  params: count=countSql
+# Swagger配置
+swagger:
+  # 是否开启swagger
+  enabled: true
+  # 请求前缀
+  pathMapping:
+knife4j:
+  enable: true
+  setting:
+    enableFooter: false
+
+# 防止XSS攻击
+xss:
+  # 过滤开关
+  enabled: true
+  # 排除链接(多个用逗号分隔)
+  excludes: /system/notice/*
+  # 匹配链接
+  urlPatterns: /system/*,/monitor/*,/tool/*
+
+feign:
+  # 开启压缩
+  compression:
+    request:
+      enabled: true
+    response:
+      enabled: true
+  okhttp:
+    enabled: true
+  hystrix:
+    enabled: true
+
+poliv:
+  sdk:
+    userid: egsxlptzdq
+    appId: ezl5uy4zei
+    appSecret: 2bf5bb3c31d34531943df10284edd50b
+
+tencent:
+  cloud:
+    SecretId: AKIDd6XkjTw9D1atwkJceS2NSIuHPK1ThfOr
+    SecretKey: GG2ZqrdCWcS6Yx72h6F7k7E4ey2qPnwq
+
+aliyun:
+  sms:
+    signName: 中正教育
+    registerTemplateCode: SMS_228670004
+    loginTemplateCode: SMS_228670005
+    forgetTemplateCode: SMS_228685033
+    pwdTemplateCode: SMS_230220381
+    bindNewTelCode: SMS_232178371
+    accessKeyId: LTAI5tDbpYmpifZYNX8S3kt1
+    accessKeySecret: jCdSPAj58ZXOLsWpV8bCgNOYrEK0de
+    OpenTheGoodsCode: SMS_230970155     #商品开通提醒
+    informationNotificationCode: SMS_230965149  #完善报名资料通知
+    materialReviewCode: SMS_230980165         #报名资料审核通过通知
+    NotificationOfFailureCode: SMS_230980172  #报名资料审核不通过通知
+    remainingDaysValidityCode: SMS_236566823  #开通班级有效期还剩天数
+    completionReminderCode: SMS_230965157   #学时学习完成提醒
+    schoolHoursCode: SMS_230970166    #学时机构审核通过提醒
+    auditFailedCode: SMS_230970167  #学时机构审核不通过提醒
+    ReminderApproval: SMS_231200314 #学时机构审核通过提醒
+    passTheReminder: SMS_230980180  #学时机构审核不通过提醒
+    bookingReminder: SMS_230980181  #考试预约提醒
+    cancellationReminder: SMS_230980183 #考试预约取消提醒
+    reservationSuccess: SMS_230980186 #考试预约成功提醒
+    examinationRemind: SMS_230960195  #考试提醒
+    newExamPass: SMS_230970179  #七大员新考考试通过提醒
+    newExamFail: SMS_235491082  #七大员新考考试不通过提醒
+    openingReminder: SMS_230970209  #七大员题库开通提醒(12-22
+    classRemind: SMS_230965224  #二建继教开班提醒
+    OverdueReminder: SMS_230980259  #班级过期提醒
+    OverdueReminderHave: SMS_230965228  #班级过期提醒有学习次数
+    planReminder: SMS_230970248     #学习计划提醒
+    commitmentCode: SMS_231190546     #承诺书审核通过通知
+    commitmentFailsCode: SMS_231215516     #承诺书审核不通过通知
+    mockBookingReminder: SMS_243430276     #模考预约提醒
+    mockRemind: SMS_243355276      #模考开始提醒
+    liveStartRemind: SMS_243345514      #直播开课提醒
+    buyNotStudyStudentRemind : SMS_247745294  #学生购买未学习
+    buyNotStudyTeacherRemind : SMS_247935257  #学生购买未学习老师
+    longNotStudyStudentRemind: SMS_247910221  #学生长时间未学习
+    longNotStudyTeacherRemind: SMS_247765294  #学生长时间未学习老师
+    signCommitmentRemind: SMS_250390195  #签署承诺书提醒
+    todayExamNotRecordWarn: SMS_257713140  #学员打卡提醒(每日一练)
+    todayExamNotRecordTeachWarn: SMS_257702971  #学员打卡教务提醒(每日一练)
+    noFinishExamNoteCode: SMS_262460267  #未做完试卷通知

+ 2 - 0
zhongzheng-admin-business/src/main/resources/banner.txt

@@ -0,0 +1,2 @@
+Application Version: ${zhongzheng.version}
+Spring Boot Version: ${spring-boot.version}

BIN
zhongzheng-admin-business/src/main/resources/config/1342013901/apiclient_cert.p12


BIN
zhongzheng-admin-business/src/main/resources/config/1637492608/apiclient_cert.p12


BIN
zhongzheng-admin-business/src/main/resources/config/1640084970/apiclient_cert.p12


BIN
zhongzheng-admin-business/src/main/resources/config/1645338056/apiclient_cert.p12


BIN
zhongzheng-admin-business/src/main/resources/config/1664882784/apiclient_cert.p12


BIN
zhongzheng-admin-business/src/main/resources/config/1665678341/apiclient_cert.p12


BIN
zhongzheng-admin-business/src/main/resources/config/1666320573/apiclient_cert.p12


BIN
zhongzheng-admin-business/src/main/resources/config/1667498563/apiclient_cert.p12


+ 36 - 0
zhongzheng-admin-business/src/main/resources/i18n/messages.properties

@@ -0,0 +1,36 @@
+#错误消息
+not.null=* 必须填写
+user.jcaptcha.error=验证码错误
+user.jcaptcha.expire=验证码已失效
+user.not.exists=用户不存在/密码错误
+user.password.not.match=用户不存在/密码错误
+user.password.retry.limit.count=密码输入错误{0}次
+user.password.retry.limit.exceed=密码输入错误{0}次,帐户锁定10分钟
+user.password.delete=对不起,您的账号已被删除
+user.blocked=用户已封禁,请联系管理员
+role.blocked=角色已封禁,请联系管理员
+user.logout.success=退出成功
+
+length.not.valid=长度必须在{min}到{max}个字符之间
+
+user.username.not.valid=* 2到20个汉字、字母、数字或下划线组成,且必须以非数字开头
+user.password.not.valid=* 5-50个字符
+ 
+user.email.not.valid=邮箱格式错误
+user.mobile.phone.number.not.valid=手机号格式错误
+user.login.success=登录成功
+user.notfound=请重新登录
+user.forcelogout=管理员强制退出,请重新登录
+user.unknown.error=未知错误,请重新登录
+
+##文件上传消息
+upload.exceed.maxSize=上传的文件大小超出限制的文件大小!<br/>允许的文件最大大小是:{0}MB!
+upload.filename.exceed.length=上传的文件名最长{0}个字符
+
+##权限
+no.permission=您没有数据的权限,请联系管理员添加权限 [{0}]
+no.create.permission=您没有创建数据的权限,请联系管理员添加权限 [{0}]
+no.update.permission=您没有修改数据的权限,请联系管理员添加权限 [{0}]
+no.delete.permission=您没有删除数据的权限,请联系管理员添加权限 [{0}]
+no.export.permission=您没有导出数据的权限,请联系管理员添加权限 [{0}]
+no.view.permission=您没有查看数据的权限,请联系管理员添加权限 [{0}]

+ 108 - 0
zhongzheng-admin-business/src/main/resources/logback.xml

@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+    <property name="log.path" value="./logs"/>
+    <property name="console.log.pattern"
+              value="%red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{36}%n) - %msg%n"/>
+    <property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n"/>
+
+	<!-- 控制台输出 -->
+	<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
+		<encoder>
+			<pattern>${console.log.pattern}</pattern>
+            <charset>utf-8</charset>
+		</encoder>
+	</appender>
+
+    <!-- 控制台输出 -->
+    <appender name="file_console" class="ch.qos.logback.core.FileAppender">
+        <file>${log.path}/sys-console.log</file>
+        <encoder>
+            <pattern>${log.pattern}</pattern>
+            <charset>utf-8</charset>
+        </encoder>
+        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+            <!-- 过滤的级别 -->
+            <level>INFO</level>
+        </filter>
+    </appender>
+	
+	<!-- 系统日志输出 -->
+	<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
+	    <file>${log.path}/sys-info.log</file>
+        <!-- 循环政策:基于时间创建日志文件 -->
+		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 日志文件名格式 -->
+			<fileNamePattern>${log.path}/sys-info.%d{yyyy-MM-dd}.log</fileNamePattern>
+			<!-- 日志最大的历史 60天 -->
+			<maxHistory>60</maxHistory>
+		</rollingPolicy>
+		<encoder>
+			<pattern>${log.pattern}</pattern>
+		</encoder>
+		<filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <!-- 过滤的级别 -->
+            <level>INFO</level>
+            <!-- 匹配时的操作:接收(记录) -->
+            <onMatch>ACCEPT</onMatch>
+            <!-- 不匹配时的操作:拒绝(不记录) -->
+            <onMismatch>DENY</onMismatch>
+        </filter>
+	</appender>
+	
+	<appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
+	    <file>${log.path}/sys-error.log</file>
+        <!-- 循环政策:基于时间创建日志文件 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 日志文件名格式 -->
+            <fileNamePattern>${log.path}/sys-error.%d{yyyy-MM-dd}.log</fileNamePattern>
+			<!-- 日志最大的历史 60天 -->
+			<maxHistory>60</maxHistory>
+        </rollingPolicy>
+        <encoder>
+            <pattern>${log.pattern}</pattern>
+        </encoder>
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <!-- 过滤的级别 -->
+            <level>ERROR</level>
+			<!-- 匹配时的操作:接收(记录) -->
+            <onMatch>ACCEPT</onMatch>
+			<!-- 不匹配时的操作:拒绝(不记录) -->
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+	
+	<!-- 用户访问日志输出  -->
+    <appender name="sys-user" class="ch.qos.logback.core.rolling.RollingFileAppender">
+		<file>${log.path}/sys-user.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 按天回滚 daily -->
+            <fileNamePattern>${log.path}/sys-user.%d{yyyy-MM-dd}.log</fileNamePattern>
+            <!-- 日志最大的历史 60天 -->
+            <maxHistory>60</maxHistory>
+        </rollingPolicy>
+        <encoder>
+            <pattern>${log.pattern}</pattern>
+        </encoder>
+    </appender>
+	
+	<!-- 系统模块日志级别控制  -->
+	<logger name="com.zhongzheng" level="info" />
+	<!-- Spring日志级别控制  -->
+	<logger name="org.springframework" level="warn" />
+
+	<root level="info">
+		<appender-ref ref="console" />
+	</root>
+	
+	<!--系统操作日志-->
+    <root level="info">
+        <appender-ref ref="file_info" />
+        <appender-ref ref="file_error" />
+        <appender-ref ref="file_console" />
+    </root>
+	
+	<!--系统用户操作日志-->
+    <logger name="sys-user" level="info">
+        <appender-ref ref="sys-user"/>
+    </logger>
+</configuration> 

+ 0 - 0
zhongzheng-admin-business/src/main/resources/mybatis/mybatis-config.xml


+ 2119 - 0
zhongzheng-admin-business/src/main/resources/templates/word.ftl

@@ -0,0 +1,2119 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<?mso-application progid="Word.Document"?>
+<w:wordDocument xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml" xmlns:v="urn:schemas-microsoft-com:vml"
+                xmlns:w10="urn:schemas-microsoft-com:office:word"
+                xmlns:sl="http://schemas.microsoft.com/schemaLibrary/2003/core"
+                xmlns:aml="http://schemas.microsoft.com/aml/2001/core"
+                xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint"
+                xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882"
+                w:macrosPresent="no" w:embeddedObjPresent="no" w:ocxPresent="no" xml:space="preserve"
+                xmlns:wpsCustomData="http://www.wps.cn/officeDocument/2013/wpsCustomData"><o:DocumentProperties>
+        <o:Author>Administrator</o:Author>
+        <o:LastAuthor>初學者</o:LastAuthor>
+        <o:Created>2021-11-16T06:37:00Z</o:Created>
+        <o:LastSaved>2021-12-20T12:06:39Z</o:LastSaved>
+        <o:TotalTime>0</o:TotalTime>
+        <o:Version>14</o:Version>
+    </o:DocumentProperties>
+    <o:CustomDocumentProperties>
+        <o:KSOProductBuildVer dt:dt="string">2052-11.1.0.11115</o:KSOProductBuildVer>
+        <o:ICV dt:dt="string">55C38C70D21F4CD2AA50247A169F90C6</o:ICV>
+    </o:CustomDocumentProperties>
+    <w:fonts>
+        <w:defaultFonts w:ascii="Times New Roman" w:fareast="宋体" w:h-ansi="Times New Roman" w:cs="Times New Roman"/>
+        <w:font w:name="Times New Roman">
+            <w:panose-1 w:val="02020603050405020304"/>
+            <w:charset w:val="00"/>
+            <w:family w:val="Auto"/>
+            <w:pitch w:val="Default"/>
+            <w:sig w:usb-0="E0002EFF" w:usb-1="C000785B" w:usb-2="00000009" w:usb-3="00000000" w:csb-0="400001FF"
+                   w:csb-1="FFFF0000"/>
+        </w:font>
+        <w:font w:name="宋体">
+            <w:panose-1 w:val="02010600030101010101"/>
+            <w:charset w:val="86"/>
+            <w:family w:val="Auto"/>
+            <w:pitch w:val="Default"/>
+            <w:sig w:usb-0="00000203" w:usb-1="288F0000" w:usb-2="00000006" w:usb-3="00000000" w:csb-0="00040001"
+                   w:csb-1="00000000"/>
+        </w:font>
+        <w:font w:name="Wingdings">
+            <w:panose-1 w:val="05000000000000000000"/>
+            <w:charset w:val="02"/>
+            <w:family w:val="Auto"/>
+            <w:pitch w:val="Default"/>
+            <w:sig w:usb-0="00000000" w:usb-1="00000000" w:usb-2="00000000" w:usb-3="00000000" w:csb-0="80000000"
+                   w:csb-1="00000000"/>
+        </w:font>
+        <w:font w:name="Arial">
+            <w:panose-1 w:val="020B0604020202020204"/>
+            <w:charset w:val="01"/>
+            <w:family w:val="SWiss"/>
+            <w:pitch w:val="Default"/>
+            <w:sig w:usb-0="E0002EFF" w:usb-1="C000785B" w:usb-2="00000009" w:usb-3="00000000" w:csb-0="400001FF"
+                   w:csb-1="FFFF0000"/>
+        </w:font>
+        <w:font w:name="黑体">
+            <w:panose-1 w:val="02010609060101010101"/>
+            <w:charset w:val="86"/>
+            <w:family w:val="Auto"/>
+            <w:pitch w:val="Default"/>
+            <w:sig w:usb-0="800002BF" w:usb-1="38CF7CFA" w:usb-2="00000016" w:usb-3="00000000" w:csb-0="00040001"
+                   w:csb-1="00000000"/>
+        </w:font>
+        <w:font w:name="Courier New">
+            <w:panose-1 w:val="02070309020205020404"/>
+            <w:charset w:val="01"/>
+            <w:family w:val="Modern"/>
+            <w:pitch w:val="Default"/>
+            <w:sig w:usb-0="E0002EFF" w:usb-1="C0007843" w:usb-2="00000009" w:usb-3="00000000" w:csb-0="400001FF"
+                   w:csb-1="FFFF0000"/>
+        </w:font>
+        <w:font w:name="Symbol">
+            <w:panose-1 w:val="05050102010706020507"/>
+            <w:charset w:val="02"/>
+            <w:family w:val="Roman"/>
+            <w:pitch w:val="Default"/>
+            <w:sig w:usb-0="00000000" w:usb-1="00000000" w:usb-2="00000000" w:usb-3="00000000" w:csb-0="80000000"
+                   w:csb-1="00000000"/>
+        </w:font>
+        <w:font w:name="Calibri">
+            <w:panose-1 w:val="020F0502020204030204"/>
+            <w:charset w:val="00"/>
+            <w:family w:val="SWiss"/>
+            <w:pitch w:val="Default"/>
+            <w:sig w:usb-0="E4002EFF" w:usb-1="C000247B" w:usb-2="00000009" w:usb-3="00000000" w:csb-0="200001FF"
+                   w:csb-1="00000000"/>
+        </w:font>
+        <w:font w:name="方正小标宋简体">
+            <w:altName w:val="方正舒体"/>
+            <w:panose-1 w:val="00000000000000000000"/>
+            <w:charset w:val="00"/>
+            <w:family w:val="Auto"/>
+            <w:pitch w:val="Default"/>
+            <w:sig w:usb-0="00000000" w:usb-1="00000000" w:usb-2="00000000" w:usb-3="00000000" w:csb-0="00000000"
+                   w:csb-1="00000000"/>
+        </w:font>
+        <w:font w:name="方正舒体">
+            <w:panose-1 w:val="02010601030101010101"/>
+            <w:charset w:val="86"/>
+            <w:family w:val="Auto"/>
+            <w:pitch w:val="Default"/>
+            <w:sig w:usb-0="00000003" w:usb-1="080E0000" w:usb-2="00000000" w:usb-3="00000000" w:csb-0="00040000"
+                   w:csb-1="00000000"/>
+        </w:font>
+        <w:font w:name="微软雅黑">
+            <w:panose-1 w:val="020B0503020204020204"/>
+            <w:charset w:val="86"/>
+            <w:family w:val="Auto"/>
+            <w:pitch w:val="Default"/>
+            <w:sig w:usb-0="80000287" w:usb-1="2ACF3C50" w:usb-2="00000016" w:usb-3="00000000" w:csb-0="0004001F"
+                   w:csb-1="00000000"/>
+        </w:font>
+        <w:font w:name="仿宋">
+            <w:panose-1 w:val="02010609060101010101"/>
+            <w:charset w:val="86"/>
+            <w:family w:val="Auto"/>
+            <w:pitch w:val="Default"/>
+            <w:sig w:usb-0="800002BF" w:usb-1="38CF7CFA" w:usb-2="00000016" w:usb-3="00000000" w:csb-0="00040001"
+                   w:csb-1="00000000"/>
+        </w:font>
+        <w:font w:name="仿宋_GB2312">
+            <w:altName w:val="仿宋"/>
+            <w:panose-1 w:val="00000000000000000000"/>
+            <w:charset w:val="00"/>
+            <w:family w:val="Auto"/>
+            <w:pitch w:val="Default"/>
+            <w:sig w:usb-0="00000000" w:usb-1="00000000" w:usb-2="00000000" w:usb-3="00000000" w:csb-0="00000000"
+                   w:csb-1="00000000"/>
+        </w:font>
+        <w:font w:name="Arial">
+            <w:panose-1 w:val="020B0604020202020204"/>
+            <w:charset w:val="00"/>
+            <w:family w:val="Auto"/>
+            <w:pitch w:val="Default"/>
+            <w:sig w:usb-0="E0002EFF" w:usb-1="C000785B" w:usb-2="00000009" w:usb-3="00000000" w:csb-0="400001FF"
+                   w:csb-1="FFFF0000"/>
+        </w:font>
+    </w:fonts>
+    <w:styles>
+        <w:latentStyles w:defLockedState="off" w:latentStyleCount="260">
+            <w:lsdException w:name="Normal"/>
+            <w:lsdException w:name="heading 1"/>
+            <w:lsdException w:name="heading 2"/>
+            <w:lsdException w:name="heading 3"/>
+            <w:lsdException w:name="heading 4"/>
+            <w:lsdException w:name="heading 5"/>
+            <w:lsdException w:name="heading 6"/>
+            <w:lsdException w:name="heading 7"/>
+            <w:lsdException w:name="heading 8"/>
+            <w:lsdException w:name="heading 9"/>
+            <w:lsdException w:name="index 1"/>
+            <w:lsdException w:name="index 2"/>
+            <w:lsdException w:name="index 3"/>
+            <w:lsdException w:name="index 4"/>
+            <w:lsdException w:name="index 5"/>
+            <w:lsdException w:name="index 6"/>
+            <w:lsdException w:name="index 7"/>
+            <w:lsdException w:name="index 8"/>
+            <w:lsdException w:name="index 9"/>
+            <w:lsdException w:name="toc 1"/>
+            <w:lsdException w:name="toc 2"/>
+            <w:lsdException w:name="toc 3"/>
+            <w:lsdException w:name="toc 4"/>
+            <w:lsdException w:name="toc 5"/>
+            <w:lsdException w:name="toc 6"/>
+            <w:lsdException w:name="toc 7"/>
+            <w:lsdException w:name="toc 8"/>
+            <w:lsdException w:name="toc 9"/>
+            <w:lsdException w:name="Normal Indent"/>
+            <w:lsdException w:name="footnote text"/>
+            <w:lsdException w:name="annotation text"/>
+            <w:lsdException w:name="header"/>
+            <w:lsdException w:name="footer"/>
+            <w:lsdException w:name="index heading"/>
+            <w:lsdException w:name="caption"/>
+            <w:lsdException w:name="table of figures"/>
+            <w:lsdException w:name="envelope address"/>
+            <w:lsdException w:name="envelope return"/>
+            <w:lsdException w:name="footnote reference"/>
+            <w:lsdException w:name="annotation reference"/>
+            <w:lsdException w:name="line number"/>
+            <w:lsdException w:name="page number"/>
+            <w:lsdException w:name="endnote reference"/>
+            <w:lsdException w:name="endnote text"/>
+            <w:lsdException w:name="table of authorities"/>
+            <w:lsdException w:name="macro"/>
+            <w:lsdException w:name="toa heading"/>
+            <w:lsdException w:name="List"/>
+            <w:lsdException w:name="List Bullet"/>
+            <w:lsdException w:name="List Number"/>
+            <w:lsdException w:name="List 2"/>
+            <w:lsdException w:name="List 3"/>
+            <w:lsdException w:name="List 4"/>
+            <w:lsdException w:name="List 5"/>
+            <w:lsdException w:name="List Bullet 2"/>
+            <w:lsdException w:name="List Bullet 3"/>
+            <w:lsdException w:name="List Bullet 4"/>
+            <w:lsdException w:name="List Bullet 5"/>
+            <w:lsdException w:name="List Number 2"/>
+            <w:lsdException w:name="List Number 3"/>
+            <w:lsdException w:name="List Number 4"/>
+            <w:lsdException w:name="List Number 5"/>
+            <w:lsdException w:name="Title"/>
+            <w:lsdException w:name="Closing"/>
+            <w:lsdException w:name="Signature"/>
+            <w:lsdException w:name="Default Paragraph Font"/>
+            <w:lsdException w:name="Body Text"/>
+            <w:lsdException w:name="Body Text Indent"/>
+            <w:lsdException w:name="List Continue"/>
+            <w:lsdException w:name="List Continue 2"/>
+            <w:lsdException w:name="List Continue 3"/>
+            <w:lsdException w:name="List Continue 4"/>
+            <w:lsdException w:name="List Continue 5"/>
+            <w:lsdException w:name="Message Header"/>
+            <w:lsdException w:name="Subtitle"/>
+            <w:lsdException w:name="Salutation"/>
+            <w:lsdException w:name="Date"/>
+            <w:lsdException w:name="Body Text First Indent"/>
+            <w:lsdException w:name="Body Text First Indent 2"/>
+            <w:lsdException w:name="Note Heading"/>
+            <w:lsdException w:name="Body Text 2"/>
+            <w:lsdException w:name="Body Text 3"/>
+            <w:lsdException w:name="Body Text Indent 2"/>
+            <w:lsdException w:name="Body Text Indent 3"/>
+            <w:lsdException w:name="Block Text"/>
+            <w:lsdException w:name="Hyperlink"/>
+            <w:lsdException w:name="FollowedHyperlink"/>
+            <w:lsdException w:name="Strong"/>
+            <w:lsdException w:name="Emphasis"/>
+            <w:lsdException w:name="Document Map"/>
+            <w:lsdException w:name="Plain Text"/>
+            <w:lsdException w:name="E-mail Signature"/>
+            <w:lsdException w:name="Normal (Web)"/>
+            <w:lsdException w:name="HTML Acronym"/>
+            <w:lsdException w:name="HTML Address"/>
+            <w:lsdException w:name="HTML Cite"/>
+            <w:lsdException w:name="HTML Code"/>
+            <w:lsdException w:name="HTML Definition"/>
+            <w:lsdException w:name="HTML Keyboard"/>
+            <w:lsdException w:name="HTML Preformatted"/>
+            <w:lsdException w:name="HTML Sample"/>
+            <w:lsdException w:name="HTML Typewriter"/>
+            <w:lsdException w:name="HTML Variable"/>
+            <w:lsdException w:name="Normal Table"/>
+            <w:lsdException w:name="annotation subject"/>
+            <w:lsdException w:name="Table Simple 1"/>
+            <w:lsdException w:name="Table Simple 2"/>
+            <w:lsdException w:name="Table Simple 3"/>
+            <w:lsdException w:name="Table Classic 1"/>
+            <w:lsdException w:name="Table Classic 2"/>
+            <w:lsdException w:name="Table Classic 3"/>
+            <w:lsdException w:name="Table Classic 4"/>
+            <w:lsdException w:name="Table Colorful 1"/>
+            <w:lsdException w:name="Table Colorful 2"/>
+            <w:lsdException w:name="Table Colorful 3"/>
+            <w:lsdException w:name="Table Columns 1"/>
+            <w:lsdException w:name="Table Columns 2"/>
+            <w:lsdException w:name="Table Columns 3"/>
+            <w:lsdException w:name="Table Columns 4"/>
+            <w:lsdException w:name="Table Columns 5"/>
+            <w:lsdException w:name="Table Grid 1"/>
+            <w:lsdException w:name="Table Grid 2"/>
+            <w:lsdException w:name="Table Grid 3"/>
+            <w:lsdException w:name="Table Grid 4"/>
+            <w:lsdException w:name="Table Grid 5"/>
+            <w:lsdException w:name="Table Grid 6"/>
+            <w:lsdException w:name="Table Grid 7"/>
+            <w:lsdException w:name="Table Grid 8"/>
+            <w:lsdException w:name="Table List 1"/>
+            <w:lsdException w:name="Table List 2"/>
+            <w:lsdException w:name="Table List 3"/>
+            <w:lsdException w:name="Table List 4"/>
+            <w:lsdException w:name="Table List 5"/>
+            <w:lsdException w:name="Table List 6"/>
+            <w:lsdException w:name="Table List 7"/>
+            <w:lsdException w:name="Table List 8"/>
+            <w:lsdException w:name="Table 3D effects 1"/>
+            <w:lsdException w:name="Table 3D effects 2"/>
+            <w:lsdException w:name="Table 3D effects 3"/>
+            <w:lsdException w:name="Table Contemporary"/>
+            <w:lsdException w:name="Table Elegant"/>
+            <w:lsdException w:name="Table Professional"/>
+            <w:lsdException w:name="Table Subtle 1"/>
+            <w:lsdException w:name="Table Subtle 2"/>
+            <w:lsdException w:name="Table Web 1"/>
+            <w:lsdException w:name="Table Web 2"/>
+            <w:lsdException w:name="Table Web 3"/>
+            <w:lsdException w:name="Balloon Text"/>
+            <w:lsdException w:name="Table Grid"/>
+            <w:lsdException w:name="Table Theme"/>
+            <w:lsdException w:name="Light Shading"/>
+            <w:lsdException w:name="Light List"/>
+            <w:lsdException w:name="Light Grid"/>
+            <w:lsdException w:name="Medium Shading 1"/>
+            <w:lsdException w:name="Medium Shading 2"/>
+            <w:lsdException w:name="Medium List 1"/>
+            <w:lsdException w:name="Medium List 2"/>
+            <w:lsdException w:name="Medium Grid 1"/>
+            <w:lsdException w:name="Medium Grid 2"/>
+            <w:lsdException w:name="Medium Grid 3"/>
+            <w:lsdException w:name="Dark List"/>
+            <w:lsdException w:name="Colorful Shading"/>
+            <w:lsdException w:name="Colorful List"/>
+            <w:lsdException w:name="Colorful Grid"/>
+            <w:lsdException w:name="Light Shading Accent 1"/>
+            <w:lsdException w:name="Light List Accent 1"/>
+            <w:lsdException w:name="Light Grid Accent 1"/>
+            <w:lsdException w:name="Medium Shading 1 Accent 1"/>
+            <w:lsdException w:name="Medium Shading 2 Accent 1"/>
+            <w:lsdException w:name="Medium List 1 Accent 1"/>
+            <w:lsdException w:name="Medium List 2 Accent 1"/>
+            <w:lsdException w:name="Medium Grid 1 Accent 1"/>
+            <w:lsdException w:name="Medium Grid 2 Accent 1"/>
+            <w:lsdException w:name="Medium Grid 3 Accent 1"/>
+            <w:lsdException w:name="Dark List Accent 1"/>
+            <w:lsdException w:name="Colorful Shading Accent 1"/>
+            <w:lsdException w:name="Colorful List Accent 1"/>
+            <w:lsdException w:name="Colorful Grid Accent 1"/>
+            <w:lsdException w:name="Light Shading Accent 2"/>
+            <w:lsdException w:name="Light List Accent 2"/>
+            <w:lsdException w:name="Light Grid Accent 2"/>
+            <w:lsdException w:name="Medium Shading 1 Accent 2"/>
+            <w:lsdException w:name="Medium Shading 2 Accent 2"/>
+            <w:lsdException w:name="Medium List 1 Accent 2"/>
+            <w:lsdException w:name="Medium List 2 Accent 2"/>
+            <w:lsdException w:name="Medium Grid 1 Accent 2"/>
+            <w:lsdException w:name="Medium Grid 2 Accent 2"/>
+            <w:lsdException w:name="Medium Grid 3 Accent 2"/>
+            <w:lsdException w:name="Dark List Accent 2"/>
+            <w:lsdException w:name="Colorful Shading Accent 2"/>
+            <w:lsdException w:name="Colorful List Accent 2"/>
+            <w:lsdException w:name="Colorful Grid Accent 2"/>
+            <w:lsdException w:name="Light Shading Accent 3"/>
+            <w:lsdException w:name="Light List Accent 3"/>
+            <w:lsdException w:name="Light Grid Accent 3"/>
+            <w:lsdException w:name="Medium Shading 1 Accent 3"/>
+            <w:lsdException w:name="Medium Shading 2 Accent 3"/>
+            <w:lsdException w:name="Medium List 1 Accent 3"/>
+            <w:lsdException w:name="Medium List 2 Accent 3"/>
+            <w:lsdException w:name="Medium Grid 1 Accent 3"/>
+            <w:lsdException w:name="Medium Grid 2 Accent 3"/>
+            <w:lsdException w:name="Medium Grid 3 Accent 3"/>
+            <w:lsdException w:name="Dark List Accent 3"/>
+            <w:lsdException w:name="Colorful Shading Accent 3"/>
+            <w:lsdException w:name="Colorful List Accent 3"/>
+            <w:lsdException w:name="Colorful Grid Accent 3"/>
+            <w:lsdException w:name="Light Shading Accent 4"/>
+            <w:lsdException w:name="Light List Accent 4"/>
+            <w:lsdException w:name="Light Grid Accent 4"/>
+            <w:lsdException w:name="Medium Shading 1 Accent 4"/>
+            <w:lsdException w:name="Medium Shading 2 Accent 4"/>
+            <w:lsdException w:name="Medium List 1 Accent 4"/>
+            <w:lsdException w:name="Medium List 2 Accent 4"/>
+            <w:lsdException w:name="Medium Grid 1 Accent 4"/>
+            <w:lsdException w:name="Medium Grid 2 Accent 4"/>
+            <w:lsdException w:name="Medium Grid 3 Accent 4"/>
+            <w:lsdException w:name="Dark List Accent 4"/>
+            <w:lsdException w:name="Colorful Shading Accent 4"/>
+            <w:lsdException w:name="Colorful List Accent 4"/>
+            <w:lsdException w:name="Colorful Grid Accent 4"/>
+            <w:lsdException w:name="Light Shading Accent 5"/>
+            <w:lsdException w:name="Light List Accent 5"/>
+            <w:lsdException w:name="Light Grid Accent 5"/>
+            <w:lsdException w:name="Medium Shading 1 Accent 5"/>
+            <w:lsdException w:name="Medium Shading 2 Accent 5"/>
+            <w:lsdException w:name="Medium List 1 Accent 5"/>
+            <w:lsdException w:name="Medium List 2 Accent 5"/>
+            <w:lsdException w:name="Medium Grid 1 Accent 5"/>
+            <w:lsdException w:name="Medium Grid 2 Accent 5"/>
+            <w:lsdException w:name="Medium Grid 3 Accent 5"/>
+            <w:lsdException w:name="Dark List Accent 5"/>
+            <w:lsdException w:name="Colorful Shading Accent 5"/>
+            <w:lsdException w:name="Colorful List Accent 5"/>
+            <w:lsdException w:name="Colorful Grid Accent 5"/>
+            <w:lsdException w:name="Light Shading Accent 6"/>
+            <w:lsdException w:name="Light List Accent 6"/>
+            <w:lsdException w:name="Light Grid Accent 6"/>
+            <w:lsdException w:name="Medium Shading 1 Accent 6"/>
+            <w:lsdException w:name="Medium Shading 2 Accent 6"/>
+            <w:lsdException w:name="Medium List 1 Accent 6"/>
+            <w:lsdException w:name="Medium List 2 Accent 6"/>
+            <w:lsdException w:name="Medium Grid 1 Accent 6"/>
+            <w:lsdException w:name="Medium Grid 2 Accent 6"/>
+            <w:lsdException w:name="Medium Grid 3 Accent 6"/>
+            <w:lsdException w:name="Dark List Accent 6"/>
+            <w:lsdException w:name="Colorful Shading Accent 6"/>
+            <w:lsdException w:name="Colorful List Accent 6"/>
+            <w:lsdException w:name="Colorful Grid Accent 6"/>
+        </w:latentStyles>
+        <w:style w:type="paragraph" w:styleId="a1" w:default="on">
+            <w:name w:val="Normal"/>
+            <w:rPr>
+                <w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="Arial" w:hint="default"/>
+                <w:sz w:val="22"/>
+                <w:sz-cs w:val="22"/>
+                <w:lang w:val="ZH-CN" w:fareast="EN-US" w:bidi="AR-SA"/>
+            </w:rPr>
+        </w:style>
+        <w:style w:type="paragraph" w:styleId="2">
+            <w:name w:val="heading 1"/>
+            <w:basedOn w:val="a1"/>
+            <w:next w:val="a1"/>
+            <w:pPr>
+                <w:keepNext/>
+                <w:keepLines/>
+                <w:spacing w:before="480" w:after="0"/>
+                <w:outlineLvl w:val="0"/>
+            </w:pPr>
+            <w:rPr>
+                <w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="Times New Roman" w:hint="default"/>
+                <w:b/>
+                <w:b-cs/>
+                <w:color w:val="366091"/>
+                <w:sz w:val="28"/>
+                <w:sz-cs w:val="28"/>
+            </w:rPr>
+        </w:style>
+        <w:style w:type="paragraph" w:styleId="3">
+            <w:name w:val="heading 2"/>
+            <w:basedOn w:val="a1"/>
+            <w:next w:val="a1"/>
+            <w:link w:val="a14"/>
+            <w:pPr>
+                <w:keepNext/>
+                <w:keepLines/>
+                <w:spacing w:before="200" w:after="0"/>
+                <w:outlineLvl w:val="1"/>
+            </w:pPr>
+            <w:rPr>
+                <w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="Times New Roman" w:hint="default"/>
+                <w:b/>
+                <w:b-cs/>
+                <w:color w:val="4F81BD"/>
+                <w:sz w:val="26"/>
+                <w:sz-cs w:val="26"/>
+            </w:rPr>
+        </w:style>
+        <w:style w:type="paragraph" w:styleId="4">
+            <w:name w:val="heading 3"/>
+            <w:basedOn w:val="a1"/>
+            <w:next w:val="a1"/>
+            <w:link w:val="a15"/>
+            <w:pPr>
+                <w:keepNext/>
+                <w:keepLines/>
+                <w:spacing w:before="200" w:after="0"/>
+                <w:outlineLvl w:val="2"/>
+            </w:pPr>
+            <w:rPr>
+                <w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="Times New Roman" w:hint="default"/>
+                <w:b/>
+                <w:b-cs/>
+                <w:color w:val="4F81BD"/>
+            </w:rPr>
+        </w:style>
+        <w:style w:type="paragraph" w:styleId="5">
+            <w:name w:val="heading 4"/>
+            <w:basedOn w:val="a1"/>
+            <w:next w:val="a1"/>
+            <w:link w:val="a16"/>
+            <w:pPr>
+                <w:keepNext/>
+                <w:keepLines/>
+                <w:spacing w:before="200" w:after="0"/>
+                <w:outlineLvl w:val="3"/>
+            </w:pPr>
+            <w:rPr>
+                <w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="Times New Roman" w:hint="default"/>
+                <w:b/>
+                <w:b-cs/>
+                <w:i/>
+                <w:i-cs/>
+                <w:color w:val="4F81BD"/>
+            </w:rPr>
+        </w:style>
+        <w:style w:type="paragraph" w:styleId="6">
+            <w:name w:val="heading 5"/>
+            <w:basedOn w:val="a1"/>
+            <w:next w:val="a1"/>
+            <w:link w:val="a17"/>
+            <w:pPr>
+                <w:keepNext/>
+                <w:keepLines/>
+                <w:spacing w:before="200" w:after="0"/>
+                <w:outlineLvl w:val="4"/>
+            </w:pPr>
+            <w:rPr>
+                <w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="Times New Roman" w:hint="default"/>
+                <w:color w:val="243F61"/>
+            </w:rPr>
+        </w:style>
+        <w:style w:type="paragraph" w:styleId="7">
+            <w:name w:val="heading 6"/>
+            <w:basedOn w:val="a1"/>
+            <w:next w:val="a1"/>
+            <w:link w:val="a18"/>
+            <w:pPr>
+                <w:keepNext/>
+                <w:keepLines/>
+                <w:spacing w:before="200" w:after="0"/>
+                <w:outlineLvl w:val="5"/>
+            </w:pPr>
+            <w:rPr>
+                <w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="Times New Roman" w:hint="default"/>
+                <w:i/>
+                <w:i-cs/>
+                <w:color w:val="243F61"/>
+            </w:rPr>
+        </w:style>
+        <w:style w:type="paragraph" w:styleId="8">
+            <w:name w:val="heading 7"/>
+            <w:basedOn w:val="a1"/>
+            <w:next w:val="a1"/>
+            <w:link w:val="a19"/>
+            <w:pPr>
+                <w:keepNext/>
+                <w:keepLines/>
+                <w:spacing w:before="200" w:after="0"/>
+                <w:outlineLvl w:val="6"/>
+            </w:pPr>
+            <w:rPr>
+                <w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="Times New Roman" w:hint="default"/>
+                <w:i/>
+                <w:i-cs/>
+                <w:color w:val="3F3F3F"/>
+            </w:rPr>
+        </w:style>
+        <w:style w:type="paragraph" w:styleId="9">
+            <w:name w:val="heading 8"/>
+            <w:basedOn w:val="a1"/>
+            <w:next w:val="a1"/>
+            <w:link w:val="a20"/>
+            <w:pPr>
+                <w:keepNext/>
+                <w:keepLines/>
+                <w:spacing w:before="200" w:after="0"/>
+                <w:outlineLvl w:val="7"/>
+            </w:pPr>
+            <w:rPr>
+                <w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="Times New Roman" w:hint="default"/>
+                <w:color w:val="3F3F3F"/>
+                <w:sz w:val="20"/>
+                <w:sz-cs w:val="20"/>
+            </w:rPr>
+        </w:style>
+        <w:style w:type="paragraph" w:styleId="10">
+            <w:name w:val="heading 9"/>
+            <w:basedOn w:val="a1"/>
+            <w:next w:val="a1"/>
+            <w:link w:val="a21"/>
+            <w:pPr>
+                <w:keepNext/>
+                <w:keepLines/>
+                <w:spacing w:before="200" w:after="0"/>
+                <w:outlineLvl w:val="8"/>
+            </w:pPr>
+            <w:rPr>
+                <w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="Times New Roman" w:hint="default"/>
+                <w:i/>
+                <w:i-cs/>
+                <w:color w:val="3F3F3F"/>
+                <w:sz w:val="20"/>
+                <w:sz-cs w:val="20"/>
+            </w:rPr>
+        </w:style>
+        <w:style w:type="character" w:styleId="a13" w:default="on">
+            <w:name w:val="Default Paragraph Font"/>
+            <w:semiHidden/>
+        </w:style>
+        <w:style w:type="table" w:styleId="a11" w:default="on">
+            <w:name w:val="Normal Table"/>
+            <w:semiHidden/>
+            <w:tblPr>
+                <w:tblCellMar>
+                    <w:top w:w="0" w:type="dxa"/>
+                    <w:left w:w="108" w:type="dxa"/>
+                    <w:bottom w:w="0" w:type="dxa"/>
+                    <w:right w:w="108" w:type="dxa"/>
+                </w:tblCellMar>
+            </w:tblPr>
+        </w:style>
+        <w:style w:type="table" w:styleId="a12">
+            <w:name w:val="Table Grid"/>
+            <w:basedOn w:val="a11"/>
+            <w:pPr>
+                <w:pStyle w:val="a11"/>
+                <w:spacing w:after="0" w:line="240" w:line-rule="auto"/>
+            </w:pPr>
+            <w:tblPr>
+                <w:tblBorders>
+                    <w:top w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="000000"/>
+                    <w:left w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="000000"/>
+                    <w:bottom w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="000000"/>
+                    <w:right w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="000000"/>
+                    <w:insideH w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="000000"/>
+                    <w:insideV w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="000000"/>
+                </w:tblBorders>
+                <w:tblCellMar>
+                    <w:top w:w="0" w:type="dxa"/>
+                    <w:left w:w="108" w:type="dxa"/>
+                    <w:bottom w:w="0" w:type="dxa"/>
+                    <w:right w:w="108" w:type="dxa"/>
+                </w:tblCellMar>
+            </w:tblPr>
+        </w:style>
+        <w:style w:type="character" w:styleId="a14">
+            <w:name w:val="Heading 2 Char"/>
+            <w:basedOn w:val="a13"/>
+            <w:link w:val="3"/>
+            <w:rPr>
+                <w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="Times New Roman" w:hint="default"/>
+                <w:b/>
+                <w:b-cs/>
+                <w:color w:val="4F81BD"/>
+                <w:sz w:val="26"/>
+                <w:sz-cs w:val="26"/>
+            </w:rPr>
+        </w:style>
+        <w:style w:type="character" w:styleId="a15">
+            <w:name w:val="Heading 3 Char"/>
+            <w:basedOn w:val="a13"/>
+            <w:link w:val="4"/>
+            <w:rPr>
+                <w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="Times New Roman" w:hint="default"/>
+                <w:b/>
+                <w:b-cs/>
+                <w:color w:val="4F81BD"/>
+            </w:rPr>
+        </w:style>
+        <w:style w:type="character" w:styleId="a16">
+            <w:name w:val="Heading 4 Char"/>
+            <w:basedOn w:val="a13"/>
+            <w:link w:val="5"/>
+            <w:rPr>
+                <w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="Times New Roman" w:hint="default"/>
+                <w:b/>
+                <w:b-cs/>
+                <w:i/>
+                <w:i-cs/>
+                <w:color w:val="4F81BD"/>
+            </w:rPr>
+        </w:style>
+        <w:style w:type="character" w:styleId="a17">
+            <w:name w:val="Heading 5 Char"/>
+            <w:basedOn w:val="a13"/>
+            <w:link w:val="6"/>
+            <w:rPr>
+                <w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="Times New Roman" w:hint="default"/>
+                <w:color w:val="243F61"/>
+            </w:rPr>
+        </w:style>
+        <w:style w:type="character" w:styleId="a18">
+            <w:name w:val="Heading 6 Char"/>
+            <w:basedOn w:val="a13"/>
+            <w:link w:val="7"/>
+            <w:rPr>
+                <w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="Times New Roman" w:hint="default"/>
+                <w:i/>
+                <w:i-cs/>
+                <w:color w:val="243F61"/>
+            </w:rPr>
+        </w:style>
+        <w:style w:type="character" w:styleId="a19">
+            <w:name w:val="Heading 7 Char"/>
+            <w:basedOn w:val="a13"/>
+            <w:link w:val="8"/>
+            <w:rPr>
+                <w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="Times New Roman" w:hint="default"/>
+                <w:i/>
+                <w:i-cs/>
+                <w:color w:val="3F3F3F"/>
+            </w:rPr>
+        </w:style>
+        <w:style w:type="character" w:styleId="a20">
+            <w:name w:val="Heading 8 Char"/>
+            <w:basedOn w:val="a13"/>
+            <w:link w:val="9"/>
+            <w:rPr>
+                <w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="Times New Roman" w:hint="default"/>
+                <w:color w:val="3F3F3F"/>
+                <w:sz w:val="20"/>
+                <w:sz-cs w:val="20"/>
+            </w:rPr>
+        </w:style>
+        <w:style w:type="character" w:styleId="a21">
+            <w:name w:val="Heading 9 Char"/>
+            <w:basedOn w:val="a13"/>
+            <w:link w:val="10"/>
+            <w:rPr>
+                <w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="Times New Roman" w:hint="default"/>
+                <w:i/>
+                <w:i-cs/>
+                <w:color w:val="3F3F3F"/>
+                <w:sz w:val="20"/>
+                <w:sz-cs w:val="20"/>
+            </w:rPr>
+        </w:style>
+    </w:styles>
+    <w:bgPict>
+        <w:background/>
+        <v:background id="_x0000_s1025">
+            <v:fill on="f" focussize="0,0"/>
+        </v:background>
+    </w:bgPict>
+    <w:docPr>
+        <w:view w:val="print"/>
+        <w:zoom w:percent="110"/>
+        <w:characterSpacingControl w:val="DontCompress"/>
+        <w:documentProtection w:enforcement="off"/>
+        <w:doNotEmbedSystemFonts/>
+        <w:defaultTabStop w:val="720"/>
+        <w:displayHorizontalDrawingGridEvery w:val="1"/>
+        <w:displayVerticalDrawingGridEvery w:val="1"/>
+        <w:compat>
+            <w:doNotExpandShiftReturn/>
+            <w:useFELayout/>
+            <w:breakWrappedTables/>
+            <w:dontGrowAutofit/>
+            <w:useFELayout/>
+        </w:compat>
+    </w:docPr>
+    <w:body>
+        <wx:sect>
+            <w:p>
+                <w:pPr>
+                    <w:spacing w:line="440" w:line-rule="exact"/>
+                    <w:jc w:val="center"/>
+                    <w:rPr>
+                        <w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:hint="default"/>
+                        <w:b/>
+                        <w:color w:val="000000"/>
+                        <w:sz w:val="36"/>
+                        <w:sz-cs w:val="36"/>
+                        <w:shd w:val="clear" w:color="auto" w:fill="FFFFFF"/>
+                    </w:rPr>
+                </w:pPr>
+                <w:r>
+                    <w:rPr>
+                        <w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:hint="fareast"/>
+                        <w:b/>
+                        <w:color w:val="000000"/>
+                        <w:sz w:val="36"/>
+                        <w:sz-cs w:val="36"/>
+                        <w:shd w:val="clear" w:color="auto" w:fill="FFFFFF"/>
+                    </w:rPr>
+                    <w:t>住房和城乡建设领域施工现场专业人员</w:t>
+                </w:r>
+            </w:p>
+            <w:p>
+                <w:pPr>
+                    <w:spacing w:line="440" w:line-rule="exact"/>
+                    <w:jc w:val="center"/>
+                    <w:rPr>
+                        <w:rFonts w:ascii="方正小标宋简体" w:h-ansi="微软雅黑" w:fareast="方正小标宋简体" w:hint="default"/>
+                        <w:color w:val="000000"/>
+                        <w:sz w:val="36"/>
+                        <w:sz-cs w:val="36"/>
+                        <w:shd w:val="clear" w:color="auto" w:fill="FFFFFF"/>
+                    </w:rPr>
+                </w:pPr>
+                <w:r>
+                    <w:rPr>
+                        <w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:hint="fareast"/>
+                        <w:b/>
+                        <w:color w:val="000000"/>
+                        <w:sz w:val="36"/>
+                        <w:sz-cs w:val="36"/>
+                        <w:shd w:val="clear" w:color="auto" w:fill="FFFFFF"/>
+                    </w:rPr>
+                    <w:t>职业培训报名承诺书</w:t>
+                </w:r>
+            </w:p>
+            <w:tbl>
+                <w:tblPr>
+                    <w:tblStyle w:val="a12"/>
+                    <w:tblW w:w="8324" w:type="dxa"/>
+                    <w:jc w:val="center"/>
+                    <w:tblInd w:w="0" w:type="dxa"/>
+                    <w:tblBorders>
+                        <w:top w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+                        <w:left w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+                        <w:bottom w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+                        <w:right w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+                        <w:insideH w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+                        <w:insideV w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+                    </w:tblBorders>
+                    <w:tblLayout w:type="Fixed"/>
+                    <w:tblCellMar>
+                        <w:top w:w="0" w:type="dxa"/>
+                        <w:left w:w="108" w:type="dxa"/>
+                        <w:bottom w:w="0" w:type="dxa"/>
+                        <w:right w:w="108" w:type="dxa"/>
+                    </w:tblCellMar>
+                </w:tblPr>
+                <w:tblGrid>
+                    <w:gridCol w:w="1377"/>
+                    <w:gridCol w:w="1289"/>
+                    <w:gridCol w:w="13"/>
+                    <w:gridCol w:w="708"/>
+                    <w:gridCol w:w="701"/>
+                    <w:gridCol w:w="15"/>
+                    <w:gridCol w:w="1307"/>
+                    <w:gridCol w:w="1245"/>
+                    <w:gridCol w:w="33"/>
+                    <w:gridCol w:w="1636"/>
+                </w:tblGrid>
+                <w:tr>
+                    <w:tblPrEx>
+                        <w:tblBorders>
+                            <w:top w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+                            <w:left w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+                            <w:bottom w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+                            <w:right w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+                            <w:insideH w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+                            <w:insideV w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+                        </w:tblBorders>
+                        <w:tblCellMar>
+                            <w:top w:w="0" w:type="dxa"/>
+                            <w:left w:w="108" w:type="dxa"/>
+                            <w:bottom w:w="0" w:type="dxa"/>
+                            <w:right w:w="108" w:type="dxa"/>
+                        </w:tblCellMar>
+                    </w:tblPrEx>
+                    <w:trPr>
+                        <w:trHeight w:val="510" w:h-rule="atLeast"/>
+                        <w:jc w:val="center"/>
+                    </w:trPr>
+                    <w:tc>
+                        <w:tcPr>
+                            <w:tcW w:w="1377" w:type="dxa"/>
+                            <w:shd w:val="clear" w:color="auto" w:fill="auto"/>
+                            <w:vAlign w:val="center"/>
+                        </w:tcPr>
+                        <w:p>
+                            <w:pPr>
+                                <w:spacing w:after="0" w:line="240" w:line-rule="auto"/>
+                                <w:jc w:val="center"/>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="黑体" w:h-ansi="黑体" w:fareast="黑体" w:hint="default"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                            </w:pPr>
+                            <w:r>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="黑体" w:h-ansi="黑体" w:fareast="黑体" w:hint="fareast"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                                <w:t>姓 名</w:t>
+                            </w:r>
+                        </w:p>
+                    </w:tc>
+                    <w:tc>
+                        <w:tcPr>
+                            <w:tcW w:w="1302" w:type="dxa"/>
+                            <w:gridSpan w:val="2"/>
+                            <w:shd w:val="clear" w:color="auto" w:fill="auto"/>
+                            <w:vAlign w:val="center"/>
+                        </w:tcPr>
+                        <w:p>
+                            <w:pPr>
+                                <w:spacing w:after="0" w:line="240" w:line-rule="auto"/>
+                                <w:jc w:val="both"/>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="default"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                    <w:lang w:val="EN-US" w:fareast="ZH-CN"/>
+                                </w:rPr>
+                            </w:pPr>
+                            <w:r>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="fareast"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                    <w:lang w:val="EN-US" w:fareast="ZH-CN"/>
+                                </w:rPr>
+                                <w:t>${name}</w:t>
+                            </w:r>
+                        </w:p>
+                    </w:tc>
+                    <w:tc>
+                        <w:tcPr>
+                            <w:tcW w:w="708" w:type="dxa"/>
+                            <w:shd w:val="clear" w:color="auto" w:fill="auto"/>
+                            <w:vAlign w:val="center"/>
+                        </w:tcPr>
+                        <w:p>
+                            <w:pPr>
+                                <w:spacing w:after="0" w:line="240" w:line-rule="auto"/>
+                                <w:jc w:val="center"/>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="黑体" w:h-ansi="黑体" w:fareast="黑体" w:hint="default"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                            </w:pPr>
+                            <w:r>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="黑体" w:h-ansi="黑体" w:fareast="黑体" w:hint="fareast"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                                <w:t>性别</w:t>
+                            </w:r>
+                        </w:p>
+                    </w:tc>
+                    <w:tc>
+                        <w:tcPr>
+                            <w:tcW w:w="716" w:type="dxa"/>
+                            <w:gridSpan w:val="2"/>
+                            <w:shd w:val="clear" w:color="auto" w:fill="auto"/>
+                            <w:vAlign w:val="center"/>
+                        </w:tcPr>
+                        <w:p>
+                            <w:pPr>
+                                <w:spacing w:after="0" w:line="240" w:line-rule="auto"/>
+                                <w:jc w:val="center"/>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="fareast"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                    <w:lang w:val="EN-US" w:fareast="ZH-CN"/>
+                                </w:rPr>
+                            </w:pPr>
+                            <w:r>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="fareast"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                    <w:lang w:val="EN-US" w:fareast="ZH-CN"/>
+                                </w:rPr>
+                                <w:t>${s}</w:t>
+                            </w:r>
+                        </w:p>
+                    </w:tc>
+                    <w:tc>
+                        <w:tcPr>
+                            <w:tcW w:w="1307" w:type="dxa"/>
+                            <w:shd w:val="clear" w:color="auto" w:fill="auto"/>
+                            <w:vAlign w:val="center"/>
+                        </w:tcPr>
+                        <w:p>
+                            <w:pPr>
+                                <w:spacing w:after="0" w:line="240" w:line-rule="auto"/>
+                                <w:jc w:val="center"/>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="黑体" w:h-ansi="黑体" w:fareast="黑体" w:hint="default"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                            </w:pPr>
+                            <w:r>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="黑体" w:h-ansi="黑体" w:fareast="黑体" w:hint="fareast"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                                <w:t>培训岗位</w:t>
+                            </w:r>
+                        </w:p>
+                    </w:tc>
+                    <w:tc>
+                        <w:tcPr>
+                            <w:tcW w:w="2914" w:type="dxa"/>
+                            <w:gridSpan w:val="3"/>
+                            <w:shd w:val="clear" w:color="auto" w:fill="auto"/>
+                            <w:vAlign w:val="center"/>
+                        </w:tcPr>
+                        <w:p>
+                            <w:pPr>
+                                <w:spacing w:after="0" w:line="240" w:line-rule="auto"/>
+                                <w:jc w:val="center"/>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="fareast"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                    <w:lang w:val="EN-US" w:fareast="ZH-CN"/>
+                                </w:rPr>
+                            </w:pPr>
+                            <w:r>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="fareast"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                    <w:lang w:val="EN-US" w:fareast="ZH-CN"/>
+                                </w:rPr>
+                                <w:t>${post}</w:t>
+                            </w:r>
+                        </w:p>
+                    </w:tc>
+                </w:tr>
+                <w:tr>
+                    <w:tblPrEx>
+                        <w:tblBorders>
+                            <w:top w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+                            <w:left w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+                            <w:bottom w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+                            <w:right w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+                            <w:insideH w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+                            <w:insideV w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+                        </w:tblBorders>
+                        <w:tblCellMar>
+                            <w:top w:w="0" w:type="dxa"/>
+                            <w:left w:w="108" w:type="dxa"/>
+                            <w:bottom w:w="0" w:type="dxa"/>
+                            <w:right w:w="108" w:type="dxa"/>
+                        </w:tblCellMar>
+                    </w:tblPrEx>
+                    <w:trPr>
+                        <w:trHeight w:val="510" w:h-rule="atLeast"/>
+                        <w:jc w:val="center"/>
+                    </w:trPr>
+                    <w:tc>
+                        <w:tcPr>
+                            <w:tcW w:w="1377" w:type="dxa"/>
+                            <w:shd w:val="clear" w:color="auto" w:fill="auto"/>
+                            <w:vAlign w:val="center"/>
+                        </w:tcPr>
+                        <w:p>
+                            <w:pPr>
+                                <w:spacing w:after="0" w:line="240" w:line-rule="auto"/>
+                                <w:jc w:val="center"/>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="黑体" w:h-ansi="黑体" w:fareast="黑体" w:hint="default"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                            </w:pPr>
+                            <w:r>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="黑体" w:h-ansi="黑体" w:fareast="黑体" w:hint="fareast"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                                <w:t>身份证号</w:t>
+                            </w:r>
+                        </w:p>
+                    </w:tc>
+                    <w:tc>
+                        <w:tcPr>
+                            <w:tcW w:w="2726" w:type="dxa"/>
+                            <w:gridSpan w:val="5"/>
+                            <w:shd w:val="clear" w:color="auto" w:fill="auto"/>
+                            <w:vAlign w:val="center"/>
+                        </w:tcPr>
+                        <w:p>
+                            <w:pPr>
+                                <w:spacing w:after="0" w:line="240" w:line-rule="auto"/>
+                                <w:jc w:val="center"/>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="黑体" w:h-ansi="黑体" w:fareast="黑体" w:hint="default"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                    <w:lang w:val="EN-US" w:fareast="ZH-CN"/>
+                                </w:rPr>
+                            </w:pPr>
+                            <w:r>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="黑体" w:h-ansi="黑体" w:fareast="黑体" w:hint="fareast"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                    <w:lang w:val="EN-US" w:fareast="ZH-CN"/>
+                                </w:rPr>
+                                <w:t>${idcard}</w:t>
+                            </w:r>
+                        </w:p>
+                    </w:tc>
+                    <w:tc>
+                        <w:tcPr>
+                            <w:tcW w:w="1307" w:type="dxa"/>
+                            <w:shd w:val="clear" w:color="auto" w:fill="auto"/>
+                            <w:vAlign w:val="center"/>
+                        </w:tcPr>
+                        <w:p>
+                            <w:pPr>
+                                <w:spacing w:after="0" w:line="240" w:line-rule="auto"/>
+                                <w:jc w:val="center"/>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="default"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                            </w:pPr>
+                            <w:r>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="黑体" w:h-ansi="黑体" w:fareast="黑体" w:hint="fareast"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                                <w:t>手机号码</w:t>
+                            </w:r>
+                        </w:p>
+                    </w:tc>
+                    <w:tc>
+                        <w:tcPr>
+                            <w:tcW w:w="2914" w:type="dxa"/>
+                            <w:gridSpan w:val="3"/>
+                            <w:shd w:val="clear" w:color="auto" w:fill="auto"/>
+                            <w:vAlign w:val="center"/>
+                        </w:tcPr>
+                        <w:p>
+                            <w:pPr>
+                                <w:spacing w:after="0" w:line="240" w:line-rule="auto"/>
+                                <w:jc w:val="center"/>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="default"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                    <w:lang w:val="EN-US" w:fareast="ZH-CN"/>
+                                </w:rPr>
+                            </w:pPr>
+                            <w:r>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="fareast"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                    <w:lang w:val="EN-US" w:fareast="ZH-CN"/>
+                                </w:rPr>
+                                <w:t>${phone}</w:t>
+                            </w:r>
+                        </w:p>
+                    </w:tc>
+                </w:tr>
+                <w:tr>
+                    <w:tblPrEx>
+                        <w:tblBorders>
+                            <w:top w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+                            <w:left w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+                            <w:bottom w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+                            <w:right w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+                            <w:insideH w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+                            <w:insideV w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+                        </w:tblBorders>
+                        <w:tblCellMar>
+                            <w:top w:w="0" w:type="dxa"/>
+                            <w:left w:w="108" w:type="dxa"/>
+                            <w:bottom w:w="0" w:type="dxa"/>
+                            <w:right w:w="108" w:type="dxa"/>
+                        </w:tblCellMar>
+                    </w:tblPrEx>
+                    <w:trPr>
+                        <w:trHeight w:val="510" w:h-rule="atLeast"/>
+                        <w:jc w:val="center"/>
+                    </w:trPr>
+                    <w:tc>
+                        <w:tcPr>
+                            <w:tcW w:w="1377" w:type="dxa"/>
+                            <w:shd w:val="clear" w:color="auto" w:fill="auto"/>
+                            <w:vAlign w:val="center"/>
+                        </w:tcPr>
+                        <w:p>
+                            <w:pPr>
+                                <w:spacing w:after="0" w:line="240" w:line-rule="auto"/>
+                                <w:jc w:val="center"/>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="default"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                            </w:pPr>
+                            <w:r>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="黑体" w:h-ansi="黑体" w:fareast="黑体" w:hint="fareast"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                                <w:t>毕业院校</w:t>
+                            </w:r>
+                        </w:p>
+                    </w:tc>
+                    <w:tc>
+                        <w:tcPr>
+                            <w:tcW w:w="4033" w:type="dxa"/>
+                            <w:gridSpan w:val="6"/>
+                            <w:shd w:val="clear" w:color="auto" w:fill="auto"/>
+                            <w:vAlign w:val="center"/>
+                        </w:tcPr>
+                        <w:p>
+                            <w:pPr>
+                                <w:spacing w:after="0" w:line="240" w:line-rule="auto"/>
+                                <w:jc w:val="center"/>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="default"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                    <w:lang w:val="EN-US" w:fareast="ZH-CN"/>
+                                </w:rPr>
+                            </w:pPr>
+                            <w:r>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="fareast"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                    <w:lang w:val="EN-US" w:fareast="ZH-CN"/>
+                                </w:rPr>
+                                <w:t>${school}</w:t>
+                            </w:r>
+                        </w:p>
+                    </w:tc>
+                    <w:tc>
+                        <w:tcPr>
+                            <w:tcW w:w="1278" w:type="dxa"/>
+                            <w:gridSpan w:val="2"/>
+                            <w:shd w:val="clear" w:color="auto" w:fill="auto"/>
+                            <w:vAlign w:val="center"/>
+                        </w:tcPr>
+                        <w:p>
+                            <w:pPr>
+                                <w:spacing w:after="0" w:line="240" w:line-rule="auto"/>
+                                <w:jc w:val="center"/>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="default"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                            </w:pPr>
+                            <w:r>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="黑体" w:h-ansi="黑体" w:fareast="黑体" w:hint="fareast"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                                <w:t>学历</w:t>
+                            </w:r>
+                        </w:p>
+                    </w:tc>
+                    <w:tc>
+                        <w:tcPr>
+                            <w:tcW w:w="1636" w:type="dxa"/>
+                            <w:shd w:val="clear" w:color="auto" w:fill="auto"/>
+                            <w:vAlign w:val="center"/>
+                        </w:tcPr>
+                        <w:p>
+                            <w:pPr>
+                                <w:spacing w:after="0" w:line="240" w:line-rule="auto"/>
+                                <w:jc w:val="center"/>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="default"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                    <w:lang w:val="EN-US" w:fareast="ZH-CN"/>
+                                </w:rPr>
+                            </w:pPr>
+                            <w:r>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="fareast"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                    <w:lang w:val="EN-US" w:fareast="ZH-CN"/>
+                                </w:rPr>
+                                <w:t>${edu}</w:t>
+                            </w:r>
+                        </w:p>
+                    </w:tc>
+                </w:tr>
+                <w:tr>
+                    <w:tblPrEx>
+                        <w:tblBorders>
+                            <w:top w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+                            <w:left w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+                            <w:bottom w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+                            <w:right w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+                            <w:insideH w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+                            <w:insideV w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+                        </w:tblBorders>
+                        <w:tblCellMar>
+                            <w:top w:w="0" w:type="dxa"/>
+                            <w:left w:w="108" w:type="dxa"/>
+                            <w:bottom w:w="0" w:type="dxa"/>
+                            <w:right w:w="108" w:type="dxa"/>
+                        </w:tblCellMar>
+                    </w:tblPrEx>
+                    <w:trPr>
+                        <w:trHeight w:val="510" w:h-rule="atLeast"/>
+                        <w:jc w:val="center"/>
+                    </w:trPr>
+                    <w:tc>
+                        <w:tcPr>
+                            <w:tcW w:w="1377" w:type="dxa"/>
+                            <w:shd w:val="clear" w:color="auto" w:fill="auto"/>
+                            <w:vAlign w:val="center"/>
+                        </w:tcPr>
+                        <w:p>
+                            <w:pPr>
+                                <w:spacing w:after="0" w:line="240" w:line-rule="auto"/>
+                                <w:jc w:val="center"/>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="黑体" w:h-ansi="黑体" w:fareast="黑体" w:hint="default"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                            </w:pPr>
+                            <w:r>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="黑体" w:h-ansi="黑体" w:fareast="黑体" w:hint="fareast"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                                <w:t>所学专业</w:t>
+                            </w:r>
+                        </w:p>
+                    </w:tc>
+                    <w:tc>
+                        <w:tcPr>
+                            <w:tcW w:w="2726" w:type="dxa"/>
+                            <w:gridSpan w:val="5"/>
+                            <w:shd w:val="clear" w:color="auto" w:fill="auto"/>
+                            <w:vAlign w:val="center"/>
+                        </w:tcPr>
+                        <w:p>
+                            <w:pPr>
+                                <w:spacing w:after="0" w:line="240" w:line-rule="auto"/>
+                                <w:jc w:val="center"/>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="黑体" w:h-ansi="黑体" w:fareast="黑体" w:hint="default"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                    <w:lang w:val="EN-US" w:fareast="ZH-CN"/>
+                                </w:rPr>
+                            </w:pPr>
+                            <w:r>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="黑体" w:h-ansi="黑体" w:fareast="黑体" w:hint="fareast"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                    <w:lang w:val="EN-US" w:fareast="ZH-CN"/>
+                                </w:rPr>
+                                <w:t>${major}</w:t>
+                            </w:r>
+                        </w:p>
+                    </w:tc>
+                    <w:tc>
+                        <w:tcPr>
+                            <w:tcW w:w="1307" w:type="dxa"/>
+                            <w:shd w:val="clear" w:color="auto" w:fill="auto"/>
+                            <w:vAlign w:val="center"/>
+                        </w:tcPr>
+                        <w:p>
+                            <w:pPr>
+                                <w:spacing w:after="0" w:line="240" w:line-rule="auto"/>
+                                <w:jc w:val="center"/>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="黑体" w:h-ansi="黑体" w:fareast="黑体" w:hint="default"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                            </w:pPr>
+                            <w:r>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="黑体" w:h-ansi="黑体" w:fareast="黑体" w:hint="fareast"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                                <w:t>毕业时间</w:t>
+                            </w:r>
+                        </w:p>
+                    </w:tc>
+                    <w:tc>
+                        <w:tcPr>
+                            <w:tcW w:w="2914" w:type="dxa"/>
+                            <w:gridSpan w:val="3"/>
+                            <w:shd w:val="clear" w:color="auto" w:fill="auto"/>
+                            <w:vAlign w:val="center"/>
+                        </w:tcPr>
+                        <w:p>
+                            <w:pPr>
+                                <w:spacing w:after="0" w:line="240" w:line-rule="auto"/>
+                                <w:jc w:val="center"/>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="default"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                    <w:lang w:val="EN-US" w:fareast="ZH-CN"/>
+                                </w:rPr>
+                            </w:pPr>
+                            <w:r>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="fareast"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                    <w:lang w:val="EN-US" w:fareast="ZH-CN"/>
+                                </w:rPr>
+                                <w:t>${time}</w:t>
+                            </w:r>
+                        </w:p>
+                    </w:tc>
+                </w:tr>
+                <w:tr>
+                    <w:tblPrEx>
+                        <w:tblBorders>
+                            <w:top w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+                            <w:left w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+                            <w:bottom w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+                            <w:right w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+                            <w:insideH w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+                            <w:insideV w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+                        </w:tblBorders>
+                        <w:tblCellMar>
+                            <w:top w:w="0" w:type="dxa"/>
+                            <w:left w:w="108" w:type="dxa"/>
+                            <w:bottom w:w="0" w:type="dxa"/>
+                            <w:right w:w="108" w:type="dxa"/>
+                        </w:tblCellMar>
+                    </w:tblPrEx>
+                    <w:trPr>
+                        <w:trHeight w:val="510" w:h-rule="atLeast"/>
+                        <w:jc w:val="center"/>
+                    </w:trPr>
+                    <w:tc>
+                        <w:tcPr>
+                            <w:tcW w:w="1377" w:type="dxa"/>
+                            <w:shd w:val="clear" w:color="auto" w:fill="auto"/>
+                            <w:vAlign w:val="center"/>
+                        </w:tcPr>
+                        <w:p>
+                            <w:pPr>
+                                <w:spacing w:after="0" w:line="240" w:line-rule="auto"/>
+                                <w:jc w:val="center"/>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="黑体" w:h-ansi="黑体" w:fareast="黑体" w:hint="default"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                            </w:pPr>
+                            <w:r>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="黑体" w:h-ansi="黑体" w:fareast="黑体" w:hint="fareast"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                                <w:t>工作年限</w:t>
+                            </w:r>
+                        </w:p>
+                    </w:tc>
+                    <w:tc>
+                        <w:tcPr>
+                            <w:tcW w:w="1289" w:type="dxa"/>
+                            <w:shd w:val="clear" w:color="auto" w:fill="auto"/>
+                            <w:vAlign w:val="center"/>
+                        </w:tcPr>
+                        <w:p>
+                            <w:pPr>
+                                <w:spacing w:after="0" w:line="240" w:line-rule="auto"/>
+                                <w:jc w:val="center"/>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="default"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                    <w:lang w:val="EN-US" w:fareast="ZH-CN"/>
+                                </w:rPr>
+                            </w:pPr>
+                            <w:r>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="fareast"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                    <w:lang w:val="EN-US" w:fareast="ZH-CN"/>
+                                </w:rPr>
+                                <w:t>${year}</w:t>
+                            </w:r>
+                        </w:p>
+                    </w:tc>
+                    <w:tc>
+                        <w:tcPr>
+                            <w:tcW w:w="1422" w:type="dxa"/>
+                            <w:gridSpan w:val="3"/>
+                            <w:shd w:val="clear" w:color="auto" w:fill="auto"/>
+                            <w:vAlign w:val="center"/>
+                        </w:tcPr>
+                        <w:p>
+                            <w:pPr>
+                                <w:spacing w:after="0" w:line="240" w:line-rule="auto"/>
+                                <w:jc w:val="center"/>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="default"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                            </w:pPr>
+                            <w:r>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="黑体" w:h-ansi="黑体" w:fareast="黑体" w:hint="fareast"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                                <w:t>单位联系人</w:t>
+                            </w:r>
+                        </w:p>
+                    </w:tc>
+                    <w:tc>
+                        <w:tcPr>
+                            <w:tcW w:w="1322" w:type="dxa"/>
+                            <w:gridSpan w:val="2"/>
+                            <w:shd w:val="clear" w:color="auto" w:fill="auto"/>
+                            <w:vAlign w:val="center"/>
+                        </w:tcPr>
+                        <w:p>
+                            <w:pPr>
+                                <w:spacing w:after="0" w:line="240" w:line-rule="auto"/>
+                                <w:jc w:val="center"/>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="default"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                    <w:lang w:val="EN-US" w:fareast="ZH-CN"/>
+                                </w:rPr>
+                            </w:pPr>
+                            <w:r>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="fareast"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                    <w:lang w:val="EN-US" w:fareast="ZH-CN"/>
+                                </w:rPr>
+                                <w:t>${cname}</w:t>
+                            </w:r>
+                        </w:p>
+                    </w:tc>
+                    <w:tc>
+                        <w:tcPr>
+                            <w:tcW w:w="1245" w:type="dxa"/>
+                            <w:shd w:val="clear" w:color="auto" w:fill="auto"/>
+                            <w:vAlign w:val="center"/>
+                        </w:tcPr>
+                        <w:p>
+                            <w:pPr>
+                                <w:spacing w:after="0" w:line="240" w:line-rule="auto"/>
+                                <w:jc w:val="center"/>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="default"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                            </w:pPr>
+                            <w:r>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="黑体" w:h-ansi="黑体" w:fareast="黑体" w:hint="fareast"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                                <w:t>联系电话</w:t>
+                            </w:r>
+                        </w:p>
+                    </w:tc>
+                    <w:tc>
+                        <w:tcPr>
+                            <w:tcW w:w="1669" w:type="dxa"/>
+                            <w:gridSpan w:val="2"/>
+                            <w:shd w:val="clear" w:color="auto" w:fill="auto"/>
+                            <w:vAlign w:val="center"/>
+                        </w:tcPr>
+                        <w:p>
+                            <w:pPr>
+                                <w:spacing w:after="0" w:line="240" w:line-rule="auto"/>
+                                <w:jc w:val="center"/>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="default"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                    <w:lang w:val="EN-US" w:fareast="ZH-CN"/>
+                                </w:rPr>
+                            </w:pPr>
+                            <w:r>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="fareast"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                    <w:lang w:val="EN-US" w:fareast="ZH-CN"/>
+                                </w:rPr>
+                                <w:t>${cphone}</w:t>
+                            </w:r>
+                        </w:p>
+                    </w:tc>
+                </w:tr>
+                <w:tr>
+                    <w:tblPrEx>
+                        <w:tblBorders>
+                            <w:top w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+                            <w:left w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+                            <w:bottom w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+                            <w:right w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+                            <w:insideH w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+                            <w:insideV w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+                        </w:tblBorders>
+                        <w:tblCellMar>
+                            <w:top w:w="0" w:type="dxa"/>
+                            <w:left w:w="108" w:type="dxa"/>
+                            <w:bottom w:w="0" w:type="dxa"/>
+                            <w:right w:w="108" w:type="dxa"/>
+                        </w:tblCellMar>
+                    </w:tblPrEx>
+                    <w:trPr>
+                        <w:trHeight w:val="636" w:h-rule="atLeast"/>
+                        <w:jc w:val="center"/>
+                    </w:trPr>
+                    <w:tc>
+                        <w:tcPr>
+                            <w:tcW w:w="8324" w:type="dxa"/>
+                            <w:gridSpan w:val="10"/>
+                            <w:shd w:val="clear" w:color="auto" w:fill="auto"/>
+                            <w:vAlign w:val="center"/>
+                        </w:tcPr>
+                        <w:p>
+                            <w:pPr>
+                                <w:spacing w:after="0" w:line="240" w:line-rule="auto"/>
+                                <w:ind w:first-line="482" w:first-line-chars="200"/>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="default"/>
+                                    <w:b/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                            </w:pPr>
+                        </w:p>
+                        <w:p>
+                            <w:pPr>
+                                <w:spacing w:after="0" w:line="240" w:line-rule="auto"/>
+                                <w:ind w:first-line="482" w:first-line-chars="200"/>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="仿宋_GB2312" w:fareast="仿宋_GB2312" w:hint="default"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                            </w:pPr>
+                            <w:r>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="fareast"/>
+                                    <w:b/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                                <w:t>本人自愿做出如下承诺:</w:t>
+                            </w:r>
+                            <w:r>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="fareast"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                                <w:t>本人已仔细阅读《广东省住房和城乡建设厅关于推进住房和城乡建设领域施工现场专业人员职业培训工作的通知〉的通知》全部内容并知晓和理解,本人的学历证书、身份证、工作年限、相片等所有资料完全真实、符合报名条件、资格审查要求和相关规定,本人在报名、审查、培训、测试等有关的事项中会严格遵守相关规定和要求,如有虚假或与实际规定不符等情况造成的一切后果由本人承担。
+                                </w:t>
+                            </w:r>
+                        </w:p>
+                        <w:p>
+                            <w:pPr>
+                                <w:spacing w:after="0" w:line="240" w:line-rule="auto"/>
+                                <w:ind w:first-line="480" w:first-line-chars="200"/>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="default"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                            </w:pPr>
+                            <w:r>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="fareast"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                                <w:t>特此承诺!</w:t>
+                            </w:r>
+                        </w:p>
+                        <w:p>
+                            <w:pPr>
+                                <w:spacing w:after="0" w:line="240" w:line-rule="auto"/>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="黑体" w:h-ansi="黑体" w:fareast="黑体" w:hint="default"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                            </w:pPr>
+                        </w:p>
+                        <w:p>
+                            <w:pPr>
+                                <w:spacing w:after="0" w:line="240" w:line-rule="auto"/>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="黑体" w:h-ansi="黑体" w:fareast="黑体" w:hint="default"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                            </w:pPr>
+                            <w:r>
+                                <w:rPr>
+                                    <w:rFonts w:hint="fareast"/>
+                                    <w:lang w:val="EN-US" w:fareast="ZH-CN"/>
+                                </w:rPr>
+                                <w:t></w:t>
+                            </w:r>
+                        </w:p>
+                        <w:p>
+                            <w:pPr>
+                                <w:spacing w:after="0" w:line="240" w:line-rule="auto"/>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="黑体" w:h-ansi="黑体" w:fareast="黑体" w:hint="fareast"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                    <w:lang w:val="EN-US" w:fareast="ZH-CN"/>
+                                </w:rPr>
+                            </w:pPr>
+                            <w:r>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="黑体" w:h-ansi="黑体" w:fareast="黑体" w:hint="fareast"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                                <w:t>承诺人(签字):</w:t>
+                            </w:r>
+                            <aml:annotation aml:id="0" w:type="Word.Bookmark.Start" w:name="signimg"/>
+                            <aml:annotation aml:id="0" w:type="Word.Bookmark.End"/>
+                            <w:r>
+                                <w:t></w:t>
+                            </w:r>
+                            <w:r>
+                                <w:pict>
+                                    <w:binData w:name="wordml://1.png">
+                                        ${image}
+                                    </w:binData>
+                                    <v:shape id="_x0000_s1026" o:spt="75" alt="" type="#_x0000_t75"
+                                             style="height:21.75pt;width:109.5pt;" filled="f" o:preferrelative="t"
+                                             stroked="f" coordsize="21600,21600">
+                                        <v:path/>
+                                        <v:fill on="f" focussize="0,0"/>
+                                        <v:stroke on="f"/>
+                                        <v:imagedata src="wordml://1.png" o:title=""/>
+                                        <o:lock v:ext="edit" aspectratio="t"/>
+                                        <w10:wrap type="none"/>
+                                        <w10:anchorlock/>
+                                    </v:shape>
+                                </w:pict>
+                            </w:r>
+                            <w:r>
+                                <w:t></w:t>
+                            </w:r>
+                            <w:r>
+                                <w:rPr>
+                                    <w:rFonts w:hint="fareast"/>
+                                    <w:lang w:val="EN-US" w:fareast="ZH-CN"/>
+                                </w:rPr>
+                                <w:t>       ${y}</w:t>
+                            </w:r>
+                            <w:r>
+                                <w:t>年</w:t>
+                            </w:r>
+                            <w:r>
+                                <w:rPr>
+                                    <w:rFonts w:hint="fareast"/>
+                                    <w:lang w:val="EN-US" w:fareast="ZH-CN"/>
+                                </w:rPr>
+                                <w:t>${m}</w:t>
+                            </w:r>
+                            <w:r>
+                                <w:t>月</w:t>
+                            </w:r>
+                            <w:r>
+                                <w:rPr>
+                                    <w:rFonts w:hint="fareast"/>
+                                    <w:lang w:val="EN-US" w:fareast="ZH-CN"/>
+                                </w:rPr>
+                                <w:t>${d}</w:t>
+                            </w:r>
+                            <w:r>
+                                <w:t>日</w:t>
+                            </w:r>
+                        </w:p>
+                        <w:p>
+                            <w:pPr>
+                                <w:spacing w:after="0" w:line="240" w:line-rule="auto"/>
+                                <w:ind w:first-line="480" w:first-line-chars="200"/>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="黑体" w:h-ansi="黑体" w:fareast="黑体" w:hint="default"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                            </w:pPr>
+                        </w:p>
+                    </w:tc>
+                </w:tr>
+                <w:tr>
+                    <w:tblPrEx>
+                        <w:tblBorders>
+                            <w:top w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+                            <w:left w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+                            <w:bottom w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+                            <w:right w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+                            <w:insideH w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+                            <w:insideV w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
+                        </w:tblBorders>
+                        <w:tblCellMar>
+                            <w:top w:w="0" w:type="dxa"/>
+                            <w:left w:w="108" w:type="dxa"/>
+                            <w:bottom w:w="0" w:type="dxa"/>
+                            <w:right w:w="108" w:type="dxa"/>
+                        </w:tblCellMar>
+                    </w:tblPrEx>
+                    <w:trPr>
+                        <w:trHeight w:val="636" w:h-rule="atLeast"/>
+                        <w:jc w:val="center"/>
+                    </w:trPr>
+                    <w:tc>
+                        <w:tcPr>
+                            <w:tcW w:w="8324" w:type="dxa"/>
+                            <w:gridSpan w:val="10"/>
+                            <w:shd w:val="clear" w:color="auto" w:fill="auto"/>
+                            <w:vAlign w:val="center"/>
+                        </w:tcPr>
+                        <w:p>
+                            <w:pPr>
+                                <w:spacing w:after="0" w:line="240" w:line-rule="auto"/>
+                                <w:ind w:first-line="482" w:first-line-chars="200"/>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="default"/>
+                                    <w:b/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                            </w:pPr>
+                        </w:p>
+                        <w:p>
+                            <w:pPr>
+                                <w:spacing w:after="0" w:line="240" w:line-rule="auto"/>
+                                <w:ind w:first-line="482" w:first-line-chars="200"/>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="default"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                            </w:pPr>
+                            <w:r>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="fareast"/>
+                                    <w:b/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                                <w:t>本单位自愿做出如下承诺:</w:t>
+                            </w:r>
+                            <w:r>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="fareast"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                                <w:t>我单位已仔细阅读《广东省住房和城乡建设厅关于推进住房和城乡建设领域施工现场专业人员职业培训工作的通知〉的通知》全部内容并知晓和理解,以上人员为我单位工作人员,持有的学历证书、身份证、工作年限、相片等所有资料经我单位查验完全符合报名条件、资格审查要求和相关规定,以上人员在报名、审查、培训、测试等有关的事项中会严格遵守相关规定、通知和要求,如有虚假或与实际规定不符等情况,造成的一切后果由我单位承担。
+                                </w:t>
+                            </w:r>
+                        </w:p>
+                        <w:p>
+                            <w:pPr>
+                                <w:spacing w:after="0" w:line="240" w:line-rule="auto"/>
+                                <w:ind w:first-line="480" w:first-line-chars="200"/>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="default"/>
+                                    <w:b/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                            </w:pPr>
+                            <w:r>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="fareast"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                                <w:t>特此承诺!</w:t>
+                            </w:r>
+                        </w:p>
+                        <w:p>
+                            <w:pPr>
+                                <w:spacing w:after="0" w:line="240" w:line-rule="auto"/>
+                                <w:ind w:first-line="480" w:first-line-chars="200"/>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="黑体" w:h-ansi="黑体" w:fareast="黑体" w:hint="default"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                            </w:pPr>
+                        </w:p>
+                        <w:p>
+                            <w:pPr>
+                                <w:spacing w:after="0" w:line="240" w:line-rule="auto"/>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="黑体" w:h-ansi="黑体" w:fareast="黑体" w:hint="default"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                            </w:pPr>
+                        </w:p>
+                        <w:p>
+                            <w:pPr>
+                                <w:spacing w:after="0" w:line="240" w:line-rule="auto"/>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="黑体" w:h-ansi="黑体" w:fareast="黑体" w:hint="fareast"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                            </w:pPr>
+                        </w:p>
+                        <w:p>
+                            <w:pPr>
+                                <w:spacing w:after="0" w:line="240" w:line-rule="auto"/>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="黑体" w:h-ansi="黑体" w:fareast="黑体" w:hint="default"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                            </w:pPr>
+                        </w:p>
+                        <w:p>
+                            <w:pPr>
+                                <w:spacing w:after="0" w:line="240" w:line-rule="auto"/>
+                                <w:ind w:first-line="1680" w:first-line-chars="700"/>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="default"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                            </w:pPr>
+                            <w:r>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="黑体" w:h-ansi="黑体" w:fareast="黑体" w:hint="fareast"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                                <w:t></w:t>
+                            </w:r>
+                            <w:r>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="黑体" w:h-ansi="黑体" w:fareast="黑体" w:hint="default"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                                <w:t></w:t>
+                            </w:r>
+                            <w:r>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="fareast"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                                <w:t>          单位(盖章):</w:t>
+                            </w:r>
+                        </w:p>
+                        <w:p>
+                            <w:pPr>
+                                <w:spacing w:after="0" w:line="240" w:line-rule="auto"/>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="default"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                            </w:pPr>
+                        </w:p>
+                        <w:p>
+                            <w:pPr>
+                                <w:spacing w:after="0" w:line="240" w:line-rule="auto"/>
+                                <w:ind w:first-line="4920" w:first-line-chars="2050"/>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="default"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                            </w:pPr>
+                            <w:r>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="default"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                                <w:t>20</w:t>
+                            </w:r>
+                            <w:r>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="fareast"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                                <w:t>   年</w:t>
+                            </w:r>
+                            <w:r>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="default"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                                <w:t></w:t>
+                            </w:r>
+                            <w:r>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="fareast"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                                <w:t>   月</w:t>
+                            </w:r>
+                            <w:r>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="default"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                                <w:t></w:t>
+                            </w:r>
+                            <w:r>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="fareast"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                                <w:t>   日</w:t>
+                            </w:r>
+                        </w:p>
+                        <w:p>
+                            <w:pPr>
+                                <w:spacing w:after="0" w:line="240" w:line-rule="auto"/>
+                                <w:ind w:first-line="5280" w:first-line-chars="2200"/>
+                                <w:rPr>
+                                    <w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="default"/>
+                                    <w:color w:val="000000"/>
+                                    <w:sz w:val="24"/>
+                                    <w:sz-cs w:val="24"/>
+                                </w:rPr>
+                            </w:pPr>
+                        </w:p>
+                    </w:tc>
+                </w:tr>
+            </w:tbl>
+            <w:p/>
+            <w:sectPr>
+                <w:pgSz w:w="11906" w:h="16838"/>
+                <w:pgMar w:top="1440" w:right="1440" w:bottom="1440" w:left="1440" w:header="708" w:footer="708"
+                         w:gutter="0"/>
+                <w:cols w:space="708"/>
+                <w:docGrid w:line-pitch="360"/>
+            </w:sectPr>
+        </wx:sect>
+    </w:body></w:wordDocument>

+ 118 - 0
zhongzheng-admin-business/src/main/resources/templates/wordPhone.ftl

@@ -0,0 +1,118 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+	<meta charset="UTF-8"></meta>
+	<meta http-equiv="X-UA-Compatible" content="IE=edge"></meta>
+	<meta name="viewport" content="width=device-width, initial-scale=1.0"></meta>
+	<title>Document</title>
+	<style>
+		* {
+			padding: 0;
+			margin: 0;
+			box-sizing: border-box;
+		}
+
+		#boxs {
+			margin: 20px auto;
+			width: 700px;
+			height: 900px;
+			padding: 15px;
+		}
+
+		.tabsty {
+			margin-top: 10px;
+			width: 100%;
+			border-collapse: collapse;
+		}
+
+		tr {
+			width: 100%;
+		}
+
+		td {
+			padding: 8px;
+			text-align: center;
+		}
+
+		.strong {
+			width: 100px;
+			font-weight: bold;
+		}
+	</style>
+</head>
+
+<body>
+	<div id="boxs">
+		<h2 style="text-align:center;">住房和城乡建设领域施工现场专业人员<br />
+			职业培训报名承诺书</h2>
+		<table border="1" class="tabsty">
+			<tr>
+				<td class="strong">姓 名</td>
+				<td>${username}</td>
+				<td class="strong">性别</td>
+				<td>${s}</td>
+				<td class="strong">培训岗位</td>
+				<td colspan="2">${post}</td>
+			</tr>
+			<tr>
+				<td class="strong">身份证号</td>
+				<td colspan="3">${idcard}</td>
+				<td class="strong">手机号码</td>
+				<td colspan="2">${phone}</td>
+			</tr>
+			<tr>
+				<td class="strong">毕业院校</td>
+				<td colspan="4">${school}</td>
+				<td class="strong">学历</td>
+				<td>${edu}</td>
+			</tr>
+			<tr>
+				<td class="strong">所学专业</td>
+				<td colspan="3">${major}</td>
+				<td class="strong">毕业时间</td>
+				<td colspan="2">${time}</td>
+			</tr>
+			<tr>
+				<td class="strong">工作年限</td>
+				<td>${year}</td>
+				<td class="strong">单位联系人</td>
+				<td>${cname}</td>
+				<td class="strong">联系电话</td>
+				<td colspan="2">${cphone}</td>
+			</tr>
+			<tr>
+				<td colspan="7" style="text-align: left;">
+					<div>
+						<span style="font-weight: bold;padding-left: 2em;">本人自愿做出如下承诺:</span>
+						本人已仔细阅读《广东省住房和城乡建设厅关于推进住房和城乡建设领域施工现场专业人员职业培训工作的通知〉的通知》全部内容并知晓和理解,本人的学历证书、身份证、工作年限、相片等所有资料完全真实、符合报名条件、资格审查要求和相关规定,本人在报名、审查、培训、测试等有关的事项中会严格遵守相关规定和要求,如有虚假或与实际规定不符等情况造成的一切后果由本人承担。
+						<br /><span style="padding: 2em;">特此承诺!</span>
+					</div>
+					<div style="margin:50px 0px 20px">
+						<strong style="display: inline-block;width: 59%;">承诺人(签名):<img style="width: 200px;height:100px;" src="${image}"></img> </strong>
+						<span style="display: inline-block;width: 39%;">${y} 年<span
+								style="display: inline-block;width: 40px;"></span>${m} 月<span
+								style="display: inline-block;width: 40px;"></span>${d} 日</span>
+					</div>
+				</td>
+			</tr>
+			<tr>
+				<td colspan="7" style="text-align: left;">
+					<div>
+						<span style="font-weight: bold;padding-left: 2em;">本单位自愿做出如下承诺:</span>
+						我单位已仔细阅读《广东省住房和城乡建设厅关于推进住房和城乡建设领域施工现场专业人员职业培训工作的通知〉的通知》全部内容并知晓和理解,以上人员为我单位工作人员,持有的学历证书、身份证、工作年限、相片等所有资料经我单位查验完全符合报名条件、资格审查要求和相关规定,以上人员在报名、审查、培训、测试等有关的事项中会严格遵守相关规定、通知和要求,如有虚假或与实际规定不符等情况,造成的一切后果由我单位承担。
+						<br /><span style="padding: 2em;">特此承诺!</span>
+					</div>
+					<div style="margin:50px 0px 20px">
+						<p style="text-align: center;">单位(盖章):</p>
+						<p style="text-align: right;padding-right: 50px;margin-top: 30px;"><span style="display: inline-block;width: 39%;">年<span
+							style="display: inline-block;width: 40px;"></span>月<span
+							style="display: inline-block;width: 40px;"></span>日</span></p>
+					</div>
+				</td>
+			</tr>
+		</table>
+	</div>
+</body>
+
+</html>