Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
platform
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
王琮
platform
Commits
46a42f91
Commit
46a42f91
authored
Aug 03, 2023
by
梁钊炜
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
更新问卷生成、上报、汇总
文件上传,下载
parent
92cf9193
Changes
17
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
1655 additions
and
30 deletions
+1655
-30
FileCtrl.java
src/main/java/com/tiptimes/ctrl/FileCtrl.java
+0
-1
FileUploadController.java
src/main/java/com/tiptimes/ctrl/FileUploadController.java
+129
-0
QuestionnaireCtrl.java
src/main/java/com/tiptimes/ctrl/QuestionnaireCtrl.java
+101
-0
QuestionnaireDao.java
src/main/java/com/tiptimes/dao/QuestionnaireDao.java
+63
-0
FormGroup.java
src/main/java/com/tiptimes/model/FormGroup.java
+108
-0
Group.java
src/main/java/com/tiptimes/model/Group.java
+110
-0
Options.java
src/main/java/com/tiptimes/model/Options.java
+91
-24
AnswerDTO.java
...n/java/com/tiptimes/model/QuestionnaireDTO/AnswerDTO.java
+82
-0
FormOptionByGroup.java
...om/tiptimes/model/QuestionnaireDTO/FormOptionByGroup.java
+128
-0
FormOptionsDto.java
...a/com/tiptimes/model/QuestionnaireDTO/FormOptionsDto.java
+103
-0
ReportDto.java
...n/java/com/tiptimes/model/QuestionnaireDTO/ReportDto.java
+157
-0
SaveQuestionByGroup.java
.../tiptimes/model/QuestionnaireDTO/SaveQuestionByGroup.java
+97
-0
Questions.java
src/main/java/com/tiptimes/model/Questions.java
+1
-1
QuestionnaireService.java
src/main/java/com/tiptimes/service/QuestionnaireService.java
+46
-1
QuestionnaireServiceImpl.java
...a/com/tiptimes/service/impl/QuestionnaireServiceImpl.java
+307
-2
file.properties
src/main/resources/file.properties
+1
-0
Questionnaire.xml
src/main/resources/mapper/Questionnaire.xml
+131
-1
No files found.
src/main/java/com/tiptimes/ctrl/FileCtrl.java
View file @
46a42f91
...
...
@@ -204,7 +204,6 @@ public class FileCtrl {
}
catch
(
Exception
var23
)
{
var23
.
printStackTrace
();
}
}
@RequestMapping
({
"/upload"
})
...
...
src/main/java/com/tiptimes/ctrl/FileUploadController.java
0 → 100644
View file @
46a42f91
package
com
.
tiptimes
.
ctrl
;
import
org.springframework.core.io.Resource
;
import
org.springframework.core.io.UrlResource
;
import
org.springframework.http.HttpHeaders
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.multipart.MultipartFile
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.io.File
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.net.MalformedURLException
;
import
java.nio.file.Path
;
import
java.nio.file.Paths
;
import
java.text.SimpleDateFormat
;
import
java.util.*
;
@RestController
@RequestMapping
(
"/api"
)
public
class
FileUploadController
{
@RequestMapping
(
"/upload"
)
public
Object
upload
(
@RequestParam
(
"file"
)
MultipartFile
[]
files
)
throws
IOException
{
Properties
props
=
new
Properties
();
InputStream
inputStream
=
this
.
getClass
().
getClassLoader
().
getResourceAsStream
(
"file.properties"
);
props
.
load
(
inputStream
);
String
UPLOAD_PATH
=
props
.
getProperty
(
"UPLOAD_PATH"
);
if
(
files
==
null
||
files
.
length
==
0
)
{
return
"请选择文件上传"
;
}
Map
<
String
,
String
>
fileUrls
=
new
HashMap
<>();
for
(
MultipartFile
file
:
files
)
{
if
(!
file
.
isEmpty
())
{
// 获取原始文件名
String
originalFileName
=
file
.
getOriginalFilename
();
// 生成时间戳
String
timeStamp
=
new
SimpleDateFormat
(
"yyyyMMddHHmmssSSS"
).
format
(
new
Date
());
// 在文件名中加入时间戳,确保文件名唯一
String
fileNameWithTimeStamp
=
timeStamp
+
"_"
+
originalFileName
;
// 确保文件目录存在
File
destDir
=
new
File
(
UPLOAD_PATH
);
if
(!
destDir
.
exists
())
{
destDir
.
mkdirs
();
}
// 文件上传后保存的路径
String
destPath
=
UPLOAD_PATH
+
fileNameWithTimeStamp
;
try
{
// 保存文件
file
.
transferTo
(
new
File
(
destPath
));
// 添加上传文件的路径,并进行URL编码
fileUrls
.
put
(
fileNameWithTimeStamp
,
destPath
);
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
return
"文件上传失败:"
+
e
.
getMessage
();
}
}
}
return
fileUrls
;
}
@RequestMapping
(
"/delete"
)
@ResponseBody
public
boolean
deleteFile
(
String
fileName
)
throws
IOException
{
Properties
props
=
new
Properties
();
InputStream
inputStream
=
this
.
getClass
().
getClassLoader
().
getResourceAsStream
(
"file.properties"
);
props
.
load
(
inputStream
);
String
UPLOAD_PATH
=
props
.
getProperty
(
"UPLOAD_PATH"
);
String
filePathToDelete
=
UPLOAD_PATH
+
fileName
;
File
fileToDelete
=
new
File
(
filePathToDelete
);
if
(
fileToDelete
.
exists
())
{
try
{
return
fileToDelete
.
delete
();
}
catch
(
SecurityException
e
)
{
e
.
printStackTrace
();
return
false
;
}
}
else
{
return
false
;
}
}
@RequestMapping
(
"/download"
)
@ResponseBody
public
ResponseEntity
<
Resource
>
downloadFile
(
@RequestParam
(
"fileName"
)
String
fileName
)
{
try
{
Properties
props
=
new
Properties
();
InputStream
inputStream
=
this
.
getClass
().
getClassLoader
().
getResourceAsStream
(
"file.properties"
);
props
.
load
(
inputStream
);
String
UPLOAD_PATH
=
props
.
getProperty
(
"UPLOAD_PATH"
);
String
newName
=
""
;
int
lastDotIndex
=
fileName
.
lastIndexOf
(
"."
);
if
(
lastDotIndex
!=
-
1
&&
lastDotIndex
<
fileName
.
length
()
-
1
)
{
newName
=
UUID
.
randomUUID
()
+
fileName
.
substring
(
lastDotIndex
);
}
Path
filePath
=
Paths
.
get
(
UPLOAD_PATH
).
resolve
(
fileName
);
Resource
resource
=
new
UrlResource
(
filePath
.
toUri
());
if
(
resource
.
exists
()
&&
resource
.
isReadable
())
{
HttpHeaders
headers
=
new
HttpHeaders
();
headers
.
add
(
HttpHeaders
.
CONTENT_DISPOSITION
,
"attachment; filename="
+
newName
);
return
ResponseEntity
.
ok
()
.
headers
(
headers
)
.
body
(
resource
);
}
else
{
return
null
;
}
}
catch
(
Exception
e
)
{
return
null
;
}
}
}
src/main/java/com/tiptimes/ctrl/QuestionnaireCtrl.java
View file @
46a42f91
...
...
@@ -4,6 +4,9 @@ import com.github.pagehelper.PageHelper;
import
com.github.pagehelper.PageInfo
;
import
com.tiptimes.model.*
;
import
com.tiptimes.model.YearId
;
import
com.tiptimes.model.QuestionnaireDTO.FormOptionByGroup
;
import
com.tiptimes.model.QuestionnaireDTO.ReportDto
;
import
com.tiptimes.model.QuestionnaireDTO.SaveQuestionByGroup
;
import
com.tiptimes.service.FileService
;
import
com.tiptimes.service.QuestionnaireService
;
import
com.tiptimes.util.*
;
...
...
@@ -36,6 +39,104 @@ public class QuestionnaireCtrl {
public
QuestionnaireCtrl
()
{
}
/**
* 获取表单项
* @param year 年份
* @param createId 上报人id
* @return 结果
*/
@RequestMapping
({
"/get_options"
})
@ResponseBody
public
List
<
FormOptionByGroup
>
getFormOptions
(
Integer
year
,
String
createId
){
return
questionnaireService
.
getFormOptions
(
year
,
createId
);
}
/**
* 保存内容(暂存)
* @param reportDto 上报表单封装
* @return 结果
*/
@RequestMapping
({
"/save_report"
})
@ResponseBody
public
Map
<
String
,
Object
>
saveReport
(
@RequestBody
ReportDto
reportDto
){
HashMap
<
String
,
Object
>
result
=
new
HashMap
<>();
if
(
reportDto
==
null
){
result
.
put
(
"result"
,
false
);
result
.
put
(
"msg"
,
"上报内容为空"
);
}
Map
<
String
,
Object
>
map
=
questionnaireService
.
selectReport
(
reportDto
);
result
.
put
(
"result"
,
true
);
result
.
put
(
"data"
,
map
);
return
result
;
}
/**
* 分组保存审核结果
* @param saveQuestionByGroup 参数
* @return 结果
*/
@RequestMapping
({
"/save_group"
})
@ResponseBody
public
Map
<
String
,
Object
>
saveGroup
(
@RequestBody
SaveQuestionByGroup
saveQuestionByGroup
){
HashMap
<
String
,
Object
>
result
=
new
HashMap
<>();
boolean
flag
=
questionnaireService
.
saveQuestionByGroup
(
saveQuestionByGroup
);
result
.
put
(
"status"
,
flag
);
return
result
;
}
/**
* 审核内容回显
* @param uid 问卷id
* @param createId 创建人id
* @param year 年份
* @return 结果
*/
@RequestMapping
({
"/query_review"
})
@ResponseBody
public
Map
<
String
,
Object
>
queryReview
(
Long
uid
,
String
createId
,
int
year
){
HashMap
<
String
,
Object
>
result
=
new
HashMap
<>();
List
<
SaveQuestionByGroup
>
res
=
questionnaireService
.
queryReview
(
uid
,
createId
,
year
);
if
(
res
==
null
){
result
.
put
(
"status"
,
false
);
return
result
;
}
result
.
put
(
"status"
,
true
);
result
.
put
(
"data"
,
res
);
return
result
;
}
/**
* 审核上报
* @param uid 问卷id
* @param createId 创建人id
* @param year 年份
* @param status 当前状态
* @return 结果
*/
@RequestMapping
({
"/admin_submit"
})
@ResponseBody
public
Map
<
String
,
Object
>
adminSubmit
(
Long
uid
,
String
createId
,
int
year
,
int
status
){
HashMap
<
String
,
Object
>
res
=
new
HashMap
<>();
boolean
flag
=
questionnaireService
.
adminSubmit
(
uid
,
createId
,
year
,
status
);
res
.
put
(
"status"
,
flag
);
return
res
;
}
/**
* 数据上报
*
...
...
src/main/java/com/tiptimes/dao/QuestionnaireDao.java
View file @
46a42f91
...
...
@@ -2,6 +2,7 @@ package com.tiptimes.dao;
import
com.tiptimes.ctrl.QuestionnaireVo
;
import
com.tiptimes.model.*
;
import
com.tiptimes.model.QuestionnaireDTO.AnswerDTO
;
import
com.tiptimes.model.exportDTO.*
;
import
org.apache.ibatis.annotations.Param
;
...
...
@@ -9,6 +10,28 @@ import java.util.List;
public
interface
QuestionnaireDao
{
/**
* 根据问卷id查询组别id
* @param questionnaireId 问卷id
* @return 结果
*/
List
<
FormGroup
>
queryGroup
(
Integer
questionnaireId
);
/**
* 按照问题id查询问题
* @param questionId 问卷id
* @return 结果
*/
List
<
Questions
>
queryQuestionsByQuestionnaireId
(
int
questionId
);
/**
* 按照问题id查询选项
* @param questionId 问题id
* @return 结果
*/
List
<
Options
>
queryOptionsByQuestionId
(
Long
questionId
);
Long
insertQuestionnaire
(
QuestionnaireVo
questionnaireVo
);
Integer
queryQuestionsId
(
@Param
(
"qnYear"
)
Integer
qnYear
);
...
...
@@ -35,6 +58,16 @@ public interface QuestionnaireDao {
Integer
insertAnswer
(
@Param
(
"list"
)
List
<
Answer
>
answerList
,
@Param
(
"recordId"
)
Long
recordId
);
Integer
insertAnswers
(
@Param
(
"answer"
)
List
<
AnswerDTO
>
answer
,
@Param
(
"recordId"
)
int
recordId
);
Integer
updateAnswersByIdBatch
(
@Param
(
"list"
)
List
<
AnswerDTO
>
answerList
,
@Param
(
"recordId"
)
int
recordId
);
String
queryAnswersByIdBatch
(
@Param
(
"optionId"
)
int
optionId
,
@Param
(
"recordId"
)
int
recordId
,
@Param
(
"group"
)
int
group
);
Integer
updateRecord
(
Record
record
);
Integer
delView
(
@Param
(
"recordId"
)
Long
recordId
,
@Param
(
"questionsId"
)
Long
questionsId
);
...
...
@@ -312,4 +345,34 @@ public interface QuestionnaireDao {
@Param
(
"id97"
)
Integer
id97
,
@Param
(
"id98"
)
Integer
id98
);
Integer
queryReport
(
@Param
(
"createId"
)
String
createId
,
@Param
(
"questionnaireUuid"
)
Long
questionnaireUuid
);
Integer
updateReportStatus
(
@Param
(
"aId"
)
Integer
aId
);
int
saveQuestionByGroup
(
@Param
(
"questionsId"
)
int
questionsId
,
@Param
(
"recordId"
)
int
recordId
,
@Param
(
"remark"
)
String
remark
,
@Param
(
"approvalStatus"
)
int
approvalStatus
,
@Param
(
"score"
)
double
score
,
@Param
(
"groupId"
)
int
groupId
);
String
selectGroupById
(
@Param
(
"groupId"
)
int
group
);
Group
selectGroup
(
@Param
(
"groupId"
)
int
group
);
Review
selectReview
(
@Param
(
"questionsId"
)
int
questionsId
,
@Param
(
"recordId"
)
int
recordId
,
@Param
(
"groupId"
)
int
groupId
);
Integer
updateRecordStatus
(
@Param
(
"uid"
)
Long
uid
,
@Param
(
"createId"
)
String
createId
,
@Param
(
"year"
)
int
year
,
@Param
(
"status"
)
int
status
);
Integer
queryAnswer
(
@Param
(
"recordId"
)
int
recordId
);
}
src/main/java/com/tiptimes/model/FormGroup.java
0 → 100644
View file @
46a42f91
package
com
.
tiptimes
.
model
;
public
class
FormGroup
{
/**
* 组别id
*/
private
int
groupId
;
/**
* 组别标题
*/
private
String
groupTitle
;
/**
* 关联年份
*/
private
int
qnYear
;
/**
* 组别类型 0-表单 1-表格
*/
private
int
groupType
;
/**
* 关联问题列表 按照(,)分割
*/
private
String
questionId
;
/**
* 关联表单id
*/
private
int
questionnaireId
;
/**
* 关联组id 用于同一表单项同步值
*/
private
int
relevance
;
public
FormGroup
()
{
}
public
FormGroup
(
int
groupId
,
String
groupTitle
,
int
qnYear
,
int
groupType
,
String
questionId
,
int
questionnaireId
,
int
relevance
)
{
this
.
groupId
=
groupId
;
this
.
groupTitle
=
groupTitle
;
this
.
qnYear
=
qnYear
;
this
.
groupType
=
groupType
;
this
.
questionId
=
questionId
;
this
.
questionnaireId
=
questionnaireId
;
this
.
relevance
=
relevance
;
}
public
int
getGroupId
()
{
return
groupId
;
}
public
void
setGroupId
(
int
groupId
)
{
this
.
groupId
=
groupId
;
}
public
String
getGroupTitle
()
{
return
groupTitle
;
}
public
void
setGroupTitle
(
String
groupTitle
)
{
this
.
groupTitle
=
groupTitle
;
}
public
int
getQnYear
()
{
return
qnYear
;
}
public
void
setQnYear
(
int
qnYear
)
{
this
.
qnYear
=
qnYear
;
}
public
int
getGroupType
()
{
return
groupType
;
}
public
void
setGroupType
(
int
groupType
)
{
this
.
groupType
=
groupType
;
}
public
String
getQuestionId
()
{
return
questionId
;
}
public
void
setQuestionId
(
String
questionId
)
{
this
.
questionId
=
questionId
;
}
public
int
getQuestionnaireId
()
{
return
questionnaireId
;
}
public
void
setQuestionnaireId
(
int
questionnaireId
)
{
this
.
questionnaireId
=
questionnaireId
;
}
public
int
getRelevance
()
{
return
relevance
;
}
public
void
setRelevance
(
int
relevance
)
{
this
.
relevance
=
relevance
;
}
}
src/main/java/com/tiptimes/model/Group.java
0 → 100644
View file @
46a42f91
package
com
.
tiptimes
.
model
;
public
class
Group
{
/**
* 组别id
*/
private
int
groupId
;
/**
* 组别标题
*/
private
String
groupTitle
;
/**
* 年份
*/
private
int
qnYear
;
/**
* 组别类型
*/
private
int
groupType
;
/**
* 问题id
*/
private
String
questionId
;
/**
* 问卷id
*/
private
int
questionnaireId
;
/**
* 关联字段(保留字段)
*/
private
int
relevance
;
public
Group
()
{
}
public
Group
(
int
groupId
,
String
groupTitle
,
int
qnYear
,
int
groupType
,
String
questionId
,
int
questionnaireId
,
int
relevance
)
{
this
.
groupId
=
groupId
;
this
.
groupTitle
=
groupTitle
;
this
.
qnYear
=
qnYear
;
this
.
groupType
=
groupType
;
this
.
questionId
=
questionId
;
this
.
questionnaireId
=
questionnaireId
;
this
.
relevance
=
relevance
;
}
public
int
getGroupId
()
{
return
groupId
;
}
public
void
setGroupId
(
int
groupId
)
{
this
.
groupId
=
groupId
;
}
public
String
getGroupTitle
()
{
return
groupTitle
;
}
public
void
setGroupTitle
(
String
groupTitle
)
{
this
.
groupTitle
=
groupTitle
;
}
public
int
getQnYear
()
{
return
qnYear
;
}
public
void
setQnYear
(
int
qnYear
)
{
this
.
qnYear
=
qnYear
;
}
public
int
getGroupType
()
{
return
groupType
;
}
public
void
setGroupType
(
int
groupType
)
{
this
.
groupType
=
groupType
;
}
public
String
getQuestionId
()
{
return
questionId
;
}
public
void
setQuestionId
(
String
questionId
)
{
this
.
questionId
=
questionId
;
}
public
int
getQuestionnaireId
()
{
return
questionnaireId
;
}
public
void
setQuestionnaireId
(
int
questionnaireId
)
{
this
.
questionnaireId
=
questionnaireId
;
}
public
int
getRelevance
()
{
return
relevance
;
}
public
void
setRelevance
(
int
relevance
)
{
this
.
relevance
=
relevance
;
}
}
src/main/java/com/tiptimes/model/Options.java
View file @
46a42f91
package
com
.
tiptimes
.
model
;
/**
* 选项表
*/
public
class
Options
{
//选项表
private
Long
id
;
//选项id
private
Long
questionId
;
//问题id
private
int
status
;
//选项状态 1:启用(默认值);0:停用'
private
String
optionValue
;
//选项内容
public
String
getQnYear
()
{
return
qnYear
;
}
/**
* id
*/
private
Long
id
;
/**
* 问题id
*/
private
Long
questionId
;
/**
* 选项状态
*/
private
int
status
;
/**
* 选项内容
*/
private
String
optionValue
;
/**
* 映射表单类型 0-文本框 1-数字输入框 2-多选项 3-文件上传 4-表格项
*/
private
int
formTag
;
public
void
setQnYear
(
String
qnYear
)
{
this
.
qnYear
=
qnYear
;
/**
* 多选选项 当映射表单类型2时有意义
*/
private
String
formOption
;
/**
* 内容
*/
private
Object
formContent
;
/**
* 提交记录id 关联提交记录,涉及表单定时保存
*/
private
int
answerId
;
public
Options
()
{
}
private
String
qnYear
;
public
Options
(
Long
id
,
Long
questionId
,
int
status
,
String
optionValue
,
int
formTag
,
String
formOption
,
String
formContent
,
int
answerId
)
{
this
.
id
=
id
;
this
.
questionId
=
questionId
;
this
.
status
=
status
;
this
.
optionValue
=
optionValue
;
this
.
formTag
=
formTag
;
this
.
formOption
=
formOption
;
this
.
formContent
=
formContent
;
this
.
answerId
=
answerId
;
}
public
Long
getId
()
{
return
id
;
...
...
@@ -24,6 +69,14 @@ public class Options {//选项表
this
.
id
=
id
;
}
public
Long
getQuestionId
()
{
return
questionId
;
}
public
void
setQuestionId
(
Long
questionId
)
{
this
.
questionId
=
questionId
;
}
public
int
getStatus
()
{
return
status
;
}
...
...
@@ -32,29 +85,43 @@ public class Options {//选项表
this
.
status
=
status
;
}
public
Options
()
{
public
String
getOptionValue
()
{
return
optionValue
;
}
public
Long
getQuestionId
(
)
{
return
questionId
;
public
void
setOptionValue
(
String
optionValue
)
{
this
.
optionValue
=
optionValue
;
}
public
void
setQuestionId
(
Long
questionId
)
{
this
.
questionId
=
questionId
;
public
int
getFormTag
(
)
{
return
formTag
;
}
public
String
getOptionValue
(
)
{
return
optionValue
;
public
void
setFormTag
(
int
formTag
)
{
this
.
formTag
=
formTag
;
}
public
void
setOptionValue
(
String
optionValue
)
{
this
.
optionValue
=
optionValue
;
public
String
getFormOption
(
)
{
return
formOption
;
}
public
Options
(
Long
id
,
Long
questionId
,
int
status
,
String
optionValue
)
{
this
.
id
=
id
;
this
.
questionId
=
questionId
;
this
.
status
=
status
;
this
.
optionValue
=
optionValue
;
public
void
setFormOption
(
String
formOption
)
{
this
.
formOption
=
formOption
;
}
public
Object
getFormContent
()
{
return
formContent
;
}
public
void
setFormContent
(
String
formContent
)
{
this
.
formContent
=
formContent
;
}
public
int
getAnswerId
()
{
return
answerId
;
}
public
void
setAnswerId
(
int
answerId
)
{
this
.
answerId
=
answerId
;
}
}
src/main/java/com/tiptimes/model/QuestionnaireDTO/AnswerDTO.java
0 → 100644
View file @
46a42f91
package
com
.
tiptimes
.
model
.
QuestionnaireDTO
;
import
java.math.BigDecimal
;
public
class
AnswerDTO
{
/**
* 子项id
*/
private
int
optionId
;
/**
* 表单内容
*/
private
Object
value
;
/**
* 分组id
*/
private
int
groupId
;
/**
* 备注
*/
private
String
remark
;
/**
* 分数
*/
private
BigDecimal
score
;
public
AnswerDTO
()
{
}
public
AnswerDTO
(
int
optionId
,
Object
value
,
int
groupId
,
String
remark
,
BigDecimal
score
)
{
this
.
optionId
=
optionId
;
this
.
value
=
value
;
this
.
groupId
=
groupId
;
this
.
remark
=
remark
;
this
.
score
=
score
;
}
public
int
getOptionId
()
{
return
optionId
;
}
public
void
setOptionId
(
int
optionId
)
{
this
.
optionId
=
optionId
;
}
public
Object
getValue
()
{
return
value
;
}
public
void
setValue
(
Object
value
)
{
this
.
value
=
value
;
}
public
int
getGroupId
()
{
return
groupId
;
}
public
void
setGroupId
(
int
groupId
)
{
this
.
groupId
=
groupId
;
}
public
String
getRemark
()
{
return
remark
;
}
public
void
setRemark
(
String
remark
)
{
this
.
remark
=
remark
;
}
public
BigDecimal
getScore
()
{
return
score
;
}
public
void
setScore
(
BigDecimal
score
)
{
this
.
score
=
score
;
}
}
src/main/java/com/tiptimes/model/QuestionnaireDTO/FormOptionByGroup.java
0 → 100644
View file @
46a42f91
package
com
.
tiptimes
.
model
.
QuestionnaireDTO
;
import
java.util.List
;
/**
* 按组别获取表单对象
*/
public
class
FormOptionByGroup
{
/**
* 组别id
*/
private
int
groupId
;
/**
* 组别标题
*/
private
String
groupTitle
;
/**
* 关联年份
*/
private
int
qnYear
;
/**
* 组别类型 0-表单 1-表格
*/
private
int
groupType
;
/**
* 关联问题列表 按照(,)分割
*/
private
String
questionId
;
/**
* 关联表单id
*/
private
int
questionnaireId
;
/**
* 关联组id 用于同一表单项同步值
*/
private
int
relevance
;
/**
* 组下问题列表
*/
private
List
<
FormOptionsDto
>
formOptions
;
public
FormOptionByGroup
()
{
}
public
FormOptionByGroup
(
int
groupId
,
String
groupTitle
,
int
qnYear
,
int
groupType
,
String
questionId
,
int
questionnaireId
,
int
relevance
,
List
<
FormOptionsDto
>
formOptions
)
{
this
.
groupId
=
groupId
;
this
.
groupTitle
=
groupTitle
;
this
.
qnYear
=
qnYear
;
this
.
groupType
=
groupType
;
this
.
questionId
=
questionId
;
this
.
questionnaireId
=
questionnaireId
;
this
.
relevance
=
relevance
;
this
.
formOptions
=
formOptions
;
}
public
int
getGroupId
()
{
return
groupId
;
}
public
void
setGroupId
(
int
groupId
)
{
this
.
groupId
=
groupId
;
}
public
String
getGroupTitle
()
{
return
groupTitle
;
}
public
void
setGroupTitle
(
String
groupTitle
)
{
this
.
groupTitle
=
groupTitle
;
}
public
int
getQnYear
()
{
return
qnYear
;
}
public
void
setQnYear
(
int
qnYear
)
{
this
.
qnYear
=
qnYear
;
}
public
int
getGroupType
()
{
return
groupType
;
}
public
void
setGroupType
(
int
groupType
)
{
this
.
groupType
=
groupType
;
}
public
String
getQuestionId
()
{
return
questionId
;
}
public
void
setQuestionId
(
String
questionId
)
{
this
.
questionId
=
questionId
;
}
public
int
getQuestionnaireId
()
{
return
questionnaireId
;
}
public
void
setQuestionnaireId
(
int
questionnaireId
)
{
this
.
questionnaireId
=
questionnaireId
;
}
public
int
getRelevance
()
{
return
relevance
;
}
public
void
setRelevance
(
int
relevance
)
{
this
.
relevance
=
relevance
;
}
public
List
<
FormOptionsDto
>
getFormOptions
()
{
return
formOptions
;
}
public
void
setFormOptions
(
List
<
FormOptionsDto
>
formOptions
)
{
this
.
formOptions
=
formOptions
;
}
}
src/main/java/com/tiptimes/model/QuestionnaireDTO/FormOptionsDto.java
0 → 100644
View file @
46a42f91
package
com
.
tiptimes
.
model
.
QuestionnaireDTO
;
import
com.tiptimes.model.Options
;
import
java.util.List
;
/**
* 获取表单对象
*/
public
class
FormOptionsDto
{
/**
* 问题id
*/
private
Long
id
;
/**
* 关联表单id
*/
private
Long
questionnaireUuid
;
/**
* 问题内容
*/
private
String
question
;
/**
* 问题预存内容
*/
private
Object
questionContent
;
/**
* 问题状态标识
*/
private
int
status
;
/**
* 问题关联选项列表
*/
private
List
<
Options
>
options
;
public
FormOptionsDto
(
Long
id
,
Long
questionnaireUuid
,
String
question
,
String
questionContent
,
int
status
,
List
<
Options
>
options
)
{
this
.
id
=
id
;
this
.
questionnaireUuid
=
questionnaireUuid
;
this
.
question
=
question
;
this
.
questionContent
=
questionContent
;
this
.
status
=
status
;
this
.
options
=
options
;
}
public
FormOptionsDto
()
{
}
public
Long
getId
()
{
return
id
;
}
public
void
setId
(
Long
id
)
{
this
.
id
=
id
;
}
public
Long
getQuestionnaireUuid
()
{
return
questionnaireUuid
;
}
public
void
setQuestionnaireUuid
(
Long
questionnaireUuid
)
{
this
.
questionnaireUuid
=
questionnaireUuid
;
}
public
String
getQuestion
()
{
return
question
;
}
public
void
setQuestion
(
String
question
)
{
this
.
question
=
question
;
}
public
Object
getQuestionContent
()
{
return
questionContent
;
}
public
void
setQuestionContent
(
String
questionContent
)
{
this
.
questionContent
=
questionContent
;
}
public
int
getStatus
()
{
return
status
;
}
public
void
setStatus
(
int
status
)
{
this
.
status
=
status
;
}
public
List
<
Options
>
getOptions
()
{
return
options
;
}
public
void
setOptions
(
List
<
Options
>
options
)
{
this
.
options
=
options
;
}
}
src/main/java/com/tiptimes/model/QuestionnaireDTO/ReportDto.java
0 → 100644
View file @
46a42f91
package
com
.
tiptimes
.
model
.
QuestionnaireDTO
;
import
java.util.List
;
/**
* 表单上报
*/
public
class
ReportDto
{
/**
* 表单数据
*/
private
List
<
AnswerDTO
>
answer
;
/**
* 问卷id
*/
private
Long
questionnaireUuid
;
/**
* 问卷名称
*/
private
String
questionnaireName
;
//问卷名称
/**
* 创建人
*/
private
String
createBy
;
/**
* 上报人id
*/
private
String
createId
;
/**
* 所属众创空间
*/
private
String
createName
;
//所属众创空间
/**
* 联系方式
*/
private
String
phoneNumber
;
//联系方式
/**
* 保存类型
*/
private
Integer
type
;
//0暂存 1上报
/**
* 填报人
*/
private
String
writePeople
;
//填报人
/**
* 上报年份
*/
private
Integer
qnYear
;
//上报年份
public
ReportDto
(
List
<
AnswerDTO
>
answer
,
Long
questionnaireUuid
,
String
questionnaireName
,
String
createBy
,
String
createId
,
String
createName
,
String
phoneNumber
,
Integer
type
,
String
writePeople
,
Integer
qnYear
)
{
this
.
answer
=
answer
;
this
.
questionnaireUuid
=
questionnaireUuid
;
this
.
questionnaireName
=
questionnaireName
;
this
.
createBy
=
createBy
;
this
.
createId
=
createId
;
this
.
createName
=
createName
;
this
.
phoneNumber
=
phoneNumber
;
this
.
type
=
type
;
this
.
writePeople
=
writePeople
;
this
.
qnYear
=
qnYear
;
}
public
ReportDto
()
{
}
public
List
<
AnswerDTO
>
getAnswer
()
{
return
answer
;
}
public
void
setAnswer
(
List
<
AnswerDTO
>
answer
)
{
this
.
answer
=
answer
;
}
public
Long
getQuestionnaireUuid
()
{
return
questionnaireUuid
;
}
public
void
setQuestionnaireUuid
(
Long
questionnaireUuid
)
{
this
.
questionnaireUuid
=
questionnaireUuid
;
}
public
String
getQuestionnaireName
()
{
return
questionnaireName
;
}
public
void
setQuestionnaireName
(
String
questionnaireName
)
{
this
.
questionnaireName
=
questionnaireName
;
}
public
String
getCreateBy
()
{
return
createBy
;
}
public
void
setCreateBy
(
String
createBy
)
{
this
.
createBy
=
createBy
;
}
public
String
getCreateId
()
{
return
createId
;
}
public
void
setCreateId
(
String
createId
)
{
this
.
createId
=
createId
;
}
public
String
getCreateName
()
{
return
createName
;
}
public
void
setCreateName
(
String
createName
)
{
this
.
createName
=
createName
;
}
public
String
getPhoneNumber
()
{
return
phoneNumber
;
}
public
void
setPhoneNumber
(
String
phoneNumber
)
{
this
.
phoneNumber
=
phoneNumber
;
}
public
Integer
getType
()
{
return
type
;
}
public
void
setType
(
Integer
type
)
{
this
.
type
=
type
;
}
public
String
getWritePeople
()
{
return
writePeople
;
}
public
void
setWritePeople
(
String
writePeople
)
{
this
.
writePeople
=
writePeople
;
}
public
Integer
getQnYear
()
{
return
qnYear
;
}
public
void
setQnYear
(
Integer
qnYear
)
{
this
.
qnYear
=
qnYear
;
}
}
src/main/java/com/tiptimes/model/QuestionnaireDTO/SaveQuestionByGroup.java
0 → 100644
View file @
46a42f91
package
com
.
tiptimes
.
model
.
QuestionnaireDTO
;
/**
* 审批单次提交
*/
public
class
SaveQuestionByGroup
{
/**
* 上报人id
*/
private
String
createId
;
/**
* 问卷id
*/
private
Long
questionnaireUuid
;
/**
* 组别id
*/
private
Integer
groupId
;
/**
* 填写状态 0-驳回 1-通过
*/
private
int
status
;
/**
* 分数
*/
private
double
score
;
/**
* 备注(驳回原因)
*/
private
String
remark
;
public
SaveQuestionByGroup
()
{
}
public
SaveQuestionByGroup
(
String
createId
,
Long
questionnaireUuid
,
Integer
groupId
,
int
status
,
double
score
,
String
remark
)
{
this
.
createId
=
createId
;
this
.
questionnaireUuid
=
questionnaireUuid
;
this
.
groupId
=
groupId
;
this
.
status
=
status
;
this
.
score
=
score
;
this
.
remark
=
remark
;
}
public
String
getCreateId
()
{
return
createId
;
}
public
void
setCreateId
(
String
createId
)
{
this
.
createId
=
createId
;
}
public
Long
getQuestionnaireUuid
()
{
return
questionnaireUuid
;
}
public
void
setQuestionnaireUuid
(
Long
questionnaireUuid
)
{
this
.
questionnaireUuid
=
questionnaireUuid
;
}
public
Integer
getGroupId
()
{
return
groupId
;
}
public
void
setGroupId
(
Integer
groupId
)
{
this
.
groupId
=
groupId
;
}
public
int
getStatus
()
{
return
status
;
}
public
void
setStatus
(
int
status
)
{
this
.
status
=
status
;
}
public
double
getScore
()
{
return
score
;
}
public
void
setScore
(
double
score
)
{
this
.
score
=
score
;
}
public
String
getRemark
()
{
return
remark
;
}
public
void
setRemark
(
String
remark
)
{
this
.
remark
=
remark
;
}
}
src/main/java/com/tiptimes/model/Questions.java
View file @
46a42f91
...
...
@@ -5,7 +5,7 @@ public class Questions {//问题表
private
Long
id
;
//问题id
private
Long
questionnaireUuid
;
//问卷id
private
String
question
;
//问题
private
int
status
;
//问题状态 1:启用(默认值);0:停用'
private
int
status
;
//问题状态 1:启用(默认值);0:停用
2 文件类型
'
private
Date
createTime
;
//创建时间
public
Long
getId
()
{
...
...
src/main/java/com/tiptimes/service/QuestionnaireService.java
View file @
46a42f91
package
com
.
tiptimes
.
service
;
import
com.tiptimes.model.*
;
import
com.tiptimes.model.QuestionnaireDTO.FormOptionByGroup
;
import
com.tiptimes.model.QuestionnaireDTO.ReportDto
;
import
com.tiptimes.model.QuestionnaireDTO.SaveQuestionByGroup
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
...
...
@@ -8,6 +11,9 @@ import java.util.List;
import
java.util.Map
;
public
interface
QuestionnaireService
{
/**
* 根据上报人和问卷id查询上报记录id
* @param questionnaireUuid 问卷id
...
...
@@ -164,7 +170,46 @@ public interface QuestionnaireService {
Integer
id97
,
Integer
id98
);
/**
* 根据年份查询表单
* @param year 年份
* @param createId 上报人id
* @return 结果
*/
List
<
FormOptionByGroup
>
getFormOptions
(
int
year
,
String
createId
);
}
/**
* 查询上报记录
* @param reportDto 上报数据
*/
Map
<
String
,
Object
>
selectReport
(
ReportDto
reportDto
);
/**
* 单次提交审核
* @param saveQuestionByGroup 单次提交
* @return 结果
*/
boolean
saveQuestionByGroup
(
SaveQuestionByGroup
saveQuestionByGroup
);
/**
* 审核表单回显
* @param uid 表单id
* @param createId 创建人
* @param year 年份
* @return 结果
*/
List
<
SaveQuestionByGroup
>
queryReview
(
Long
uid
,
String
createId
,
int
year
);
/**
* 审核上报
* @param uid 问卷id
* @param createId 创建人
* @param year 年份
* @param status 状态
* @return 结果
*/
boolean
adminSubmit
(
Long
uid
,
String
createId
,
int
year
,
int
status
);
}
src/main/java/com/tiptimes/service/impl/QuestionnaireServiceImpl.java
View file @
46a42f91
This diff is collapsed.
Click to expand it.
src/main/resources/file.properties
View file @
46a42f91
...
...
@@ -4,3 +4,4 @@ ImgUrl=/data/tianruanImgFile/
#MasterServer=1 为主服务器
#MasterServer=2 为从服务器
MasterServer
=
1
UPLOAD_PATH
=
C:/uploaded_files/
\ No newline at end of file
src/main/resources/mapper/Questionnaire.xml
View file @
46a42f91
...
...
@@ -3,6 +3,112 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.tiptimes.dao.QuestionnaireDao"
>
<!-- 问卷id查询组别id -->
<select
id=
"queryGroup"
parameterType=
"Integer"
resultType=
"com.tiptimes.model.FormGroup"
>
SELECT *
FROM t_group
WHERE questionnaire_id = #{questionnaireId}
</select>
<!-- 根据问题ID与问卷id查询问题列表 -->
<select
id=
"queryQuestionsByQuestionnaireId"
resultType=
"com.tiptimes.model.Questions"
>
SELECT *
FROM t_questions
WHERE id = #{questionId}
</select>
<!-- 根据问题ID查询选项列表 -->
<select
id=
"queryOptionsByQuestionId"
resultType=
"com.tiptimes.model.Options"
>
SELECT *
FROM t_options
WHERE question_id = #{questionId}
</select>
<select
id=
"queryReport"
resultType=
"integer"
>
SELECT id
FROM t_record
WHERE create_id = #{createId}
AND questionnaire_uuid = #{questionnaireUuid};
</select>
<update
id=
"updateReportStatus"
>
UPDATE t_record
SET process_status = 1
WHERE id = #{aId}
</update>
<!-- saveQuestionByGroup: 查询并更新或插入t_review表数据 -->
<insert
id=
"saveQuestionByGroup"
parameterType=
"map"
>
<selectKey
resultType=
"java.lang.Integer"
keyProperty=
"isExist"
order=
"BEFORE"
>
SELECT COUNT(*) FROM t_review
WHERE questions_id = #{questionsId} AND record_id = #{recordId}
AND
group_id =#{groupId}
</selectKey>
<if
test=
"isExist > 0"
>
UPDATE t_review
SET
remark = #{remark},
approval_status = #{approvalStatus},
score = #{score}
WHERE
questions_id = #{questionsId}
AND
record_id = #{recordId}
AND
group_id =#{groupId}
</if>
<if
test=
"isExist == 0"
>
INSERT INTO t_review (questions_id, record_id, remark, approval_status, score, group_id)
VALUES (#{questionsId}, #{recordId}, #{remark}, #{approvalStatus}, #{score}, #{groupId})
</if>
</insert>
<select
id=
"selectGroupById"
resultType=
"string"
>
SELECT question_id
FROM t_group
WHERE group_id = #{groupId}
</select>
<select
id=
"selectGroup"
resultType=
"com.tiptimes.model.Group"
>
SELECT *
FROM t_group
WHERE group_id = #{groupId}
</select>
<select
id=
"selectReview"
resultType=
"com.tiptimes.model.Review"
>
SELECT *
FROM t_review
WHERE record_id = #{recordId} AND questions_id = #{questionsId} AND group_id =#{groupId}
ORDER BY group_id DESC
</select>
<update
id=
"updateRecordStatus"
>
UPDATE t_record
SET process_status = #{status}
WHERE qn_year = #{year} AND create_id = #{createId} AND questionnaire_uuid = #{uid}
</update>
<select
id=
"queryAnswer"
resultType=
"integer"
>
select COUNT(*) AS 'number'
FROM t_answer
WHERE record_id = #{recordId}
</select>
<insert
id=
"insertQuestionnaire"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
INSERT INTO t_questionnaire(questionnaire_name, status, create_time, create_by, qn_year)
VALUES (#{questionnaireName}, #{status}, #{createTime}, #{createBy}, #{qnYear})
...
...
@@ -54,7 +160,10 @@
INSERT INTO t_record(questionnaire_uuid, questionnaire_name, process_status, phone_number, create_time,
create_by, create_id, write_people, qn_year)
VALUES (#{questionnaireUuid}, #{questionnaireName}, #{processStatus}, #{phoneNumber}, #{createTime},
#{createBy}, #{createId}, #{writePeople}, #{qnYear})
#{createBy}, #{createId}, #{writePeople}, #{qnYear});
<selectKey
keyProperty=
"id"
order=
"AFTER"
resultType=
"long"
>
SELECT LAST_INSERT_ID()
</selectKey>
</insert>
<insert
id=
"insertAnswer"
parameterType=
"com.tiptimes.model.Answer"
>
...
...
@@ -64,6 +173,27 @@
</foreach>
</insert>
<insert
id=
"insertAnswers"
parameterType=
"com.tiptimes.model.QuestionnaireDTO.AnswerDTO"
>
INSERT INTO t_answer (`options_id`, `value`, `group`, `record_id`) VALUES
<foreach
collection=
"answer"
separator=
","
item=
"item"
>
( #{item.optionId}, #{item.value}, #{item.groupId} , #{recordId})
</foreach>
</insert>
<update
id=
"updateAnswersByIdBatch"
parameterType=
"com.tiptimes.model.QuestionnaireDTO.AnswerDTO"
>
<foreach
collection=
"list"
item=
"item"
separator=
";"
>
UPDATE t_answer
SET `value` = #{item.value}
WHERE `options_id` = #{item.optionId} AND `record_id` = #{recordId} AND `group` = #{item.groupId}
</foreach>
</update>
<select
id=
"queryAnswersByIdBatch"
resultType=
"string"
>
SELECT `value`
FROM t_answer
WHERE options_id = #{optionId} AND record_id = #{recordId} AND `group` = #{group}
</select>
<insert
id=
"insertReview"
>
INSERT INTO t_review (`questions_id`,`remark`,`score`,`approval_status`,`record_id`) VALUES
<foreach
collection=
"list"
item=
"list"
separator=
","
>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment