From f72624e9f774d5ef59014e8ef2b8e1e6ecd488f3 Mon Sep 17 00:00:00 2001
From: yz <3614508250@qq.com>
Date: Tue, 13 Aug 2024 17:31:41 +0800
Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E7=BB=BC=E5=90=88=E8=A7=84?=
 =?UTF-8?q?=E5=88=92=E7=9B=B8=E5=85=B3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../controller/GradeController.java           |   4 +
 .../controller/SynthesisPlanController.java   |  49 ++++
 .../controller/TrainingReportController.java  | 232 +++++++++---------
 .../entity/SynthesisPlanClient.java           |  22 ++
 .../entity/SynthesisPlanClientExample.java    | 130 ++++++++++
 .../mapper/SynthesisPlanClientMapper.xml      |  62 +++--
 6 files changed, 374 insertions(+), 125 deletions(-)
 create mode 100644 src/main/java/com/sztzjy/money_management/controller/SynthesisPlanController.java

diff --git a/src/main/java/com/sztzjy/money_management/controller/GradeController.java b/src/main/java/com/sztzjy/money_management/controller/GradeController.java
index 06c59b3..5489414 100644
--- a/src/main/java/com/sztzjy/money_management/controller/GradeController.java
+++ b/src/main/java/com/sztzjy/money_management/controller/GradeController.java
@@ -121,6 +121,10 @@ public class GradeController {
     }
 
 
+    //知识概要获取完成情况
+    //资源学习获取完成情况
+
+
 
 
 }
diff --git a/src/main/java/com/sztzjy/money_management/controller/SynthesisPlanController.java b/src/main/java/com/sztzjy/money_management/controller/SynthesisPlanController.java
new file mode 100644
index 0000000..fc23a09
--- /dev/null
+++ b/src/main/java/com/sztzjy/money_management/controller/SynthesisPlanController.java
@@ -0,0 +1,49 @@
+package com.sztzjy.money_management.controller;
+
+import com.github.pagehelper.PageInfo;
+import com.sztzjy.money_management.annotation.AnonymousAccess;
+import com.sztzjy.money_management.entity.SynthesisPlanClient;
+import com.sztzjy.money_management.mapper.SynthesisPlanClientMapper;
+import com.sztzjy.money_management.util.ResultEntity;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Date;
+import java.util.List;
+
+//综合规划相关
+@RestController
+@Api(tags = "综合规划相关")
+@RequestMapping("api/SynthesisPlanController")
+public class SynthesisPlanController {
+    @Autowired
+    SynthesisPlanClientMapper synthesisPlanClientMapper;
+
+    //目标客户查询
+    //根据create_time排序
+    @AnonymousAccess
+    @ApiOperation("目标客户查询")
+    @PostMapping("selectTargetCustomer")
+    public ResultEntity<PageInfo<SynthesisPlanClient>> selectTargetCustomer(@RequestParam String userId, @RequestParam String schoolId) {
+        //先根据userID和schoolID查询所有数据 注意
+        return null;
+    }
+
+    //目标客户跟踪
+    @AnonymousAccess
+    @ApiOperation("目标客户跟踪")
+    @PostMapping("TrackDownTargetCustomer")
+    public Boolean TrackDownTargetCustomer(@RequestParam String userId, @RequestParam String stuClientId) {
+        SynthesisPlanClient synthesisPlanClient = synthesisPlanClientMapper.selectByPrimaryKey(stuClientId);
+        synthesisPlanClient.setGetStatus("true");
+        synthesisPlanClient.setGetTime(new Date());
+        synthesisPlanClient.setUserid(userId);
+        int i = synthesisPlanClientMapper.updateByPrimaryKeySelective(synthesisPlanClient);
+        return i==1;
+    }
+}
diff --git a/src/main/java/com/sztzjy/money_management/controller/TrainingReportController.java b/src/main/java/com/sztzjy/money_management/controller/TrainingReportController.java
index 36a798a..ea68dee 100644
--- a/src/main/java/com/sztzjy/money_management/controller/TrainingReportController.java
+++ b/src/main/java/com/sztzjy/money_management/controller/TrainingReportController.java
@@ -1,110 +1,122 @@
-//package com.sztzjy.money_management.controller;
-//
-//import cn.hutool.core.util.IdUtil;
-//import com.sztzjy.money_management.annotation.AnonymousAccess;
-//import com.sztzjy.money_management.entity.StuTrainingWithBLOBs;
-//import com.sztzjy.money_management.entity.TrainingReportExample;
-//import com.sztzjy.money_management.util.ResultEntity;
-//import io.swagger.annotations.Api;
-//import io.swagger.annotations.ApiOperation;
-//import io.swagger.annotations.ApiParam;
-//import org.springframework.http.HttpStatus;
-//import org.springframework.util.Assert;
-//import org.springframework.web.bind.annotation.*;
-//import org.springframework.web.multipart.MultipartFile;
-//
-//import javax.servlet.http.HttpServletResponse;
-//import java.math.BigDecimal;
-//import java.util.Date;
-//import java.util.List;
-//
-//@RestController
-//@Api(tags = "实验报告相关")
-//@RequestMapping("api/ResourceController")
-//public class TrainingReport {
-//    @AnonymousAccess
-//    @ApiOperation("实验报告展示")
-//    @PostMapping("getReportByUserId")
-//    public ResultEntity<List<TrainingReport>> getReportByUserId(@RequestParam String userId,
-//                                                                @RequestParam String systemOwner) {
-//        TrainingReportExample trainingReportExample = new TrainingReportExample();
-//        trainingReportExample.createCriteria().andUserIdEqualTo(userId).andSystemOwnerEqualTo(systemOwner);
-//        List<TrainingReport> trainingReports = trainingReportMapper.selectByExampleWithBLOBs(trainingReportExample);
-//        return new ResultEntity<>(trainingReports);
-//    }
-//
-//    @AnonymousAccess
-//    @PostMapping("uploadReport")
-//    @ApiOperation("上传报告")
-//    public ResultEntity<String> uploadReport(@RequestPart(name = "file") MultipartFile file,
-//                                             @ApiParam("文件名称") @RequestParam String fileName,
-//                                             @RequestParam String userId,
-//                                             @RequestParam String trainingId,
-//                                             @ApiParam("章节ID") @RequestParam String chapterId,
-//                                             @ApiParam("章节名称") @RequestParam String chapterName,
-//                                             @RequestParam String schoolId,
-//                                             @RequestParam String systemOwner) {
-//        int size = (int) file.getSize() / (1024 * 1024); //拿到MB为单位的大小
-//        String originalFilename = file.getOriginalFilename();
-//        assert originalFilename != null;
-//        String fileExtension = originalFilename.substring(originalFilename.lastIndexOf(".")).toLowerCase();
-//        if (!fileExtension.equals(".pdf") && !fileExtension.equals(".doc") && !fileExtension.equals(".docx")) {
-//            return new ResultEntity<>(HttpStatus.BAD_REQUEST, "文件必须为word或pdf!");
-//        }
-//        //老师评分后不允许上传
-//        TrainingReportExample example = new TrainingReportExample();
-//        example.createCriteria().andSchoolIdEqualTo(schoolId).andUserIdEqualTo(userId).andChapterIdEqualTo(chapterId).andSystemOwnerEqualTo(systemOwner);
-//        List<TrainingReport> trainingReports = trainingReportMapper.selectByExampleWithBLOBs(example);
-//        if (!trainingReports.isEmpty()) {   //上传过
-//            TrainingReport trainingReport = trainingReports.get(0);
-//            BigDecimal teacherScore = trainingReport.getTeacherScore();
-//            if (teacherScore != null) {    //老师评分过
-//                return new ResultEntity<>(HttpStatus.BAD_REQUEST, "老师已评分,无法重新上传!");
-//            } else {  //老师没评分 多次上传 直接覆盖
-//                String filePath = fileUtil.upload(file);
-//                trainingReport.setFilePath(filePath);
-//                trainingReport.setUploadTime(new Date());
-//                trainingReport.setReportName(fileName);
-//                trainingReport.setReportSize(size);
-//                trainingReportMapper.updateByPrimaryKeyWithBLOBs(trainingReport);
-//                return new ResultEntity<>(HttpStatus.BAD_REQUEST, "重新上传成功!");
-//            }
-//        } else {          //第一次上传
-//            String filePath = fileUtil.upload(file);
-//            TrainingReport trainingReport = new TrainingReport();
-//            trainingReport.setReportId(IdUtil.randomUUID());
-//            trainingReport.setFilePath(filePath);
-//            trainingReport.setUploadTime(new Date());
-//            trainingReport.setReportName(fileName);
-//            trainingReport.setChapterId(chapterId);
-//            trainingReport.setChapterName(chapterName);
-//            trainingReport.setUserId(userId);
-//            trainingReport.setSchoolId(schoolId);
-//            trainingReport.setReportSize(size);
-//            trainingReport.setSystemOwner(systemOwner);
-//            StuTrainingWithBLOBs stuTrainingWithBLOBs = stuTrainingMapper.selectByPrimaryKey(trainingId);
-//            stuTrainingWithBLOBs.setReportId(trainingReport.getReportId());     // 第一次上传时设置实训表的报告ID
-//            trainingReportMapper.insert(trainingReport);
-//            return new ResultEntity<>(HttpStatus.OK, "上传成功!");
-//        }
-//    }
-//
-//
-//    @AnonymousAccess
-//    @ApiOperation("实验报告下载")
-//    @GetMapping("downloadReport")
-//    public void downloadReport(@RequestParam String reportId, HttpServletResponse response) {
-//        TrainingReport trainingReport = trainingReportMapper.selectByPrimaryKey(reportId);
-//        Assert.isTrue(trainingReport != null && trainingReport.getFilePath() != null, "报告不存在");
-//        fileUtil.download(response, trainingReport.getReportName(), trainingReport.getFilePath());
-//    }
-//
-//
-//    @AnonymousAccess
-//    @ApiOperation("实验报告查看评语")
-//    @PostMapping("getTeacherCommentById")
-//    public ResultEntity<String> getTeacherCommentById(@RequestParam String reportId) {
-//        TrainingReport trainingReport = trainingReportMapper.selectByPrimaryKey(reportId);
-//        return new ResultEntity<>(trainingReport.getTeacherComment());
-//    }
-//}
+package com.sztzjy.money_management.controller;
+
+import cn.hutool.core.util.IdUtil;
+import com.sztzjy.money_management.annotation.AnonymousAccess;
+import com.sztzjy.money_management.entity.StuTrainingWithBLOBs;
+import com.sztzjy.money_management.entity.TrainingReport;
+import com.sztzjy.money_management.entity.TrainingReportExample;
+import com.sztzjy.money_management.mapper.StuTrainingMapper;
+import com.sztzjy.money_management.mapper.TrainingReportMapper;
+import com.sztzjy.money_management.util.ResultEntity;
+import com.sztzjy.money_management.util.file.IFileUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.http.HttpStatus;
+import org.springframework.util.Assert;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletResponse;
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+@RestController
+@Api(tags = "实验报告相关")
+@RequestMapping("api/TrainingReportController")
+public class TrainingReportController {
+    @Autowired
+    TrainingReportMapper trainingReportMapper;
+    @Autowired
+    private IFileUtil fileUtil;
+    @Value("${file.path}")
+    private String filePath;
+    @Autowired
+    StuTrainingMapper trainingMapper;
+
+    @AnonymousAccess
+    @ApiOperation("学习成绩实验报告展示")
+    @PostMapping("getReportByUserId")
+    public ResultEntity<List<TrainingReport>> getReportByUserId(@RequestParam String userId,@RequestParam String chapterId) {
+        TrainingReportExample trainingReportExample = new TrainingReportExample();
+        trainingReportExample.createCriteria().andUserIdEqualTo(userId).andChapterIdEqualTo(chapterId);
+        List<TrainingReport> trainingReports = trainingReportMapper.selectByExampleWithBLOBs(trainingReportExample);
+        return new ResultEntity<>(trainingReports);
+    }
+
+    @AnonymousAccess
+    @PostMapping("uploadReport")
+    @ApiOperation("上传报告")
+    public ResultEntity<String> uploadReport(@RequestPart(name = "file") MultipartFile file,
+                                             @ApiParam("文件名称") @RequestParam String fileName,
+                                             @RequestParam String userId,
+                                             @RequestParam String trainingId,
+                                             @ApiParam("章节ID") @RequestParam String chapterId,
+                                             @ApiParam("章节名称") @RequestParam String chapterName,
+                                             @RequestParam String schoolId) {
+        int size = (int) file.getSize() / (1024 * 1024); //拿到MB为单位的大小
+        String originalFilename = file.getOriginalFilename();
+        assert originalFilename != null;
+        String fileExtension = originalFilename.substring(originalFilename.lastIndexOf(".")).toLowerCase();
+        if (!fileExtension.equals(".pdf") && !fileExtension.equals(".doc") && !fileExtension.equals(".docx")) {
+            return new ResultEntity<>(HttpStatus.BAD_REQUEST, "文件必须为pdf!");
+        }
+        //老师评分后不允许上传
+        TrainingReportExample example = new TrainingReportExample();
+        example.createCriteria().andSchoolIdEqualTo(schoolId).andUserIdEqualTo(userId).andChapterIdEqualTo(chapterId);
+        List<TrainingReport> trainingReports = trainingReportMapper.selectByExampleWithBLOBs(example);
+        if (!trainingReports.isEmpty()) {   //上传过
+            TrainingReport trainingReport = trainingReports.get(0);
+            BigDecimal teacherScore = trainingReport.getTeacherScore();
+            if (teacherScore != null) {    //老师评分过
+                return new ResultEntity<>(HttpStatus.BAD_REQUEST, "老师已评分,无法重新上传!");
+            } else {  //老师没评分 多次上传 直接覆盖
+                String filePath = fileUtil.upload(file);
+                trainingReport.setFilePath(filePath);
+                trainingReport.setUploadTime(new Date());
+                trainingReport.setReportName(fileName);
+                trainingReport.setReportSize(BigDecimal.valueOf(size));
+                trainingReportMapper.updateByPrimaryKeyWithBLOBs(trainingReport);
+                return new ResultEntity<>(HttpStatus.BAD_REQUEST, "重新上传成功!");
+            }
+        } else {          //第一次上传
+            String filePath = fileUtil.upload(file);
+            TrainingReport trainingReport = new TrainingReport();
+            trainingReport.setReportId(IdUtil.randomUUID());
+            trainingReport.setFilePath(filePath);
+            trainingReport.setUploadTime(new Date());
+            trainingReport.setReportName(fileName);
+            trainingReport.setChapterId(chapterId);
+            trainingReport.setChapterName(chapterName);
+            trainingReport.setUserId(userId);
+            trainingReport.setSchoolId(schoolId);
+            trainingReport.setReportSize(BigDecimal.valueOf(size));
+            StuTrainingWithBLOBs stuTrainingWithBLOBs = trainingMapper.selectByPrimaryKey(trainingId);
+            stuTrainingWithBLOBs.setReportId(trainingReport.getReportId());     // 第一次上传时设置实训表的报告ID
+            trainingReportMapper.insert(trainingReport);
+            return new ResultEntity<>(HttpStatus.OK, "上传成功!");
+        }
+    }
+
+
+    @AnonymousAccess
+    @ApiOperation("实验报告下载")
+    @GetMapping("downloadReport")
+    public void downloadReport(@RequestParam String reportId, HttpServletResponse response) {
+        TrainingReport trainingReport = trainingReportMapper.selectByPrimaryKey(reportId);
+        Assert.isTrue(trainingReport != null && trainingReport.getFilePath() != null, "报告不存在");
+        fileUtil.download(response, trainingReport.getReportName(), trainingReport.getFilePath());
+    }
+
+
+    @AnonymousAccess
+    @ApiOperation("实验报告查看评语")
+    @PostMapping("getTeacherCommentById")
+    public ResultEntity<String> getTeacherCommentById(@RequestParam String reportId) {
+        TrainingReport trainingReport = trainingReportMapper.selectByPrimaryKey(reportId);
+        return new ResultEntity<>(trainingReport.getTeacherComment());
+    }
+}
diff --git a/src/main/java/com/sztzjy/money_management/entity/SynthesisPlanClient.java b/src/main/java/com/sztzjy/money_management/entity/SynthesisPlanClient.java
index 25e9e4f..333afbb 100644
--- a/src/main/java/com/sztzjy/money_management/entity/SynthesisPlanClient.java
+++ b/src/main/java/com/sztzjy/money_management/entity/SynthesisPlanClient.java
@@ -20,6 +20,12 @@ public class SynthesisPlanClient {
     @ApiModelProperty("用户id")
     private String userid;
 
+    @ApiModelProperty("schoolID/99999999")
+    private String source;
+
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+
     @ApiModelProperty("客户编号")
     private String clientNumber;
 
@@ -95,6 +101,22 @@ public class SynthesisPlanClient {
         this.userid = userid == null ? null : userid.trim();
     }
 
+    public String getSource() {
+        return source;
+    }
+
+    public void setSource(String source) {
+        this.source = source == null ? null : source.trim();
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
     public String getClientNumber() {
         return clientNumber;
     }
diff --git a/src/main/java/com/sztzjy/money_management/entity/SynthesisPlanClientExample.java b/src/main/java/com/sztzjy/money_management/entity/SynthesisPlanClientExample.java
index eed60cb..d1dd77d 100644
--- a/src/main/java/com/sztzjy/money_management/entity/SynthesisPlanClientExample.java
+++ b/src/main/java/com/sztzjy/money_management/entity/SynthesisPlanClientExample.java
@@ -316,6 +316,136 @@ public class SynthesisPlanClientExample {
             return (Criteria) this;
         }
 
+        public Criteria andSourceIsNull() {
+            addCriterion("source is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceIsNotNull() {
+            addCriterion("source is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceEqualTo(String value) {
+            addCriterion("source =", value, "source");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceNotEqualTo(String value) {
+            addCriterion("source <>", value, "source");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceGreaterThan(String value) {
+            addCriterion("source >", value, "source");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceGreaterThanOrEqualTo(String value) {
+            addCriterion("source >=", value, "source");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceLessThan(String value) {
+            addCriterion("source <", value, "source");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceLessThanOrEqualTo(String value) {
+            addCriterion("source <=", value, "source");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceLike(String value) {
+            addCriterion("source like", value, "source");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceNotLike(String value) {
+            addCriterion("source not like", value, "source");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceIn(List<String> values) {
+            addCriterion("source in", values, "source");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceNotIn(List<String> values) {
+            addCriterion("source not in", values, "source");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceBetween(String value1, String value2) {
+            addCriterion("source between", value1, value2, "source");
+            return (Criteria) this;
+        }
+
+        public Criteria andSourceNotBetween(String value1, String value2) {
+            addCriterion("source not between", value1, value2, "source");
+            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 andClientNumberIsNull() {
             addCriterion("client_number is null");
             return (Criteria) this;
diff --git a/src/main/resources/mapper/SynthesisPlanClientMapper.xml b/src/main/resources/mapper/SynthesisPlanClientMapper.xml
index 8c7ee18..c90e450 100644
--- a/src/main/resources/mapper/SynthesisPlanClientMapper.xml
+++ b/src/main/resources/mapper/SynthesisPlanClientMapper.xml
@@ -5,6 +5,8 @@
     <id column="stu_client_id" jdbcType="VARCHAR" property="stuClientId" />
     <result column="caseid" jdbcType="VARCHAR" property="caseid" />
     <result column="userid" jdbcType="VARCHAR" property="userid" />
+    <result column="source" jdbcType="VARCHAR" property="source" />
+    <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
     <result column="client_number" jdbcType="VARCHAR" property="clientNumber" />
     <result column="get_status" jdbcType="VARCHAR" property="getStatus" />
     <result column="get_time" jdbcType="TIMESTAMP" property="getTime" />
@@ -82,9 +84,9 @@
     </where>
   </sql>
   <sql id="Base_Column_List">
-    stu_client_id, caseid, userid, client_number, get_status, get_time, name, namepy, 
-    age, year_income, idcard, phone_number, job, addr, telephone, email, job_place, manage_money_matters_type, 
-    submit_status, use_time
+    stu_client_id, caseid, userid, source, create_time, client_number, get_status, get_time, 
+    name, namepy, age, year_income, idcard, phone_number, job, addr, telephone, email, 
+    job_place, manage_money_matters_type, submit_status, use_time
   </sql>
   <select id="selectByExample" parameterType="com.sztzjy.money_management.entity.SynthesisPlanClientExample" resultMap="BaseResultMap">
     select
@@ -118,19 +120,21 @@
   </delete>
   <insert id="insert" parameterType="com.sztzjy.money_management.entity.SynthesisPlanClient">
     insert into synthesis_plan_client (stu_client_id, caseid, userid, 
-      client_number, get_status, get_time, 
-      name, namepy, age, 
-      year_income, idcard, phone_number, 
-      job, addr, telephone, 
-      email, job_place, manage_money_matters_type, 
-      submit_status, use_time)
+      source, create_time, client_number, 
+      get_status, get_time, name, 
+      namepy, age, year_income, 
+      idcard, phone_number, job, 
+      addr, telephone, email, 
+      job_place, manage_money_matters_type, submit_status, 
+      use_time)
     values (#{stuClientId,jdbcType=VARCHAR}, #{caseid,jdbcType=VARCHAR}, #{userid,jdbcType=VARCHAR}, 
-      #{clientNumber,jdbcType=VARCHAR}, #{getStatus,jdbcType=VARCHAR}, #{getTime,jdbcType=TIMESTAMP}, 
-      #{name,jdbcType=VARCHAR}, #{namepy,jdbcType=VARCHAR}, #{age,jdbcType=INTEGER}, 
-      #{yearIncome,jdbcType=DECIMAL}, #{idcard,jdbcType=VARCHAR}, #{phoneNumber,jdbcType=VARCHAR}, 
-      #{job,jdbcType=VARCHAR}, #{addr,jdbcType=VARCHAR}, #{telephone,jdbcType=VARCHAR}, 
-      #{email,jdbcType=VARCHAR}, #{jobPlace,jdbcType=VARCHAR}, #{manageMoneyMattersType,jdbcType=VARCHAR}, 
-      #{submitStatus,jdbcType=CHAR}, #{useTime,jdbcType=DECIMAL})
+      #{source,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{clientNumber,jdbcType=VARCHAR}, 
+      #{getStatus,jdbcType=VARCHAR}, #{getTime,jdbcType=TIMESTAMP}, #{name,jdbcType=VARCHAR}, 
+      #{namepy,jdbcType=VARCHAR}, #{age,jdbcType=INTEGER}, #{yearIncome,jdbcType=DECIMAL}, 
+      #{idcard,jdbcType=VARCHAR}, #{phoneNumber,jdbcType=VARCHAR}, #{job,jdbcType=VARCHAR}, 
+      #{addr,jdbcType=VARCHAR}, #{telephone,jdbcType=VARCHAR}, #{email,jdbcType=VARCHAR}, 
+      #{jobPlace,jdbcType=VARCHAR}, #{manageMoneyMattersType,jdbcType=VARCHAR}, #{submitStatus,jdbcType=CHAR}, 
+      #{useTime,jdbcType=DECIMAL})
   </insert>
   <insert id="insertSelective" parameterType="com.sztzjy.money_management.entity.SynthesisPlanClient">
     insert into synthesis_plan_client
@@ -144,6 +148,12 @@
       <if test="userid != null">
         userid,
       </if>
+      <if test="source != null">
+        source,
+      </if>
+      <if test="createTime != null">
+        create_time,
+      </if>
       <if test="clientNumber != null">
         client_number,
       </if>
@@ -206,6 +216,12 @@
       <if test="userid != null">
         #{userid,jdbcType=VARCHAR},
       </if>
+      <if test="source != null">
+        #{source,jdbcType=VARCHAR},
+      </if>
+      <if test="createTime != null">
+        #{createTime,jdbcType=TIMESTAMP},
+      </if>
       <if test="clientNumber != null">
         #{clientNumber,jdbcType=VARCHAR},
       </if>
@@ -277,6 +293,12 @@
       <if test="record.userid != null">
         userid = #{record.userid,jdbcType=VARCHAR},
       </if>
+      <if test="record.source != null">
+        source = #{record.source,jdbcType=VARCHAR},
+      </if>
+      <if test="record.createTime != null">
+        create_time = #{record.createTime,jdbcType=TIMESTAMP},
+      </if>
       <if test="record.clientNumber != null">
         client_number = #{record.clientNumber,jdbcType=VARCHAR},
       </if>
@@ -338,6 +360,8 @@
     set stu_client_id = #{record.stuClientId,jdbcType=VARCHAR},
       caseid = #{record.caseid,jdbcType=VARCHAR},
       userid = #{record.userid,jdbcType=VARCHAR},
+      source = #{record.source,jdbcType=VARCHAR},
+      create_time = #{record.createTime,jdbcType=TIMESTAMP},
       client_number = #{record.clientNumber,jdbcType=VARCHAR},
       get_status = #{record.getStatus,jdbcType=VARCHAR},
       get_time = #{record.getTime,jdbcType=TIMESTAMP},
@@ -368,6 +392,12 @@
       <if test="userid != null">
         userid = #{userid,jdbcType=VARCHAR},
       </if>
+      <if test="source != null">
+        source = #{source,jdbcType=VARCHAR},
+      </if>
+      <if test="createTime != null">
+        create_time = #{createTime,jdbcType=TIMESTAMP},
+      </if>
       <if test="clientNumber != null">
         client_number = #{clientNumber,jdbcType=VARCHAR},
       </if>
@@ -426,6 +456,8 @@
     update synthesis_plan_client
     set caseid = #{caseid,jdbcType=VARCHAR},
       userid = #{userid,jdbcType=VARCHAR},
+      source = #{source,jdbcType=VARCHAR},
+      create_time = #{createTime,jdbcType=TIMESTAMP},
       client_number = #{clientNumber,jdbcType=VARCHAR},
       get_status = #{getStatus,jdbcType=VARCHAR},
       get_time = #{getTime,jdbcType=TIMESTAMP},