Procházet zdrojové kódy

培训班管理初始化

lizeyu před 8 měsíci
rodič
revize
831fb30845
29 změnil soubory, kde provedl 6154 přidání a 1 odebrání
  1. 65 0
      lib/数据更新脚本.txt
  2. 166 0
      src/main/java/com/ghsc/partybuild/controller/train/PxTrainingClassController.java
  3. 16 0
      src/main/java/com/ghsc/partybuild/mapper/PxTrainingClassCQuery.java
  4. 30 0
      src/main/java/com/ghsc/partybuild/mapper/PxTrainingClassCourseMapper.java
  5. 30 0
      src/main/java/com/ghsc/partybuild/mapper/PxTrainingClassMapper.java
  6. 30 0
      src/main/java/com/ghsc/partybuild/mapper/PxTrainingClassUserMapper.java
  7. 145 0
      src/main/java/com/ghsc/partybuild/model/PxTrainingClass.java
  8. 95 0
      src/main/java/com/ghsc/partybuild/model/PxTrainingClassCourse.java
  9. 801 0
      src/main/java/com/ghsc/partybuild/model/PxTrainingClassCourseExample.java
  10. 1141 0
      src/main/java/com/ghsc/partybuild/model/PxTrainingClassExample.java
  11. 115 0
      src/main/java/com/ghsc/partybuild/model/PxTrainingClassUser.java
  12. 941 0
      src/main/java/com/ghsc/partybuild/model/PxTrainingClassUserExample.java
  13. 19 0
      src/main/java/com/ghsc/partybuild/service/PxTrainingClassService.java
  14. 130 0
      src/main/java/com/ghsc/partybuild/service/impl/train/PxTrainingClassServiceImpl.java
  15. 12 0
      src/main/java/com/ghsc/partybuild/vo/trian/PxTrainingClassUserVo.java
  16. 16 0
      src/main/java/com/ghsc/partybuild/vo/trian/PxTrainingClassVo.java
  17. 3 1
      src/main/resources/generatorConfig.xml
  18. 76 0
      src/main/resources/mapping/PxTrainingClassCQuery.xml
  19. 276 0
      src/main/resources/mapping/PxTrainingClassCourseMapper.xml
  20. 353 0
      src/main/resources/mapping/PxTrainingClassMapper.xml
  21. 306 0
      src/main/resources/mapping/PxTrainingClassUserMapper.xml
  22. 117 0
      src/main/resources/static/app/main/train/trainingClass/course.html
  23. 268 0
      src/main/resources/static/app/main/train/trainingClass/course.js
  24. 87 0
      src/main/resources/static/app/main/train/trainingClass/courseEdit.html
  25. 138 0
      src/main/resources/static/app/main/train/trainingClass/courseEdit.js
  26. 200 0
      src/main/resources/static/app/main/train/trainingClass/edit.html
  27. 257 0
      src/main/resources/static/app/main/train/trainingClass/edit.js
  28. 158 0
      src/main/resources/static/app/main/train/trainingClass/list.html
  29. 163 0
      src/main/resources/static/app/main/train/trainingClass/list.js

+ 65 - 0
lib/数据更新脚本.txt

@@ -286,3 +286,68 @@ INSERT INTO `cf_dictionary` (`DICTIONARYID`, `DICKEY`, `DICVALUE`, `DICTYPEKEY`,
 INSERT INTO `cf_dictionary` (`DICTIONARYID`, `DICKEY`, `DICVALUE`, `DICTYPEKEY`, `DICTYPE`, `APPLICATIONID`, `DICNOTE`, `OPERATETIME`, `OPERATESTATE`, `SYNCSTATE`) VALUES ('058a7fc0-0000-4402-9999-bdb74a278a72', 4, '网络培训', 'pxxsType', 2, 'f0c4fa7f9f3c4fb6bd56aac608b7ad3f', '培训形式', '2019-09-26 15:13:15', 'M', 'N');
 INSERT INTO `cf_dictionary` (`DICTIONARYID`, `DICKEY`, `DICVALUE`, `DICTYPEKEY`, `DICTYPE`, `APPLICATIONID`, `DICNOTE`, `OPERATETIME`, `OPERATESTATE`, `SYNCSTATE`) VALUES ('058a7fc0-0000-4502-9999-bdb74a278a72', 5, '实践研学', 'pxxsType', 2, 'f0c4fa7f9f3c4fb6bd56aac608b7ad3f', '培训形式', '2019-09-26 15:13:15', 'M', 'N');
 INSERT INTO `cf_dictionary` (`DICTIONARYID`, `DICKEY`, `DICVALUE`, `DICTYPEKEY`, `DICTYPE`, `APPLICATIONID`, `DICNOTE`, `OPERATETIME`, `OPERATESTATE`, `SYNCSTATE`) VALUES ('058a7fc0-0000-4602-9999-bdb74a278a72', 6, '其他', 'pxxsType', 2, 'f0c4fa7f9f3c4fb6bd56aac608b7ad3f', '培训形式', '2019-09-26 15:13:15', 'M', 'N');
+
+
+
+-- 2024.7.26
+-- 培训班管理
+DROP TABLE IF EXISTS `px_training_class`;
+CREATE TABLE `px_training_class`  (
+  `id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'id',
+  `dzzdm` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '录入组织',
+  `training_class_name` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '培训班名称',
+  `begin_date` datetime NULL DEFAULT NULL COMMENT '培训开始时间',
+  `end_date` datetime NULL DEFAULT NULL COMMENT '培训结束时间',
+  `address` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '培训详细地址',
+  `department` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '主办部门',
+  `contact_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '联系人',
+  `phone` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '联系电话',
+  `content` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '培训内容',
+  `create_time` datetime NULL  DEFAULT NULL COMMENT '创建时间',
+  `create_userid` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '创建人',
+  `update_time` datetime NULL DEFAULT NULL COMMENT '修改时间',
+  `update_userid` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '修改人',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC COMMENT'培训班管理';
+SET FOREIGN_KEY_CHECKS = 1;
+
+-- 培训班报名人员
+DROP TABLE IF EXISTS `px_training_class_user`;
+CREATE TABLE `px_training_class_user`  (
+  `id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'id',
+  `training_class_id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '培训班id',
+  `dzzdm` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '所属组织',
+  `user_no` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '人员编码',
+  `user_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '姓名',
+  `gender_id` int NULL DEFAULT NULL COMMENT '性别',
+  `phone` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '联系电话',
+  `create_time` datetime NULL  DEFAULT NULL COMMENT '创建时间',
+  `create_userid` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '创建人',
+  `update_time` datetime NULL DEFAULT NULL COMMENT '修改时间',
+  `update_userid` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '修改人',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC COMMENT'培训班报名人员';
+SET FOREIGN_KEY_CHECKS = 1;
+
+-- 培训班课程
+DROP TABLE IF EXISTS `px_training_class_course`;
+CREATE TABLE `px_training_class_course`  (
+  `id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'id',
+  `training_class_id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '培训班id',
+  `course_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '课程名称',
+  `teacher` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '授课老师',
+  `training_time` datetime NULL  DEFAULT NULL COMMENT '培训时间',
+  `create_time` datetime NULL  DEFAULT NULL COMMENT '创建时间',
+  `create_userid` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '创建人',
+  `update_time` datetime NULL DEFAULT NULL COMMENT '修改时间',
+  `update_userid` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '修改人',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC COMMENT'培训班课程';
+SET FOREIGN_KEY_CHECKS = 1;
+
+INSERT INTO `cf_menu` (`MENUID`, `APPLICATIONID`, `PARENTMENUID`, `MNUSYSTEM`, `MENUORDER`, `MENUNO`, `MENUNAME`, `MENUPROGRAM`, `MENUPIC`, `MENUDESC`, `ISVISIBLE`, `ISLEAF`, `ISBLANK`) VALUES ('1b7e571e-0001-4475-9e24-98636ba0bd76', 'f0c4fa7f9f3c4fb6bd56aac608b7ad3f', '70958848-d81c-4679-9d89-11b5a5998060', NULL, 1, 'home.pxTrainingClassList', '培训班管理', '', '', '', 1, 1, NULL);
+INSERT INTO `cf_menu` (`MENUID`, `APPLICATIONID`, `PARENTMENUID`, `MNUSYSTEM`, `MENUORDER`, `MENUNO`, `MENUNAME`, `MENUPROGRAM`, `MENUPIC`, `MENUDESC`, `ISVISIBLE`, `ISLEAF`, `ISBLANK`) VALUES ('8638ba30-0002-4487-8c78-2e953857e6d4', 'f0c4fa7f9f3c4fb6bd56aac608b7ad3f', '1b7e571e-0001-4475-9e24-98636ba0bd76', NULL, 1, 'home.pxTrainingClassEdit', '修改培训班信息', NULL, NULL, NULL, 0, 0, NULL);
+INSERT INTO `cf_menu` (`MENUID`, `APPLICATIONID`, `PARENTMENUID`, `MNUSYSTEM`, `MENUORDER`, `MENUNO`, `MENUNAME`, `MENUPROGRAM`, `MENUPIC`, `MENUDESC`, `ISVISIBLE`, `ISLEAF`, `ISBLANK`) VALUES ('cd7e7a09-0003-4bbc-8246-36f7b0f62bcd', 'f0c4fa7f9f3c4fb6bd56aac608b7ad3f', '1b7e571e-0001-4475-9e24-98636ba0bd76', NULL, 2, 'home.pxTrainingClassAdd', '新增培训班信息', NULL, NULL, NULL, 0, 0, NULL);
+INSERT INTO `cf_menu` (`MENUID`, `APPLICATIONID`, `PARENTMENUID`, `MNUSYSTEM`, `MENUORDER`, `MENUNO`, `MENUNAME`, `MENUPROGRAM`, `MENUPIC`, `MENUDESC`, `ISVISIBLE`, `ISLEAF`, `ISBLANK`) VALUES ('f6ec1d5a-0004-47c0-bb7e-ce03f7eaf575', 'f0c4fa7f9f3c4fb6bd56aac608b7ad3f', '1b7e571e-0001-4475-9e24-98636ba0bd76', NULL, 3, 'home.pxTrainingClassShow', '查看培训班信息', NULL, NULL, NULL, 0, 0, NULL);
+INSERT INTO `cf_menu` (`MENUID`, `APPLICATIONID`, `PARENTMENUID`, `MNUSYSTEM`, `MENUORDER`, `MENUNO`, `MENUNAME`, `MENUPROGRAM`, `MENUPIC`, `MENUDESC`, `ISVISIBLE`, `ISLEAF`, `ISBLANK`) VALUES ('f6ec1d5a-0004-47c0-bb7e-ce03f7eaf575', 'f0c4fa7f9f3c4fb6bd56aac608b7ad3f', '1b7e571e-0001-4475-9e24-98636ba0bd76', NULL, 3, 'home.pxTrainingClassCourseList', '授课课程', NULL, NULL, NULL, 0, 0, NULL);
+

+ 166 - 0
src/main/java/com/ghsc/partybuild/controller/train/PxTrainingClassController.java

@@ -0,0 +1,166 @@
+package com.ghsc.partybuild.controller.train;
+
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.ghsc.partybuild.controller.jsonmodel.RequsetData;
+import com.ghsc.partybuild.service.PxTrainingClassService;
+import com.ghsc.partybuild.service.UserService;
+import com.ghsc.partybuild.util.DateUtils;
+import com.ghsc.partybuild.util.ExcelHelper;
+import com.ghsc.partybuild.util.JsonMapper;
+import com.ghsc.partybuild.util.StringUtils;
+import com.ghsc.partybuild.vo.trian.PxTrainingClassVo;
+import com.github.pagehelper.PageInfo;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.*;
+
+@Slf4j
+@RestController
+@RequestMapping(value = "/api/train/trainingclass")
+public class PxTrainingClassController {
+    @Autowired
+    private PxTrainingClassService pxTrainingClassService;
+    @Autowired
+    private UserService userService;
+    @Autowired
+    private StringUtils stringUtils;
+    @Autowired
+    private DateUtils dateUtils;
+    private static final String dateTimeFormat = "yyyy-MM-dd";
+
+    @ResponseBody
+    @GetMapping("/getList")
+    public RequsetData<PageInfo<PxTrainingClassVo>> getList(int pageindex, int pagesize, @RequestParam(required = false) String dzzdm, @RequestParam(required = false) String trainingClassName, @RequestParam(required = false) @DateTimeFormat(pattern = dateTimeFormat) Date startDate, @RequestParam(required = false) @DateTimeFormat(pattern = dateTimeFormat) Date endDate) {
+        RequsetData<PageInfo<PxTrainingClassVo>> result = new RequsetData<>();
+        result.setItem(pxTrainingClassService.getList(pageindex, pagesize, null, dzzdm, trainingClassName, startDate,endDate));
+        return result;
+    }
+
+    @ResponseBody
+    @GetMapping("/getUserAddressList")
+    public RequsetData<List<String>> getUserAddressList() {
+        RequsetData<List<String>> res = new RequsetData<>();
+        res.setItem(pxTrainingClassService.getUserAddressList(userService.getLoginUser().getUserid()));
+        return res;
+    }
+
+    @ResponseBody
+    @GetMapping("/get")
+    public RequsetData<PxTrainingClassVo> get(@RequestParam(required = false) String id) {
+        RequsetData<PxTrainingClassVo> res = new RequsetData<>();
+
+        PxTrainingClassVo model = pxTrainingClassService.getById(id);
+        if (model == null) {
+            UUID uuid = UUID.randomUUID();
+            model = new PxTrainingClassVo();
+            model.setId(uuid.toString());
+            model.setUserList(new ArrayList<>());
+        }
+
+        res.setItem(model);
+        return res;
+    }
+
+    @ResponseBody
+    @PostMapping("/save")
+    public RequsetData<String> save(@RequestBody PxTrainingClassVo data) {
+        RequsetData<String> result = new RequsetData<String>();
+        int count = 0;
+        String message = "";
+
+        try {
+            count = pxTrainingClassService.save(data, userService.getLoginUser().getUserid());
+        } catch (Exception e) {
+            e.printStackTrace();
+            message = e.toString();
+        }
+
+        if (count > 0) {
+            result.setSuccess(true);
+            result.setMsg("保存成功!");
+        } else {
+            result.setSuccess(false);
+            result.setMsg("保存失败!" + message);
+        }
+        return result;
+    }
+
+    @ResponseBody
+    @PostMapping("/delete")
+    public RequsetData<Integer> delete(@RequestBody Map<String, Object> reqMap) {
+        RequsetData<Integer> result = new RequsetData<>();
+        int count = 0;
+        String message = "";
+
+        try {
+            List<String> idList = JsonMapper.jsonToObject(reqMap.get("ids").toString(), new TypeReference<List<String>>() {
+            });
+            count = pxTrainingClassService.delete(idList);
+        } catch (Exception e) {
+            e.printStackTrace();
+            message = e.toString();
+        }
+
+        if (count > 0) {
+            result.setItem(count);
+            result.setSuccess(true);
+            result.setMsg("删除成功!");
+        } else {
+            result.setSuccess(false);
+            result.setMsg("删除失败!" + message);
+        }
+        return result;
+    }
+
+    @RequestMapping(value = "/export", method = RequestMethod.GET)
+    public void exportLeaderTeam(HttpServletResponse response, @RequestParam(required = false) String dzzdm, @RequestParam(required = false) String trainingClassName, @RequestParam(required = false) @DateTimeFormat(pattern = dateTimeFormat) Date startDate, @RequestParam(required = false) @DateTimeFormat(pattern = dateTimeFormat) Date endDate) throws Exception {
+        /**查询数据**/
+        List<PxTrainingClassVo> dataList = pxTrainingClassService.getList(1, 10000, null, dzzdm, trainingClassName, startDate,endDate).getList();
+
+        ExcelHelper excelHelper = new ExcelHelper();
+        ExcelHelper.ExcelData data = excelHelper.new ExcelData();
+
+        //列名
+        data.setName("培训班");
+        List<String> titles = new ArrayList();
+        titles.add("序号");
+        titles.add("主办组织");
+        titles.add("培训开始时间");
+        titles.add("培训结束时间");
+        titles.add("培训天数");
+        titles.add("培训地址");
+        titles.add("培训课程数");
+        titles.add("培训人数");
+        titles.add("创建人");
+        titles.add("创建时间");
+
+        data.setTitles(titles);
+
+        //数据
+        List<List<Object>> rows = new ArrayList();
+        int i = 0;
+        for (PxTrainingClassVo item : dataList) {
+            List<Object> row = new ArrayList();
+            row.add(++i);
+            row.add(item.getDzzmc());
+            row.add(item.getTrainingClassName());
+            row.add(dateUtils.dateToStrFormat(item.getBeginDate(), "yyyy-MM-dd"));
+            row.add(dateUtils.dateToStrFormat(item.getEndDate(), "yyyy-MM-dd"));
+            row.add(item.getDateDiffDay());
+            row.add(item.getAddress());
+            row.add(item.getCourseCount());
+            row.add(item.getUserCount());
+            row.add(item.getCreateUserName());
+            row.add(dateUtils.dateToStrFormat(item.getCreateTime(), "yyyy-MM-dd"));
+            rows.add(row);
+        }
+        data.setRows(rows);
+
+        excelHelper.exportExcel(response, "培训班.xlsx", data);
+    }
+
+}

+ 16 - 0
src/main/java/com/ghsc/partybuild/mapper/PxTrainingClassCQuery.java

@@ -0,0 +1,16 @@
+package com.ghsc.partybuild.mapper;
+
+import com.ghsc.partybuild.vo.trian.PxTrainingClassUserVo;
+import com.ghsc.partybuild.vo.trian.PxTrainingClassVo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
+import java.util.List;
+
+public interface PxTrainingClassCQuery {
+    List<PxTrainingClassVo> selectPxTrainingClassList(@Param("id") String id, @Param("dzzdm") String dzzdm, @Param("trainingClassName") String trainingClassName, @Param("startDate") Date startDate, @Param("endDate") Date endDate);
+
+    List<String> selectAddressList(@Param("userId") String userId);
+
+    List<PxTrainingClassUserVo> selectTrainingClassUserList(@Param("trainingClassId") String trainingClassId);
+}

+ 30 - 0
src/main/java/com/ghsc/partybuild/mapper/PxTrainingClassCourseMapper.java

@@ -0,0 +1,30 @@
+package com.ghsc.partybuild.mapper;
+
+import com.ghsc.partybuild.model.PxTrainingClassCourse;
+import com.ghsc.partybuild.model.PxTrainingClassCourseExample;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+
+public interface PxTrainingClassCourseMapper {
+    long countByExample(PxTrainingClassCourseExample example);
+
+    int deleteByExample(PxTrainingClassCourseExample example);
+
+    int deleteByPrimaryKey(String id);
+
+    int insert(PxTrainingClassCourse record);
+
+    int insertSelective(PxTrainingClassCourse record);
+
+    List<PxTrainingClassCourse> selectByExample(PxTrainingClassCourseExample example);
+
+    PxTrainingClassCourse selectByPrimaryKey(String id);
+
+    int updateByExampleSelective(@Param("record") PxTrainingClassCourse record, @Param("example") PxTrainingClassCourseExample example);
+
+    int updateByExample(@Param("record") PxTrainingClassCourse record, @Param("example") PxTrainingClassCourseExample example);
+
+    int updateByPrimaryKeySelective(PxTrainingClassCourse record);
+
+    int updateByPrimaryKey(PxTrainingClassCourse record);
+}

+ 30 - 0
src/main/java/com/ghsc/partybuild/mapper/PxTrainingClassMapper.java

@@ -0,0 +1,30 @@
+package com.ghsc.partybuild.mapper;
+
+import com.ghsc.partybuild.model.PxTrainingClass;
+import com.ghsc.partybuild.model.PxTrainingClassExample;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+
+public interface PxTrainingClassMapper {
+    long countByExample(PxTrainingClassExample example);
+
+    int deleteByExample(PxTrainingClassExample example);
+
+    int deleteByPrimaryKey(String id);
+
+    int insert(PxTrainingClass record);
+
+    int insertSelective(PxTrainingClass record);
+
+    List<PxTrainingClass> selectByExample(PxTrainingClassExample example);
+
+    PxTrainingClass selectByPrimaryKey(String id);
+
+    int updateByExampleSelective(@Param("record") PxTrainingClass record, @Param("example") PxTrainingClassExample example);
+
+    int updateByExample(@Param("record") PxTrainingClass record, @Param("example") PxTrainingClassExample example);
+
+    int updateByPrimaryKeySelective(PxTrainingClass record);
+
+    int updateByPrimaryKey(PxTrainingClass record);
+}

+ 30 - 0
src/main/java/com/ghsc/partybuild/mapper/PxTrainingClassUserMapper.java

@@ -0,0 +1,30 @@
+package com.ghsc.partybuild.mapper;
+
+import com.ghsc.partybuild.model.PxTrainingClassUser;
+import com.ghsc.partybuild.model.PxTrainingClassUserExample;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+
+public interface PxTrainingClassUserMapper {
+    long countByExample(PxTrainingClassUserExample example);
+
+    int deleteByExample(PxTrainingClassUserExample example);
+
+    int deleteByPrimaryKey(String id);
+
+    int insert(PxTrainingClassUser record);
+
+    int insertSelective(PxTrainingClassUser record);
+
+    List<PxTrainingClassUser> selectByExample(PxTrainingClassUserExample example);
+
+    PxTrainingClassUser selectByPrimaryKey(String id);
+
+    int updateByExampleSelective(@Param("record") PxTrainingClassUser record, @Param("example") PxTrainingClassUserExample example);
+
+    int updateByExample(@Param("record") PxTrainingClassUser record, @Param("example") PxTrainingClassUserExample example);
+
+    int updateByPrimaryKeySelective(PxTrainingClassUser record);
+
+    int updateByPrimaryKey(PxTrainingClassUser record);
+}

+ 145 - 0
src/main/java/com/ghsc/partybuild/model/PxTrainingClass.java

@@ -0,0 +1,145 @@
+package com.ghsc.partybuild.model;
+
+import java.util.Date;
+
+public class PxTrainingClass {
+    private String id;
+
+    private String dzzdm;
+
+    private String trainingClassName;
+
+    private Date beginDate;
+
+    private Date endDate;
+
+    private String address;
+
+    private String department;
+
+    private String contactName;
+
+    private String phone;
+
+    private String content;
+
+    private Date createTime;
+
+    private String createUserid;
+
+    private Date updateTime;
+
+    private String updateUserid;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id == null ? null : id.trim();
+    }
+
+    public String getDzzdm() {
+        return dzzdm;
+    }
+
+    public void setDzzdm(String dzzdm) {
+        this.dzzdm = dzzdm == null ? null : dzzdm.trim();
+    }
+
+    public String getTrainingClassName() {
+        return trainingClassName;
+    }
+
+    public void setTrainingClassName(String trainingClassName) {
+        this.trainingClassName = trainingClassName == null ? null : trainingClassName.trim();
+    }
+
+    public Date getBeginDate() {
+        return beginDate;
+    }
+
+    public void setBeginDate(Date beginDate) {
+        this.beginDate = beginDate;
+    }
+
+    public Date getEndDate() {
+        return endDate;
+    }
+
+    public void setEndDate(Date endDate) {
+        this.endDate = endDate;
+    }
+
+    public String getAddress() {
+        return address;
+    }
+
+    public void setAddress(String address) {
+        this.address = address == null ? null : address.trim();
+    }
+
+    public String getDepartment() {
+        return department;
+    }
+
+    public void setDepartment(String department) {
+        this.department = department == null ? null : department.trim();
+    }
+
+    public String getContactName() {
+        return contactName;
+    }
+
+    public void setContactName(String contactName) {
+        this.contactName = contactName == null ? null : contactName.trim();
+    }
+
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone == null ? null : phone.trim();
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content == null ? null : content.trim();
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public String getCreateUserid() {
+        return createUserid;
+    }
+
+    public void setCreateUserid(String createUserid) {
+        this.createUserid = createUserid == null ? null : createUserid.trim();
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public String getUpdateUserid() {
+        return updateUserid;
+    }
+
+    public void setUpdateUserid(String updateUserid) {
+        this.updateUserid = updateUserid == null ? null : updateUserid.trim();
+    }
+}

+ 95 - 0
src/main/java/com/ghsc/partybuild/model/PxTrainingClassCourse.java

@@ -0,0 +1,95 @@
+package com.ghsc.partybuild.model;
+
+import java.util.Date;
+
+public class PxTrainingClassCourse {
+    private String id;
+
+    private String trainingClassId;
+
+    private String courseName;
+
+    private String teacher;
+
+    private Date trainingTime;
+
+    private Date createTime;
+
+    private String createUserid;
+
+    private Date updateTime;
+
+    private String updateUserid;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id == null ? null : id.trim();
+    }
+
+    public String getTrainingClassId() {
+        return trainingClassId;
+    }
+
+    public void setTrainingClassId(String trainingClassId) {
+        this.trainingClassId = trainingClassId == null ? null : trainingClassId.trim();
+    }
+
+    public String getCourseName() {
+        return courseName;
+    }
+
+    public void setCourseName(String courseName) {
+        this.courseName = courseName == null ? null : courseName.trim();
+    }
+
+    public String getTeacher() {
+        return teacher;
+    }
+
+    public void setTeacher(String teacher) {
+        this.teacher = teacher == null ? null : teacher.trim();
+    }
+
+    public Date getTrainingTime() {
+        return trainingTime;
+    }
+
+    public void setTrainingTime(Date trainingTime) {
+        this.trainingTime = trainingTime;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public String getCreateUserid() {
+        return createUserid;
+    }
+
+    public void setCreateUserid(String createUserid) {
+        this.createUserid = createUserid == null ? null : createUserid.trim();
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public String getUpdateUserid() {
+        return updateUserid;
+    }
+
+    public void setUpdateUserid(String updateUserid) {
+        this.updateUserid = updateUserid == null ? null : updateUserid.trim();
+    }
+}

+ 801 - 0
src/main/java/com/ghsc/partybuild/model/PxTrainingClassCourseExample.java

@@ -0,0 +1,801 @@
+package com.ghsc.partybuild.model;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+public class PxTrainingClassCourseExample {
+    protected String orderByClause;
+
+    protected boolean distinct;
+
+    protected List<Criteria> oredCriteria;
+
+    public PxTrainingClassCourseExample() {
+        oredCriteria = new ArrayList<Criteria>();
+    }
+
+    public void setOrderByClause(String orderByClause) {
+        this.orderByClause = orderByClause;
+    }
+
+    public String getOrderByClause() {
+        return orderByClause;
+    }
+
+    public void setDistinct(boolean distinct) {
+        this.distinct = distinct;
+    }
+
+    public boolean isDistinct() {
+        return distinct;
+    }
+
+    public List<Criteria> getOredCriteria() {
+        return oredCriteria;
+    }
+
+    public void or(Criteria criteria) {
+        oredCriteria.add(criteria);
+    }
+
+    public Criteria or() {
+        Criteria criteria = createCriteriaInternal();
+        oredCriteria.add(criteria);
+        return criteria;
+    }
+
+    public Criteria createCriteria() {
+        Criteria criteria = createCriteriaInternal();
+        if (oredCriteria.size() == 0) {
+            oredCriteria.add(criteria);
+        }
+        return criteria;
+    }
+
+    protected Criteria createCriteriaInternal() {
+        Criteria criteria = new Criteria();
+        return criteria;
+    }
+
+    public void clear() {
+        oredCriteria.clear();
+        orderByClause = null;
+        distinct = false;
+    }
+
+    protected abstract static class GeneratedCriteria {
+        protected List<Criterion> criteria;
+
+        protected GeneratedCriteria() {
+            super();
+            criteria = new ArrayList<Criterion>();
+        }
+
+        public boolean isValid() {
+            return criteria.size() > 0;
+        }
+
+        public List<Criterion> getAllCriteria() {
+            return criteria;
+        }
+
+        public List<Criterion> getCriteria() {
+            return criteria;
+        }
+
+        protected void addCriterion(String condition) {
+            if (condition == null) {
+                throw new RuntimeException("Value for condition cannot be null");
+            }
+            criteria.add(new Criterion(condition));
+        }
+
+        protected void addCriterion(String condition, Object value, String property) {
+            if (value == null) {
+                throw new RuntimeException("Value for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value));
+        }
+
+        protected void addCriterion(String condition, Object value1, Object value2, String property) {
+            if (value1 == null || value2 == null) {
+                throw new RuntimeException("Between values for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value1, value2));
+        }
+
+        public Criteria andIdIsNull() {
+            addCriterion("id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIsNotNull() {
+            addCriterion("id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdEqualTo(String value) {
+            addCriterion("id =", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotEqualTo(String value) {
+            addCriterion("id <>", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThan(String value) {
+            addCriterion("id >", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThanOrEqualTo(String value) {
+            addCriterion("id >=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThan(String value) {
+            addCriterion("id <", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThanOrEqualTo(String value) {
+            addCriterion("id <=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLike(String value) {
+            addCriterion("id like", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotLike(String value) {
+            addCriterion("id not like", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIn(List<String> values) {
+            addCriterion("id in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotIn(List<String> values) {
+            addCriterion("id not in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdBetween(String value1, String value2) {
+            addCriterion("id between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotBetween(String value1, String value2) {
+            addCriterion("id not between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andTrainingClassIdIsNull() {
+            addCriterion("training_class_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andTrainingClassIdIsNotNull() {
+            addCriterion("training_class_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andTrainingClassIdEqualTo(String value) {
+            addCriterion("training_class_id =", value, "trainingClassId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTrainingClassIdNotEqualTo(String value) {
+            addCriterion("training_class_id <>", value, "trainingClassId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTrainingClassIdGreaterThan(String value) {
+            addCriterion("training_class_id >", value, "trainingClassId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTrainingClassIdGreaterThanOrEqualTo(String value) {
+            addCriterion("training_class_id >=", value, "trainingClassId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTrainingClassIdLessThan(String value) {
+            addCriterion("training_class_id <", value, "trainingClassId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTrainingClassIdLessThanOrEqualTo(String value) {
+            addCriterion("training_class_id <=", value, "trainingClassId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTrainingClassIdLike(String value) {
+            addCriterion("training_class_id like", value, "trainingClassId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTrainingClassIdNotLike(String value) {
+            addCriterion("training_class_id not like", value, "trainingClassId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTrainingClassIdIn(List<String> values) {
+            addCriterion("training_class_id in", values, "trainingClassId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTrainingClassIdNotIn(List<String> values) {
+            addCriterion("training_class_id not in", values, "trainingClassId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTrainingClassIdBetween(String value1, String value2) {
+            addCriterion("training_class_id between", value1, value2, "trainingClassId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTrainingClassIdNotBetween(String value1, String value2) {
+            addCriterion("training_class_id not between", value1, value2, "trainingClassId");
+            return (Criteria) this;
+        }
+
+        public Criteria andCourseNameIsNull() {
+            addCriterion("course_name is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCourseNameIsNotNull() {
+            addCriterion("course_name is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCourseNameEqualTo(String value) {
+            addCriterion("course_name =", value, "courseName");
+            return (Criteria) this;
+        }
+
+        public Criteria andCourseNameNotEqualTo(String value) {
+            addCriterion("course_name <>", value, "courseName");
+            return (Criteria) this;
+        }
+
+        public Criteria andCourseNameGreaterThan(String value) {
+            addCriterion("course_name >", value, "courseName");
+            return (Criteria) this;
+        }
+
+        public Criteria andCourseNameGreaterThanOrEqualTo(String value) {
+            addCriterion("course_name >=", value, "courseName");
+            return (Criteria) this;
+        }
+
+        public Criteria andCourseNameLessThan(String value) {
+            addCriterion("course_name <", value, "courseName");
+            return (Criteria) this;
+        }
+
+        public Criteria andCourseNameLessThanOrEqualTo(String value) {
+            addCriterion("course_name <=", value, "courseName");
+            return (Criteria) this;
+        }
+
+        public Criteria andCourseNameLike(String value) {
+            addCriterion("course_name like", value, "courseName");
+            return (Criteria) this;
+        }
+
+        public Criteria andCourseNameNotLike(String value) {
+            addCriterion("course_name not like", value, "courseName");
+            return (Criteria) this;
+        }
+
+        public Criteria andCourseNameIn(List<String> values) {
+            addCriterion("course_name in", values, "courseName");
+            return (Criteria) this;
+        }
+
+        public Criteria andCourseNameNotIn(List<String> values) {
+            addCriterion("course_name not in", values, "courseName");
+            return (Criteria) this;
+        }
+
+        public Criteria andCourseNameBetween(String value1, String value2) {
+            addCriterion("course_name between", value1, value2, "courseName");
+            return (Criteria) this;
+        }
+
+        public Criteria andCourseNameNotBetween(String value1, String value2) {
+            addCriterion("course_name not between", value1, value2, "courseName");
+            return (Criteria) this;
+        }
+
+        public Criteria andTeacherIsNull() {
+            addCriterion("teacher is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andTeacherIsNotNull() {
+            addCriterion("teacher is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andTeacherEqualTo(String value) {
+            addCriterion("teacher =", value, "teacher");
+            return (Criteria) this;
+        }
+
+        public Criteria andTeacherNotEqualTo(String value) {
+            addCriterion("teacher <>", value, "teacher");
+            return (Criteria) this;
+        }
+
+        public Criteria andTeacherGreaterThan(String value) {
+            addCriterion("teacher >", value, "teacher");
+            return (Criteria) this;
+        }
+
+        public Criteria andTeacherGreaterThanOrEqualTo(String value) {
+            addCriterion("teacher >=", value, "teacher");
+            return (Criteria) this;
+        }
+
+        public Criteria andTeacherLessThan(String value) {
+            addCriterion("teacher <", value, "teacher");
+            return (Criteria) this;
+        }
+
+        public Criteria andTeacherLessThanOrEqualTo(String value) {
+            addCriterion("teacher <=", value, "teacher");
+            return (Criteria) this;
+        }
+
+        public Criteria andTeacherLike(String value) {
+            addCriterion("teacher like", value, "teacher");
+            return (Criteria) this;
+        }
+
+        public Criteria andTeacherNotLike(String value) {
+            addCriterion("teacher not like", value, "teacher");
+            return (Criteria) this;
+        }
+
+        public Criteria andTeacherIn(List<String> values) {
+            addCriterion("teacher in", values, "teacher");
+            return (Criteria) this;
+        }
+
+        public Criteria andTeacherNotIn(List<String> values) {
+            addCriterion("teacher not in", values, "teacher");
+            return (Criteria) this;
+        }
+
+        public Criteria andTeacherBetween(String value1, String value2) {
+            addCriterion("teacher between", value1, value2, "teacher");
+            return (Criteria) this;
+        }
+
+        public Criteria andTeacherNotBetween(String value1, String value2) {
+            addCriterion("teacher not between", value1, value2, "teacher");
+            return (Criteria) this;
+        }
+
+        public Criteria andTrainingTimeIsNull() {
+            addCriterion("training_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andTrainingTimeIsNotNull() {
+            addCriterion("training_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andTrainingTimeEqualTo(Date value) {
+            addCriterion("training_time =", value, "trainingTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andTrainingTimeNotEqualTo(Date value) {
+            addCriterion("training_time <>", value, "trainingTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andTrainingTimeGreaterThan(Date value) {
+            addCriterion("training_time >", value, "trainingTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andTrainingTimeGreaterThanOrEqualTo(Date value) {
+            addCriterion("training_time >=", value, "trainingTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andTrainingTimeLessThan(Date value) {
+            addCriterion("training_time <", value, "trainingTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andTrainingTimeLessThanOrEqualTo(Date value) {
+            addCriterion("training_time <=", value, "trainingTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andTrainingTimeIn(List<Date> values) {
+            addCriterion("training_time in", values, "trainingTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andTrainingTimeNotIn(List<Date> values) {
+            addCriterion("training_time not in", values, "trainingTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andTrainingTimeBetween(Date value1, Date value2) {
+            addCriterion("training_time between", value1, value2, "trainingTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andTrainingTimeNotBetween(Date value1, Date value2) {
+            addCriterion("training_time not between", value1, value2, "trainingTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeIsNull() {
+            addCriterion("create_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeIsNotNull() {
+            addCriterion("create_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeEqualTo(Date value) {
+            addCriterion("create_time =", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeNotEqualTo(Date value) {
+            addCriterion("create_time <>", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeGreaterThan(Date value) {
+            addCriterion("create_time >", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
+            addCriterion("create_time >=", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeLessThan(Date value) {
+            addCriterion("create_time <", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
+            addCriterion("create_time <=", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeIn(List<Date> values) {
+            addCriterion("create_time in", values, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeNotIn(List<Date> values) {
+            addCriterion("create_time not in", values, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeBetween(Date value1, Date value2) {
+            addCriterion("create_time between", value1, value2, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
+            addCriterion("create_time not between", value1, value2, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateUseridIsNull() {
+            addCriterion("create_userid is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateUseridIsNotNull() {
+            addCriterion("create_userid is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateUseridEqualTo(String value) {
+            addCriterion("create_userid =", value, "createUserid");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateUseridNotEqualTo(String value) {
+            addCriterion("create_userid <>", value, "createUserid");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateUseridGreaterThan(String value) {
+            addCriterion("create_userid >", value, "createUserid");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateUseridGreaterThanOrEqualTo(String value) {
+            addCriterion("create_userid >=", value, "createUserid");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateUseridLessThan(String value) {
+            addCriterion("create_userid <", value, "createUserid");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateUseridLessThanOrEqualTo(String value) {
+            addCriterion("create_userid <=", value, "createUserid");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateUseridLike(String value) {
+            addCriterion("create_userid like", value, "createUserid");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateUseridNotLike(String value) {
+            addCriterion("create_userid not like", value, "createUserid");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateUseridIn(List<String> values) {
+            addCriterion("create_userid in", values, "createUserid");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateUseridNotIn(List<String> values) {
+            addCriterion("create_userid not in", values, "createUserid");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateUseridBetween(String value1, String value2) {
+            addCriterion("create_userid between", value1, value2, "createUserid");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateUseridNotBetween(String value1, String value2) {
+            addCriterion("create_userid not between", value1, value2, "createUserid");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeIsNull() {
+            addCriterion("update_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeIsNotNull() {
+            addCriterion("update_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeEqualTo(Date value) {
+            addCriterion("update_time =", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeNotEqualTo(Date value) {
+            addCriterion("update_time <>", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeGreaterThan(Date value) {
+            addCriterion("update_time >", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
+            addCriterion("update_time >=", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeLessThan(Date value) {
+            addCriterion("update_time <", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
+            addCriterion("update_time <=", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeIn(List<Date> values) {
+            addCriterion("update_time in", values, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeNotIn(List<Date> values) {
+            addCriterion("update_time not in", values, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeBetween(Date value1, Date value2) {
+            addCriterion("update_time between", value1, value2, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
+            addCriterion("update_time not between", value1, value2, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateUseridIsNull() {
+            addCriterion("update_userid is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateUseridIsNotNull() {
+            addCriterion("update_userid is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateUseridEqualTo(String value) {
+            addCriterion("update_userid =", value, "updateUserid");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateUseridNotEqualTo(String value) {
+            addCriterion("update_userid <>", value, "updateUserid");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateUseridGreaterThan(String value) {
+            addCriterion("update_userid >", value, "updateUserid");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateUseridGreaterThanOrEqualTo(String value) {
+            addCriterion("update_userid >=", value, "updateUserid");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateUseridLessThan(String value) {
+            addCriterion("update_userid <", value, "updateUserid");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateUseridLessThanOrEqualTo(String value) {
+            addCriterion("update_userid <=", value, "updateUserid");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateUseridLike(String value) {
+            addCriterion("update_userid like", value, "updateUserid");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateUseridNotLike(String value) {
+            addCriterion("update_userid not like", value, "updateUserid");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateUseridIn(List<String> values) {
+            addCriterion("update_userid in", values, "updateUserid");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateUseridNotIn(List<String> values) {
+            addCriterion("update_userid not in", values, "updateUserid");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateUseridBetween(String value1, String value2) {
+            addCriterion("update_userid between", value1, value2, "updateUserid");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateUseridNotBetween(String value1, String value2) {
+            addCriterion("update_userid not between", value1, value2, "updateUserid");
+            return (Criteria) this;
+        }
+    }
+
+    public static class Criteria extends GeneratedCriteria {
+
+        protected Criteria() {
+            super();
+        }
+    }
+
+    public static class Criterion {
+        private String condition;
+
+        private Object value;
+
+        private Object secondValue;
+
+        private boolean noValue;
+
+        private boolean singleValue;
+
+        private boolean betweenValue;
+
+        private boolean listValue;
+
+        private String typeHandler;
+
+        public String getCondition() {
+            return condition;
+        }
+
+        public Object getValue() {
+            return value;
+        }
+
+        public Object getSecondValue() {
+            return secondValue;
+        }
+
+        public boolean isNoValue() {
+            return noValue;
+        }
+
+        public boolean isSingleValue() {
+            return singleValue;
+        }
+
+        public boolean isBetweenValue() {
+            return betweenValue;
+        }
+
+        public boolean isListValue() {
+            return listValue;
+        }
+
+        public String getTypeHandler() {
+            return typeHandler;
+        }
+
+        protected Criterion(String condition) {
+            super();
+            this.condition = condition;
+            this.typeHandler = null;
+            this.noValue = true;
+        }
+
+        protected Criterion(String condition, Object value, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.typeHandler = typeHandler;
+            if (value instanceof List<?>) {
+                this.listValue = true;
+            } else {
+                this.singleValue = true;
+            }
+        }
+
+        protected Criterion(String condition, Object value) {
+            this(condition, value, null);
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.secondValue = secondValue;
+            this.typeHandler = typeHandler;
+            this.betweenValue = true;
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue) {
+            this(condition, value, secondValue, null);
+        }
+    }
+}

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1141 - 0
src/main/java/com/ghsc/partybuild/model/PxTrainingClassExample.java


+ 115 - 0
src/main/java/com/ghsc/partybuild/model/PxTrainingClassUser.java

@@ -0,0 +1,115 @@
+package com.ghsc.partybuild.model;
+
+import java.util.Date;
+
+public class PxTrainingClassUser {
+    private String id;
+
+    private String trainingClassId;
+
+    private String dzzdm;
+
+    private String userNo;
+
+    private String userName;
+
+    private Integer genderId;
+
+    private String phone;
+
+    private Date createTime;
+
+    private String createUserid;
+
+    private Date updateTime;
+
+    private String updateUserid;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id == null ? null : id.trim();
+    }
+
+    public String getTrainingClassId() {
+        return trainingClassId;
+    }
+
+    public void setTrainingClassId(String trainingClassId) {
+        this.trainingClassId = trainingClassId == null ? null : trainingClassId.trim();
+    }
+
+    public String getDzzdm() {
+        return dzzdm;
+    }
+
+    public void setDzzdm(String dzzdm) {
+        this.dzzdm = dzzdm == null ? null : dzzdm.trim();
+    }
+
+    public String getUserNo() {
+        return userNo;
+    }
+
+    public void setUserNo(String userNo) {
+        this.userNo = userNo == null ? null : userNo.trim();
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName == null ? null : userName.trim();
+    }
+
+    public Integer getGenderId() {
+        return genderId;
+    }
+
+    public void setGenderId(Integer genderId) {
+        this.genderId = genderId;
+    }
+
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone == null ? null : phone.trim();
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public String getCreateUserid() {
+        return createUserid;
+    }
+
+    public void setCreateUserid(String createUserid) {
+        this.createUserid = createUserid == null ? null : createUserid.trim();
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public String getUpdateUserid() {
+        return updateUserid;
+    }
+
+    public void setUpdateUserid(String updateUserid) {
+        this.updateUserid = updateUserid == null ? null : updateUserid.trim();
+    }
+}

+ 941 - 0
src/main/java/com/ghsc/partybuild/model/PxTrainingClassUserExample.java

@@ -0,0 +1,941 @@
+package com.ghsc.partybuild.model;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+public class PxTrainingClassUserExample {
+    protected String orderByClause;
+
+    protected boolean distinct;
+
+    protected List<Criteria> oredCriteria;
+
+    public PxTrainingClassUserExample() {
+        oredCriteria = new ArrayList<Criteria>();
+    }
+
+    public void setOrderByClause(String orderByClause) {
+        this.orderByClause = orderByClause;
+    }
+
+    public String getOrderByClause() {
+        return orderByClause;
+    }
+
+    public void setDistinct(boolean distinct) {
+        this.distinct = distinct;
+    }
+
+    public boolean isDistinct() {
+        return distinct;
+    }
+
+    public List<Criteria> getOredCriteria() {
+        return oredCriteria;
+    }
+
+    public void or(Criteria criteria) {
+        oredCriteria.add(criteria);
+    }
+
+    public Criteria or() {
+        Criteria criteria = createCriteriaInternal();
+        oredCriteria.add(criteria);
+        return criteria;
+    }
+
+    public Criteria createCriteria() {
+        Criteria criteria = createCriteriaInternal();
+        if (oredCriteria.size() == 0) {
+            oredCriteria.add(criteria);
+        }
+        return criteria;
+    }
+
+    protected Criteria createCriteriaInternal() {
+        Criteria criteria = new Criteria();
+        return criteria;
+    }
+
+    public void clear() {
+        oredCriteria.clear();
+        orderByClause = null;
+        distinct = false;
+    }
+
+    protected abstract static class GeneratedCriteria {
+        protected List<Criterion> criteria;
+
+        protected GeneratedCriteria() {
+            super();
+            criteria = new ArrayList<Criterion>();
+        }
+
+        public boolean isValid() {
+            return criteria.size() > 0;
+        }
+
+        public List<Criterion> getAllCriteria() {
+            return criteria;
+        }
+
+        public List<Criterion> getCriteria() {
+            return criteria;
+        }
+
+        protected void addCriterion(String condition) {
+            if (condition == null) {
+                throw new RuntimeException("Value for condition cannot be null");
+            }
+            criteria.add(new Criterion(condition));
+        }
+
+        protected void addCriterion(String condition, Object value, String property) {
+            if (value == null) {
+                throw new RuntimeException("Value for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value));
+        }
+
+        protected void addCriterion(String condition, Object value1, Object value2, String property) {
+            if (value1 == null || value2 == null) {
+                throw new RuntimeException("Between values for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value1, value2));
+        }
+
+        public Criteria andIdIsNull() {
+            addCriterion("id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIsNotNull() {
+            addCriterion("id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdEqualTo(String value) {
+            addCriterion("id =", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotEqualTo(String value) {
+            addCriterion("id <>", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThan(String value) {
+            addCriterion("id >", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThanOrEqualTo(String value) {
+            addCriterion("id >=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThan(String value) {
+            addCriterion("id <", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThanOrEqualTo(String value) {
+            addCriterion("id <=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLike(String value) {
+            addCriterion("id like", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotLike(String value) {
+            addCriterion("id not like", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIn(List<String> values) {
+            addCriterion("id in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotIn(List<String> values) {
+            addCriterion("id not in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdBetween(String value1, String value2) {
+            addCriterion("id between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotBetween(String value1, String value2) {
+            addCriterion("id not between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andTrainingClassIdIsNull() {
+            addCriterion("training_class_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andTrainingClassIdIsNotNull() {
+            addCriterion("training_class_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andTrainingClassIdEqualTo(String value) {
+            addCriterion("training_class_id =", value, "trainingClassId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTrainingClassIdNotEqualTo(String value) {
+            addCriterion("training_class_id <>", value, "trainingClassId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTrainingClassIdGreaterThan(String value) {
+            addCriterion("training_class_id >", value, "trainingClassId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTrainingClassIdGreaterThanOrEqualTo(String value) {
+            addCriterion("training_class_id >=", value, "trainingClassId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTrainingClassIdLessThan(String value) {
+            addCriterion("training_class_id <", value, "trainingClassId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTrainingClassIdLessThanOrEqualTo(String value) {
+            addCriterion("training_class_id <=", value, "trainingClassId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTrainingClassIdLike(String value) {
+            addCriterion("training_class_id like", value, "trainingClassId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTrainingClassIdNotLike(String value) {
+            addCriterion("training_class_id not like", value, "trainingClassId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTrainingClassIdIn(List<String> values) {
+            addCriterion("training_class_id in", values, "trainingClassId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTrainingClassIdNotIn(List<String> values) {
+            addCriterion("training_class_id not in", values, "trainingClassId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTrainingClassIdBetween(String value1, String value2) {
+            addCriterion("training_class_id between", value1, value2, "trainingClassId");
+            return (Criteria) this;
+        }
+
+        public Criteria andTrainingClassIdNotBetween(String value1, String value2) {
+            addCriterion("training_class_id not between", value1, value2, "trainingClassId");
+            return (Criteria) this;
+        }
+
+        public Criteria andDzzdmIsNull() {
+            addCriterion("dzzdm is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andDzzdmIsNotNull() {
+            addCriterion("dzzdm is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andDzzdmEqualTo(String value) {
+            addCriterion("dzzdm =", value, "dzzdm");
+            return (Criteria) this;
+        }
+
+        public Criteria andDzzdmNotEqualTo(String value) {
+            addCriterion("dzzdm <>", value, "dzzdm");
+            return (Criteria) this;
+        }
+
+        public Criteria andDzzdmGreaterThan(String value) {
+            addCriterion("dzzdm >", value, "dzzdm");
+            return (Criteria) this;
+        }
+
+        public Criteria andDzzdmGreaterThanOrEqualTo(String value) {
+            addCriterion("dzzdm >=", value, "dzzdm");
+            return (Criteria) this;
+        }
+
+        public Criteria andDzzdmLessThan(String value) {
+            addCriterion("dzzdm <", value, "dzzdm");
+            return (Criteria) this;
+        }
+
+        public Criteria andDzzdmLessThanOrEqualTo(String value) {
+            addCriterion("dzzdm <=", value, "dzzdm");
+            return (Criteria) this;
+        }
+
+        public Criteria andDzzdmLike(String value) {
+            addCriterion("dzzdm like", value, "dzzdm");
+            return (Criteria) this;
+        }
+
+        public Criteria andDzzdmNotLike(String value) {
+            addCriterion("dzzdm not like", value, "dzzdm");
+            return (Criteria) this;
+        }
+
+        public Criteria andDzzdmIn(List<String> values) {
+            addCriterion("dzzdm in", values, "dzzdm");
+            return (Criteria) this;
+        }
+
+        public Criteria andDzzdmNotIn(List<String> values) {
+            addCriterion("dzzdm not in", values, "dzzdm");
+            return (Criteria) this;
+        }
+
+        public Criteria andDzzdmBetween(String value1, String value2) {
+            addCriterion("dzzdm between", value1, value2, "dzzdm");
+            return (Criteria) this;
+        }
+
+        public Criteria andDzzdmNotBetween(String value1, String value2) {
+            addCriterion("dzzdm not between", value1, value2, "dzzdm");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserNoIsNull() {
+            addCriterion("user_no is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserNoIsNotNull() {
+            addCriterion("user_no is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserNoEqualTo(String value) {
+            addCriterion("user_no =", value, "userNo");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserNoNotEqualTo(String value) {
+            addCriterion("user_no <>", value, "userNo");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserNoGreaterThan(String value) {
+            addCriterion("user_no >", value, "userNo");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserNoGreaterThanOrEqualTo(String value) {
+            addCriterion("user_no >=", value, "userNo");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserNoLessThan(String value) {
+            addCriterion("user_no <", value, "userNo");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserNoLessThanOrEqualTo(String value) {
+            addCriterion("user_no <=", value, "userNo");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserNoLike(String value) {
+            addCriterion("user_no like", value, "userNo");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserNoNotLike(String value) {
+            addCriterion("user_no not like", value, "userNo");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserNoIn(List<String> values) {
+            addCriterion("user_no in", values, "userNo");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserNoNotIn(List<String> values) {
+            addCriterion("user_no not in", values, "userNo");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserNoBetween(String value1, String value2) {
+            addCriterion("user_no between", value1, value2, "userNo");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserNoNotBetween(String value1, String value2) {
+            addCriterion("user_no not between", value1, value2, "userNo");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserNameIsNull() {
+            addCriterion("user_name is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserNameIsNotNull() {
+            addCriterion("user_name is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserNameEqualTo(String value) {
+            addCriterion("user_name =", value, "userName");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserNameNotEqualTo(String value) {
+            addCriterion("user_name <>", value, "userName");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserNameGreaterThan(String value) {
+            addCriterion("user_name >", value, "userName");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserNameGreaterThanOrEqualTo(String value) {
+            addCriterion("user_name >=", value, "userName");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserNameLessThan(String value) {
+            addCriterion("user_name <", value, "userName");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserNameLessThanOrEqualTo(String value) {
+            addCriterion("user_name <=", value, "userName");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserNameLike(String value) {
+            addCriterion("user_name like", value, "userName");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserNameNotLike(String value) {
+            addCriterion("user_name not like", value, "userName");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserNameIn(List<String> values) {
+            addCriterion("user_name in", values, "userName");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserNameNotIn(List<String> values) {
+            addCriterion("user_name not in", values, "userName");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserNameBetween(String value1, String value2) {
+            addCriterion("user_name between", value1, value2, "userName");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserNameNotBetween(String value1, String value2) {
+            addCriterion("user_name not between", value1, value2, "userName");
+            return (Criteria) this;
+        }
+
+        public Criteria andGenderIdIsNull() {
+            addCriterion("gender_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andGenderIdIsNotNull() {
+            addCriterion("gender_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andGenderIdEqualTo(Integer value) {
+            addCriterion("gender_id =", value, "genderId");
+            return (Criteria) this;
+        }
+
+        public Criteria andGenderIdNotEqualTo(Integer value) {
+            addCriterion("gender_id <>", value, "genderId");
+            return (Criteria) this;
+        }
+
+        public Criteria andGenderIdGreaterThan(Integer value) {
+            addCriterion("gender_id >", value, "genderId");
+            return (Criteria) this;
+        }
+
+        public Criteria andGenderIdGreaterThanOrEqualTo(Integer value) {
+            addCriterion("gender_id >=", value, "genderId");
+            return (Criteria) this;
+        }
+
+        public Criteria andGenderIdLessThan(Integer value) {
+            addCriterion("gender_id <", value, "genderId");
+            return (Criteria) this;
+        }
+
+        public Criteria andGenderIdLessThanOrEqualTo(Integer value) {
+            addCriterion("gender_id <=", value, "genderId");
+            return (Criteria) this;
+        }
+
+        public Criteria andGenderIdIn(List<Integer> values) {
+            addCriterion("gender_id in", values, "genderId");
+            return (Criteria) this;
+        }
+
+        public Criteria andGenderIdNotIn(List<Integer> values) {
+            addCriterion("gender_id not in", values, "genderId");
+            return (Criteria) this;
+        }
+
+        public Criteria andGenderIdBetween(Integer value1, Integer value2) {
+            addCriterion("gender_id between", value1, value2, "genderId");
+            return (Criteria) this;
+        }
+
+        public Criteria andGenderIdNotBetween(Integer value1, Integer value2) {
+            addCriterion("gender_id not between", value1, value2, "genderId");
+            return (Criteria) this;
+        }
+
+        public Criteria andPhoneIsNull() {
+            addCriterion("phone is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPhoneIsNotNull() {
+            addCriterion("phone is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPhoneEqualTo(String value) {
+            addCriterion("phone =", value, "phone");
+            return (Criteria) this;
+        }
+
+        public Criteria andPhoneNotEqualTo(String value) {
+            addCriterion("phone <>", value, "phone");
+            return (Criteria) this;
+        }
+
+        public Criteria andPhoneGreaterThan(String value) {
+            addCriterion("phone >", value, "phone");
+            return (Criteria) this;
+        }
+
+        public Criteria andPhoneGreaterThanOrEqualTo(String value) {
+            addCriterion("phone >=", value, "phone");
+            return (Criteria) this;
+        }
+
+        public Criteria andPhoneLessThan(String value) {
+            addCriterion("phone <", value, "phone");
+            return (Criteria) this;
+        }
+
+        public Criteria andPhoneLessThanOrEqualTo(String value) {
+            addCriterion("phone <=", value, "phone");
+            return (Criteria) this;
+        }
+
+        public Criteria andPhoneLike(String value) {
+            addCriterion("phone like", value, "phone");
+            return (Criteria) this;
+        }
+
+        public Criteria andPhoneNotLike(String value) {
+            addCriterion("phone not like", value, "phone");
+            return (Criteria) this;
+        }
+
+        public Criteria andPhoneIn(List<String> values) {
+            addCriterion("phone in", values, "phone");
+            return (Criteria) this;
+        }
+
+        public Criteria andPhoneNotIn(List<String> values) {
+            addCriterion("phone not in", values, "phone");
+            return (Criteria) this;
+        }
+
+        public Criteria andPhoneBetween(String value1, String value2) {
+            addCriterion("phone between", value1, value2, "phone");
+            return (Criteria) this;
+        }
+
+        public Criteria andPhoneNotBetween(String value1, String value2) {
+            addCriterion("phone not between", value1, value2, "phone");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeIsNull() {
+            addCriterion("create_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeIsNotNull() {
+            addCriterion("create_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeEqualTo(Date value) {
+            addCriterion("create_time =", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeNotEqualTo(Date value) {
+            addCriterion("create_time <>", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeGreaterThan(Date value) {
+            addCriterion("create_time >", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
+            addCriterion("create_time >=", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeLessThan(Date value) {
+            addCriterion("create_time <", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
+            addCriterion("create_time <=", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeIn(List<Date> values) {
+            addCriterion("create_time in", values, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeNotIn(List<Date> values) {
+            addCriterion("create_time not in", values, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeBetween(Date value1, Date value2) {
+            addCriterion("create_time between", value1, value2, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
+            addCriterion("create_time not between", value1, value2, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateUseridIsNull() {
+            addCriterion("create_userid is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateUseridIsNotNull() {
+            addCriterion("create_userid is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateUseridEqualTo(String value) {
+            addCriterion("create_userid =", value, "createUserid");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateUseridNotEqualTo(String value) {
+            addCriterion("create_userid <>", value, "createUserid");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateUseridGreaterThan(String value) {
+            addCriterion("create_userid >", value, "createUserid");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateUseridGreaterThanOrEqualTo(String value) {
+            addCriterion("create_userid >=", value, "createUserid");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateUseridLessThan(String value) {
+            addCriterion("create_userid <", value, "createUserid");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateUseridLessThanOrEqualTo(String value) {
+            addCriterion("create_userid <=", value, "createUserid");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateUseridLike(String value) {
+            addCriterion("create_userid like", value, "createUserid");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateUseridNotLike(String value) {
+            addCriterion("create_userid not like", value, "createUserid");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateUseridIn(List<String> values) {
+            addCriterion("create_userid in", values, "createUserid");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateUseridNotIn(List<String> values) {
+            addCriterion("create_userid not in", values, "createUserid");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateUseridBetween(String value1, String value2) {
+            addCriterion("create_userid between", value1, value2, "createUserid");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateUseridNotBetween(String value1, String value2) {
+            addCriterion("create_userid not between", value1, value2, "createUserid");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeIsNull() {
+            addCriterion("update_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeIsNotNull() {
+            addCriterion("update_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeEqualTo(Date value) {
+            addCriterion("update_time =", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeNotEqualTo(Date value) {
+            addCriterion("update_time <>", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeGreaterThan(Date value) {
+            addCriterion("update_time >", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
+            addCriterion("update_time >=", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeLessThan(Date value) {
+            addCriterion("update_time <", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
+            addCriterion("update_time <=", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeIn(List<Date> values) {
+            addCriterion("update_time in", values, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeNotIn(List<Date> values) {
+            addCriterion("update_time not in", values, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeBetween(Date value1, Date value2) {
+            addCriterion("update_time between", value1, value2, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
+            addCriterion("update_time not between", value1, value2, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateUseridIsNull() {
+            addCriterion("update_userid is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateUseridIsNotNull() {
+            addCriterion("update_userid is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateUseridEqualTo(String value) {
+            addCriterion("update_userid =", value, "updateUserid");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateUseridNotEqualTo(String value) {
+            addCriterion("update_userid <>", value, "updateUserid");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateUseridGreaterThan(String value) {
+            addCriterion("update_userid >", value, "updateUserid");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateUseridGreaterThanOrEqualTo(String value) {
+            addCriterion("update_userid >=", value, "updateUserid");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateUseridLessThan(String value) {
+            addCriterion("update_userid <", value, "updateUserid");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateUseridLessThanOrEqualTo(String value) {
+            addCriterion("update_userid <=", value, "updateUserid");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateUseridLike(String value) {
+            addCriterion("update_userid like", value, "updateUserid");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateUseridNotLike(String value) {
+            addCriterion("update_userid not like", value, "updateUserid");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateUseridIn(List<String> values) {
+            addCriterion("update_userid in", values, "updateUserid");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateUseridNotIn(List<String> values) {
+            addCriterion("update_userid not in", values, "updateUserid");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateUseridBetween(String value1, String value2) {
+            addCriterion("update_userid between", value1, value2, "updateUserid");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateUseridNotBetween(String value1, String value2) {
+            addCriterion("update_userid not between", value1, value2, "updateUserid");
+            return (Criteria) this;
+        }
+    }
+
+    public static class Criteria extends GeneratedCriteria {
+
+        protected Criteria() {
+            super();
+        }
+    }
+
+    public static class Criterion {
+        private String condition;
+
+        private Object value;
+
+        private Object secondValue;
+
+        private boolean noValue;
+
+        private boolean singleValue;
+
+        private boolean betweenValue;
+
+        private boolean listValue;
+
+        private String typeHandler;
+
+        public String getCondition() {
+            return condition;
+        }
+
+        public Object getValue() {
+            return value;
+        }
+
+        public Object getSecondValue() {
+            return secondValue;
+        }
+
+        public boolean isNoValue() {
+            return noValue;
+        }
+
+        public boolean isSingleValue() {
+            return singleValue;
+        }
+
+        public boolean isBetweenValue() {
+            return betweenValue;
+        }
+
+        public boolean isListValue() {
+            return listValue;
+        }
+
+        public String getTypeHandler() {
+            return typeHandler;
+        }
+
+        protected Criterion(String condition) {
+            super();
+            this.condition = condition;
+            this.typeHandler = null;
+            this.noValue = true;
+        }
+
+        protected Criterion(String condition, Object value, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.typeHandler = typeHandler;
+            if (value instanceof List<?>) {
+                this.listValue = true;
+            } else {
+                this.singleValue = true;
+            }
+        }
+
+        protected Criterion(String condition, Object value) {
+            this(condition, value, null);
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.secondValue = secondValue;
+            this.typeHandler = typeHandler;
+            this.betweenValue = true;
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue) {
+            this(condition, value, secondValue, null);
+        }
+    }
+}

+ 19 - 0
src/main/java/com/ghsc/partybuild/service/PxTrainingClassService.java

@@ -0,0 +1,19 @@
+package com.ghsc.partybuild.service;
+
+import com.ghsc.partybuild.vo.trian.PxTrainingClassVo;
+import com.github.pagehelper.PageInfo;
+
+import java.util.Date;
+import java.util.List;
+
+public interface PxTrainingClassService {
+    PageInfo<PxTrainingClassVo> getList(int pageIndex, int pageSize, String id, String dzzdm, String trainingClassName, Date startDate, Date endDate);
+
+    List<String> getUserAddressList(String userId);
+
+    PxTrainingClassVo getById(String id);
+
+    int save(PxTrainingClassVo data, String userId);
+
+    int delete(List<String> idList);
+}

+ 130 - 0
src/main/java/com/ghsc/partybuild/service/impl/train/PxTrainingClassServiceImpl.java

@@ -0,0 +1,130 @@
+package com.ghsc.partybuild.service.impl.train;
+
+import com.ghsc.partybuild.mapper.*;
+import com.ghsc.partybuild.model.*;
+import com.ghsc.partybuild.service.PxTrainingClassService;
+import com.ghsc.partybuild.util.StringUtils;
+import com.ghsc.partybuild.vo.trian.PxTrainingClassVo;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+import java.util.UUID;
+
+@Service("PxTrainingClassService")
+public class PxTrainingClassServiceImpl implements PxTrainingClassService {
+    @Autowired
+    private PxTrainingClassCQuery pxTrainingClassCQuery;
+    @Autowired
+    private PxTrainingClassMapper pxTrainingClassMapper;
+    @Autowired
+    private PxTrainingClassUserMapper pxTrainingClassUserMapper;
+    @Autowired
+    private PxTrainingClassCourseMapper pxTrainingClassCourseMapper;
+    @Autowired
+    private StringUtils stringUtils;
+
+    @Override
+    public PageInfo<PxTrainingClassVo> getList(int pageIndex, int pageSize, String id, String dzzdm, String trainingClassName, Date startDate, Date endDate){
+        PageHelper.startPage(pageIndex, pageSize);
+        List<PxTrainingClassVo> list = pxTrainingClassCQuery.selectPxTrainingClassList(id, dzzdm, trainingClassName, startDate, endDate);
+
+        PageInfo<PxTrainingClassVo> result = new PageInfo(list);
+        return result;
+    }
+
+    @Override
+    public List<String> getUserAddressList(String userId){
+            return pxTrainingClassCQuery.selectAddressList(userId);
+    }
+
+    @Override
+    public PxTrainingClassVo getById(String id) {
+        if (stringUtils.IsNullOrEmpty(id))
+            return null;
+
+        List<PxTrainingClassVo> list = getList(1,999999, id, null, null, null, null).getList();
+        PxTrainingClassVo data = list.size() > 0 ? list.get(0) : null;
+        if(data != null){
+            data.setUserList(pxTrainingClassCQuery.selectTrainingClassUserList(data.getId()));
+        }
+        return data;
+    }
+
+    @Override
+    public int save(PxTrainingClassVo data, String userId) {
+        int result = 0;
+        PxTrainingClass dbModel = pxTrainingClassMapper.selectByPrimaryKey(data.getId());
+        if (dbModel == null) {
+            dbModel = new PxTrainingClassVo();
+            dbModel.setId(data.getId());
+            dbModel.setDzzdm(data.getDzzdm());
+            dbModel.setBeginDate(data.getBeginDate());
+            dbModel.setEndDate(data.getEndDate());
+            dbModel.setAddress(data.getAddress());
+            dbModel.setDepartment(data.getDepartment());
+            dbModel.setContactName(data.getContactName());
+            dbModel.setPhone(data.getPhone());
+            dbModel.setContent(data.getContent());
+            dbModel.setCreateTime(new Date());
+            dbModel.setCreateUserid(userId);
+            dbModel.setUpdateTime(new Date());
+            dbModel.setUpdateUserid(userId);
+
+            result = pxTrainingClassMapper.insert(dbModel);
+        } else {
+            dbModel.setDzzdm(data.getDzzdm());
+            dbModel.setBeginDate(data.getBeginDate());
+            dbModel.setEndDate(data.getEndDate());
+            dbModel.setAddress(data.getAddress());
+            dbModel.setDepartment(data.getDepartment());
+            dbModel.setContactName(data.getContactName());
+            dbModel.setPhone(data.getPhone());
+            dbModel.setContent(data.getContent());
+            dbModel.setUpdateTime(new Date());
+            dbModel.setUpdateUserid(userId);
+
+            result = pxTrainingClassMapper.updateByPrimaryKey(dbModel);
+        }
+
+        PxTrainingClassUserExample userExp = new PxTrainingClassUserExample();
+        userExp.or().andTrainingClassIdEqualTo(data.getId());
+        pxTrainingClassUserMapper.deleteByExample(userExp);
+        if(data.getUserList().size() > 0){
+            data.getUserList().forEach(item -> {
+                PxTrainingClassUser userModel = new PxTrainingClassUser();
+                userModel.setTrainingClassId(data.getId());
+                userModel.setId(UUID.randomUUID().toString());
+                userModel.setUserNo(item.getUserNo());
+                userModel.setUserName(item.getUserName());
+                userModel.setGenderId(item.getGenderId());
+                userModel.setPhone(item.getPhone());
+                userModel.setCreateTime(new Date());
+                userModel.setCreateUserid(userId);
+
+                pxTrainingClassUserMapper.insert(userModel);
+            });
+        }
+
+        return result;
+    }
+
+    @Override
+    public int delete(List<String> idList) {
+        PxTrainingClassExample exp = new PxTrainingClassExample();
+        exp.or().andIdIn(idList);
+
+        PxTrainingClassUserExample userExp = new PxTrainingClassUserExample();
+        userExp.or().andTrainingClassIdIn(idList);
+        pxTrainingClassUserMapper.selectByExample(userExp);
+
+        PxTrainingClassCourseExample courseExp = new PxTrainingClassCourseExample();
+        courseExp.or().andTrainingClassIdIn(idList);
+        pxTrainingClassCourseMapper.deleteByExample(courseExp);
+
+        return pxTrainingClassMapper.deleteByExample(exp);
+    }
+}

+ 12 - 0
src/main/java/com/ghsc/partybuild/vo/trian/PxTrainingClassUserVo.java

@@ -0,0 +1,12 @@
+package com.ghsc.partybuild.vo.trian;
+
+import com.ghsc.partybuild.model.PxTrainingClassUser;
+import lombok.Data;
+
+
+@Data
+public class PxTrainingClassUserVo extends PxTrainingClassUser {
+    public String dzzmc;
+    public String gender;
+    public String trainingClassName;
+}

+ 16 - 0
src/main/java/com/ghsc/partybuild/vo/trian/PxTrainingClassVo.java

@@ -0,0 +1,16 @@
+package com.ghsc.partybuild.vo.trian;
+
+import com.ghsc.partybuild.model.PxTrainingClass;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class PxTrainingClassVo extends PxTrainingClass {
+    public String dzzmc;
+    public Integer courseCount;
+    public Integer userCount;
+    public Integer dateDiffDay;
+    public String createUserName;
+    public List<PxTrainingClassUserVo> userList;
+}

+ 3 - 1
src/main/resources/generatorConfig.xml

@@ -283,7 +283,9 @@
         <table schema="" tableName="pf_jljyxxyhd_fb"></table>
         <table schema="" tableName="pub_dzzfc"></table>
         <table schema="" tableName="px_training_record"></table>
-
+        <table schema="" tableName="px_training_class"></table>
+        <table schema="" tableName="px_training_class_user"></table>
+        <table schema="" tableName="px_training_class_course"></table>
         -->
     </context>
 </generatorConfiguration>

+ 76 - 0
src/main/resources/mapping/PxTrainingClassCQuery.xml

@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.ghsc.partybuild.mapper.PxTrainingClassCQuery">
+    <resultMap id="BaseResultMap" type="com.ghsc.partybuild.vo.trian.PxTrainingClassVo">
+        <id column="id" jdbcType="VARCHAR" property="id" />
+        <result column="dzzdm" jdbcType="VARCHAR" property="dzzdm" />
+        <result column="training_class_name" jdbcType="VARCHAR" property="trainingClassName" />
+        <result column="begin_date" jdbcType="TIMESTAMP" property="beginDate" />
+        <result column="end_date" jdbcType="TIMESTAMP" property="endDate" />
+        <result column="address" jdbcType="VARCHAR" property="address" />
+        <result column="department" jdbcType="VARCHAR" property="department" />
+        <result column="contact_name" jdbcType="VARCHAR" property="contactName" />
+        <result column="phone" jdbcType="VARCHAR" property="phone" />
+        <result column="content" jdbcType="VARCHAR" property="content" />
+        <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
+        <result column="create_userid" jdbcType="VARCHAR" property="createUserid" />
+        <result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
+        <result column="update_userid" jdbcType="VARCHAR" property="updateUserid" />
+        <result column="dzzmc" jdbcType="VARCHAR" property="dzzmc" />
+        <result column="course_count" jdbcType="VARCHAR" property="courseCount" />
+        <result column="user_count" jdbcType="VARCHAR" property="userCount" />
+        <result column="date_diff_day" jdbcType="VARCHAR" property="dateDiffDay" />
+        <result column="create_user_name" jdbcType="VARCHAR" property="createUserName" />
+    </resultMap>
+    <select id="selectPxTrainingClassList" resultMap="BaseResultMap">
+        select ptc.id, ptc.dzzdm, ptc.training_class_name, ptc.begin_date, ptc.end_date,
+        ptc.address, ptc.department, ptc.contact_name, ptc.phone, ptc.content,
+        ptc.create_time, ptc.create_userid, ptc.update_time, ptc.update_userid,
+        ptcu.user_count, ptcc.course_count, DATEDIFF(ptc.begin_date,ptc.end_date) as date_diff_day,
+        cu.USERNAME as create_user_name
+        from px_training_class ptc
+        left join (select training_class_id,count(0) as user_count from px_training_class_user group by training_class_id) ptcu on ptc.id=ptcu.training_class_id
+        left join (select training_class_id,count(0) as course_count from px_training_class_course group by training_class_id) ptcc on ptc.id=ptcc.training_class_id
+        left join cf_users cu on ptc.create_userid = cu.USERID
+        where 1=1
+        <if test="id != null and id != ''">
+            and ptc.id = #{id}
+        </if>
+        <if test="dzzdm != null and dzzdm != ''">
+            and ptc.dzzdm like concat('%',#{dzzdm},'%')
+        </if>
+        <if test="trainingClassName != null and trainingClassName != ''">
+            and ptc.training_class_name like concat('%',#{trainingClassName},'%')
+        </if>
+        <choose>
+            <when test="startDate!=null and endDate!=null ">
+                and (ptc.begin_date <![CDATA[ <= ]]> #{endDate} and ptc.end_date <![CDATA[ >= ]]> #{startDate})
+            </when>
+            <when test="startDate!=null">
+                and ptc.begin_date <![CDATA[ >= ]]> #{startDate}
+            </when>
+            <when test="endDate!=null">
+                and ptc.end_date <![CDATA[ <= ]]> #{endDate}
+            </when>
+        </choose>
+        order by ptc.createTime desc
+    </select>
+    <select id="selectAddressList" resultType="java.lang.String">
+        select c.address
+        from px_training_class c
+        where c.create_userid = #{userId}
+          and c.address is not null
+        group by c.address
+        order by max(c.create_time) desc
+    </select>
+    <select id="selectTrainingClassUserList" resultType="com.ghsc.partybuild.vo.trian.PxTrainingClassUserVo">
+        select ptcu.id, ptcu.training_class_id, ptcu.dzzdm, ptcu.user_no,
+               ptcu.user_name, ptcu.gender_id, ptcu.phone, ptcu.create_time,
+               ptcu.create_userid, ptcu.update_time, ptcu.update_userid ,
+               zz.dzzmc
+        from px_training_class_user ptcu
+                 left join zz_zzqkxx zz on ptcu.dzzdm = zz.dzzdm
+        where ptcu.training_class_id = #{trainingClassId}
+        order by ptcu.create_time
+    </select>
+</mapper>

+ 276 - 0
src/main/resources/mapping/PxTrainingClassCourseMapper.xml

@@ -0,0 +1,276 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ghsc.partybuild.mapper.PxTrainingClassCourseMapper">
+  <resultMap id="BaseResultMap" type="com.ghsc.partybuild.model.PxTrainingClassCourse">
+    <id column="id" jdbcType="VARCHAR" property="id" />
+    <result column="training_class_id" jdbcType="VARCHAR" property="trainingClassId" />
+    <result column="course_name" jdbcType="VARCHAR" property="courseName" />
+    <result column="teacher" jdbcType="VARCHAR" property="teacher" />
+    <result column="training_time" jdbcType="TIMESTAMP" property="trainingTime" />
+    <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
+    <result column="create_userid" jdbcType="VARCHAR" property="createUserid" />
+    <result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
+    <result column="update_userid" jdbcType="VARCHAR" property="updateUserid" />
+  </resultMap>
+  <sql id="Example_Where_Clause">
+    <where>
+      <foreach collection="oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Update_By_Example_Where_Clause">
+    <where>
+      <foreach collection="example.oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Base_Column_List">
+    id, training_class_id, course_name, teacher, training_time, create_time, create_userid, 
+    update_time, update_userid
+  </sql>
+  <select id="selectByExample" parameterType="com.ghsc.partybuild.model.PxTrainingClassCourseExample" resultMap="BaseResultMap">
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from px_training_class_course
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+  </select>
+  <select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">
+    select 
+    <include refid="Base_Column_List" />
+    from px_training_class_course
+    where id = #{id,jdbcType=VARCHAR}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.String">
+    delete from px_training_class_course
+    where id = #{id,jdbcType=VARCHAR}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.ghsc.partybuild.model.PxTrainingClassCourseExample">
+    delete from px_training_class_course
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.ghsc.partybuild.model.PxTrainingClassCourse">
+    insert into px_training_class_course (id, training_class_id, course_name, 
+      teacher, training_time, create_time, 
+      create_userid, update_time, update_userid
+      )
+    values (#{id,jdbcType=VARCHAR}, #{trainingClassId,jdbcType=VARCHAR}, #{courseName,jdbcType=VARCHAR}, 
+      #{teacher,jdbcType=VARCHAR}, #{trainingTime,jdbcType=TIMESTAMP}, #{createTime,jdbcType=TIMESTAMP}, 
+      #{createUserid,jdbcType=VARCHAR}, #{updateTime,jdbcType=TIMESTAMP}, #{updateUserid,jdbcType=VARCHAR}
+      )
+  </insert>
+  <insert id="insertSelective" parameterType="com.ghsc.partybuild.model.PxTrainingClassCourse">
+    insert into px_training_class_course
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        id,
+      </if>
+      <if test="trainingClassId != null">
+        training_class_id,
+      </if>
+      <if test="courseName != null">
+        course_name,
+      </if>
+      <if test="teacher != null">
+        teacher,
+      </if>
+      <if test="trainingTime != null">
+        training_time,
+      </if>
+      <if test="createTime != null">
+        create_time,
+      </if>
+      <if test="createUserid != null">
+        create_userid,
+      </if>
+      <if test="updateTime != null">
+        update_time,
+      </if>
+      <if test="updateUserid != null">
+        update_userid,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        #{id,jdbcType=VARCHAR},
+      </if>
+      <if test="trainingClassId != null">
+        #{trainingClassId,jdbcType=VARCHAR},
+      </if>
+      <if test="courseName != null">
+        #{courseName,jdbcType=VARCHAR},
+      </if>
+      <if test="teacher != null">
+        #{teacher,jdbcType=VARCHAR},
+      </if>
+      <if test="trainingTime != null">
+        #{trainingTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="createTime != null">
+        #{createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="createUserid != null">
+        #{createUserid,jdbcType=VARCHAR},
+      </if>
+      <if test="updateTime != null">
+        #{updateTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="updateUserid != null">
+        #{updateUserid,jdbcType=VARCHAR},
+      </if>
+    </trim>
+  </insert>
+  <select id="countByExample" parameterType="com.ghsc.partybuild.model.PxTrainingClassCourseExample" resultType="java.lang.Long">
+    select count(*) from px_training_class_course
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </select>
+  <update id="updateByExampleSelective" parameterType="map">
+    update px_training_class_course
+    <set>
+      <if test="record.id != null">
+        id = #{record.id,jdbcType=VARCHAR},
+      </if>
+      <if test="record.trainingClassId != null">
+        training_class_id = #{record.trainingClassId,jdbcType=VARCHAR},
+      </if>
+      <if test="record.courseName != null">
+        course_name = #{record.courseName,jdbcType=VARCHAR},
+      </if>
+      <if test="record.teacher != null">
+        teacher = #{record.teacher,jdbcType=VARCHAR},
+      </if>
+      <if test="record.trainingTime != null">
+        training_time = #{record.trainingTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="record.createTime != null">
+        create_time = #{record.createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="record.createUserid != null">
+        create_userid = #{record.createUserid,jdbcType=VARCHAR},
+      </if>
+      <if test="record.updateTime != null">
+        update_time = #{record.updateTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="record.updateUserid != null">
+        update_userid = #{record.updateUserid,jdbcType=VARCHAR},
+      </if>
+    </set>
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExample" parameterType="map">
+    update px_training_class_course
+    set id = #{record.id,jdbcType=VARCHAR},
+      training_class_id = #{record.trainingClassId,jdbcType=VARCHAR},
+      course_name = #{record.courseName,jdbcType=VARCHAR},
+      teacher = #{record.teacher,jdbcType=VARCHAR},
+      training_time = #{record.trainingTime,jdbcType=TIMESTAMP},
+      create_time = #{record.createTime,jdbcType=TIMESTAMP},
+      create_userid = #{record.createUserid,jdbcType=VARCHAR},
+      update_time = #{record.updateTime,jdbcType=TIMESTAMP},
+      update_userid = #{record.updateUserid,jdbcType=VARCHAR}
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="com.ghsc.partybuild.model.PxTrainingClassCourse">
+    update px_training_class_course
+    <set>
+      <if test="trainingClassId != null">
+        training_class_id = #{trainingClassId,jdbcType=VARCHAR},
+      </if>
+      <if test="courseName != null">
+        course_name = #{courseName,jdbcType=VARCHAR},
+      </if>
+      <if test="teacher != null">
+        teacher = #{teacher,jdbcType=VARCHAR},
+      </if>
+      <if test="trainingTime != null">
+        training_time = #{trainingTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="createTime != null">
+        create_time = #{createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="createUserid != null">
+        create_userid = #{createUserid,jdbcType=VARCHAR},
+      </if>
+      <if test="updateTime != null">
+        update_time = #{updateTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="updateUserid != null">
+        update_userid = #{updateUserid,jdbcType=VARCHAR},
+      </if>
+    </set>
+    where id = #{id,jdbcType=VARCHAR}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.ghsc.partybuild.model.PxTrainingClassCourse">
+    update px_training_class_course
+    set training_class_id = #{trainingClassId,jdbcType=VARCHAR},
+      course_name = #{courseName,jdbcType=VARCHAR},
+      teacher = #{teacher,jdbcType=VARCHAR},
+      training_time = #{trainingTime,jdbcType=TIMESTAMP},
+      create_time = #{createTime,jdbcType=TIMESTAMP},
+      create_userid = #{createUserid,jdbcType=VARCHAR},
+      update_time = #{updateTime,jdbcType=TIMESTAMP},
+      update_userid = #{updateUserid,jdbcType=VARCHAR}
+    where id = #{id,jdbcType=VARCHAR}
+  </update>
+</mapper>

+ 353 - 0
src/main/resources/mapping/PxTrainingClassMapper.xml

@@ -0,0 +1,353 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ghsc.partybuild.mapper.PxTrainingClassMapper">
+  <resultMap id="BaseResultMap" type="com.ghsc.partybuild.model.PxTrainingClass">
+    <id column="id" jdbcType="VARCHAR" property="id" />
+    <result column="dzzdm" jdbcType="VARCHAR" property="dzzdm" />
+    <result column="training_class_name" jdbcType="VARCHAR" property="trainingClassName" />
+    <result column="begin_date" jdbcType="TIMESTAMP" property="beginDate" />
+    <result column="end_date" jdbcType="TIMESTAMP" property="endDate" />
+    <result column="address" jdbcType="VARCHAR" property="address" />
+    <result column="department" jdbcType="VARCHAR" property="department" />
+    <result column="contact_name" jdbcType="VARCHAR" property="contactName" />
+    <result column="phone" jdbcType="VARCHAR" property="phone" />
+    <result column="content" jdbcType="VARCHAR" property="content" />
+    <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
+    <result column="create_userid" jdbcType="VARCHAR" property="createUserid" />
+    <result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
+    <result column="update_userid" jdbcType="VARCHAR" property="updateUserid" />
+  </resultMap>
+  <sql id="Example_Where_Clause">
+    <where>
+      <foreach collection="oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Update_By_Example_Where_Clause">
+    <where>
+      <foreach collection="example.oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Base_Column_List">
+    id, dzzdm, training_class_name, begin_date, end_date, address, department, contact_name, 
+    phone, content, create_time, create_userid, update_time, update_userid
+  </sql>
+  <select id="selectByExample" parameterType="com.ghsc.partybuild.model.PxTrainingClassExample" resultMap="BaseResultMap">
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from px_training_class
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+  </select>
+  <select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">
+    select 
+    <include refid="Base_Column_List" />
+    from px_training_class
+    where id = #{id,jdbcType=VARCHAR}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.String">
+    delete from px_training_class
+    where id = #{id,jdbcType=VARCHAR}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.ghsc.partybuild.model.PxTrainingClassExample">
+    delete from px_training_class
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.ghsc.partybuild.model.PxTrainingClass">
+    insert into px_training_class (id, dzzdm, training_class_name, 
+      begin_date, end_date, address, 
+      department, contact_name, phone, 
+      content, create_time, create_userid, 
+      update_time, update_userid)
+    values (#{id,jdbcType=VARCHAR}, #{dzzdm,jdbcType=VARCHAR}, #{trainingClassName,jdbcType=VARCHAR}, 
+      #{beginDate,jdbcType=TIMESTAMP}, #{endDate,jdbcType=TIMESTAMP}, #{address,jdbcType=VARCHAR}, 
+      #{department,jdbcType=VARCHAR}, #{contactName,jdbcType=VARCHAR}, #{phone,jdbcType=VARCHAR}, 
+      #{content,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{createUserid,jdbcType=VARCHAR}, 
+      #{updateTime,jdbcType=TIMESTAMP}, #{updateUserid,jdbcType=VARCHAR})
+  </insert>
+  <insert id="insertSelective" parameterType="com.ghsc.partybuild.model.PxTrainingClass">
+    insert into px_training_class
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        id,
+      </if>
+      <if test="dzzdm != null">
+        dzzdm,
+      </if>
+      <if test="trainingClassName != null">
+        training_class_name,
+      </if>
+      <if test="beginDate != null">
+        begin_date,
+      </if>
+      <if test="endDate != null">
+        end_date,
+      </if>
+      <if test="address != null">
+        address,
+      </if>
+      <if test="department != null">
+        department,
+      </if>
+      <if test="contactName != null">
+        contact_name,
+      </if>
+      <if test="phone != null">
+        phone,
+      </if>
+      <if test="content != null">
+        content,
+      </if>
+      <if test="createTime != null">
+        create_time,
+      </if>
+      <if test="createUserid != null">
+        create_userid,
+      </if>
+      <if test="updateTime != null">
+        update_time,
+      </if>
+      <if test="updateUserid != null">
+        update_userid,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        #{id,jdbcType=VARCHAR},
+      </if>
+      <if test="dzzdm != null">
+        #{dzzdm,jdbcType=VARCHAR},
+      </if>
+      <if test="trainingClassName != null">
+        #{trainingClassName,jdbcType=VARCHAR},
+      </if>
+      <if test="beginDate != null">
+        #{beginDate,jdbcType=TIMESTAMP},
+      </if>
+      <if test="endDate != null">
+        #{endDate,jdbcType=TIMESTAMP},
+      </if>
+      <if test="address != null">
+        #{address,jdbcType=VARCHAR},
+      </if>
+      <if test="department != null">
+        #{department,jdbcType=VARCHAR},
+      </if>
+      <if test="contactName != null">
+        #{contactName,jdbcType=VARCHAR},
+      </if>
+      <if test="phone != null">
+        #{phone,jdbcType=VARCHAR},
+      </if>
+      <if test="content != null">
+        #{content,jdbcType=VARCHAR},
+      </if>
+      <if test="createTime != null">
+        #{createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="createUserid != null">
+        #{createUserid,jdbcType=VARCHAR},
+      </if>
+      <if test="updateTime != null">
+        #{updateTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="updateUserid != null">
+        #{updateUserid,jdbcType=VARCHAR},
+      </if>
+    </trim>
+  </insert>
+  <select id="countByExample" parameterType="com.ghsc.partybuild.model.PxTrainingClassExample" resultType="java.lang.Long">
+    select count(*) from px_training_class
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </select>
+  <update id="updateByExampleSelective" parameterType="map">
+    update px_training_class
+    <set>
+      <if test="record.id != null">
+        id = #{record.id,jdbcType=VARCHAR},
+      </if>
+      <if test="record.dzzdm != null">
+        dzzdm = #{record.dzzdm,jdbcType=VARCHAR},
+      </if>
+      <if test="record.trainingClassName != null">
+        training_class_name = #{record.trainingClassName,jdbcType=VARCHAR},
+      </if>
+      <if test="record.beginDate != null">
+        begin_date = #{record.beginDate,jdbcType=TIMESTAMP},
+      </if>
+      <if test="record.endDate != null">
+        end_date = #{record.endDate,jdbcType=TIMESTAMP},
+      </if>
+      <if test="record.address != null">
+        address = #{record.address,jdbcType=VARCHAR},
+      </if>
+      <if test="record.department != null">
+        department = #{record.department,jdbcType=VARCHAR},
+      </if>
+      <if test="record.contactName != null">
+        contact_name = #{record.contactName,jdbcType=VARCHAR},
+      </if>
+      <if test="record.phone != null">
+        phone = #{record.phone,jdbcType=VARCHAR},
+      </if>
+      <if test="record.content != null">
+        content = #{record.content,jdbcType=VARCHAR},
+      </if>
+      <if test="record.createTime != null">
+        create_time = #{record.createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="record.createUserid != null">
+        create_userid = #{record.createUserid,jdbcType=VARCHAR},
+      </if>
+      <if test="record.updateTime != null">
+        update_time = #{record.updateTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="record.updateUserid != null">
+        update_userid = #{record.updateUserid,jdbcType=VARCHAR},
+      </if>
+    </set>
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExample" parameterType="map">
+    update px_training_class
+    set id = #{record.id,jdbcType=VARCHAR},
+      dzzdm = #{record.dzzdm,jdbcType=VARCHAR},
+      training_class_name = #{record.trainingClassName,jdbcType=VARCHAR},
+      begin_date = #{record.beginDate,jdbcType=TIMESTAMP},
+      end_date = #{record.endDate,jdbcType=TIMESTAMP},
+      address = #{record.address,jdbcType=VARCHAR},
+      department = #{record.department,jdbcType=VARCHAR},
+      contact_name = #{record.contactName,jdbcType=VARCHAR},
+      phone = #{record.phone,jdbcType=VARCHAR},
+      content = #{record.content,jdbcType=VARCHAR},
+      create_time = #{record.createTime,jdbcType=TIMESTAMP},
+      create_userid = #{record.createUserid,jdbcType=VARCHAR},
+      update_time = #{record.updateTime,jdbcType=TIMESTAMP},
+      update_userid = #{record.updateUserid,jdbcType=VARCHAR}
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="com.ghsc.partybuild.model.PxTrainingClass">
+    update px_training_class
+    <set>
+      <if test="dzzdm != null">
+        dzzdm = #{dzzdm,jdbcType=VARCHAR},
+      </if>
+      <if test="trainingClassName != null">
+        training_class_name = #{trainingClassName,jdbcType=VARCHAR},
+      </if>
+      <if test="beginDate != null">
+        begin_date = #{beginDate,jdbcType=TIMESTAMP},
+      </if>
+      <if test="endDate != null">
+        end_date = #{endDate,jdbcType=TIMESTAMP},
+      </if>
+      <if test="address != null">
+        address = #{address,jdbcType=VARCHAR},
+      </if>
+      <if test="department != null">
+        department = #{department,jdbcType=VARCHAR},
+      </if>
+      <if test="contactName != null">
+        contact_name = #{contactName,jdbcType=VARCHAR},
+      </if>
+      <if test="phone != null">
+        phone = #{phone,jdbcType=VARCHAR},
+      </if>
+      <if test="content != null">
+        content = #{content,jdbcType=VARCHAR},
+      </if>
+      <if test="createTime != null">
+        create_time = #{createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="createUserid != null">
+        create_userid = #{createUserid,jdbcType=VARCHAR},
+      </if>
+      <if test="updateTime != null">
+        update_time = #{updateTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="updateUserid != null">
+        update_userid = #{updateUserid,jdbcType=VARCHAR},
+      </if>
+    </set>
+    where id = #{id,jdbcType=VARCHAR}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.ghsc.partybuild.model.PxTrainingClass">
+    update px_training_class
+    set dzzdm = #{dzzdm,jdbcType=VARCHAR},
+      training_class_name = #{trainingClassName,jdbcType=VARCHAR},
+      begin_date = #{beginDate,jdbcType=TIMESTAMP},
+      end_date = #{endDate,jdbcType=TIMESTAMP},
+      address = #{address,jdbcType=VARCHAR},
+      department = #{department,jdbcType=VARCHAR},
+      contact_name = #{contactName,jdbcType=VARCHAR},
+      phone = #{phone,jdbcType=VARCHAR},
+      content = #{content,jdbcType=VARCHAR},
+      create_time = #{createTime,jdbcType=TIMESTAMP},
+      create_userid = #{createUserid,jdbcType=VARCHAR},
+      update_time = #{updateTime,jdbcType=TIMESTAMP},
+      update_userid = #{updateUserid,jdbcType=VARCHAR}
+    where id = #{id,jdbcType=VARCHAR}
+  </update>
+</mapper>

+ 306 - 0
src/main/resources/mapping/PxTrainingClassUserMapper.xml

@@ -0,0 +1,306 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ghsc.partybuild.mapper.PxTrainingClassUserMapper">
+  <resultMap id="BaseResultMap" type="com.ghsc.partybuild.model.PxTrainingClassUser">
+    <id column="id" jdbcType="VARCHAR" property="id" />
+    <result column="training_class_id" jdbcType="VARCHAR" property="trainingClassId" />
+    <result column="dzzdm" jdbcType="VARCHAR" property="dzzdm" />
+    <result column="user_no" jdbcType="VARCHAR" property="userNo" />
+    <result column="user_name" jdbcType="VARCHAR" property="userName" />
+    <result column="gender_id" jdbcType="INTEGER" property="genderId" />
+    <result column="phone" jdbcType="VARCHAR" property="phone" />
+    <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
+    <result column="create_userid" jdbcType="VARCHAR" property="createUserid" />
+    <result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
+    <result column="update_userid" jdbcType="VARCHAR" property="updateUserid" />
+  </resultMap>
+  <sql id="Example_Where_Clause">
+    <where>
+      <foreach collection="oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Update_By_Example_Where_Clause">
+    <where>
+      <foreach collection="example.oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Base_Column_List">
+    id, training_class_id, dzzdm, user_no, user_name, gender_id, phone, create_time, 
+    create_userid, update_time, update_userid
+  </sql>
+  <select id="selectByExample" parameterType="com.ghsc.partybuild.model.PxTrainingClassUserExample" resultMap="BaseResultMap">
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from px_training_class_user
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+  </select>
+  <select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">
+    select 
+    <include refid="Base_Column_List" />
+    from px_training_class_user
+    where id = #{id,jdbcType=VARCHAR}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.String">
+    delete from px_training_class_user
+    where id = #{id,jdbcType=VARCHAR}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.ghsc.partybuild.model.PxTrainingClassUserExample">
+    delete from px_training_class_user
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.ghsc.partybuild.model.PxTrainingClassUser">
+    insert into px_training_class_user (id, training_class_id, dzzdm, 
+      user_no, user_name, gender_id, 
+      phone, create_time, create_userid, 
+      update_time, update_userid)
+    values (#{id,jdbcType=VARCHAR}, #{trainingClassId,jdbcType=VARCHAR}, #{dzzdm,jdbcType=VARCHAR}, 
+      #{userNo,jdbcType=VARCHAR}, #{userName,jdbcType=VARCHAR}, #{genderId,jdbcType=INTEGER}, 
+      #{phone,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{createUserid,jdbcType=VARCHAR}, 
+      #{updateTime,jdbcType=TIMESTAMP}, #{updateUserid,jdbcType=VARCHAR})
+  </insert>
+  <insert id="insertSelective" parameterType="com.ghsc.partybuild.model.PxTrainingClassUser">
+    insert into px_training_class_user
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        id,
+      </if>
+      <if test="trainingClassId != null">
+        training_class_id,
+      </if>
+      <if test="dzzdm != null">
+        dzzdm,
+      </if>
+      <if test="userNo != null">
+        user_no,
+      </if>
+      <if test="userName != null">
+        user_name,
+      </if>
+      <if test="genderId != null">
+        gender_id,
+      </if>
+      <if test="phone != null">
+        phone,
+      </if>
+      <if test="createTime != null">
+        create_time,
+      </if>
+      <if test="createUserid != null">
+        create_userid,
+      </if>
+      <if test="updateTime != null">
+        update_time,
+      </if>
+      <if test="updateUserid != null">
+        update_userid,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        #{id,jdbcType=VARCHAR},
+      </if>
+      <if test="trainingClassId != null">
+        #{trainingClassId,jdbcType=VARCHAR},
+      </if>
+      <if test="dzzdm != null">
+        #{dzzdm,jdbcType=VARCHAR},
+      </if>
+      <if test="userNo != null">
+        #{userNo,jdbcType=VARCHAR},
+      </if>
+      <if test="userName != null">
+        #{userName,jdbcType=VARCHAR},
+      </if>
+      <if test="genderId != null">
+        #{genderId,jdbcType=INTEGER},
+      </if>
+      <if test="phone != null">
+        #{phone,jdbcType=VARCHAR},
+      </if>
+      <if test="createTime != null">
+        #{createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="createUserid != null">
+        #{createUserid,jdbcType=VARCHAR},
+      </if>
+      <if test="updateTime != null">
+        #{updateTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="updateUserid != null">
+        #{updateUserid,jdbcType=VARCHAR},
+      </if>
+    </trim>
+  </insert>
+  <select id="countByExample" parameterType="com.ghsc.partybuild.model.PxTrainingClassUserExample" resultType="java.lang.Long">
+    select count(*) from px_training_class_user
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </select>
+  <update id="updateByExampleSelective" parameterType="map">
+    update px_training_class_user
+    <set>
+      <if test="record.id != null">
+        id = #{record.id,jdbcType=VARCHAR},
+      </if>
+      <if test="record.trainingClassId != null">
+        training_class_id = #{record.trainingClassId,jdbcType=VARCHAR},
+      </if>
+      <if test="record.dzzdm != null">
+        dzzdm = #{record.dzzdm,jdbcType=VARCHAR},
+      </if>
+      <if test="record.userNo != null">
+        user_no = #{record.userNo,jdbcType=VARCHAR},
+      </if>
+      <if test="record.userName != null">
+        user_name = #{record.userName,jdbcType=VARCHAR},
+      </if>
+      <if test="record.genderId != null">
+        gender_id = #{record.genderId,jdbcType=INTEGER},
+      </if>
+      <if test="record.phone != null">
+        phone = #{record.phone,jdbcType=VARCHAR},
+      </if>
+      <if test="record.createTime != null">
+        create_time = #{record.createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="record.createUserid != null">
+        create_userid = #{record.createUserid,jdbcType=VARCHAR},
+      </if>
+      <if test="record.updateTime != null">
+        update_time = #{record.updateTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="record.updateUserid != null">
+        update_userid = #{record.updateUserid,jdbcType=VARCHAR},
+      </if>
+    </set>
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExample" parameterType="map">
+    update px_training_class_user
+    set id = #{record.id,jdbcType=VARCHAR},
+      training_class_id = #{record.trainingClassId,jdbcType=VARCHAR},
+      dzzdm = #{record.dzzdm,jdbcType=VARCHAR},
+      user_no = #{record.userNo,jdbcType=VARCHAR},
+      user_name = #{record.userName,jdbcType=VARCHAR},
+      gender_id = #{record.genderId,jdbcType=INTEGER},
+      phone = #{record.phone,jdbcType=VARCHAR},
+      create_time = #{record.createTime,jdbcType=TIMESTAMP},
+      create_userid = #{record.createUserid,jdbcType=VARCHAR},
+      update_time = #{record.updateTime,jdbcType=TIMESTAMP},
+      update_userid = #{record.updateUserid,jdbcType=VARCHAR}
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="com.ghsc.partybuild.model.PxTrainingClassUser">
+    update px_training_class_user
+    <set>
+      <if test="trainingClassId != null">
+        training_class_id = #{trainingClassId,jdbcType=VARCHAR},
+      </if>
+      <if test="dzzdm != null">
+        dzzdm = #{dzzdm,jdbcType=VARCHAR},
+      </if>
+      <if test="userNo != null">
+        user_no = #{userNo,jdbcType=VARCHAR},
+      </if>
+      <if test="userName != null">
+        user_name = #{userName,jdbcType=VARCHAR},
+      </if>
+      <if test="genderId != null">
+        gender_id = #{genderId,jdbcType=INTEGER},
+      </if>
+      <if test="phone != null">
+        phone = #{phone,jdbcType=VARCHAR},
+      </if>
+      <if test="createTime != null">
+        create_time = #{createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="createUserid != null">
+        create_userid = #{createUserid,jdbcType=VARCHAR},
+      </if>
+      <if test="updateTime != null">
+        update_time = #{updateTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="updateUserid != null">
+        update_userid = #{updateUserid,jdbcType=VARCHAR},
+      </if>
+    </set>
+    where id = #{id,jdbcType=VARCHAR}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.ghsc.partybuild.model.PxTrainingClassUser">
+    update px_training_class_user
+    set training_class_id = #{trainingClassId,jdbcType=VARCHAR},
+      dzzdm = #{dzzdm,jdbcType=VARCHAR},
+      user_no = #{userNo,jdbcType=VARCHAR},
+      user_name = #{userName,jdbcType=VARCHAR},
+      gender_id = #{genderId,jdbcType=INTEGER},
+      phone = #{phone,jdbcType=VARCHAR},
+      create_time = #{createTime,jdbcType=TIMESTAMP},
+      create_userid = #{createUserid,jdbcType=VARCHAR},
+      update_time = #{updateTime,jdbcType=TIMESTAMP},
+      update_userid = #{updateUserid,jdbcType=VARCHAR}
+    where id = #{id,jdbcType=VARCHAR}
+  </update>
+</mapper>

+ 117 - 0
src/main/resources/static/app/main/train/trainingClass/course.html

@@ -0,0 +1,117 @@
+<titlemenu ng-if="op!=2"></titlemenu>
+<div class="dj-card">
+    <div class="dj-body" ng-style="{'max-height':defaultHeight*16+topHeight,'padding':(op==2?'0px':'20px 30px')}">
+       <div class="table-responsive list-table-panel" style="overflow-x: inherit;">
+            <div class="list-table-title weektitle">
+                <div class="table-title" style="flex: 0 0 33%;">
+                    授课课程
+                </div>
+                <div class="weeklabel" style="flex: 0 0 33%;">
+                    <i ng-if="isShowUpWeek" ng-click="upWeek()" class="material-icons">keyboard_arrow_left</i>
+                    <div class="weektext">
+                        <span>{{getDayTitle()}}</span>
+                    </div>
+                    <i ng-if="isShowNextWeek" ng-click="nextWeek()" class="material-icons">keyboard_arrow_right</i>
+                </div>
+            </div>
+            <table class="gt-table gt-table-bordered">
+                <thead>
+                <tr style="height: 50px;">
+                    <th class="text-center" style="width: 60px;"></th>
+                    <th ng-repeat="it in weekDays">
+                        {{getDayStr(it)}}
+                    </th>
+                </tr>
+                </thead>
+                <tbody>
+                <tr ng-repeat="it in trainTimes" ng-style="{height:defaultHeight?(defaultHeight+'px'):'50px'}">
+                    <td class="text-center" style="vertical-align: top !important;">{{it}}:00</td>
+                    <td id="{{pageId}}_td_trainTime0" ng-click="addCourse(it,0)" title="点击编辑" style="cursor: pointer;"></td>
+                    <td id="{{pageId}}_td_trainTime1" ng-click="addCourse(it,1)" title="点击编辑" style="cursor: pointer;"></td>
+                    <td id="{{pageId}}_td_trainTime2" ng-click="addCourse(it,2)" title="点击编辑" style="cursor: pointer;"></td>
+                    <td id="{{pageId}}_td_trainTime3" ng-click="addCourse(it,3)" title="点击编辑" style="cursor: pointer;"></td>
+                    <td id="{{pageId}}_td_trainTime4" ng-click="addCourse(it,4)" title="点击编辑" style="cursor: pointer;"></td>
+                    <td id="{{pageId}}_td_trainTime5" ng-click="addCourse(it,5)" title="点击编辑" style="cursor: pointer;"></td>
+                    <td id="{{pageId}}_td_trainTime6" ng-click="addCourse(it,6)" title="点击编辑" style="cursor: pointer;"></td>
+                </tr>
+                </tbody>
+            </table>
+        </div>
+        <div class="baseMark" ng-repeat="it in markDataList" ng-style="it.positionStyle">
+            <div class="mask" ng-class="{'askleave':isAskleave(it)}">
+                <i class="material-icons remove-mark" title="点击删除" ng-click="deleteCourse(it.pxClassCourseId)">highlight_off</i>
+                <div class="mask-content" ng-click="editCourse(it)" title="点击编辑">
+                    <div style="padding: 1.5px;height: 100%;background-color: #2553ff"></div>
+                    <div style="overflow: hidden;padding: 5px;">
+                        课程:{{it.teachcontent}}【{{it.teachername}}】<span
+                            ng-style="{'color':it.attendStatus==1?'red':''}" ng-if="it.traintype==1">【{{it.attendStatusName?it.attendStatusName:"未邀请"}}】</span>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<style>
+    .weektitle {
+        justify-content: space-between !important;
+        height: 60px !important;
+        background-color: white !important;
+    }
+
+    .weeklabel {
+        display: flex !important;
+        justify-content: center !important;
+        align-items: center !important;
+        font-size: 20px !important;
+    }
+
+    .weeklabel i {
+        cursor: pointer;
+        font-size: 30px;
+    }
+
+    .weektext {
+        margin: 0 20px;
+        font-size: 16px;
+        font-weight: bold;
+    }
+
+    .baseMark {
+        position: relative;
+        z-index: 1000;
+    }
+
+    .baseMark .mask {
+        padding: 5px 3px 3px 5px;
+        background-color: rgba(187, 219, 244, 0.5);
+        background-clip: content-box;
+        height: 100%;
+    }
+
+    .mask-content {
+        color: #2196f3;
+        text-overflow: ellipsis;
+        overflow: hidden;
+        cursor: pointer;
+        -webkit-user-select: none;
+        -moz-user-select: none;
+        -ms-user-select: none;
+        user-select: none;
+        height: 100%;
+        display: flex;
+    }
+
+    .remove-mark {
+        position: relative;
+        top: -10px;
+        float: right;
+        right: -10px;
+        color: red;
+        cursor: pointer;
+    }
+
+    .askleave{
+        background-color: #f3d6f3 !important;
+    }
+
+</style>

+ 268 - 0
src/main/resources/static/app/main/train/trainingClass/course.js

@@ -0,0 +1,268 @@
+(function ($app) {
+    $app.module('gtPartyApp').controller('pxTrainingClassCourseListCtrl', function ($scope, $http, $modal, $ocLazyLoad, $alert, $loading, $state, $bsRouterState, AuthUser, $timeout, $partySelect, $excel, $interval, $uuid) {
+        $scope.pageId = $uuid.getUUID();
+
+        $stateParams = $bsRouterState.$params($scope);
+
+        $scope.op = 1;
+        $scope.topHeight = 400;
+        //定义数据集合
+        $scope.dataModel = {
+            id: $stateParams.id == undefined ? "" : $stateParams.id,
+            dzzmc: '',
+            dzzdm: AuthUser.getUser().dwId
+        };
+
+        if ($stateParams.classCourseControllerParams != null) {
+            $scope.op = $stateParams.classCourseControllerParams.op;
+            $scope.dataModel.id = $stateParams.classCourseControllerParams.pxClassId;
+        }
+
+        if ($scope.op == 2) {
+            $scope.topHeight = 200;
+        }
+
+        $scope.courseList = [];
+        $scope.teacherList = [];
+        $scope.teacherAskleaveList = [];
+        $scope.courseTypeList = [];//课程类型
+        $scope.teacherLevelList = [];//师资级别
+        $scope.teacherTypeList = [];//师资类型
+        $scope.zjzqkTypeList = [];//专兼职师资
+
+        $scope.isInviteTeacher = false;
+
+        $scope.trainTimes = [];
+        $scope.weekDays = [];
+        $scope.weekStartDate = moment().startOf('week').add(1, 'day');
+        $scope.weekEndDate = moment($scope.weekStartDate).add(6, 'day');
+        $scope.isShowUpWeek = true;
+        $scope.isShowNextWeek = true;
+        $scope.defaultHeight = 60;
+        $scope.weekCnList = ['周日', '周一', '周二', '周三', '周四', '周五', '周六'];
+
+        $scope.getData = function () {
+            if (!$scope.dataModel.id) {
+                $scope.showMsg('错误', '无法获取数据');
+                return false;
+            }
+
+            $loading.show();
+            $http.get("../../api/train/class/getClassById", {
+                params: {
+                    'pxClassId': $scope.dataModel.id
+                }
+            }).then(function (result) {
+                $loading.hide();
+                if (result.data.success) {
+                    $scope.dataModel = result.data.item;
+
+                    $scope.weekStartDate = moment($scope.dataModel.startdate).startOf('week').add(1, 'day');
+                    $scope.weekEndDate = moment($scope.weekStartDate).add(6, 'day');
+
+                    $scope.getTrainTimes();
+                    $scope.getCourseList();
+                    $scope.getTeacherAskleaveList();
+                    $scope.loadCourseTypes();
+                    $scope.loadTeacherLevels();
+                    $scope.loadZjzqkTypes();
+                    $scope.getTeacherTypeList();
+                    $scope.loadTeacherAreas();
+                }
+            }, function () {
+                $loading.hide();
+                $scope.showMsg('错误', '服务器错误');
+            });
+        };
+
+        $scope.setMarks = function () {
+            $scope.markDataList = $scope.courseList.filter(it => $scope.weekStartDate <= moment(it.traintime) && moment(moment(it.traintime).format("YYYY-MM-DD")) <= $scope.weekEndDate);
+
+            if ($scope.markDataList.length <= 0)
+                return false;
+
+            $scope.weekDayWidths = [];
+            $scope.weekDays.forEach((it, index) => {
+                $scope.weekDayWidths.push($("#" + $scope.pageId + "_td_trainTime" + index).width() + 22);
+            });
+
+            var hours = 0;
+
+            $scope.markDataList.forEach((it, index) => {
+                it.positionStyle = {left: "0", top: "0", width: "0", height: "0"};
+
+                var startTime = moment(it.traintime);
+                var hourStr = moment(startTime).format("HH");
+                var minute = moment(startTime).minute();
+                var hourIndex = $scope.trainTimes.indexOf(hourStr);
+                var dayIndex = $scope.weekDays.map(it => {
+                    return moment(it).format("YYYY-MM-DD")
+                }).indexOf(moment(it.traintime).format("YYYY-MM-DD"));
+
+                it.positionStyle.height = it.trainhours * $scope.defaultHeight + "px";
+                it.positionStyle.width = $scope.weekDayWidths[dayIndex] + "px";
+                it.positionStyle.top = -$scope.defaultHeight * (16 + hours - hourIndex - Math.round((minute / 60) * 100) / 100) + "px";
+                var left = 60;
+                for (var i = 0; i < dayIndex; i++) {
+                    left += $scope.weekDayWidths[i];
+                }
+                it.positionStyle.left = left + "px";
+
+                hours += it.trainhours;
+            });
+        };
+
+        $scope.getTrainTimes = function () {
+            if ($scope.weekStartDate == null)
+                return false;
+
+            var statrTime = 8;
+            var endTime = 23;
+
+            for (var i = statrTime; i <= endTime; i++) {
+                $scope.trainTimes.push(moment($scope.weekStartDate).add(i, "hour").format("HH"));
+            }
+
+            $scope.getWeekDays();
+        };
+
+        $scope.getWeekDays = function () {
+            if ($scope.weekStartDate == null)
+                return false;
+
+            $scope.weekDays = [];
+            for (var i = 0; i < 7; i++) {
+                $scope.weekDays.push(moment($scope.weekStartDate).add(i, 'day'));
+            }
+        };
+
+        $scope.upWeek = function () {
+            $scope.weekStartDate = moment($scope.weekStartDate).add(-7, 'day');
+            $scope.weekEndDate = moment($scope.weekStartDate).add(6, 'day');
+            $scope.getWeekDays();
+        };
+
+        $scope.nextWeek = function () {
+            $scope.weekStartDate = moment($scope.weekStartDate).add(7, 'day');
+            $scope.weekEndDate = moment($scope.weekStartDate).add(6, 'day');
+            $scope.getWeekDays();
+        };
+
+        $scope.getDayStr = function (date) {
+            const week = moment(date).day();
+            return (moment(date).month() + 1) + '/' + moment(date).date() + "  " + $scope.weekCnList[week];
+        };
+
+        $scope.getDayTitle = function () {
+            return (moment($scope.weekStartDate).year() + "年" + (moment($scope.weekStartDate).month() + 1) + "月" + moment($scope.weekStartDate).date() + "日")
+                + "  -  "
+                + (moment($scope.weekStartDate).year() === moment($scope.weekEndDate).year() ? ((moment($scope.weekEndDate).month() + 1) + "月" + moment($scope.weekEndDate).date() + "日")
+                    : (moment($scope.weekEndDate).year() + "年" + (moment($scope.weekEndDate).month() + 1) + "月" + moment($scope.weekEndDate).date() + "日"))
+        };
+
+        $scope.addCourse = function (h, index) {
+            classCourseEditCtrl.$inject = ['$scope', '$http', '$alert', '$loading', 'AuthUser'];
+            classCourseEditModal = $modal({
+                resolve: {
+                    load: ['$ocLazyLoad', function ($ocLazyLoad) {
+                    }]
+                },
+                scope: $scope,
+                controller: classCourseEditCtrl,
+                templateUrl: '../main/train/classManage/class/courseEdit.html',
+                show: false,
+                animation: 'am-fade-and-slide-top'
+            });
+
+            classCourseEditModal.params = {
+                defaultDate: moment($scope.weekDays[index]).add(h, 'hour'),
+                pxClassCourseId: '',
+                pxClassId: $scope.dataModel.pxClassId,
+                courseTypeList: $scope.courseTypeList,
+                teacherLevelList: $scope.teacherLevelList,
+                teacherTypeList: $scope.teacherTypeList,
+                zjzqkTypeList: $scope.zjzqkTypeList,
+                teacherAreaList: $scope.teacherAreaList
+            };
+            classCourseEditModal.parentLoad = $scope.getCourseList;
+            classCourseEditModal.$promise.then(classCourseEditModal.show);
+        };
+
+        $scope.editCourse = function (item) {
+            classCourseEditCtrl.$inject = ['$scope', '$http', '$alert', '$loading', 'AuthUser'];
+            classCourseEditModal = $modal({
+                resolve: {
+                    load: ['$ocLazyLoad', function ($ocLazyLoad) {
+                    }]
+                },
+                scope: $scope,
+                controller: classCourseEditCtrl,
+                templateUrl: '../main/train/classManage/class/courseEdit.html',
+                show: false,
+                animation: 'am-fade-and-slide-top'
+            });
+
+            classCourseEditModal.params = {
+                pxClassId: $scope.dataModel.pxClassId,
+                pxClassCourseId: item.pxClassCourseId,
+                courseTypeList: $scope.courseTypeList,
+                teacherAreaList: $scope.teacherAreaList
+            };
+            classCourseEditModal.parentLoad = $scope.getCourseList;
+            classCourseEditModal.$promise.then(classCourseEditModal.show);
+        };
+
+        $scope.deleteCourse = function (id) {
+            if (confirm("确定删除?")) {
+                $loading.show();
+                $http({
+                    url: "../../api/train/class/deleteClassCourse",
+                    method: 'post',
+                    data: id
+                }).then(function (result) {
+                    $loading.hide();
+                    if (result.data.success) {
+                        $scope.showMsg("成功", "删除成功");
+                        $scope.getCourseList();
+                    } else {
+                        $scope.showMsg("失败", result.data.msg);
+                    }
+                }, function (resp) {
+                    $loading.hide();
+                    $scope.showMsg('错误', '服务器错误,' + resp.data.message);
+                });
+            }
+        };
+
+        $scope.isAskleave = function (item) {
+            var startHour = moment(item.traintime).hour();
+            var endHour = moment(item.traintime).add(item.trainhours, 'hour').hour();
+            var askLeaveList = $scope.teacherAskleaveList.filter(it => moment(it.askleavedate).format("YYYY-MM-DD") === moment(item.traintime).format("YYYY-MM-DD") && item.teacherCode === it.userno)
+
+            if (startHour >= 0 && startHour <= 12 && endHour >= 13 && endHour <= 23) {
+                return askLeaveList.length > 0;
+            } else if (endHour >= 1 && endHour <= 12) {
+                return askLeaveList.filter(it => it.askleavetimetype == 1).length > 0;
+            } else {
+                return askLeaveList.filter(it => it.askleavetimetype == 2).length > 0;
+            }
+
+        };
+
+        //定时器
+        var timer = $interval(function () {
+            if ($("#" + $scope.pageId + "_td_trainTime1").width()) {
+                $scope.setMarks();
+            }
+        }, 500);
+
+        //加载数据
+        $scope.getData();
+
+        $scope.pagechange = function () {
+            $bsRouterState.$closeTab($scope);
+            $bsRouterState.go('home.px_classlist');
+        };
+
+    });
+})(angular);

+ 87 - 0
src/main/resources/static/app/main/train/trainingClass/courseEdit.html

@@ -0,0 +1,87 @@
+<div class="modal" tabindex="-1" role="dialog">
+    <div class="modal-dialog" style="width: 800px;height: 400px;">
+        <div class="card">
+            <div class="header">
+                <button type="button" class="close" ng-click="$hide()">&times;</button>
+                <h4 class="modal-title">课程安排</h4>
+            </div>
+            <div class="body">
+                <form role="form" name="editForm" novalidate>
+                    <div class="dj-formtable">
+                        <table class="dj-table dj-table2">
+                            <tr>
+                                <th>授课时间</th>
+                                <td ng-class="{ 'has-error' : this.editForm.traintime.$invalid &&  this.editForm.$submitted}">
+                                    <input name="traintime" class="form-control"
+                                           autocomplete="off"
+                                           autoclose="true"
+                                           format="yyyy-mm-dd hh:ii" data-date-type="date"
+                                           data-min-view="0"
+                                           ng-model="classCourseModel.traintime"
+                                           placeholder="" bs-datetimepicker style="width: 150px;"/>
+                                </td>
+                            </tr>
+                            <tr>
+                                <th>课程类别</th>
+                                <td ng-class="{ 'has-error' : this.editForm.traintype.$invalid &&  this.editForm.$submitted}">
+                                    <select class="form-control show-tick"
+                                            ng-model="classCourseModel.traintype"
+                                            ng-options="type.dickey as type.dicvalue for type in trainCourseTypeList"
+                                            class="form-control"
+                                            name="traintype"
+                                            ng-required="true" ng-change="trainTypeChange(it)" style="width: 250px;">
+                                        <option value="" selected>--请选择--</option>
+                                    </select>
+                                </td>
+                            </tr>
+                            <tr>
+                                <th>课程名称</th>
+                                <td ng-class="{ 'has-error' : this.editForm.teachcontent.$invalid &&  this.editForm.$submitted}">
+                                    <div style="display: flex;justify-content: space-between;padding: 3px 0;">
+                                        <input type="text" autocomplete="off" class="form-control" name="teachcontent"
+                                               ng-model="classCourseModel.teachcontent" ng-required="true"
+                                               ng-disabled="classCourseModel.traintype==1"/>
+                                        <button ng-if="classCourseModel.traintype==1" data-dataoptions="selectCourse"
+                                                bsselectdata-pro
+                                                style="width: 100px;padding-left: 10px;height: 28px;line-height: 24px !important;">
+                                            选择课程
+                                        </button>
+                                    </div>
+                                </td>
+                            </tr>
+                            <tr>
+                                <th>培训课时</th>
+                                <td ng-class="{ 'has-error' : this.editForm.trainhours.$invalid &&  this.editForm.$submitted}">
+                                    <input type="number" min="0" step="0.5" autocomplete="off" class="form-control"
+                                           name="trainhours"
+                                           ng-model="classCourseModel.trainhours" ng-required="true"
+                                           style="width: 150px;"/>
+                                </td>
+                            </tr>
+                            <tr>
+                                <th>主持人/负责人</th>
+                                <td ng-class="{ 'has-error' : this.editForm.teachername.$invalid &&  this.editForm.$submitted}">
+                                    <input ng-if="classCourseModel.traintype==2 || classCourseModel.traintype==3" type="text" autocomplete="off"
+                                           class="form-control" name="teachername"
+                                           ng-model="classCourseModel.teachername" ng-required="true"/>
+                                    <div ng-if="classCourseModel.traintype==1">
+                                        <span>{{classCourseModel.teacherPartyName}}</span>
+                                        <br>
+                                        <div>
+                                            <span>{{classCourseModel.teachername}}&nbsp;&nbsp;&nbsp;</span>
+                                            <span ng-if="classCourseModel.teacherPosition">职务&nbsp;&nbsp;{{classCourseModel.teacherPosition}}</span>
+                                        </div>
+                                    </div>
+                                </td>
+                            </tr>
+                        </table>
+                    </div>
+                    <div class="form_foot">
+                        <button type="button" class="btn btn-default" ng-click="$hide()">取消</button>
+                        <button type="submit" class="btn btn-default1" ng-click="save(this.editForm.$valid)">提交</button>
+                    </div>
+                </form>
+            </div>
+        </div>
+    </div>
+</div>

+ 138 - 0
src/main/resources/static/app/main/train/trainingClass/courseEdit.js

@@ -0,0 +1,138 @@
+var classCourseEditCtrl = function ($scope, $http, $alert, $loading, AuthUser) {
+    $scope.parentLoad = classCourseEditModal.parentLoad;
+    $scope.classCourseModel = {pxClassCourseId: classCourseEditModal.params.pxClassCourseId};
+    $scope.defaultDate = classCourseEditModal.params.defaultDate;
+    $scope.pxClassId = classCourseEditModal.params.pxClassId;
+    $scope.trainCourseTypeList = [];
+    $scope.courseTypeList = classCourseEditModal.params.courseTypeList;
+    $scope.teacherLevelList = classCourseEditModal.params.teacherLevelList;
+    $scope.teacherTypeList = classCourseEditModal.params.teacherTypeList;
+    $scope.zjzqkTypeList = classCourseEditModal.params.zjzqkTypeList;
+    $scope.teacherAreaList = classCourseEditModal.params.teacherAreaList;
+    $scope.isAdd = !classCourseEditModal.params.pxClassCourseId;
+
+    $scope.getClassCourse = function () {
+        $loading.show();
+        $http
+        ({
+            method: 'get', url: "../../api/train/class/getPxClassCourseById",
+            params: {
+                pxClassId: $scope.pxClassId,
+                pxClassCourseId: $scope.classCourseModel.pxClassCourseId,
+            }
+        }).then(function (result) {
+            $loading.hide();
+            if (result.data.success) {
+                $scope.classCourseModel = result.data.item;
+                if ($scope.isAdd)
+                    $scope.classCourseModel.traintime = moment($scope.defaultDate).format("YYYY-MM-DD HH:mm");
+            } else {
+                $scope.showMsg('失败', result.data.msg);
+            }
+        }, function (resp) {
+            $loading.hide();
+            $scope.showMsg('错误', '服务器错误:' + resp.data);
+        });
+    };
+
+    $scope.save = function (isflag) {
+        $scope.classCourseModel.pxClassId = $scope.pxClassId;
+        if (!isflag) {
+            $scope.showMsg('提示', '请填写相关信息');
+            return false;
+        }
+        if (isflag) {
+            $loading.show();
+            $http({
+                method: "post",
+                url: "../../api/train/class/saveClassCourseSingle",
+                data: $scope.classCourseModel
+            }).then(function (result) {
+                $loading.hide();
+                if (result.data.success) {
+                    $scope.showMsg('成功', result.data.msg);
+                    $scope.parentLoad();
+                    $scope.$hide();
+                } else {
+                    $scope.showMsg('失败', result.data.msg);
+                }
+            }, function (resp) {
+                $loading.hide();
+                $scope.showMsg('错误', '服务器错误:' + resp);
+            });
+        }
+    };
+
+    $scope.trainTypeChange = function () {
+        $scope.classCourseModel.courseId = "";
+        $scope.classCourseModel.teachcontent = "";
+        $scope.classCourseModel.teachername = "";
+    };
+
+    //选择课程
+    $scope.selectCourse = {
+        url: '../../api/train/class/getCourseLibList',
+        title: '选择课程',
+        isMulti: false,
+        selectData: {coursename: '课程名称', teachername: '师资姓名'},
+        columns: {
+            COURSENAME: '课程名称',
+            COURSETYPENAME: '课程分类',
+            CLASSHOUR: '课时',
+            DZZMC: '所属单位',
+            TEACHERNAME: "师资姓名",
+            ZW: "职务",
+            TEACHERLEVEL: "师资级别",
+            TEACHERAREANAMES: '授课区域'
+        },
+        selectLabelKey: 'COURSENAME',
+        selectValuekey: 'COURSEID',
+        selectedValueData: '',
+        selectedLabeData: '',
+        selectedJData: [],
+        comboxData: {
+            coursetype: {text: '课程分类', data: $scope.courseTypeList},
+            teacherLevel: {text: '师资级别', data: $scope.teacherLevelList},
+            teacherType: {text: '师资类型', data: $scope.teacherTypeList},
+            zjzqk: {text: '专兼职情况', data: $scope.zjzqkTypeList}
+        },
+        checkboxData: {key: 'teacherArea', value: $scope.teacherAreaList},
+        selectParams: {
+            /*selectdzzdm: AuthUser.getUser().DataDzzdm.length < AuthUser.getUser().dwId ? AuthUser.getUser().DataDzzdm : AuthUser.getUser().dwId*/
+        },
+        onSelect: function (value, items) {
+            if (items) {
+                $scope.classCourseModel.courseId = items.COURSEID;
+                $scope.classCourseModel.teachcontent = items.COURSENAME;
+                $scope.classCourseModel.teachername = items.TEACHERNAME;
+                $scope.classCourseModel.teacherPartyName = items.DZZMC;
+                $scope.classCourseModel.teacherPosition = items.ZW;
+                $scope.classCourseModel.trainhours = items.CLASSHOUR;
+            }
+        }
+    };
+
+
+    //获取字典数据
+    $scope.getTrainCourseTypeList = function () {
+        $http({
+            method: 'get',
+            url: '../../api/dictionary/getDictionaryListByDicTypeKey',
+            params: {
+                dicTypeKey: 'TrainCourseType'
+            }
+        }).then(function (result) {
+            $scope.trainCourseTypeList = result.data;
+        }, function (resp) {
+
+        });
+    };
+
+    $scope.getTrainCourseTypeList();
+    $scope.getClassCourse();
+
+
+};
+
+//定义模态框
+var classCourseEditModal;

+ 200 - 0
src/main/resources/static/app/main/train/trainingClass/edit.html

@@ -0,0 +1,200 @@
+<style>
+    .anniuyesi {
+        border-bottom: solid 1px #eceeef;
+        margin-bottom: 20px;
+    }
+
+    .anniuyesi a {
+        border: solid 1px #eceeef;
+        border-width: 1px 1px 0;
+        display: inline-block;
+        padding: 10px;
+        color: #777;
+        background-color: #fff;
+        position: relative;
+    }
+
+    .anniuyesi .mod {
+        background-color: #fd9f02;
+        color: #fff;
+        border: solid 1px #fd9f02;
+    }
+
+    .select-group .btn:not(.btn-link):not(.btn-circle) {
+        border: 1px solid #ddd;
+    }
+</style>
+<titlemenu></titlemenu>
+<div class="dj-card">
+    <div class="dj-body" activate-input>
+        <div class="anniuyesi">
+            <a href="javascript:void(0)" ng-class="{'mod':step==1}" ng-click="tabChange(1)">基础信息</a>
+            <a href="javascript:void(0)" ng-class="{'mod':step==2}" ng-click="tabChange(2)">培训班课程</a>
+        </div>
+        <div ng-show="step==1">
+            <form role="form" name="trainingClassForm" novalidate>
+                <div panel-title data-title="'基础信息'"></div>
+                <div class="dj-formtable">
+                    <table class="dj-table dj-table3">
+                        <tr>
+                            <th>培训班名称<span style="color: red;">*</span></th>
+                            <td ng-class="{ 'has-error' : this.trainingClassForm.trainingClassName.$invalid &&  this.trainingClassForm.$submitted}">
+                                <input type="text" name="trainingClassName" ng-model="dataModel.trainingClassName"
+                                       maxlength="250"
+                                       class="form-control" ng-required="true"/>
+                                <span ng-show="this.trainingClassForm.trainingClassName.$invalid &&  this.trainingClassForm.$submitted"
+                                      class="error">必填.</span>
+                            </td>
+                            <th>培训时间<span style="color: red;">*</span></th>
+                            <td ng-class="{ 'has-error' : (this.trainingClassForm.beginDate.$invalid || this.trainingClassForm.endDate.$invalid) &&  this.trainingClassForm.$submitted}">
+                                <input style="width: 100px;display: inline;" name="beginDate" class="form-control"
+                                       autocomplete="off"
+                                       autoclose="true"
+                                       data-date-format="yyyy-MM-dd" data-date-type="date"
+                                       ng-model="dataModel.beginDate"
+                                       ng-required="true"
+                                       placeholder="" bs-datepicker/>
+                                至
+                                <input style="width: 100px;display: inline;" name="endDate" class="form-control"
+                                       autocomplete="off"
+                                       autoclose="true"
+                                       data-date-format="yyyy-MM-dd" data-date-type="date"
+                                       ng-model="dataModel.endDate"
+                                       ng-required="true"
+                                       placeholder="" bs-datepicker/>
+                                <span ng-show="(this.trainingClassForm.beginDate.$invalid || this.trainingClassForm.endDate.$invalid) &&  this.trainingClassForm.$submitted"
+                                      class="error">必填.</span>
+                            </td>
+                            <th>录入党委<span style="color: red;">*</span></th>
+                            <td ng-class="{ 'has-error' : this.trainingClassForm.dzzmc.$invalid &&  this.trainingClassForm.$submitted}">
+                                <div class="input-group input-group-search"
+                                     title="录入组织" ng-click="selectParty()">
+                                    <input name="dzzmc" type="text" ng-model="dataModel.dzzmc"
+                                           class="form-control" ng-required="true"
+                                           ng-disabled="true"/>
+                                    <span class="input-group-addon"><i class="material-icons">search</i></span>
+                                </div>
+                                <span ng-show="this.trainingClassForm.dzzmc.$invalid &&  this.trainingClassForm.$submitted"
+                                      class="error">必填.</span>
+                            </td>
+                        </tr>
+                        <tr>
+                            <th>培训详情地址</th>
+                            <td colspan="5"
+                                ng-class="{ 'has-error' : this.trainingClassForm.address.$invalid &&  this.trainingClassForm.$submitted}">
+                                <div class="form-group" style="margin-bottom: 4px;margin-top: 5px;">
+                                    <div class="form-line select-group" style="padding-bottom: 1px;">
+                                        <select ng-model="dataModel.address"
+                                                ng-options="type as type for type in addressList"
+                                                class="form-control"
+                                                name="addressSelect">
+                                        </select>
+                                    </div>
+                                    <div class="form-line" style="width: 98%;margin-top: -29px;z-index: 9;"
+                                         ng-class="{ 'focused error' : this.trainingClassForm.address.$invalid &&  this.trainingClassForm.$submitted}">
+                                        <input type="text" name="address"
+                                               ng-model="dataModel.address"
+                                               maxlength="1000"
+                                               class="form-control"/>
+                                    </div>
+                                    <span ng-show="this.trainingClassForm.address.$invalid &&  this.trainingClassForm.$submitted"
+                                          class="error">必填.</span>
+                                </div>
+                            </td>
+                        </tr>
+                        <tr>
+                            <th>主办部门<span style="color: red;">*</span></th>
+                            <td ng-class="{ 'has-error' : this.trainingClassForm.department.$invalid &&  this.trainingClassForm.$submitted}">
+                                <input type="text" name="department" ng-model="dataModel.department"
+                                       class="form-control" ng-required="true"/>
+                                <span ng-show="this.trainingClassForm.department.$invalid &&  this.trainingClassForm.$submitted"
+                                      class="error">必填.</span>
+                            </td>
+                            <th>联系人</th>
+                            <td>
+                                <input type="text" name="contactName" ng-model="dataModel.contactName"
+                                       class="form-control"/>
+                            </td>
+                            <th>联系方式</th>
+                            <td>
+                                <input type="text" name="phone"
+                                       ng-model="dataModel.phone" class="form-control"
+                                       placeholder="手机"/>
+                            </td>
+                        </tr>
+                        <tr>
+                            <th>培训内容</th>
+                            <td colspan="5">
+                                <textarea class="form-control" ng-model="dataModel.content" rows="5"></textarea>
+                            </td>
+                        </tr>
+                    </table>
+                </div>
+                <div panel-title data-title="'报名信息'"></div>
+                <div class="dj-formtable">
+                    <div class="table-responsive list-table-panel">
+                        <div class="list-table-title" style="background-color: white;">
+                            <div class="table-title">
+                                已报名人数:{{dataModel.userList.length}}人
+                            </div>
+                            <div class="table-tool">
+                                <button type="button" style="margin-left: 10px;" class="btn btn-default1" data-dataoptions="selectUserlist"
+                                        bsselectdata-pro>批量选择学员
+                                </button>
+                                <button type="button" style="margin-left: 10px;" class="btn btn-default1"
+                                        ng-click="importUser()">批量导入
+                                </button>
+                            </div>
+                        </div>
+                        <table class="gt-table gt-table-bordered">
+                            <thead>
+                            <tr>
+                                <th class="th-rownum">
+                                    <div>序号</div>
+                                </th>
+                                <th>所在支部</th>
+                                <th>姓名</th>
+                                <th>性别</th>
+                                <th>手机号码</th>
+                                <th>操作</th>
+                            </tr>
+                            </thead>
+                            <tbody>
+                            <tr ng-repeat="it in dataModel.userList">
+                                <td class="text-center">{{$index + 1}}</td>
+                                <td class="text-center">{{it.dzzmc}}</td>
+                                <td class="text-center">{{it.userName}}</td>
+                                <td class="text-center">{{it.gender}}</td>
+                                <td class="text-center">{{it.phone}}</td>
+                                <td>
+                                    <button class="btn td-btn bg-pink waves-effect"
+                                            ng-click="delUser($index)">
+                                        删除
+                                    </button>
+                                </td>
+                            </tr>
+                            <tr ng-if="dataModel.userList.length<=0">
+                                <td colspan="8" style="text-align:center">暂无数据</td>
+                            </tr>
+                            </tbody>
+                        </table>
+                    </div>
+                </div>
+                <div class="form_foot" style="margin-top: 30px;">
+                    <button type="button" class="btn btn-default" ng-click="pagechange();">取消</button>
+                    <button type="submit" class="btn btn-primary" ng-click="save(this.trainingClassForm.$valid)">保存并下一步
+                    </button>
+                </div>
+            </form>
+        </div>
+        <div ng-if="step==2">
+            <div ng-include="'../main/train/trainingClass/course.html'"
+                 ng-controller="pxTrainingClassCourseListCtrl"></div>
+            <div class="form_foot">
+                <button type="button" class="btn btn-default" ng-click="pagechange();">取消</button>
+                <button type="button" class="btn btn-primary" ng-click="stepNext(-1)">上一步</button>
+                <button type="button" class="btn btn-primary" ng-click="stepNext(1)">下一步</button>
+            </div>
+        </div>
+    </div>
+</div>

+ 257 - 0
src/main/resources/static/app/main/train/trainingClass/edit.js

@@ -0,0 +1,257 @@
+(function ($app) {
+    $app.module('gtPartyApp').controller('pxClassEditCtrl', function ($scope, $http, $modal, $ocLazyLoad, $alert, $loading, $state, $bsRouterState, AuthUser, $timeout, $partySelect, $excel) {
+        $stateParams = $bsRouterState.$params($scope);
+
+        $stateParams.classCourseControllerParams = {
+            op: 2,
+            pxClassId: ''
+        };
+
+        $scope.dataScope = parseInt(AuthUser.getUser().dataScope);//角色数据范围;
+
+        const opEnum = {
+            新增: 1,
+            修改: 2,
+        };
+
+        //定义数据集合
+        $scope.step = 1;
+        $scope.signupTab = 1;
+        /**
+         * 1新增,2修改
+         * @type {number}
+         */
+        $scope.op = $stateParams.op || opEnum.新增;
+        $scope.dataModel = {
+            id: $stateParams.id == undefined ? "" : $stateParams.id,
+            dzzmc: '',
+            dzzdm: AuthUser.getUser().dwId
+        };
+        $scope.addressList = [];
+        //选择党委
+        $scope.partyConfig = {
+            scope: $scope,
+            selectedKey: '',
+            selectedText: '',
+            selectedData: [],
+            isMulti: false,
+            onlyshowdw: 2
+        };
+        $partySelect.initServer($scope.partyConfig);
+        $scope.$watch("partyConfig.selectedKey", function (newVal, oldVal) {
+            if (newVal) {
+                $scope.dataModel.dzzdm = $scope.partyConfig.selectedKey;
+                $scope.dataModel.dzzmc = $scope.partyConfig.selectedText;
+            }
+        }, true);
+        $scope.selectParty = function () {
+            $partySelect.showModal();
+        };
+
+        //选择成员
+        $scope.selectUserlist = {
+            url: '../../api/partyUser/getAllPartyUserList',
+            title: '人员选择',
+            isMulti: true,
+            selectData: {xm: '姓名', szdzb: '所在组织架构'},
+            columns: {XM: '姓名', XBMC: '性别', DNZW: '职务', PARTYBRANCHNAME: '所属支部'},
+            selectLabelKey: 'XM',
+            selectValuekey: 'RYBM',
+            selectedValueData: '',
+            selectedLabeData: '',
+            selectedJData: [],
+            selectParams: {
+                dzzdm: ''
+            },
+            onSelect: function (value, items) {
+                if (items && items.length > 0) {
+                    items.forEach(u => {
+                        if ($scope.dataModel.userList.filter(it => it.userNo == u.RYBM).length == 0) {
+                            $scope.dataModel.userList.push({
+                                userNo: u.RYBM,
+                                userName: u.XM,
+                                gender: u.XBMC,
+                                genderId: u.XB,
+                                dzzdm: u.PARTYBRANCHCODE,
+                                dzzmc: u.PARTYBRANCHNAME,
+                                phone: u.MOBILE
+                            });
+                        }
+                    });
+
+                    $scope.selectUserlist.selectedJData = [];
+                    $scope.selectUserlist.selectedLabeData = '';
+                    $scope.selectUserlist.selectedValueData = '';
+                }
+            }
+        };
+
+        $scope.tabChange = function (step) {
+            if ($scope.op === opEnum.修改) {
+                $scope.step = step;
+            }
+        };
+
+        $scope.stepNext = function (s) {
+            $scope.step += s;
+        };
+
+        $scope.getData = function () {
+            $http.get("../../api/train/trainingclass/get", {
+                params: {
+                    'id': $scope.dataModel.id
+                }
+            }).then(function (result) {
+                if (result.data.success) {
+                    $scope.dataModel = result.data.item;
+                }
+            }, function () {
+                $scope.showMsg('错误', '服务器错误');
+            });
+        };
+
+        $scope.getAddressList = function () {
+            $http({
+                method: 'get',
+                url: '../../api/train/class/getAddressList',
+                params: {}
+            }).then(function (result) {
+                $scope.addressList = result.data.item;
+            }, function (resp) {
+
+            });
+        };
+
+        //基础信息
+        $scope.save = function (isflag) {
+            if (!isflag) {
+                $scope.showMsg('提示', '请填写相关信息');
+                return false;
+            }
+
+            if ($scope.dataModel.userList <= 0) {
+                $scope.showMsg('提示', '报名人数不能少于0');
+                return false;
+            }
+
+            if (isflag) {
+                if (confirm("确认保存?")) {
+                    $loading.show();
+                    $http({
+                        method: "post",
+                        url: "../../api/train/trainingclass/save",
+                        data: {
+                            data: $scope.dataModel
+                        }
+                    }).then(function (result) {
+                        $loading.hide();
+                        if (result.data.success) {
+                            $scope.showMsg('成功', "保存成功");
+                            $scope.$emit("tabReloadData", {name: 'PxTrainingClassListCtrl', data: 1});
+                            $scope.step = 2;
+                        } else {
+                            $scope.showMsg('失败', result.data.msg || result.data.message);
+                        }
+                    }, function (resp) {
+                        $loading.hide();
+                        $scope.showMsg('错误', '服务器错误');
+                    })
+                }
+            }
+        };
+
+        $scope.delUser = function (index) {
+            if (index == null && $scope.dataModel.userList.filter(it => it.rowChecked == true).length == 0) {
+                $scope.showMsg('提示', "请选择需要删除的数据");
+                return false;
+            }
+
+            if (confirm("确认删除?")) {
+                if (index != null) {
+                    $scope.dataModel.userList.splice(index, 1);
+                } else {
+                    $scope.dataModel.userList = $scope.dataModel.userList.filter(it => (it.rowChecked == false || it.rowChecked == null));
+                }
+            }
+        };
+
+        $scope.importUser = function () {
+            $scope.excelConfig = {
+                filetype: 1,
+                columns: {
+                    '所在支部': 'dzzmc',
+                    '姓名': 'userName',
+                    '手机号码': 'phone',
+                    '性别': 'gender'
+                },
+                errorcolumns: {
+                    'dzzmc': '所在支部',
+                    'userName': '姓名',
+                    'phone': '手机号码',
+                    'gender': '性别',
+                    'errorInfo': '错误信息'
+                },
+                readonly: false,
+                templateUrl: '/doc/template/报名人员导入模版.xlsx',
+                typeparams: {
+                    types: ['xls', 'xlsx'],
+                    errormsg: '请选择excel格式文件'
+                }
+            };
+            $excel.addFile($scope.excelConfig).then(function (items) {
+                $loading.show();
+                $http({
+                    method: "post",
+                    url: "../../api/train/trainingclass/importUser",
+                    data: {
+                        userList: JSON.stringify(items)
+                    }
+                }).then(function (result) {
+                    $loading.hide();
+                    if (result.data.success) {
+                        $scope.showMsg("导入成功");
+                        result.data.item.forEach(it => {
+                            if ($scope.dataModel.userList.filter(u =>
+                                (it.userNo != null && it.userNo == u.userNo)
+                                || (it.userNo == null && u.userName === it.userName && u.dzzdm == it.dzzdm)
+                            ).length == 0) {
+                                $scope.dataModel.userList.push({
+                                    userNo: it.userNo,
+                                    userName: it.userName,
+                                    genderId: it.genderId,
+                                    gender: it.gender,
+                                    dzzdm: it.dzzdm,
+                                    dzzmc: it.dzzmc
+                                });
+                            }
+                        });
+                    } else {
+                        if (result.data.item.length > 0) {
+                            $scope.showMsg('错误', '导入失败,存在错误数据,请修改后重新导入!', 10);
+                            $excel.showErrorInfo(result.data.item);
+                        } else {
+                            $scope.showMsg(result.data.msg);
+                        }
+                    }
+
+                }, function (resp) {
+                    $loading.hide();
+                    $scope.showMsg('错误', '服务器错误');
+                })
+            });
+        };
+
+        $scope.exportUser = function () {
+            window.open('../../api/train/class/exportUser?trainingClassId=' + $scope.dataModel.id);
+        };
+
+        //加载数据
+        $scope.getData();
+        $scope.getAddressList();
+
+        $scope.pagechange = function () {
+            $bsRouterState.$closeTab($scope);
+            $bsRouterState.go('home.pxTrainingClassList');
+        };
+    });
+})(angular);

+ 158 - 0
src/main/resources/static/app/main/train/trainingClass/list.html

@@ -0,0 +1,158 @@
+<titlemenu></titlemenu>
+<div class="dj-list">
+    <div class="dj-list-body">
+        <div party-tree data-selectdzzdm="treeparams.selectdzzdm" data-selectdzzmc="treeparams.selectdzzmc"
+             data-defaultselected="treeparams.defaultselected" data-isunfold="treeparams.isunfold"></div>
+        <div class="dj-list-content">
+            <div class="card">
+                <div activate-input activate-select class="header search-header">
+                    <div fold-partytree data-isunfold="treeparams.isunfold"></div>
+                    <div class="search-param-panel">
+                        <div class="search-input">
+                            <form class="form-horizontal">
+                                <div class="row clearfix form-inline">
+                                    <div class="col-lg-2 col-md-2 dj-label">
+                                        <label>当前选中组织</label>
+                                    </div>
+                                    <div class="col-lg-2 col-md-2">
+                                        <div class="form-group">
+                                            <div class="form-line">
+                                                <div class="input-group input-group-search">
+                                                    <input name="selectdzzmc" type="text" style="min-width: 90px"
+                                                           ng-model="treeparams.selectdzzmc" class="form-control"
+                                                           ng-disabled="true"/>
+                                                    <span class="input-group-addon"
+                                                          ng-click="setisunfold()">选择</span>
+                                                </div>
+                                            </div>
+                                        </div>
+                                    </div>
+                                    <div class="col-lg-2 col-md-2 dj-label">
+                                        <label>培训班名称</label>
+                                    </div>
+                                    <div class="col-lg-2 col-md-2">
+                                        <div class="form-group">
+                                            <div class="form-line">
+                                                <input name="trainingClassName" class="form-control" type="text"
+                                                       ng-keypress="($event.which === 13)?search():0"
+                                                       ng-model="selectparams.trainingClassName"
+                                                       placeholder=""/>
+
+                                            </div>
+                                        </div>
+                                    </div>
+                                    <div class="col-lg-2 col-md-2 dj-label">
+                                        <label>培训时间</label>
+                                    </div>
+                                    <div class="col-lg-2 col-md-2">
+                                        <div class="form-group">
+                                            <div class="form-line">
+                                                <input name="startDate" class="form-control fm-ct-first"
+                                                       autocomplete="off"
+                                                       autoclose="true"
+                                                       data-date-format="yyyy-MM-dd" data-date-type="date"
+                                                       ng-model="selectparams.startDate"
+                                                       ng-change="search()"
+                                                       placeholder="" bs-datepicker/>
+                                                <input name="endDate" class="form-control fm-ct-last"
+                                                       autocomplete="off"
+                                                       autoclose="true"
+                                                       data-date-format="yyyy-MM-dd" data-date-type="date"
+                                                       ng-model="selectparams.endDate"
+                                                       ng-change="search()"
+                                                       placeholder="" bs-datepicker/>
+                                            </div>
+                                        </div>
+                                    </div>
+                                </div>
+                            </form>
+                        </div>
+                        <div class="search-btn" style="margin-right: 20px;">
+                            <div style="min-width: 13em">
+                                <button class="btn btn-default1"
+                                        ng-click="search()">查询
+                                </button>
+                                <button class="btn btn-default1"
+                                        ng-click="reset()">重置
+                                </button>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="search-btn" style="margin-right: 20px;">
+                        <div style="float: right">
+                            <button class="btn btn-default1"
+                                    ng-click="add()">新增
+                            </button>
+                            <button class="btn btn-default1"
+                                    ng-click="export()">导出
+                            </button>
+                        </div>
+                    </div>
+                </div>
+                <div class="body">
+                    <div class="zero-list-table-panel">
+                        <div class="zero-source-table-div">
+                            <table class="table table-bordered table-striped table-hover js-basic-example dataTable text-nowrap">
+                                <thead>
+                                <tr>
+                                    <th class="th-rownum"><div>序号</div></th>
+                                    <th>主办组织</th>
+                                    <th>培训时间</th>
+                                    <th>培训天数</th>
+                                    <th>培训地址</th>
+                                    <th>培训课程数</th>
+                                    <th>培训人数</th>
+                                </tr>
+                                </thead>
+                                <tbody>
+                                <tr ng-repeat="it in dataList">
+                                    <td class="text-center" td-rownum index="$index" pageindex="selectparams.pageindex" pagesize="selectparams.pagesize"></td>
+                                    <td class="text-center">{{it.dzzmc}}</td>
+                                    <td class="text-center">{{it.beginDate|date:'yyyy-MM-dd'}}~{{it.endDate|date:'yyyy-MM-dd'}}</td>
+                                    <td class="text-center">{{it.dateDiffDay}}</td>
+                                    <td style="min-width: 300px !important;word-wrap: break-word;word-break: break-all;white-space: normal;">{{it.address}}</td>
+                                    <td class="text-center">{{it.courseCount}}</td>
+                                    <td class="text-center">{{it.userCount}}</td>
+                                </tr>
+                                <tr ng-if="dataList.length<=0">
+                                    <td colspan="20" style="text-align:center">暂无数据</td>
+                                </tr>
+                                </tbody>
+                            </table>
+                        </div>
+                        <div class="zero-target-table-div">
+                            <table class="table table-bordered table-striped table-hover js-basic-example dataTable text-nowrap">
+                                <thead>
+                                <tr>
+                                    <th>操作</th>
+                                </tr>
+                                </thead>
+                                <tbody>
+                                <tr ng-repeat="it in dataList" zero-table-height>
+                                    <td>
+                                        <button class="btn td-btn bg-light-green waves-effect"
+                                                ng-click="detail(it.id)"
+                                                title="查看">
+                                            查看
+                                        </button>
+                                        <button class="btn td-btn bg-light-green waves-effect"
+                                                ng-click="edit(it.id)"
+                                                title="修改">
+                                            修改
+                                        </button>
+                                    </td>
+                                </tr>
+                                <tr ng-if="pageInfo.ptotal==0">
+                                    <td colspan="1" style="text-align:center">无</td>
+                                </tr>
+                                </tbody>
+                            </table>
+                        </div>
+                    </div>
+                    <pagination data-pageindex="selectparams.pageindex" data-pagesize="selectparams.pagesize"
+                                data-ptotal="pageInfo.ptotal"></pagination>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>

+ 163 - 0
src/main/resources/static/app/main/train/trainingClass/list.js

@@ -0,0 +1,163 @@
+(function ($app) {
+    $app.module('gtPartyApp').controller('PxTrainingClassListCtrl', function ($scope, $http, $modal, $ocLazyLoad, $alert, $loading, $state, $bsRouterState, AuthUser, $timeout, $excel, $partySelect, $filter) {
+        $scope.isShow = false;
+        $scope.moreTxt = "更多";
+        $scope.tabNameAdd = "home.PxTrainingClassAdd";
+        $scope.tabNameEdit = "home.PxTrainingClassEdit";
+        $scope.tabNameDetail = "home.PxTrainingClassDetail";
+        $scope.dataList = [];
+
+        //组织树参数
+        $scope.treeparams = {
+            isunfold: false,//组织结构树展开收缩
+            selectdzzdm: "",
+            selectdzzmc: "",
+            defaultselected: ''
+        };
+        $scope.resetTreeparams = angular.copy($scope.treeparams);
+
+        //查询条件
+        $scope.selectparams = {
+            pageindex: 1,
+            pagesize: 10,
+            dzzdm: '',
+            trainingClassName: '',
+            startDate: null,
+            endDate: null
+        };
+        $scope.resetSelectparams = angular.copy($scope.selectparams);
+        $scope.pageInfo = {ptotal: 0};
+
+        $scope.$on('tabChildReloadData', function (event, data) {
+            if (data.name == 'PxTrainingClassListCtrl') {
+                $scope.loadData();
+            }
+        });
+
+        //加载列表数据
+        $scope.loadData = function () {
+            $http
+            ({
+                method: 'get', url: '../../api/train/trainingclass/getList', params: $scope.selectparams
+            }).then(function (result) {
+                $scope.dataList = result.data.item.list;
+                $scope.pageInfo.ptotal = result.data.item.total;
+            }, function (res) {
+                $scope.showMsg('错误', '服务器错误');
+            });
+        };
+
+        $scope.search = function () {
+            $scope.loadData();
+        };
+
+        $scope.export = function () {
+            var params = "?1=1";
+            for (var p in $scope.selectparams) {
+                if ($scope.selectparams[p] !== '' && $scope.selectparams[p] !== null)
+                    params += ("&" + p + "=" + encodeURI($scope.selectparams[p]));
+            }
+            window.open('../../api/train/trainingclass/export' + params);
+        };
+
+        $scope.delete = function (id) {
+            var ids = [];
+            if (id)
+                ids.push(id);
+            else
+                ids = $scope.dataList.filter(it => it.rowChecked == true).map(it => it.id);
+
+            if (ids.length == 0) {
+                $scope.showMsg('消息', "请选择需要删除的数据");
+                return false;
+            }
+
+            if (confirm("确定删除?")) {
+                $loading.show();
+                $http({
+                    method: "post",
+                    url: "../../api/train/trainingclass/delete",
+                    data: {
+                        ids: JSON.stringify(ids)
+                    }
+                }).then(function (result) {
+                    $loading.hide();
+                    if (result.data.success) {
+                        $scope.showMsg('成功', result.data.msg);
+                        //重新刷新列表
+                        $scope.loadData();
+                    } else {
+                        $scope.showMsg('失败', result.data.msg);
+                    }
+                }, function (resp) {
+                    $scope.showMsg('错误', '服务器错误');
+                });
+            }
+        };
+
+        $scope.add = function(){
+            $bsRouterState.$closeTabName($scope.tabNameAdd);
+            $timeout(function () {
+                $bsRouterState.go($scope.tabNameAdd, {
+                    id: ''
+                });
+            }, 100);
+        };
+
+        $scope.edit = function(id){
+            $bsRouterState.$closeTabName($scope.tabNameEdit);
+            $timeout(function () {
+                $bsRouterState.go($scope.tabNameEdit, {
+                    id: id
+                });
+            }, 100);
+        };
+
+        $scope.detail = function(id){
+            $bsRouterState.$closeTabName($scope.tabNameDetail);
+            $timeout(function () {
+                $bsRouterState.go($scope.tabNameDetail, {
+                    id: id
+                });
+            }, 100);
+        };
+        
+        $scope.isShowClick = function () {
+            $scope.isShow = !$scope.isShow;
+            if ($scope.moreTxt == "更多") {
+                $scope.moreTxt = "收起";
+            } else if ($scope.moreTxt == "收起") {
+                $scope.moreTxt = "更多";
+            }
+        };
+
+        $scope.$watch("selectparams.pageindex", function (newVal, oldVal) {
+            if ($scope.pageInfo.ptotal > 0) {
+                $scope.loadData();
+            }
+        });
+
+        $scope.$watch("treeparams.selectdzzdm", function (newVal, oldVal) {
+            if (newVal != "") {
+                if ($scope.treeparams.defaultselected != "" && $scope.treeparams.defaultselected != null &&
+                    $scope.treeparams.defaultselected != $scope.treeparams.selectdzzdm)
+                    return;
+
+                $scope.selectparams.dzzdm = $scope.treeparams.selectdzzdm;
+
+                $scope.loadData();
+            }
+        });
+        $scope.setisunfold = function () {
+            $scope.treeparams.isunfold = !$scope.treeparams.isunfold;
+            $scope.$emit('menudatas.toggle', !$scope.treeparams.isunfold);
+        };
+        $scope.reset = function () {
+            $scope.selectparams = angular.copy($scope.resetSelectparams);
+            $scope.treeparams = angular.copy($scope.resetTreeparams);
+            $scope.loadData();
+        };
+
+        $scope.loadData();
+    });
+})(angular);