Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Z
zrch-risk-39
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Administrator
zrch-risk-39
Commits
4c556ef6
提交
4c556ef6
authored
2月 11, 2026
作者:
kxjia
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
非现场报送优化
上级
44f84d08
隐藏空白字符变更
内嵌
并排
正在显示
14 个修改的文件
包含
340 行增加
和
386 行删除
+340
-386
BaosongDataValidController.java
...es/stm/baosong/controller/BaosongDataValidController.java
+14
-19
BaosongTaskAllocController.java
...es/stm/baosong/controller/BaosongTaskAllocController.java
+2
-1
BaosongTaskReviewController.java
...s/stm/baosong/controller/BaosongTaskReviewController.java
+21
-29
CreateXmlFile.java
...g/jeecg/modules/stm/baosong/controller/CreateXmlFile.java
+231
-211
BaosongDataValid.java
...rg/jeecg/modules/stm/baosong/entity/BaosongDataValid.java
+5
-11
BaosongQuery.java
...va/org/jeecg/modules/stm/baosong/entity/BaosongQuery.java
+1
-15
BaosongTask.java
...ava/org/jeecg/modules/stm/baosong/entity/BaosongTask.java
+16
-20
BaosongTaskAlloc.java
...rg/jeecg/modules/stm/baosong/entity/BaosongTaskAlloc.java
+11
-13
BaosongTaskRecord.java
...g/jeecg/modules/stm/baosong/entity/BaosongTaskRecord.java
+10
-13
BaosongTaskReview.java
...g/jeecg/modules/stm/baosong/entity/BaosongTaskReview.java
+5
-11
BaosongTpl.java
...java/org/jeecg/modules/stm/baosong/entity/BaosongTpl.java
+6
-11
BaosongTplItem.java
.../org/jeecg/modules/stm/baosong/entity/BaosongTplItem.java
+9
-13
BaosongTplItemConfig.java
...eecg/modules/stm/baosong/entity/BaosongTplItemConfig.java
+3
-11
BaosongTaskReviewMapper.xml
...ain/resources/mapping/baosong/BaosongTaskReviewMapper.xml
+6
-8
没有找到文件。
zrch-risk-server-39/jeecg-module-system/jeecg-module-stm/src/main/java/org/jeecg/modules/stm/baosong/controller/BaosongDataValidController.java
浏览文件 @
4c556ef6
package
org
.
jeecg
.
modules
.
stm
.
baosong
.
controller
;
package
org
.
jeecg
.
modules
.
stm
.
baosong
.
controller
;
import
java.util.*
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
java.util.stream.Collectors
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
jakarta.servlet.http.HttpServletRequest
;
import
jakarta.servlet.http.HttpServletResponse
;
import
com.baomidou.mybatisplus.core.toolkit.CollectionUtils
;
import
com.baomidou.mybatisplus.core.toolkit.CollectionUtils
;
import
com.baomidou.mybatisplus.core.toolkit.StringUtils
;
import
com.baomidou.mybatisplus.core.toolkit.StringUtils
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
jakarta.servlet.http.HttpServletRequest
;
import
jakarta.servlet.http.HttpServletResponse
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.shiro.authz.annotation.RequiresPermissions
;
import
org.jeecg.common.api.vo.Result
;
import
org.jeecg.common.api.vo.Result
;
import
org.jeecg.common.aspect.annotation.AutoLog
;
import
org.jeecg.common.system.base.controller.JeecgController
;
import
org.jeecg.common.system.query.QueryGenerator
;
import
org.jeecg.common.system.query.QueryGenerator
;
import
org.jeecg.modules.stm.baosong.entity.BaosongDataValid
;
import
org.jeecg.modules.stm.baosong.entity.BaosongDataValid
;
import
org.jeecg.modules.stm.baosong.entity.BaosongTaskAlloc
;
import
org.jeecg.modules.stm.baosong.entity.BaosongTaskRecord
;
import
org.jeecg.modules.stm.baosong.entity.BaosongTaskRecord
;
import
org.jeecg.modules.stm.baosong.entity.BaosongTplItem
;
import
org.jeecg.modules.stm.baosong.entity.BaosongTplItem
;
import
org.jeecg.modules.stm.baosong.service.IBaosongDataValidService
;
import
org.jeecg.modules.stm.baosong.service.IBaosongDataValidService
;
import
org.jeecg.modules.stm.baosong.service.IBaosongTaskRecordService
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
org.jeecg.modules.stm.baosong.service.IBaosongTplItemService
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
lombok.extern.slf4j.Slf4j
;
import
org.jeecg.common.system.base.controller.JeecgController
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.servlet.ModelAndView
;
import
org.springframework.web.servlet.ModelAndView
;
import
java.util.*
;
import
org.jeecg.common.aspect.annotation.AutoLog
;
import
java.util.stream.Collectors
;
import
org.apache.shiro.authz.annotation.RequiresPermissions
;
import
org.jeecg.modules.stm.baosong.service.IBaosongTaskRecordService
;
import
org.jeecg.modules.stm.baosong.service.IBaosongTplItemService
;
/**
/**
* @Description: 报送数据校验
* @Description: 报送数据校验
...
...
zrch-risk-server-39/jeecg-module-system/jeecg-module-stm/src/main/java/org/jeecg/modules/stm/baosong/controller/BaosongTaskAllocController.java
浏览文件 @
4c556ef6
...
@@ -192,7 +192,7 @@ public class BaosongTaskAllocController extends JeecgController<BaosongTaskAlloc
...
@@ -192,7 +192,7 @@ public class BaosongTaskAllocController extends JeecgController<BaosongTaskAlloc
allocList
.
add
(
alloc
);
allocList
.
add
(
alloc
);
}
}
baosongTaskAllocService
.
saveOrUpdateBatch
(
allocList
);
baosongTaskAllocService
.
saveOrUpdateBatch
(
allocList
);
baosongTaskService
.
updateTaskSta
(
2
,
taskId
);
baosongTaskService
.
updateTaskSta
(
1
,
taskId
);
return
Result
.
OK
(
"保存成功!"
);
return
Result
.
OK
(
"保存成功!"
);
}
}
...
@@ -204,6 +204,7 @@ public class BaosongTaskAllocController extends JeecgController<BaosongTaskAlloc
...
@@ -204,6 +204,7 @@ public class BaosongTaskAllocController extends JeecgController<BaosongTaskAlloc
queryWrapper
.
eq
(
"taskid"
,
taskAlloc
.
getTaskid
())
queryWrapper
.
eq
(
"taskid"
,
taskAlloc
.
getTaskid
())
.
eq
(
"fill_user"
,
UserUtil
.
getUserId
());
.
eq
(
"fill_user"
,
UserUtil
.
getUserId
());
taskAlloc
.
setFillSta
(
true
);
taskAlloc
.
setFillSta
(
true
);
baosongTaskService
.
updateTaskSta
(
2
,
taskAlloc
.
getTaskid
());
baosongTaskAllocService
.
update
(
taskAlloc
,
queryWrapper
);
baosongTaskAllocService
.
update
(
taskAlloc
,
queryWrapper
);
return
Result
.
OK
(
"保存成功!"
);
return
Result
.
OK
(
"保存成功!"
);
}
}
...
...
zrch-risk-server-39/jeecg-module-system/jeecg-module-stm/src/main/java/org/jeecg/modules/stm/baosong/controller/BaosongTaskReviewController.java
浏览文件 @
4c556ef6
package
org
.
jeecg
.
modules
.
stm
.
baosong
.
controller
;
package
org
.
jeecg
.
modules
.
stm
.
baosong
.
controller
;
import
java.io.File
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
java.util.Arrays
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
java.util.Date
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
java.util.List
;
import
java.util.Map
;
import
jakarta.servlet.http.HttpServletRequest
;
import
jakarta.servlet.http.HttpServletRequest
;
import
jakarta.servlet.http.HttpServletResponse
;
import
jakarta.servlet.http.HttpServletResponse
;
import
javax.xml.parsers.DocumentBuilder
;
import
lombok.extern.slf4j.Slf4j
;
import
javax.xml.parsers.DocumentBuilderFactory
;
import
org.apache.shiro.authz.annotation.RequiresPermissions
;
import
javax.xml.transform.OutputKeys
;
import
javax.xml.transform.Transformer
;
import
javax.xml.transform.TransformerFactory
;
import
javax.xml.transform.dom.DOMSource
;
import
javax.xml.transform.stream.StreamResult
;
import
org.jeecg.common.api.vo.Result
;
import
org.jeecg.common.api.vo.Result
;
import
org.jeecg.common.aspect.annotation.AutoLog
;
import
org.jeecg.common.system.base.controller.JeecgController
;
import
org.jeecg.common.system.query.QueryGenerator
;
import
org.jeecg.common.system.query.QueryGenerator
;
import
org.jeecg.modules.stm.baosong.entity.BaosongTask
;
import
org.jeecg.modules.stm.baosong.entity.BaosongTaskReview
;
import
org.jeecg.modules.stm.baosong.entity.BaosongTpl
;
import
org.jeecg.modules.stm.baosong.entity.TaskRecordVo
;
import
org.jeecg.modules.stm.baosong.entity.TaskRecordVo
;
import
org.jeecg.modules.stm.baosong.service.IBaosongTaskAllocService
;
import
org.jeecg.modules.stm.baosong.service.IBaosongTaskAllocService
;
import
org.jeecg.modules.stm.baosong.service.IBaosongTaskReviewService
;
import
org.jeecg.modules.stm.baosong.service.IBaosongTaskReviewService
;
import
org.jeecg.modules.stm.baosong.service.IBaosongTaskService
;
import
org.jeecg.modules.stm.baosong.service.IBaosongTaskService
;
import
org.jeecg.modules.stm.baosong.service.IBaosongTplService
;
import
org.jeecg.modules.stm.baosong.service.IBaosongTplService
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.jeecg.modules.stm.baosong.entity.BaosongTask
;
import
org.jeecg.modules.stm.baosong.entity.BaosongTaskReview
;
import
org.jeecg.modules.stm.baosong.entity.BaosongTpl
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
lombok.extern.slf4j.Slf4j
;
import
org.jeecg.common.system.base.controller.JeecgController
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.servlet.ModelAndView
;
import
org.springframework.web.servlet.ModelAndView
;
import
org.jeecg.common.aspect.annotation.AutoLog
;
import
org.apache.shiro.authz.annotation.RequiresPermissions
;
import
org.w3c.dom.Document
;
import
org.w3c.dom.Document
;
import
org.w3c.dom.Element
;
import
org.w3c.dom.Element
;
import
org.w3c.dom.NodeList
;
import
org.w3c.dom.NodeList
;
import
javax.xml.transform.OutputKeys
;
import
javax.xml.transform.Transformer
;
import
javax.xml.transform.TransformerFactory
;
import
javax.xml.transform.dom.DOMSource
;
import
javax.xml.transform.stream.StreamResult
;
import
java.io.File
;
import
java.util.Arrays
;
import
java.util.Date
;
import
java.util.List
;
/**
/**
* @Description: 内容检查
* @Description: 内容检查
* @Author: jeecg-boot
* @Author: jeecg-boot
...
...
zrch-risk-server-39/jeecg-module-system/jeecg-module-stm/src/main/java/org/jeecg/modules/stm/baosong/controller/CreateXmlFile.java
浏览文件 @
4c556ef6
...
@@ -27,9 +27,7 @@ public class CreateXmlFile {
...
@@ -27,9 +27,7 @@ public class CreateXmlFile {
// 常量定义
// 常量定义
private
static
final
String
DEFAULT_ENCODING
=
"UTF-8"
;
private
static
final
String
DEFAULT_ENCODING
=
"UTF-8"
;
private
static
final
String
DATE_FORMAT_PATTERN
=
"yyyy-MM-dd"
;
private
static
final
String
INDENT_AMOUNT_KEY
=
"{http://xml.apache.org/xslt}indent-amount"
;
private
static
final
String
INDENT_AMOUNT_KEY
=
"{http://xml.apache.org/xslt}indent-amount"
;
private
static
final
int
DEFAULT_RIND_VALUE
=
1
;
private
final
BaosongTpl
baosongTpl
;
private
final
BaosongTpl
baosongTpl
;
private
final
BaosongTask
baosongTask
;
private
final
BaosongTask
baosongTask
;
...
@@ -45,7 +43,6 @@ public class CreateXmlFile {
...
@@ -45,7 +43,6 @@ public class CreateXmlFile {
* 创建XML文件
* 创建XML文件
*/
*/
public
boolean
createXml
(
List
<
TaskRecordVo
>
dataList
,
String
filePath
)
{
public
boolean
createXml
(
List
<
TaskRecordVo
>
dataList
,
String
filePath
)
{
if
(
dataList
==
null
||
dataList
.
isEmpty
())
{
if
(
dataList
==
null
||
dataList
.
isEmpty
())
{
logger
.
warn
(
"数据列表为空,无法生成XML文件"
);
logger
.
warn
(
"数据列表为空,无法生成XML文件"
);
return
false
;
return
false
;
...
@@ -64,47 +61,41 @@ public class CreateXmlFile {
...
@@ -64,47 +61,41 @@ public class CreateXmlFile {
Document
doc
=
docBuilder
.
newDocument
();
Document
doc
=
docBuilder
.
newDocument
();
// 创建根元素
// 创建根元素
Comment
rootComment
=
doc
.
createComment
(
baosongTpl
.
getNm
()
);
String
rootElementName
=
this
.
baosongTpl
.
getCode
(
);
doc
.
appendChild
(
rootComment
);
rootElementName
=
rootElementName
.
replaceAll
(
"-"
,
"_"
);
String
rootElementName
=
normalizeElementName
(
this
.
baosongTpl
.
getCode
());
Element
rootElement
=
doc
.
createElement
(
rootElementName
);
Element
rootElement
=
doc
.
createElement
(
rootElementName
);
doc
.
appendChild
(
rootElement
);
doc
.
appendChild
(
rootElement
);
// 添加固定信息节点
// 添加固定信息节点
createFixedInfoNodes
(
doc
,
rootElement
);
createFixedInfoNodes
(
doc
,
rootElement
);
// 重新组织数据结构 - 按层级关系构建树形结构
// 构建完整的数据映射
Map
<
String
,
TaskRecordVo
>
codeToItemMap
=
new
HashMap
<>();
Map
<
String
,
TaskRecordVo
>
allItems
=
new
HashMap
<>();
Map
<
String
,
List
<
TaskRecordVo
>>
pcodeToChildrenMap
=
new
HashMap
<>();
Map
<
String
,
List
<
TaskRecordVo
>>
childrenByParent
=
new
HashMap
<>();
Set
<
String
>
allCodes
=
new
HashSet
<>();
// 第一步:构建映射关系
for
(
TaskRecordVo
item
:
dataList
)
{
for
(
TaskRecordVo
item
:
dataList
)
{
String
code
=
item
.
getCode
();
String
code
=
item
.
getCode
();
String
pcode
=
item
.
getPcode
();
String
pcode
=
item
.
getPcode
();
if
(
code
!=
null
)
{
if
(
code
!=
null
)
{
codeToItemMap
.
put
(
code
,
item
);
allItems
.
put
(
code
,
item
);
allCodes
.
add
(
code
);
}
}
if
(
pcode
!=
null
&&
!
pcode
.
trim
().
isEmpty
())
{
if
(
pcode
!=
null
&&
!
pcode
.
trim
().
isEmpty
())
{
pcodeToChildrenMap
.
computeIfAbsent
(
pcode
,
k
->
new
ArrayList
<>()).
add
(
item
);
childrenByParent
.
computeIfAbsent
(
pcode
,
k
->
new
ArrayList
<>()).
add
(
item
);
}
}
}
}
// 第二步:找出顶级节点(根节点的直接子节点)
// 找出根节点的直接子节点
// 从目标XML可以看到,顶级节点是像TB1001、TB1012等
List
<
TaskRecordVo
>
rootChildren
=
childrenByParent
.
getOrDefault
(
"T_B_1"
,
new
ArrayList
<>());
// 我们需要根据数据推断哪些是顶级节点
List
<
String
>
topLevelNodes
=
findTopLevelNodes
(
dataList
,
allCodes
,
codeToItemMap
);
logger
.
debug
(
"找到的顶级节点: {}"
,
topLevelNodes
);
// 按itemid排序
rootChildren
.
sort
(
Comparator
.
comparingInt
(
TaskRecordVo:
:
getItemid
));
// 第三步:为每个顶级节点创建XML结构
// 处理根节点的每个子节点
for
(
String
topNodeCode
:
topLevelNodes
)
{
for
(
TaskRecordVo
child
:
rootChildren
)
{
createNodeStructure
(
doc
,
rootElement
,
topNodeCode
,
processItem
(
doc
,
rootElement
,
child
,
childrenByParent
,
allItems
,
""
);
codeToItemMap
,
pcodeToChildrenMap
,
new
HashSet
<>());
}
}
// 保存XML
// 保存XML
...
@@ -117,164 +108,234 @@ public class CreateXmlFile {
...
@@ -117,164 +108,234 @@ public class CreateXmlFile {
}
}
/**
/**
*
找出顶级节点
*
处理数据项
*/
*/
private
List
<
String
>
findTopLevelNodes
(
List
<
TaskRecordVo
>
dataList
,
Set
<
String
>
allCodes
,
private
void
processItem
(
Document
doc
,
Element
parentElement
,
TaskRecordVo
item
,
Map
<
String
,
TaskRecordVo
>
codeToItemMap
)
{
Map
<
String
,
List
<
TaskRecordVo
>>
childrenByParent
,
List
<
String
>
topNodes
=
new
ArrayList
<>();
Map
<
String
,
TaskRecordVo
>
allItems
,
String
parentPath
)
{
// 收集所有可能的节点代码
String
code
=
item
.
getCode
();
Set
<
String
>
allPcodes
=
new
HashSet
<>();
String
title
=
item
.
getTitle
();
for
(
TaskRecordVo
item
:
dataList
)
{
String
currentPath
=
buildPath
(
parentPath
,
title
);
String
pcode
=
item
.
getPcode
();
if
(
pcode
!=
null
&&
!
pcode
.
trim
().
isEmpty
())
{
// 检查是否是表格节点(有多个相同code但不同rind的子项)
allPcodes
.
add
(
pcode
);
if
(
isTableNode
(
code
,
childrenByParent
))
{
}
createTableNode
(
doc
,
parentElement
,
item
,
childrenByParent
,
currentPath
);
}
else
if
(
code
.
startsWith
(
"TB"
))
{
// 普通TB节点
createNormalNode
(
doc
,
parentElement
,
item
,
childrenByParent
,
allItems
,
currentPath
);
}
else
{
// 普通数据字段
addDataField
(
doc
,
parentElement
,
item
,
currentPath
);
}
}
/**
* 判断是否是表格节点
*/
private
boolean
isTableNode
(
String
nodeCode
,
Map
<
String
,
List
<
TaskRecordVo
>>
childrenByParent
)
{
List
<
TaskRecordVo
>
children
=
childrenByParent
.
get
(
nodeCode
);
if
(
children
==
null
||
children
.
isEmpty
())
{
return
false
;
}
}
// 顶级节点特征:
// 检查是否有多个不同的rind值
// 1. 是一个pcode(有数据以此pcode为父节点)
Set
<
Integer
>
rindValues
=
new
HashSet
<>();
// 2. 但不是其他节点的子节点(即这个pcode不作为code出现在数据中)
for
(
TaskRecordVo
child
:
children
)
{
// 3. 或者这个pcode虽然有对应的item,但它的pcode是T_B_1或空
if
(
nodeCode
.
equals
(
child
.
getPcode
()))
{
for
(
String
pcode
:
allPcodes
)
{
Integer
rind
=
getRindValue
(
child
);
if
(!
allCodes
.
contains
(
pcode
))
{
rindValues
.
add
(
rind
);
// 这个pcode没有对应的item,说明它是顶级节点
if
(
rindValues
.
size
()
>
1
)
{
topNodes
.
add
(
pcode
);
return
true
;
}
else
{
// 这个pcode有对应的item,检查它的父节点
TaskRecordVo
item
=
codeToItemMap
.
get
(
pcode
);
if
(
item
!=
null
)
{
String
parentPcode
=
item
.
getPcode
();
if
(
parentPcode
==
null
||
parentPcode
.
trim
().
isEmpty
()
||
"T_B_1"
.
equals
(
parentPcode
))
{
topNodes
.
add
(
pcode
);
}
}
}
}
}
}
}
return
false
;
return
topNodes
;
}
}
/**
/**
* 创建节点结构
* 创建表格节点
*/
/**
* 创建节点结构
*/
*/
private
void
createNodeStructure
(
Document
doc
,
Element
parentElement
,
String
nodeCode
,
private
void
createTableNode
(
Document
doc
,
Element
parentElement
,
TaskRecordVo
tableNode
,
Map
<
String
,
TaskRecordVo
>
codeToItemMap
,
Map
<
String
,
List
<
TaskRecordVo
>>
childrenByParent
,
String
parentPath
)
{
Map
<
String
,
List
<
TaskRecordVo
>>
pcodeToChildrenMap
,
Set
<
String
>
processedNodes
)
{
String
code
=
tableNode
.
getCode
();
String
title
=
tableNode
.
getTitle
();
String
currentPath
=
buildPath
(
parentPath
,
title
);
if
(
processedNodes
.
contains
(
nodeCode
))
{
logger
.
debug
(
"创建表格节点: {} - {}"
,
code
,
title
);
return
;
// 防止循环
// 添加表格节点的注释
if
(
title
!=
null
&&
!
title
.
trim
().
isEmpty
())
{
String
commentText
=
convertTitleToComment
(
title
);
Comment
comment
=
doc
.
createComment
(
commentText
);
parentElement
.
appendChild
(
comment
);
}
}
processedNodes
.
add
(
nodeCode
);
// 获取表格的所有子项
// 检查是否有子节点
List
<
TaskRecordVo
>
tableChildren
=
childrenByParent
.
getOrDefault
(
code
,
new
ArrayList
<>());
boolean
hasChildren
=
pcodeToChildrenMap
.
containsKey
(
nodeCode
);
// 按rind分组
if
(
hasChildren
)
{
Map
<
Integer
,
List
<
TaskRecordVo
>>
rowsByRind
=
new
TreeMap
<>();
// 创建外层节点
Element
outerElement
=
doc
.
createElement
(
nodeCode
);
for
(
TaskRecordVo
child
:
tableChildren
)
{
parentElement
.
appendChild
(
outerElement
);
if
(
code
.
equals
(
child
.
getPcode
()))
{
Integer
rind
=
getRindValue
(
child
);
// 获取子节点并按rind分组
rowsByRind
.
computeIfAbsent
(
rind
,
k
->
new
ArrayList
<>()).
add
(
child
);
List
<
TaskRecordVo
>
children
=
pcodeToChildrenMap
.
get
(
nodeCode
);
Map
<
Integer
,
List
<
TaskRecordVo
>>
childrenByRind
=
groupByRind
(
children
,
nodeCode
);
// 检查分组数量
if
(
childrenByRind
.
size
()
==
1
)
{
// 只有一个分组,直接将节点添加到outerElement
for
(
Map
.
Entry
<
Integer
,
List
<
TaskRecordVo
>>
rindEntry
:
childrenByRind
.
entrySet
())
{
List
<
TaskRecordVo
>
rindGroup
=
rindEntry
.
getValue
();
// 处理这个分组中的每个子项
for
(
TaskRecordVo
child
:
rindGroup
)
{
// 检查这个子项是否本身还有子项
String
childCode
=
child
.
getCode
();
if
(
pcodeToChildrenMap
.
containsKey
(
childCode
))
{
// 这个子项还有子项,递归处理
createNodeStructure
(
doc
,
outerElement
,
childCode
,
codeToItemMap
,
pcodeToChildrenMap
,
processedNodes
);
}
else
{
// 这个子项是叶子节点,直接添加到outerElement
addDataItem
(
doc
,
outerElement
,
child
);
}
}
}
}
else
{
// 多个分组,创建内层节点
for
(
Map
.
Entry
<
Integer
,
List
<
TaskRecordVo
>>
rindEntry
:
childrenByRind
.
entrySet
())
{
List
<
TaskRecordVo
>
rindGroup
=
rindEntry
.
getValue
();
// 创建内层节点
Element
innerElement
=
doc
.
createElement
(
nodeCode
);
outerElement
.
appendChild
(
innerElement
);
// 处理这个分组中的每个子项
for
(
TaskRecordVo
child
:
rindGroup
)
{
// 检查这个子项是否本身还有子项
String
childCode
=
child
.
getCode
();
if
(
pcodeToChildrenMap
.
containsKey
(
childCode
))
{
// 这个子项还有子项,递归处理
createNodeStructure
(
doc
,
innerElement
,
childCode
,
codeToItemMap
,
pcodeToChildrenMap
,
processedNodes
);
}
else
{
// 这个子项是叶子节点,直接添加
addDataItem
(
doc
,
innerElement
,
child
);
}
}
}
}
}
}
else
{
}
// 没有子节点,可能是数据项或空节点
TaskRecordVo
item
=
codeToItemMap
.
get
(
nodeCode
);
logger
.
debug
(
"表格节点{}有{}行数据"
,
code
,
rowsByRind
.
size
());
if
(
item
!=
null
)
{
addDataItem
(
doc
,
parentElement
,
item
);
// 为每一行创建独立的元素
for
(
Map
.
Entry
<
Integer
,
List
<
TaskRecordVo
>>
rowEntry
:
rowsByRind
.
entrySet
())
{
List
<
TaskRecordVo
>
rowData
=
rowEntry
.
getValue
();
// 创建行元素(使用相同的code)
Element
rowElement
=
doc
.
createElement
(
code
);
parentElement
.
appendChild
(
rowElement
);
// 按itemid排序
rowData
.
sort
(
Comparator
.
comparingInt
(
TaskRecordVo:
:
getItemid
));
// 添加这一行的所有字段
for
(
TaskRecordVo
field
:
rowData
)
{
addDataField
(
doc
,
rowElement
,
field
,
currentPath
);
}
}
}
}
}
}
/**
/**
*
按rind分组
*
创建普通节点
*/
*/
private
Map
<
Integer
,
List
<
TaskRecordVo
>>
groupByRind
(
List
<
TaskRecordVo
>
items
,
String
pcode
)
{
private
void
createNormalNode
(
Document
doc
,
Element
parentElement
,
TaskRecordVo
node
,
Map
<
Integer
,
List
<
TaskRecordVo
>>
groups
=
new
HashMap
<>();
Map
<
String
,
List
<
TaskRecordVo
>>
childrenByParent
,
Map
<
String
,
TaskRecordVo
>
allItems
,
String
currentPath
)
{
for
(
TaskRecordVo
item
:
items
)
{
String
code
=
node
.
getCode
();
if
(
pcode
.
equals
(
item
.
getPcode
()))
{
String
title
=
node
.
getTitle
();
int
rind
=
getIntValue
(
item
,
DEFAULT_RIND_VALUE
);
groups
.
computeIfAbsent
(
rind
,
k
->
new
ArrayList
<>()).
add
(
item
);
// 添加节点注释
}
if
(
title
!=
null
&&
!
title
.
trim
().
isEmpty
())
{
String
commentText
=
convertTitleToComment
(
title
);
Comment
comment
=
doc
.
createComment
(
commentText
);
parentElement
.
appendChild
(
comment
);
}
}
return
groups
;
// 创建节点元素
Element
element
=
doc
.
createElement
(
code
);
parentElement
.
appendChild
(
element
);
// 获取子项
List
<
TaskRecordVo
>
children
=
childrenByParent
.
getOrDefault
(
code
,
new
ArrayList
<>());
// 按itemid排序
children
.
sort
(
Comparator
.
comparingInt
(
TaskRecordVo:
:
getItemid
));
// 处理每个子项
for
(
TaskRecordVo
child
:
children
)
{
if
(
code
.
equals
(
child
.
getPcode
()))
{
processItem
(
doc
,
element
,
child
,
childrenByParent
,
allItems
,
currentPath
);
}
}
}
}
/**
/**
* 添加数据
项(带注释)
* 添加数据
字段
*/
*/
private
void
addDataItem
(
Document
doc
,
Element
parentElement
,
TaskRecordVo
item
)
{
private
void
addDataField
(
Document
doc
,
Element
parentElement
,
TaskRecordVo
field
,
String
parentPath
)
{
String
title
=
item
.
getTitle
();
String
code
=
field
.
getCode
();
String
code
=
item
.
getCode
();
String
title
=
field
.
getTitle
();
String
content
=
item
.
getContent
();
String
content
=
field
.
getContent
();
// 添加注释
// 创建注释
if
(
title
!=
null
&&
!
title
.
trim
().
isEmpty
())
{
if
(
title
!=
null
&&
!
title
.
trim
().
isEmpty
()
&&
!
isSystemField
(
code
))
{
Comment
comment
=
doc
.
createComment
(
title
);
String
fullComment
=
buildFullComment
(
title
,
parentPath
);
Comment
comment
=
doc
.
createComment
(
fullComment
);
parentElement
.
appendChild
(
comment
);
parentElement
.
appendChild
(
comment
);
}
}
// 创建元素
// 创建元素
Element
element
=
doc
.
createElement
(
code
);
Element
element
=
doc
.
createElement
(
code
);
element
.
setTextContent
(
content
!=
null
?
content
:
""
);
if
(
content
!=
null
&&
!
content
.
trim
().
isEmpty
())
{
element
.
setTextContent
(
content
);
}
parentElement
.
appendChild
(
element
);
parentElement
.
appendChild
(
element
);
}
}
/**
* 构建路径
*/
private
String
buildPath
(
String
parentPath
,
String
currentTitle
)
{
if
(
currentTitle
==
null
||
currentTitle
.
trim
().
isEmpty
())
{
return
parentPath
;
}
String
converted
=
convertTitleToComment
(
currentTitle
);
if
(
parentPath
==
null
||
parentPath
.
isEmpty
())
{
return
converted
;
}
else
{
return
parentPath
+
"-"
+
converted
;
}
}
/**
* 构建完整注释
*/
private
String
buildFullComment
(
String
fieldTitle
,
String
parentPath
)
{
if
(
fieldTitle
==
null
||
fieldTitle
.
trim
().
isEmpty
())
{
return
parentPath
;
}
if
(
parentPath
==
null
||
parentPath
.
isEmpty
())
{
return
fieldTitle
;
}
return
parentPath
+
"-"
+
fieldTitle
;
}
/**
* 转换title为注释格式
*/
private
String
convertTitleToComment
(
String
title
)
{
if
(
title
==
null
)
{
return
""
;
}
return
title
.
replace
(
"/"
,
"-"
);
}
/**
* 获取rind值
*/
private
Integer
getRindValue
(
TaskRecordVo
item
)
{
try
{
if
(
item
.
getRind
()
==
null
)
{
return
1
;
}
if
(
item
.
getRind
()
instanceof
Integer
)
{
return
(
Integer
)
item
.
getRind
();
}
return
Integer
.
parseInt
(
item
.
getRind
().
toString
());
}
catch
(
Exception
e
)
{
return
1
;
}
}
/**
* 判断是否为系统字段
*/
private
boolean
isSystemField
(
String
code
)
{
return
code
.
startsWith
(
"FILLIN_"
)
||
code
.
equals
(
"TELEPHONE"
)
||
code
.
equals
(
"FILLE_USER"
)
||
code
.
equals
(
"RES_PERSON"
)
||
code
.
equals
(
"jiaoyanwei"
)
||
code
.
equals
(
"isempty"
)
||
code
.
equals
(
"itTitle"
)
||
code
.
equals
(
"itVersion"
);
}
/**
/**
* 创建固定信息节点
* 创建固定信息节点
*/
*/
...
@@ -282,25 +343,32 @@ public class CreateXmlFile {
...
@@ -282,25 +343,32 @@ public class CreateXmlFile {
try
{
try
{
String
respDepart
=
this
.
baosongTask
.
getRespDepart
()
!=
null
?
String
respDepart
=
this
.
baosongTask
.
getRespDepart
()
!=
null
?
this
.
baosongTask
.
getRespDepart
()
:
""
;
this
.
baosongTask
.
getRespDepart
()
:
""
;
String
enterDate
=
this
.
baosongTask
.
getEnterDate
();
//formatDate(this.baosongTask.getEnterDate(), DATE_FORMAT_PATTERN);
Date
filleDate
=
this
.
baosongTask
.
getEndDate
();
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
String
fillDate
=
DateUtils
.
date2Str
(
filleDate
,
sdf
);
String
enterTel
=
this
.
baosongTask
.
getEnterTel
()
!=
null
?
String
enterTel
=
this
.
baosongTask
.
getEnterTel
()
!=
null
?
this
.
baosongTask
.
getEnterTel
()
:
""
;
this
.
baosongTask
.
getEnterTel
()
:
""
;
String
respUser
=
this
.
baosongTask
.
getRespUser
()
!=
null
?
String
respUser
=
this
.
baosongTask
.
getRespUser
()
!=
null
?
this
.
baosongTask
.
getRespUser
()
:
""
;
this
.
baosongTask
.
getRespUser
()
:
""
;
String
version
=
this
.
baosongTpl
.
getVersion
()
!=
null
?
String
version
=
this
.
baosongTpl
.
getVersion
()
!=
null
?
this
.
baosongTpl
.
getVersion
()
:
""
;
this
.
baosongTpl
.
getVersion
()
:
""
;
String
fillUser
=
this
.
baosongTask
.
getFillUser
();
addFixedNode
(
doc
,
parentElement
,
"FILLIN_DEPT"
,
respDepart
,
"填报部门"
);
// 添加固定节点(不带注释)
addFixedNode
(
doc
,
parentElement
,
"FILLIN_DATE"
,
enterDate
,
"填报日期"
);
addFixedNodeNoComment
(
doc
,
parentElement
,
"FILLIN_DEPT"
,
respDepart
);
addFixedNode
(
doc
,
parentElement
,
"FILLIN_PERSON"
,
this
.
fillUserNames
,
"填报人"
);
addFixedNodeNoComment
(
doc
,
parentElement
,
"FILLIN_DATE"
,
fillDate
);
addFixedNode
(
doc
,
parentElement
,
"TELEPHONE"
,
enterTel
,
"联系电话"
);
addFixedNodeNoComment
(
doc
,
parentElement
,
"FILLIN_PERSON"
,
fillUser
);
addFixedNode
(
doc
,
parentElement
,
"RES_PERSON"
,
respUser
,
"负责人"
);
addFixedNodeNoComment
(
doc
,
parentElement
,
"TELEPHONE"
,
enterTel
);
addFixedNode
(
doc
,
parentElement
,
"jiaoyanwei"
,
"0"
,
"校验位"
);
addFixedNodeNoComment
(
doc
,
parentElement
,
"RES_PERSON"
,
respUser
);
addFixedNode
(
doc
,
parentElement
,
"isempty"
,
"yes"
,
"是否为空"
);
addFixedNodeNoComment
(
doc
,
parentElement
,
"jiaoyanwei"
,
"1"
);
addFixedNodeNoComment
(
doc
,
parentElement
,
"isempty"
,
"0"
);
String
title
=
this
.
baosongTpl
.
getCode
()
+
" "
+
this
.
baosongTpl
.
getNm
()
;
String
title
=
"T-B-1 信息科技治理情况表"
;
addFixedNode
(
doc
,
parentElement
,
"itTitle"
,
title
,
"模板标题"
);
addFixedNode
NoComment
(
doc
,
parentElement
,
"itTitle"
,
title
);
addFixedNode
(
doc
,
parentElement
,
"itVersion"
,
version
,
"模板版本"
);
addFixedNode
NoComment
(
doc
,
parentElement
,
"itVersion"
,
version
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
logger
.
error
(
"创建固定信息节点时发生错误"
,
e
);
logger
.
error
(
"创建固定信息节点时发生错误"
,
e
);
...
@@ -308,15 +376,10 @@ public class CreateXmlFile {
...
@@ -308,15 +376,10 @@ public class CreateXmlFile {
}
}
/**
/**
* 添加固定节点
* 添加固定节点
(不带注释)
*/
*/
private
void
addFixedNode
(
Document
doc
,
Element
parentElement
,
private
void
addFixedNodeNoComment
(
Document
doc
,
Element
parentElement
,
String
tagName
,
String
textContent
,
String
comment
)
{
String
tagName
,
String
textContent
)
{
if
(
comment
!=
null
&&
!
comment
.
trim
().
isEmpty
())
{
Comment
commentNode
=
doc
.
createComment
(
comment
);
parentElement
.
appendChild
(
commentNode
);
}
Element
element
=
doc
.
createElement
(
tagName
);
Element
element
=
doc
.
createElement
(
tagName
);
element
.
setTextContent
(
textContent
!=
null
?
textContent
:
""
);
element
.
setTextContent
(
textContent
!=
null
?
textContent
:
""
);
parentElement
.
appendChild
(
element
);
parentElement
.
appendChild
(
element
);
...
@@ -339,8 +402,8 @@ public class CreateXmlFile {
...
@@ -339,8 +402,8 @@ public class CreateXmlFile {
Transformer
transformer
=
transformerFactory
.
newTransformer
();
Transformer
transformer
=
transformerFactory
.
newTransformer
();
transformer
.
setOutputProperty
(
OutputKeys
.
INDENT
,
"yes"
);
transformer
.
setOutputProperty
(
OutputKeys
.
INDENT
,
"yes"
);
transformer
.
setOutputProperty
(
OutputKeys
.
ENCODING
,
DEFAULT_ENCODING
);
transformer
.
setOutputProperty
(
OutputKeys
.
ENCODING
,
DEFAULT_ENCODING
);
transformer
.
setOutputProperty
(
OutputKeys
.
STANDALONE
,
"
yes
"
);
transformer
.
setOutputProperty
(
OutputKeys
.
STANDALONE
,
"
no
"
);
transformer
.
setOutputProperty
(
INDENT_AMOUNT_KEY
,
"
4
"
);
transformer
.
setOutputProperty
(
INDENT_AMOUNT_KEY
,
"
2
"
);
DOMSource
source
=
new
DOMSource
(
doc
);
DOMSource
source
=
new
DOMSource
(
doc
);
StreamResult
result
=
new
StreamResult
(
file
);
StreamResult
result
=
new
StreamResult
(
file
);
...
@@ -354,46 +417,4 @@ public class CreateXmlFile {
...
@@ -354,46 +417,4 @@ public class CreateXmlFile {
return
false
;
return
false
;
}
}
}
}
/**
* 规范化元素名称
*/
private
String
normalizeElementName
(
String
name
)
{
return
name
!=
null
?
name
.
replace
(
"-"
,
"_"
)
:
""
;
}
/**
* 格式化日期
*/
private
String
formatDate
(
Date
date
,
String
pattern
)
{
if
(
date
==
null
)
{
return
""
;
}
try
{
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
pattern
);
return
DateUtils
.
date2Str
(
date
,
sdf
);
}
catch
(
Exception
e
)
{
logger
.
warn
(
"日期格式化失败"
,
e
);
return
""
;
}
}
/**
* 获取整数值
*/
private
int
getIntValue
(
TaskRecordVo
taskRecordVo
,
int
defaultValue
)
{
try
{
Object
value
=
taskRecordVo
.
getRind
();
if
(
value
==
null
)
{
return
defaultValue
;
}
if
(
value
instanceof
Number
)
{
return
((
Number
)
value
).
intValue
();
}
return
Integer
.
parseInt
(
value
.
toString
());
}
catch
(
NumberFormatException
e
)
{
logger
.
warn
(
"解析rind值失败,使用默认值: {}"
,
defaultValue
);
return
defaultValue
;
}
}
}
}
\ No newline at end of file
zrch-risk-server-39/jeecg-module-system/jeecg-module-stm/src/main/java/org/jeecg/modules/stm/baosong/entity/BaosongDataValid.java
浏览文件 @
4c556ef6
package
org
.
jeecg
.
modules
.
stm
.
baosong
.
entity
;
package
org
.
jeecg
.
modules
.
stm
.
baosong
.
entity
;
import
java.io.Serializable
;
import
java.io.UnsupportedEncodingException
;
import
java.util.Date
;
import
java.math.BigDecimal
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.TableLogic
;
import
lombok.Data
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
lombok.Data
;
import
org.jeecgframework.poi.excel.annotation.Excel
;
import
org.jeecg.common.aspect.annotation.Dict
;
import
lombok.EqualsAndHashCode
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
import
lombok.experimental.Accessors
;
import
org.jeecgframework.poi.excel.annotation.Excel
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
java.io.Serializable
;
/**
/**
* @Description: 报送数据校验
* @Description: 报送数据校验
...
...
zrch-risk-server-39/jeecg-module-system/jeecg-module-stm/src/main/java/org/jeecg/modules/stm/baosong/entity/BaosongQuery.java
浏览文件 @
4c556ef6
package
org
.
jeecg
.
modules
.
stm
.
baosong
.
entity
;
package
org
.
jeecg
.
modules
.
stm
.
baosong
.
entity
;
import
java.io.Serializable
;
import
java.io.UnsupportedEncodingException
;
import
java.util.Date
;
import
java.math.BigDecimal
;
import
java.util.List
;
import
java.util.Map
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Data
;
import
lombok.Data
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
org.jeecgframework.poi.excel.annotation.Excel
;
import
org.jeecg.common.aspect.annotation.Dict
;
import
java.io.Serializable
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
/**
/**
* @Description: 任务表
* @Description: 任务表
...
...
zrch-risk-server-39/jeecg-module-system/jeecg-module-stm/src/main/java/org/jeecg/modules/stm/baosong/entity/BaosongTask.java
浏览文件 @
4c556ef6
package
org
.
jeecg
.
modules
.
stm
.
baosong
.
entity
;
package
org
.
jeecg
.
modules
.
stm
.
baosong
.
entity
;
import
java.io.Serializable
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
java.io.UnsupportedEncodingException
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
java.util.Date
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
java.math.BigDecimal
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.util.List
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Data
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
lombok.Data
;
import
org.jeecgframework.poi.excel.annotation.Excel
;
import
org.jeecg.common.aspect.annotation.Dict
;
import
lombok.EqualsAndHashCode
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
import
lombok.experimental.Accessors
;
import
org.jeecg.common.aspect.annotation.Dict
;
import
org.jeecgframework.poi.excel.annotation.Excel
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
java.io.Serializable
;
/**
/**
* @Description: 任务表
* @Description: 任务表
...
@@ -48,12 +45,11 @@ public class BaosongTask implements Serializable {
...
@@ -48,12 +45,11 @@ public class BaosongTask implements Serializable {
private
java
.
lang
.
Integer
sta
;
private
java
.
lang
.
Integer
sta
;
/**报表类型*/
/**报表类型*/
@Excel
(
name
=
"报表类型"
,
width
=
15
)
@Excel
(
name
=
"报表类型"
,
width
=
15
)
private
java
.
lang
.
Integer
tp
;
private
java
.
lang
.
Integer
tp
;
/**填报角色*/
@Excel
(
name
=
"填报角色"
,
width
=
15
)
private
java
.
lang
.
String
enterRole
;
/**填报人*/
@Excel
(
name
=
"填报人"
,
width
=
15
)
private
java
.
lang
.
String
fillUser
;
/**联系电话*/
/**联系电话*/
@Excel
(
name
=
"联系电话"
,
width
=
15
)
@Excel
(
name
=
"联系电话"
,
width
=
15
)
private
java
.
lang
.
String
enterTel
;
private
java
.
lang
.
String
enterTel
;
...
@@ -64,7 +60,7 @@ public class BaosongTask implements Serializable {
...
@@ -64,7 +60,7 @@ public class BaosongTask implements Serializable {
/**责任人*/
/**责任人*/
@Excel
(
name
=
"责任人"
,
width
=
15
)
@Excel
(
name
=
"责任人"
,
width
=
15
)
@Dict
(
dictTable
=
"sys_user"
,
dicText
=
"realname"
,
dicCode
=
"id"
)
//
@Dict(dictTable ="sys_user",dicText = "realname",dicCode = "id")
private
java
.
lang
.
String
respUser
;
private
java
.
lang
.
String
respUser
;
/**责任部门*/
/**责任部门*/
...
@@ -81,13 +77,13 @@ public class BaosongTask implements Serializable {
...
@@ -81,13 +77,13 @@ public class BaosongTask implements Serializable {
@JsonFormat
(
timezone
=
"GMT+8"
,
pattern
=
"yyyy-MM-dd"
)
@JsonFormat
(
timezone
=
"GMT+8"
,
pattern
=
"yyyy-MM-dd"
)
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd"
)
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd"
)
private
java
.
util
.
Date
endDate
;
private
java
.
util
.
Date
endDate
;
/**创建时间*/
/**创建时间*/
@JsonFormat
(
timezone
=
"GMT+8"
,
pattern
=
"yyyy-MM-dd"
)
@JsonFormat
(
timezone
=
"GMT+8"
,
pattern
=
"yyyy-MM-dd"
)
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd"
)
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd"
)
private
java
.
util
.
Date
createTime
;
private
java
.
util
.
Date
createTime
;
/**创建人*/
/**创建人*/
private
java
.
lang
.
String
createBy
;
private
java
.
lang
.
String
createBy
;
@TableField
(
exist
=
false
)
@TableField
(
exist
=
false
)
...
...
zrch-risk-server-39/jeecg-module-system/jeecg-module-stm/src/main/java/org/jeecg/modules/stm/baosong/entity/BaosongTaskAlloc.java
浏览文件 @
4c556ef6
package
org
.
jeecg
.
modules
.
stm
.
baosong
.
entity
;
package
org
.
jeecg
.
modules
.
stm
.
baosong
.
entity
;
import
java.io.Serializable
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
java.io.UnsupportedEncodingException
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
java.util.Date
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
java.math.BigDecimal
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.util.List
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Data
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
lombok.Data
;
import
org.jeecgframework.poi.excel.annotation.Excel
;
import
org.jeecg.common.aspect.annotation.Dict
;
import
lombok.EqualsAndHashCode
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
import
lombok.experimental.Accessors
;
import
org.jeecg.common.aspect.annotation.Dict
;
import
org.jeecgframework.poi.excel.annotation.Excel
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
java.io.Serializable
;
import
java.util.List
;
/**
/**
* @Description: 任务分配
* @Description: 任务分配
...
...
zrch-risk-server-39/jeecg-module-system/jeecg-module-stm/src/main/java/org/jeecg/modules/stm/baosong/entity/BaosongTaskRecord.java
浏览文件 @
4c556ef6
package
org
.
jeecg
.
modules
.
stm
.
baosong
.
entity
;
package
org
.
jeecg
.
modules
.
stm
.
baosong
.
entity
;
import
java.io.Serializable
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
java.io.UnsupportedEncodingException
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
java.util.Date
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
java.math.BigDecimal
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.util.Map
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Data
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
lombok.Data
;
import
org.jeecgframework.poi.excel.annotation.Excel
;
import
org.jeecg.common.aspect.annotation.Dict
;
import
lombok.EqualsAndHashCode
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
import
lombok.experimental.Accessors
;
import
org.jeecgframework.poi.excel.annotation.Excel
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
java.io.Serializable
;
import
java.util.Map
;
/**
/**
* @Description: 填报记录
* @Description: 填报记录
...
...
zrch-risk-server-39/jeecg-module-system/jeecg-module-stm/src/main/java/org/jeecg/modules/stm/baosong/entity/BaosongTaskReview.java
浏览文件 @
4c556ef6
package
org
.
jeecg
.
modules
.
stm
.
baosong
.
entity
;
package
org
.
jeecg
.
modules
.
stm
.
baosong
.
entity
;
import
java.io.Serializable
;
import
java.io.UnsupportedEncodingException
;
import
java.util.Date
;
import
java.math.BigDecimal
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.TableLogic
;
import
lombok.Data
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
lombok.Data
;
import
org.jeecgframework.poi.excel.annotation.Excel
;
import
org.jeecg.common.aspect.annotation.Dict
;
import
lombok.EqualsAndHashCode
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
import
lombok.experimental.Accessors
;
import
org.jeecgframework.poi.excel.annotation.Excel
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
java.io.Serializable
;
/**
/**
* @Description: 内容检查
* @Description: 内容检查
...
...
zrch-risk-server-39/jeecg-module-system/jeecg-module-stm/src/main/java/org/jeecg/modules/stm/baosong/entity/BaosongTpl.java
浏览文件 @
4c556ef6
package
org
.
jeecg
.
modules
.
stm
.
baosong
.
entity
;
package
org
.
jeecg
.
modules
.
stm
.
baosong
.
entity
;
import
java.io.Serializable
;
import
java.io.UnsupportedEncodingException
;
import
java.util.Date
;
import
java.math.BigDecimal
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.TableLogic
;
import
lombok.Data
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
lombok.Data
;
import
org.jeecgframework.poi.excel.annotation.Excel
;
import
org.jeecg.common.aspect.annotation.Dict
;
import
lombok.EqualsAndHashCode
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
import
lombok.experimental.Accessors
;
import
org.jeecg.common.aspect.annotation.Dict
;
import
org.jeecgframework.poi.excel.annotation.Excel
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
java.io.Serializable
;
/**
/**
* @Description: 报送模板
* @Description: 报送模板
...
...
zrch-risk-server-39/jeecg-module-system/jeecg-module-stm/src/main/java/org/jeecg/modules/stm/baosong/entity/BaosongTplItem.java
浏览文件 @
4c556ef6
package
org
.
jeecg
.
modules
.
stm
.
baosong
.
entity
;
package
org
.
jeecg
.
modules
.
stm
.
baosong
.
entity
;
import
java.io.Serializable
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
java.io.UnsupportedEncodingException
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
java.util.Date
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
java.math.BigDecimal
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.util.List
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Data
;
import
lombok.Data
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
org.jeecgframework.poi.excel.annotation.Excel
;
import
org.jeecg.common.aspect.annotation.Dict
;
import
lombok.EqualsAndHashCode
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
import
lombok.experimental.Accessors
;
import
org.jeecg.common.aspect.annotation.Dict
;
import
org.jeecgframework.poi.excel.annotation.Excel
;
import
java.io.Serializable
;
import
java.util.List
;
/**
/**
* @Description: 报送模板项
* @Description: 报送模板项
...
...
zrch-risk-server-39/jeecg-module-system/jeecg-module-stm/src/main/java/org/jeecg/modules/stm/baosong/entity/BaosongTplItemConfig.java
浏览文件 @
4c556ef6
package
org
.
jeecg
.
modules
.
stm
.
baosong
.
entity
;
package
org
.
jeecg
.
modules
.
stm
.
baosong
.
entity
;
import
java.io.Serializable
;
import
java.io.UnsupportedEncodingException
;
import
java.util.Date
;
import
java.math.BigDecimal
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.TableLogic
;
import
lombok.Data
;
import
lombok.Data
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
org.jeecgframework.poi.excel.annotation.Excel
;
import
org.jeecg.common.aspect.annotation.Dict
;
import
lombok.EqualsAndHashCode
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
import
lombok.experimental.Accessors
;
import
org.jeecgframework.poi.excel.annotation.Excel
;
import
java.io.Serializable
;
/**
/**
* @Description: 模板项目设置
* @Description: 模板项目设置
...
...
zrch-risk-server-39/jeecg-module-system/jeecg-module-stm/src/main/resources/mapping/baosong/BaosongTaskReviewMapper.xml
浏览文件 @
4c556ef6
...
@@ -17,18 +17,16 @@
...
@@ -17,18 +17,16 @@
</select>
</select>
<select
id=
"queryTaskRecordForXml"
resultType=
"org.jeecg.modules.stm.baosong.entity.TaskRecordVo"
>
<select
id=
"queryTaskRecordForXml"
resultType=
"org.jeecg.modules.stm.baosong.entity.TaskRecordVo"
>
SELECT A.content,A.taskid,A.itemid,A.rind, B.tplid,B.code,B.pcode,B.title
SELECT B.content,B.taskid,A.id as itemid,B.rind, A.tplid,A.code,A.pcode,A.title
FROM baosong_task_record A
FROM baosong_tpl_item A
RIGHT JOIN baosong_tpl_item B ON A.itemid = B.id
LEFT JOIN baosong_task_record B ON A.id=B.itemid AND B.taskid=#{query.taskid}
<where>
<where>
<if
test=
"query.taskid != null"
>
AND A.taskid = #{query.taskid}
</if>
<if
test=
"query.tplid != null"
>
<if
test=
"query.tplid != null"
>
AND
B
.tplid = #{query.tplid}
AND
A
.tplid = #{query.tplid}
</if>
</if>
</where>
</where>
ORDER BY
B.id,B.pcode,B
.code
ORDER BY
A.id,A.pcode,A
.code
</select>
</select>
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论