Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
map-parent
Overview
Overview
Details
Activity
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
常超
map-parent
Commits
b544cc7a
Commit
b544cc7a
authored
Aug 14, 2023
by
Guojunfeng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
网合平台代码更新
parent
ab072abc
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
711 additions
and
254 deletions
+711
-254
common/common_utils/src/main/java/com/founder/commonutils/model/zczxEntity/Approve.java
+12
-0
common/common_utils/src/main/java/com/founder/commonutils/model/zczxEntity/ApproveDto.java
+8
-0
common/common_utils/src/main/java/com/founder/commonutils/model/zczxEntity/SubTask.java
+20
-9
common/common_utils/src/main/java/com/founder/commonutils/model/zczxEntity/SubTaskDto.java
+60
-0
common/common_utils/src/main/java/com/founder/commonutils/model/zczxEntity/XcrwDto.java
+18
-0
common/common_utils/src/main/java/com/founder/commonutils/util/Base64Util.java
+14
-4
common/common_utils/src/main/java/com/founder/commonutils/util/CodeUtils.java
+39
-25
common/service_base/src/main/java/com/founder/servicebase/controller/SysUserController.java
+34
-19
service/publicapi/src/main/java/com/founder/publicapi/controller/ZczxService/ApproveController.java
+68
-7
service/publicapi/src/main/java/com/founder/publicapi/controller/ZczxService/SubTaskController.java
+413
-188
service/publicapi/src/main/java/com/founder/publicapi/controller/ZczxService/XcrwController.java
+13
-1
service/publicapi/src/main/java/com/founder/publicapi/controller/ZczxService/ZczxController.java
+1
-1
service/publicapi/src/main/java/com/founder/publicapi/mapper/mysqlMapper/xml/ApproveMapper.xml
+3
-0
service/publicapi/src/main/java/com/founder/publicapi/mapper/mysqlMapper/xml/SubTaskMapper.xml
+8
-0
wswx_files/内部接口文档/下发任务相关/wswx-下发任务-子任务批量反馈.doc
+0
-0
wswx_files/内部接口文档/下发任务相关/wswx-下发任务-子任务移交.doc
+0
-0
wswx_files/内部接口文档/下发任务相关/wswx-下发任务-子任务退回.doc
+0
-0
wswx_files/内部接口文档/下发任务相关/wswx-审批接口(子任务移交审批).doc
+0
-0
wswx_files/内部接口文档/下发任务相关/wswx-审批接口(子任务退回审批).doc
+0
-0
No files found.
common/common_utils/src/main/java/com/founder/commonutils/model/zczxEntity/Approve.java
View file @
b544cc7a
...
...
@@ -113,6 +113,18 @@ public class Approve extends Model<Approve> {
@ApiModelProperty
(
value
=
"审批申请单名称"
)
private
String
auditName
;
@ApiModelProperty
(
value
=
"子任务编号"
)
private
String
subtaskId
;
@ApiModelProperty
(
value
=
"目标接收人账号"
)
private
String
targetJsrzh
;
/**
* 1.退回缘由
*/
@ApiModelProperty
(
value
=
"备注"
)
private
String
bz
;
@ApiModelProperty
(
value
=
"审批人id(表示当前审批节点应该让谁来审批)"
)
@TableField
(
exist
=
false
)
private
String
auditUserId
;
...
...
common/common_utils/src/main/java/com/founder/commonutils/model/zczxEntity/ApproveDto.java
View file @
b544cc7a
...
...
@@ -114,5 +114,13 @@ public class ApproveDto extends BaseDto {
@ApiModelProperty
(
value
=
"审批申请单名称"
)
private
String
auditName
;
@ApiModelProperty
(
value
=
"审批人姓名"
)
private
String
auditUserName
;
@ApiModelProperty
(
value
=
"子任务编号"
)
private
String
subtaskId
;
@ApiModelProperty
(
value
=
"目标接收人账号"
)
private
String
targetJsrzh
;
}
common/common_utils/src/main/java/com/founder/commonutils/model/zczxEntity/SubTask.java
View file @
b544cc7a
...
...
@@ -19,7 +19,7 @@ import java.util.Date;
*/
@Data
@TableName
(
"tb_wh_subtask"
)
@ApiModel
(
value
=
"子任务表(tb_wh_subtask)实体类"
,
description
=
""
)
@ApiModel
(
value
=
"子任务表(tb_wh_subtask)实体类"
,
description
=
""
)
public
class
SubTask
extends
Model
<
SubTask
>
{
@TableId
(
type
=
IdType
.
INPUT
)
...
...
@@ -165,7 +165,7 @@ public class SubTask extends Model<SubTask> {
private
String
ladw
;
@ApiModelProperty
(
value
=
"立案日期"
)
private
String
larq
;
private
String
larq
;
@ApiModelProperty
(
value
=
"工作单位"
)
private
String
gzdw
;
...
...
@@ -253,7 +253,7 @@ public class SubTask extends Model<SubTask> {
@ApiModelProperty
(
value
=
"入库时间"
)
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
rksj
;
@ApiModelProperty
(
value
=
"更新人"
)
...
...
@@ -270,7 +270,7 @@ public class SubTask extends Model<SubTask> {
@ApiModelProperty
(
value
=
"更新时间"
)
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
gxsj
;
@ApiModelProperty
(
value
=
"信息删除判断标志"
)
...
...
@@ -337,6 +337,9 @@ public class SubTask extends Model<SubTask> {
@ApiModelProperty
(
value
=
"退回标志"
)
private
String
thbz
;
@ApiModelProperty
(
value
=
"退回缘由"
)
private
String
thMessage
;
@ApiModelProperty
(
value
=
"用户评价"
)
private
String
evaluation
;
...
...
@@ -348,27 +351,35 @@ public class SubTask extends Model<SubTask> {
@ApiModelProperty
(
value
=
"评价标志"
)
private
String
pjbz
;
/**
* 评价等级
* 0:不及格
* 1:及格
*/
@ApiModelProperty
(
value
=
"评价等级"
)
private
String
pjdj
;
@ApiModelProperty
(
value
=
"评价时间"
)
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
pjsj
;
@ApiModelProperty
(
value
=
"反馈时间"
)
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
fksj
;
@ApiModelProperty
(
value
=
"反馈次数"
)
private
Integer
fkcs
;
private
int
fkcs
;
@ApiModelProperty
(
value
=
"退回时间"
)
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
thsj
;
@ApiModelProperty
(
value
=
"移交时间"
)
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
yjsj
;
@ApiModelProperty
(
value
=
"主任务名称"
)
...
...
common/common_utils/src/main/java/com/founder/commonutils/model/zczxEntity/SubTaskDto.java
View file @
b544cc7a
...
...
@@ -337,6 +337,9 @@ public class SubTaskDto extends BaseDto {
@ApiModelProperty
(
value
=
"退回标志"
)
private
String
thbz
;
@ApiModelProperty
(
value
=
"退回标志"
)
private
String
thMessage
;
/**
* 评价标志
* 0:未评价
...
...
@@ -345,6 +348,14 @@ public class SubTaskDto extends BaseDto {
@ApiModelProperty
(
value
=
"评价标志"
)
private
String
pjbz
;
/**
* 评价等级
* 0:不及格
* 1:及格
*/
@ApiModelProperty
(
value
=
"评价等级"
)
private
String
pjdj
;
@ApiModelProperty
(
value
=
"用户评价"
)
private
String
evaluation
;
...
...
@@ -367,4 +378,53 @@ public class SubTaskDto extends BaseDto {
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
timezone
=
"GMT+8"
,
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
Date
zrwfkjssj
;
//审批相关字段开始-------------------------------------------
@ApiModelProperty
(
value
=
"总审核节点(表明此审核业务的总共审核节点数)"
)
private
String
totalPoint
;
@ApiModelProperty
(
value
=
"当前所在审核节点(表名此审核业务当前所处的节点)"
)
private
String
nowPoint
;
@ApiModelProperty
(
value
=
"审批申请单名称"
)
private
String
auditName
;
@ApiModelProperty
(
value
=
"审批人id(表示当前审批节点应该让谁来审批)"
)
private
String
auditUserId
;
@ApiModelProperty
(
value
=
"审批人姓名"
)
private
String
auditUserName
;
/**
* 审核人类型(表示当前节点审核时审核人的类型)
* 1:特指某人
* 2:具有某个角色(角色id可以存在audit_user_id,也可以新增一个角色id字段)
*/
@ApiModelProperty
(
value
=
"审核人类型(表示当前节点审核时审核人的类型)"
)
private
String
auditUserType
;
@ApiModelProperty
(
value
=
"目标接收人账号"
)
private
String
targetJsrzh
;
//审批相关字段结束-------------------------------------------
//反馈要前端传个人信息开始-------------------------------------------
@ApiModelProperty
(
value
=
"用户名"
)
private
String
username
;
@ApiModelProperty
(
value
=
"真实姓名"
)
private
String
trueName
;
@ApiModelProperty
(
value
=
"用户警号"
)
private
String
policemanid
;
@ApiModelProperty
(
value
=
"单位代码"
)
private
String
unitcode
;
@ApiModelProperty
(
value
=
"单位名称"
)
private
String
unitname
;
//反馈要前端传个人信息结束-------------------------------------------
}
common/common_utils/src/main/java/com/founder/commonutils/model/zczxEntity/XcrwDto.java
View file @
b544cc7a
...
...
@@ -247,4 +247,22 @@ public class XcrwDto extends BaseDto {
*/
@ApiModelProperty
(
value
=
"审核进度"
)
private
String
auditStatus
;
//反馈要前端传个人信息开始-------------------------------------------
@ApiModelProperty
(
value
=
"用户名"
)
private
String
username
;
@ApiModelProperty
(
value
=
"真实姓名"
)
private
String
trueName
;
@ApiModelProperty
(
value
=
"用户警号"
)
private
String
policemanid
;
@ApiModelProperty
(
value
=
"单位代码"
)
private
String
unitcode
;
@ApiModelProperty
(
value
=
"单位名称"
)
private
String
unitname
;
//反馈要前端传个人信息结束-------------------------------------------
}
common/common_utils/src/main/java/com/founder/commonutils/util/Base64Util.java
View file @
b544cc7a
...
...
@@ -13,6 +13,8 @@ import java.net.HttpURLConnection;
import
java.net.URL
;
import
java.util.Base64
;
import
static
com
.
founder
.
commonutils
.
util
.
CodeUtils
.
addZeroForNum
;
/**
* Base64加密,解密
*/
...
...
@@ -67,11 +69,19 @@ public class Base64Util {
}
public
static
void
main
(
String
[]
args
)
{
System
.
out
.
println
(
Base64Util
.
encode
(
"123456"
));
System
.
out
.
println
(
Base64Util
.
decode
(
"YmoxNTAxNDc="
));
String
str
=
"441978010400"
;
System
.
out
.
println
(
str
.
replaceAll
(
"0+$"
,
""
));
//去掉后面全部0
String
s
=
str
.
replaceAll
(
"0+$"
,
""
);
String
substring
=
s
.
substring
(
0
,
s
.
length
()
-
2
);
System
.
out
.
println
(
substring
);
//去掉最后2位
System
.
out
.
println
(
addZeroForNum
(
substring
,
12
));
//补全12位
// System.out.println(Base64Util.encode("dk123456"));
// System.out.println(Base64Util.decode("ZGsxMjM0NTY="));
System
.
out
.
println
(
Base64Util
.
encode
(
"123456"
));
System
.
out
.
println
(
Base64Util
.
decode
(
"YmoxNTAxNDc="
));
//
System.out.println(Base64Util.encode("123456"));
//
System.out.println(Base64Util.decode("YmoxNTAxNDc="));
}
...
...
common/common_utils/src/main/java/com/founder/commonutils/util/CodeUtils.java
View file @
b544cc7a
...
...
@@ -33,60 +33,61 @@ public class CodeUtils {
}
public
static
String
getUuid
(){
public
static
String
getUuid
()
{
return
UUID
.
randomUUID
().
toString
().
replace
(
"-"
,
""
);
}
/**
*
* @Description: 生成唯一的主键 格式: 19位
*/
public
static
synchronized
String
getUUIDKey
(
String
str
)
{
String
uuid
=
System
.
currentTimeMillis
()+
UUID
.
randomUUID
().
toString
().
replaceAll
(
"-"
,
""
).
substring
(
0
,
6
);
String
uuid
=
System
.
currentTimeMillis
()
+
UUID
.
randomUUID
().
toString
().
replaceAll
(
"-"
,
""
).
substring
(
0
,
6
);
return
str
+
uuid
;
}
public
static
String
substrDwdm
(
String
dwdm
){
if
(
dwdm
.
endsWith
(
"0000000000"
)){
dwdm
=
dwdm
.
substring
(
0
,
2
);
}
else
if
(
dwdm
.
endsWith
(
"00000000"
))
{
dwdm
=
dwdm
.
substring
(
0
,
4
);
}
else
if
(
dwdm
.
endsWith
(
"000000"
))
{
dwdm
=
dwdm
.
substring
(
0
,
6
);
}
else
if
(
dwdm
.
endsWith
(
"0000"
))
{
dwdm
=
dwdm
.
substring
(
0
,
8
);
}
else
if
(
dwdm
.
endsWith
(
"00"
))
{
dwdm
=
dwdm
.
substring
(
0
,
10
);
public
static
String
substrDwdm
(
String
dwdm
)
{
if
(
dwdm
.
endsWith
(
"0000000000"
))
{
dwdm
=
dwdm
.
substring
(
0
,
2
);
}
else
if
(
dwdm
.
endsWith
(
"00000000"
))
{
dwdm
=
dwdm
.
substring
(
0
,
4
);
}
else
if
(
dwdm
.
endsWith
(
"000000"
))
{
dwdm
=
dwdm
.
substring
(
0
,
6
);
}
else
if
(
dwdm
.
endsWith
(
"0000"
))
{
dwdm
=
dwdm
.
substring
(
0
,
8
);
}
else
if
(
dwdm
.
endsWith
(
"00"
))
{
dwdm
=
dwdm
.
substring
(
0
,
10
);
}
return
dwdm
;
}
/**
* 截取案件类别代码
*
* @param lbdm
* @return
*/
public
static
String
substrAjldDm
(
String
lbdm
){
if
(
lbdm
.
endsWith
(
"000000"
)){
lbdm
=
lbdm
.
substring
(
0
,
2
);
}
else
if
(
lbdm
.
endsWith
(
"0000"
))
{
lbdm
=
lbdm
.
substring
(
0
,
4
);
}
else
if
(
lbdm
.
endsWith
(
"00"
))
{
lbdm
=
lbdm
.
substring
(
0
,
6
);
public
static
String
substrAjldDm
(
String
lbdm
)
{
if
(
lbdm
.
endsWith
(
"000000"
))
{
lbdm
=
lbdm
.
substring
(
0
,
2
);
}
else
if
(
lbdm
.
endsWith
(
"0000"
))
{
lbdm
=
lbdm
.
substring
(
0
,
4
);
}
else
if
(
lbdm
.
endsWith
(
"00"
))
{
lbdm
=
lbdm
.
substring
(
0
,
6
);
}
return
lbdm
;
}
/**
* 截取行政区划代码
*
* @param xzqhDm
* @return
*/
public
static
String
substrXzqhdm
(
String
xzqhDm
)
{
if
(
xzqhDm
.
endsWith
(
"0000"
))
{
return
xzqhDm
.
substring
(
0
,
2
);
}
else
if
(
xzqhDm
.
endsWith
(
"00"
))
{
return
xzqhDm
.
substring
(
0
,
4
);
if
(
xzqhDm
.
endsWith
(
"0000"
))
{
return
xzqhDm
.
substring
(
0
,
2
);
}
else
if
(
xzqhDm
.
endsWith
(
"00"
))
{
return
xzqhDm
.
substring
(
0
,
4
);
}
return
xzqhDm
;
}
...
...
@@ -112,4 +113,17 @@ public class CodeUtils {
return
"(select name from sys_dictitem s where s.groupid = '"
+
groupid
+
"' and code = "
+
colunm
+
") AS "
+
sb
.
toString
()
+
"Str"
;
}
public
static
String
addZeroForNum
(
String
str
,
int
strLength
)
{
int
strLen
=
str
.
length
();
if
(
strLen
<
strLength
)
{
while
(
strLen
<
strLength
)
{
StringBuffer
sb
=
new
StringBuffer
();
sb
.
append
(
str
).
append
(
"0"
);
//右补0
str
=
sb
.
toString
();
strLen
=
str
.
length
();
}
}
return
str
;
}
}
common/service_base/src/main/java/com/founder/servicebase/controller/SysUserController.java
View file @
b544cc7a
...
...
@@ -18,6 +18,7 @@ import com.founder.servicebase.service.SysRoleService;
import
com.founder.servicebase.service.SysUserService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.web.bind.annotation.*
;
import
javax.annotation.Resource
;
...
...
@@ -27,7 +28,6 @@ import java.util.Date;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
import
static
com
.
founder
.
commonutils
.
util
.
AesEncryptUtil
.
desEncrypt
;
...
...
@@ -126,32 +126,47 @@ public class SysUserController extends ApiController {
@OperLog
(
message
=
"获取一级审批用户列表"
,
operation
=
OperationType
.
QUERY
)
@PostMapping
(
"/getApproveUsers"
)
public
MapRestResult
getApproveUsers
(
@RequestBody
SysUser
sysUser
)
{
String
id
=
sysUser
.
getId
();
//
String id = sysUser.getId();
String
unitcode
=
sysUser
.
getUnitcode
();
List
<
SysRole
>
rolesByUserId
=
sysRoleService
.
getRolesByUserId
(
id
);
//获取用户拥有的角色列表
//看列表中是否包含一级审批权限
List
<
String
>
approveIds
=
rolesByUserId
.
stream
().
map
(
SysRole:
:
getId
).
collect
(
Collectors
.
toList
());
boolean
contains
=
approveIds
.
contains
(
WSWX_YJSP_ROLEID
);
//一级审批id
if
(!
contains
)
{
return
MapRestResult
.
build
(
201
,
"用户没有审批权限"
,
null
);
}
//
List<SysRole> rolesByUserId = sysRoleService.getRolesByUserId(id);//获取用户拥有的角色列表
//
//看列表中是否包含一级审批权限
//
List<String> approveIds = rolesByUserId.stream().map(SysRole::getId).collect(Collectors.toList());
//
boolean contains = approveIds.contains(WSWX_YJSP_ROLEID);//一级审批id
//
if (!contains) {
//
return MapRestResult.build(201, "用户没有审批权限", null);
//
}
unitcode
=
unitcode
.
substring
(
0
,
6
);
//截取拿到分局层面代码
List
<
SysUser
>
users
=
sysUserService
.
getUsersByApprove
(
WSWX_YJSP_ROLEID
,
unitcode
);
return
MapRestResult
.
build
(
200
,
"获取一级审批用户列表"
,
users
);
}
//按条件查询用户表信息(不分页)
//用于
@ApiOperation
(
value
=
"按条件查询用户表信息"
)
@OperLog
(
message
=
"按条件查询用户表信息"
,
operation
=
OperationType
.
QUERY
)
@PostMapping
(
"/selectUser"
)
public
MapRestResult
selectUser
(
@RequestBody
SysUser
sysUser
)
{
QueryWrapper
<
SysUser
>
qw
=
new
QueryWrapper
<>();
//用户单位
qw
.
likeRight
(
StringUtils
.
isNotBlank
(
sysUser
.
getUnitcode
()),
"unitcode"
,
sysUser
.
getUnitcode
());
qw
.
eq
(
"scbz"
,
"0"
);
//未删除
qw
.
eq
(
"open_flag"
,
"1"
);
//已激活
List
<
SysUser
>
list
=
this
.
sysUserService
.
list
(
qw
);
return
MapRestResult
.
build
(
200
,
"按条件查询用户表信息(不分页)"
,
list
);
}
/**
* 智侦用户表:sys_user
* 智侦角色表:sys_role
* 智侦用户角色表:sys_user_role
* 智侦权限表:sys_permission_new
* 角色和权限没关系,角色控制功能,权限控制菜单。
*
* @param id
* @return
*/
/**
* 智侦用户表:sys_user
* 智侦角色表:sys_role
* 智侦用户角色表:sys_user_role
* 智侦权限表:sys_permission_new
* 角色和权限没关系,角色控制功能,权限控制菜单。
*
* @param id
* @return
*/
//判断该登陆角色是否可以审批
@ApiOperation
(
value
=
"根据用户id获得该用户所拥有的的角色"
)
@OperLog
(
message
=
"根据用户id获得该用户所拥有的的角色"
,
operation
=
OperationType
.
QUERY
)
...
...
service/publicapi/src/main/java/com/founder/publicapi/controller/ZczxService/ApproveController.java
View file @
b544cc7a
package
com
.
founder
.
publicapi
.
controller
.
ZczxService
;
import
cn.hutool.core.bean.BeanUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.api.ApiController
;
...
...
@@ -8,16 +9,15 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import
com.founder.commonutils.model.PageSimpleVO
;
import
com.founder.commonutils.model.newPublicEntity.MapRestResult
;
import
com.founder.commonutils.model.newPublicEntity.SysUser
;
import
com.founder.commonutils.model.zczxEntity.Approve
;
import
com.founder.commonutils.model.zczxEntity.ApproveDetail
;
import
com.founder.commonutils.model.zczxEntity.ApproveDto
;
import
com.founder.commonutils.model.zczxEntity.ZczxRole
;
import
com.founder.commonutils.model.zczxEntity.*
;
import
com.founder.commonutils.util.KeyUtil
;
import
com.founder.publicapi.service.ApproveDetailService
;
import
com.founder.publicapi.service.ApproveService
;
import
com.founder.publicapi.service.SubTaskService
;
import
com.founder.publicapi.service.ZczxRoleService
;
import
com.founder.servicebase.logs.OperLog
;
import
com.founder.servicebase.logs.OperationType
;
import
com.founder.servicebase.service.SysUserService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.apache.commons.lang3.StringUtils
;
...
...
@@ -49,6 +49,12 @@ public class ApproveController extends ApiController {
@Resource
private
ZczxRoleService
zczxRoleService
;
@Resource
private
SysUserService
sysUserService
;
@Resource
private
SubTaskService
subTaskService
;
/**
* 审批类型(表明此条记录的审批类型,如流转审批、分享审批)
* 1:协查任务审批
...
...
@@ -135,7 +141,7 @@ public class ApproveController extends ApiController {
@PostMapping
(
"sp"
)
@ApiOperation
(
value
=
"审批"
)
@OperLog
(
message
=
"审批"
,
operation
=
OperationType
.
UPDATE
)
public
MapRestResult
sp
(
@RequestBody
ApproveDto
approveDto
)
{
public
MapRestResult
sp
(
@RequestBody
ApproveDto
approveDto
)
throws
Exception
{
//当前登陆人的信息
ServletRequestAttributes
requestAttributes
=
(
ServletRequestAttributes
)
RequestContextHolder
.
getRequestAttributes
();
...
...
@@ -175,9 +181,9 @@ public class ApproveController extends ApiController {
updateWrapper
.
eq
(
"audit_id"
,
approveDto
.
getId
());
//审批主键id
approveDetailService
.
update
(
approveDetail
,
updateWrapper
);
//如果审批类型是“侦查专项取消分享审批” 且 审批状态是“审批通过”,去侦查专项角色表把对应的分享数据删掉
String
auditType
=
approveDto
.
getAuditType
();
//审批类型
String
auditStatus
=
approveDto
.
getAuditStatus
();
//审批状态
//如果审批类型是“侦查专项取消分享审批” 且 审批状态是“审批通过”,去侦查专项角色表(tb_wh_zczx_role)把对应的分享数据删掉
if
(
StringUtils
.
isNotBlank
(
auditType
)
&&
auditType
.
equals
(
"9"
)
&&
StringUtils
.
isNotBlank
(
auditStatus
)
&&
auditStatus
.
equals
(
"2"
))
{
UpdateWrapper
<
ZczxRole
>
zczxRoleUpdateWrapper
=
new
UpdateWrapper
<>();
zczxRoleUpdateWrapper
.
eq
(
"id"
,
approveDto
.
getFlowNo
());
//审批编号(连接具体业务表的数据主键)
...
...
@@ -187,7 +193,62 @@ public class ApproveController extends ApiController {
// String flowNo = approveDto.getFlowNo();//审批编号(连接具体业务表的数据主键)
// zczxRoleService.removeById(flowNo);
}
return
new
MapRestResult
();
//如果审批类型时"移交" 且 审批状态是 "审批通过",去子任务表(tb_wh_subtask)把接收人等字段覆盖掉
if
(
StringUtils
.
isNotBlank
(
auditType
)
&&
auditType
.
equals
(
"7"
)
&&
StringUtils
.
isNotBlank
(
auditStatus
)
&&
auditStatus
.
equals
(
"2"
))
{
String
targetJsrzh
=
approveDto
.
getTargetJsrzh
();
//前端传入目标接收人账号(移交、退回使用字段)
//查一下用户表的信息
QueryWrapper
<
SysUser
>
sysUserQueryWrapper
=
new
QueryWrapper
<>();
sysUserQueryWrapper
.
eq
(
"username"
,
targetJsrzh
);
sysUserQueryWrapper
.
eq
(
"scbz"
,
"0"
);
SysUser
targetUser
=
this
.
sysUserService
.
getOne
(
sysUserQueryWrapper
);
if
(
targetUser
==
null
)
{
//抛异常回滚
throw
new
Exception
(
"目标账号不存在"
);
// return new MapRestResult(201,"目标账号不存在!",null);
}
UpdateWrapper
<
SubTask
>
subTaskUpdateWrapper
=
new
UpdateWrapper
<>();
subTaskUpdateWrapper
.
eq
(
"id"
,
approveDto
.
getFlowNo
());
//审批编号(连接具体业务表的数据主键)
SubTask
subTask
=
new
SubTask
();
subTask
.
setJsrzh
(
targetJsrzh
);
//设置接收人账号
subTask
.
setJsrdwmc
(
targetUser
.
getUnitname
());
//接收人单位名称
subTask
.
setJsrdwdm
(
targetUser
.
getUnitcode
());
//接收人单位代码
subTask
.
setJsrjh
(
targetUser
.
getPolicemanid
());
//接收人警号
subTask
.
setJsrxm
(
targetUser
.
getTrueName
());
//接收人姓名
subTask
.
setJsrlxdh
(
targetUser
.
getTelephone
());
//接收人联系电话
subTask
.
setJsrsfzh
(
targetUser
.
getIdentitycard
());
//接收人证件号码
subTask
.
setYjbz
(
"1"
);
//移交标志设置为1,只能移交1次
subTask
.
setYjsj
(
new
Date
());
this
.
subTaskService
.
update
(
subTask
,
subTaskUpdateWrapper
);
}
//退回
if
(
StringUtils
.
isNotBlank
(
auditType
)
&&
auditType
.
equals
(
"8"
)
&&
StringUtils
.
isNotBlank
(
auditStatus
)
&&
auditStatus
.
equals
(
"2"
))
{
String
targetJsrzh
=
approveDto
.
getTargetJsrzh
();
//前端传入目标接收人账号(移交、退回使用字段)
//查一下用户表的信息
QueryWrapper
<
SysUser
>
sysUserQueryWrapper
=
new
QueryWrapper
<>();
sysUserQueryWrapper
.
eq
(
"username"
,
targetJsrzh
);
sysUserQueryWrapper
.
eq
(
"scbz"
,
"0"
);
SysUser
targetUser
=
this
.
sysUserService
.
getOne
(
sysUserQueryWrapper
);
if
(
targetUser
==
null
)
{
//抛异常回滚
throw
new
Exception
(
"目标账号不存在"
);
// return new MapRestResult(201,"目标账号不存在!",null);
}
UpdateWrapper
<
SubTask
>
subTaskUpdateWrapper
=
new
UpdateWrapper
<>();
subTaskUpdateWrapper
.
eq
(
"id"
,
approveDto
.
getFlowNo
());
//审批编号(连接具体业务表的数据主键)
SubTask
subTask
=
new
SubTask
();
subTask
.
setJsrzh
(
targetJsrzh
);
//设置接收人账号
subTask
.
setJsrdwmc
(
targetUser
.
getUnitname
());
//接收人单位名称
subTask
.
setJsrdwdm
(
targetUser
.
getUnitcode
());
//接收人单位代码
subTask
.
setJsrjh
(
targetUser
.
getPolicemanid
());
//接收人警号
subTask
.
setJsrxm
(
targetUser
.
getTrueName
());
//接收人姓名
subTask
.
setJsrlxdh
(
targetUser
.
getTelephone
());
//接收人联系电话
subTask
.
setJsrsfzh
(
targetUser
.
getIdentitycard
());
//接收人证件号码
this
.
subTaskService
.
update
(
subTask
,
subTaskUpdateWrapper
);
}
return
new
MapRestResult
();
}
}
service/publicapi/src/main/java/com/founder/publicapi/controller/ZczxService/SubTaskController.java
View file @
b544cc7a
package
com
.
founder
.
publicapi
.
controller
.
ZczxService
;
import
cn.hutool.core.bean.BeanUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.api.ApiController
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.founder.commonutils.model.PageSimpleVO
;
import
com.founder.commonutils.model.newPublicEntity.MapRestResult
;
import
com.founder.commonutils.model.zczxEntity.SubTask
;
import
com.founder.commonutils.model.zczxEntity.SubTaskDto
;
import
com.founder.commonutils.model.newPublicEntity.SysUser
;
import
com.founder.commonutils.model.zczxEntity.*
;
import
com.founder.commonutils.util.KeyUtil
;
import
com.founder.publicapi.service.ApproveDetailService
;
import
com.founder.publicapi.service.ApproveService
;
import
com.founder.publicapi.service.ColumnService
;
...
...
@@ -17,9 +19,26 @@ import com.founder.servicebase.logs.OperationType;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.poi.hssf.usermodel.HSSFWorkbook
;
import
org.apache.poi.ss.usermodel.*
;
import
org.apache.poi.xssf.usermodel.XSSFWorkbook
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.context.request.RequestContextHolder
;
import
org.springframework.web.context.request.ServletRequestAttributes
;
import
org.springframework.web.multipart.MultipartFile
;
import
javax.annotation.Resource
;
import
javax.servlet.http.HttpServletRequest
;
import
java.beans.PropertyDescriptor
;
import
java.io.InputStream
;
import
java.lang.reflect.Field
;
import
java.lang.reflect.Method
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
import
static
com
.
founder
.
commonutils
.
util
.
CodeUtils
.
addZeroForNum
;
/**
* @author Godffy
...
...
@@ -91,192 +110,398 @@ public class SubTaskController extends ApiController {
//移交
//提交一个移交审批申请,若审批申请单通过,则更改子任务的接收人账号和移交状态
//只能移交一次,若该子任务移交状态为1,则无法重复移交
// @PostMapping("transfer")
// @ApiOperation(value = "子任务移交")
// @OperLog(message = "子任务移交", operation = OperationType.ADD)
// @Transactional
// public MapRestResult transfer(@RequestBody SubTaskDto subTaskDto) {
// QueryWrapper<SubTask> sqw = new QueryWrapper<>();
// sqw.eq("id",subTaskDto.getId());
// sqw.eq("xxsc_pdbz","0");
// sqw.eq("yjbz","1");//已移交
// SubTask subTask = this.subTaskService.getOne(sqw);
// if (subTask != null) {
// return new MapRestResult(201,"子任务已移交过,无法移交!",null);
// }
//
// QueryWrapper<Approve> qw = new QueryWrapper<>();
// qw.eq("flow_no", approveDto.getFlowNo());
// qw.eq("audit_type", "7");
// qw.eq("audit_status", "1");
// Approve one = approveService.getOne(qw);
// if (one != null) {
// return new MapRestResult(201,"已处于待审批状态,不能重复提交审批!",null);
// }
//
// //当前登陆人的信息
// ServletRequestAttributes requestAttributes =
// (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
// HttpServletRequest request = requestAttributes.getRequest();
// SysUser user = (SysUser) request.getAttribute("user");
// String trueName = user.getTrueName();
// String policemanid = user.getPolicemanid();
// String unitcode = user.getUnitcode();
// String unitname = user.getUnitname();
//
// Approve approve = new Approve();
// String approveNo = KeyUtil.getUUIDKey("A");
// approve.setId(approveNo);//审批主表主键
// approve.setFlowNo(approveDto.getFlowNo());//连接专项角色表主键
// approve.setAuditType("7");//审批类型,7:子任务移交
// approve.setLrr(trueName);
// approve.setLrrjh(policemanid);
// approve.setLrrdwdm(unitcode);
// approve.setLrrdwmc(unitname);
// approve.setRksj(new Date());
// approve.setTotalPoint(approveDto.getTotalPoint());//总审核节点(表明此审核业务的总共审核节点数)
// approve.setNowPoint(approveDto.getNowPoint());//当前所在审核节点(表明此审核业务当前所处的节点)
// approve.setZxbh(approveDto.getZxbh());//专项编号
// approve.setZxmc(approveDto.getZxmc());//专项名称
// approve.setAuditName(approveDto.getAuditName());//分享申请单名称
// //存审批主表信息
// approveService.save(approve);
//
// ApproveDetail approveDetail = new ApproveDetail();
// String approveDetailNo = KeyUtil.getUUIDKey("AD");
// approveDetail.setId(approveDetailNo);//审批明细表主键
// approveDetail.setAuditId(approveNo);//连接审批主表主键
// approveDetail.setAuditUserId(approveDto.getAuditUserId());//由谁审批
// approveDetail.setAuditUserName(trueName);//审批人
// approveDetail.setLrr(trueName);
// approveDetail.setLrrjh(policemanid);
// approveDetail.setLrrdwdm(unitcode);
// approveDetail.setLrrdwmc(unitname);
// approveDetail.setRksj(new Date());
// approveDetail.setNowPoint(approveDto.getNowPoint());//当前所在审核节点(表明此审核业务当前所处的节点)
// approveDetail.setAuditUserType(approveDto.getAuditUserType());//目前为特指某人
// approveDetailService.save(approveDetail);
// return new MapRestResult();
// }
// //反馈子任务
// //步骤:
// // 1.前端把需要反馈的子任务及对应的主任务模板先查出来,然后将这些子任务的主键ID带上放入excel第一列,再把(接受任务单位)这列去掉,生成反馈模板
// // 2.用户下载反馈模板之后,将空的任务进行填写,调用此接口进行子任务反馈
// //要求:
// // 1.可以同一条任务多次反馈,记录反馈次数
// @PostMapping("feedback")
// @ApiOperation(value = "反馈子任务")
// @OperLog(message = "反馈子任务", operation = OperationType.UPDATE)
// @Transactional
// public MapRestResult feedback(SubTaskDto subTaskDto) {
// //入参校验
// if (subTaskDto.getFile() == null) {
// return MapRestResult.build(201, "必须任务反馈excel", null);
// }
// //当前登陆人的信息
// ServletRequestAttributes requestAttributes =
// (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
// HttpServletRequest request = requestAttributes.getRequest();
// SysUser user = (SysUser) request.getAttribute("user");
// String trueName = user.getTrueName();
// String policemanid = user.getPolicemanid();
// String unitcode = user.getUnitcode();
// String unitname = user.getUnitname();
//
// MultipartFile file = subTaskDto.getFile();
// String originalFilename = file.getOriginalFilename();//文件全名(包含后缀)
//
//
// }
//
// /**
// * 自定义表头
// * 导入Excel转为实体类
// *
// * @param fileName
// * @param file
// * @param t
// * @return
// * @throws Exception
// */
// public <T> List handelExcel(String fileName, MultipartFile file, Class<T> t) throws Exception {
//
// if (!fileName.matches("^.+\\.(?i)(xls)$") && !fileName.matches("^.+\\.(?i)(xlsx)$")) {
// throw new Exception();
// }
// boolean isExcel2003 = true;
// if (fileName.matches("^.+\\.(?i)(xlsx)$")) {
// isExcel2003 = false;
// }
// InputStream is = file.getInputStream();
// Workbook wb = null;
// if (isExcel2003) {
// wb = new HSSFWorkbook(is);
// } else {
// wb = new XSSFWorkbook(is);
// }
// Sheet sheet = wb.getSheetAt(0);
//
// //获取表头列
// Row row = sheet.getRow(0);
// //表头字段放入titleList中
// List<String> titleList = new ArrayList<String>();
// //这里前端直接按顺序把表头字段名传过来,再存到titleList里面
// for (int i = 0; i < row.getLastCellNum(); i++) {
// //查列表,把列名对应的字段名查出来
// QueryWrapper<Column> qw = new QueryWrapper<>();
// qw.eq("field_name", row.getCell(i).getStringCellValue());//只查询有效的
// qw.eq("xxsc_pdbz", "0");//只查询有效的
// Column one = this.columnService.getOne(qw);
// if (one != null) {
// titleList.add(one.getEntityName());
// }
// }
// //获得该类的所有属性
// Field[] fields = t.getDeclaredFields();
//
// List<T> list = new ArrayList<T>();
//
// for (int r = 1; r <= sheet.getLastRowNum(); r++) {
// T tIns = t.newInstance();
// boolean nullrow = false;
//
// for (Field field : fields) {
//
// PropertyDescriptor pd = new PropertyDescriptor(field.getName(), t);
// if (!"id".equals(field.getName())) {
// int num = titleList.indexOf(field.getName());
// if (num != -1) {
// //获得set方法
// Method method = pd.getWriteMethod();
// System.out.println(num);//第几个字段索引
// System.out.println(r);//第几行
// Row nowrow = sheet.getRow(r);//行
// if (nowrow != null) {
// Cell cell = nowrow.getCell(num);
// if (cell != null) {
// cell.setCellType(CellType.STRING);
// method.invoke(tIns, cell.getStringCellValue());
// } else {
// method.invoke(tIns, "");
// }
// } else {
// nullrow = true;
// break;
// }
//
// }
// }
// }
// if (nullrow == true) {
// break;
// }
// list.add(tIns);
// }
// return list;
// }
@PostMapping
(
"transfer"
)
@ApiOperation
(
value
=
"子任务移交"
)
@OperLog
(
message
=
"子任务移交"
,
operation
=
OperationType
.
ADD
)
@Transactional
public
MapRestResult
transfer
(
@RequestBody
SubTaskDto
subTaskDto
)
{
QueryWrapper
<
SubTask
>
sqw
=
new
QueryWrapper
<>();
sqw
.
eq
(
"id"
,
subTaskDto
.
getId
());
sqw
.
eq
(
"xxsc_pdbz"
,
"0"
);
sqw
.
eq
(
"yjbz"
,
"1"
);
//已移交
SubTask
subTask
=
this
.
subTaskService
.
getOne
(
sqw
);
if
(
subTask
!=
null
)
{
return
new
MapRestResult
(
201
,
"子任务已移交过,无法移交!"
,
null
);
}
QueryWrapper
<
Approve
>
qw
=
new
QueryWrapper
<>();
qw
.
eq
(
"flow_no"
,
subTaskDto
.
getId
());
//子任务编号
qw
.
eq
(
"audit_type"
,
"7"
);
qw
.
eq
(
"audit_status"
,
"1"
);
Approve
one
=
approveService
.
getOne
(
qw
);
if
(
one
!=
null
)
{
return
new
MapRestResult
(
201
,
"已处于待审批状态,不能重复提交审批!"
,
null
);
}
//当前登陆人的信息
ServletRequestAttributes
requestAttributes
=
(
ServletRequestAttributes
)
RequestContextHolder
.
getRequestAttributes
();
HttpServletRequest
request
=
requestAttributes
.
getRequest
();
SysUser
user
=
(
SysUser
)
request
.
getAttribute
(
"user"
);
String
trueName
=
user
.
getTrueName
();
String
policemanid
=
user
.
getPolicemanid
();
String
unitcode
=
user
.
getUnitcode
();
String
unitname
=
user
.
getUnitname
();
Approve
approve
=
new
Approve
();
String
approveNo
=
KeyUtil
.
getUUIDKey
(
"A"
);
approve
.
setId
(
approveNo
);
//审批主表主键
approve
.
setFlowNo
(
subTaskDto
.
getId
());
//连接专项角色表主键
approve
.
setAuditType
(
"7"
);
//审批类型,7:子任务移交
approve
.
setLrr
(
trueName
);
approve
.
setLrrjh
(
policemanid
);
approve
.
setLrrdwdm
(
unitcode
);
approve
.
setLrrdwmc
(
unitname
);
approve
.
setRksj
(
new
Date
());
approve
.
setTotalPoint
(
subTaskDto
.
getTotalPoint
());
//总审核节点(表明此审核业务的总共审核节点数)
approve
.
setNowPoint
(
subTaskDto
.
getNowPoint
());
//当前所在审核节点(表明此审核业务当前所处的节点)
approve
.
setSubtaskId
(
subTaskDto
.
getId
());
//子任务编号
approve
.
setTargetJsrzh
(
subTaskDto
.
getTargetJsrzh
());
//目标接收人账号
approve
.
setAuditName
(
subTaskDto
.
getAuditName
());
//申请单名称
//存审批主表信息
approveService
.
save
(
approve
);
ApproveDetail
approveDetail
=
new
ApproveDetail
();
String
approveDetailNo
=
KeyUtil
.
getUUIDKey
(
"AD"
);
approveDetail
.
setId
(
approveDetailNo
);
//审批明细表主键
approveDetail
.
setAuditId
(
approveNo
);
//连接审批主表主键
approveDetail
.
setAuditUserId
(
subTaskDto
.
getAuditUserId
());
//由谁审批
approveDetail
.
setAuditUserName
(
subTaskDto
.
getAuditUserName
());
//审批人名字
approveDetail
.
setLrr
(
trueName
);
approveDetail
.
setLrrjh
(
policemanid
);
approveDetail
.
setLrrdwdm
(
unitcode
);
approveDetail
.
setLrrdwmc
(
unitname
);
approveDetail
.
setRksj
(
new
Date
());
approveDetail
.
setNowPoint
(
subTaskDto
.
getNowPoint
());
//当前所在审核节点(表明此审核业务当前所处的节点)
approveDetail
.
setAuditUserType
(
subTaskDto
.
getAuditUserType
());
//目前为特指某人
approveDetailService
.
save
(
approveDetail
);
return
new
MapRestResult
();
}
//反馈子任务
//步骤:
// 1.前端把需要反馈的子任务及对应的主任务模板先查出来,然后将这些子任务的主键ID带上放入excel第一列,再把(接受任务单位)这列去掉,生成反馈模板
// 2.用户下载反馈模板之后,将空的任务进行填写,调用此接口进行子任务反馈
//要求:
// 1.可以同一条任务多次反馈,记录反馈次数
@PostMapping
(
"feedback"
)
@ApiOperation
(
value
=
"反馈子任务(单条)"
)
@OperLog
(
message
=
"反馈子任务(单条)"
,
operation
=
OperationType
.
UPDATE
)
@Transactional
public
MapRestResult
feedback
(
@RequestBody
SubTaskDto
subTaskDto
)
{
//入参校验
if
(
StringUtils
.
isBlank
(
subTaskDto
.
getId
()))
{
return
MapRestResult
.
build
(
201
,
"子任务主键ID不能为空"
,
null
);
}
String
trueName
=
subTaskDto
.
getTrueName
();
String
policemanid
=
subTaskDto
.
getPolicemanid
();
String
unitcode
=
subTaskDto
.
getUnitcode
();
String
unitname
=
subTaskDto
.
getUnitname
();
String
username
=
subTaskDto
.
getUsername
();
//用户名
//查一下这条子任务的反馈次数
SubTask
byId
=
this
.
subTaskService
.
getById
(
subTaskDto
.
getId
());
int
fkcs
=
byId
.
getFkcs
();
SubTask
subTask
=
new
SubTask
();
BeanUtil
.
copyProperties
(
subTaskDto
,
subTask
);
//重点:把该条子任务的接收人账号更新为当前反馈的这个人的用户名
subTask
.
setJsrzh
(
username
);
subTask
.
setGxr
(
trueName
);
subTask
.
setGxrjh
(
policemanid
);
subTask
.
setGxrdwdm
(
unitcode
);
subTask
.
setGxrdwmc
(
unitname
);
subTask
.
setGxsj
(
new
Date
());
subTask
.
setFksj
(
new
Date
());
//反馈时间就是完成时间
subTask
.
setFkcs
(++
fkcs
);
//反馈次数
subTask
.
setFkbz
(
"1"
);
//反馈标注设置为1
subTask
.
setFkrdwdm
(
unitcode
);
//反馈人单位代码
subTask
.
setFkrdwmc
(
unitname
);
//反馈人单位名称
subTask
.
setFkrxm
(
trueName
);
//反馈人姓名
subTask
.
setFkrjh
(
policemanid
);
//反馈人警号
this
.
subTaskService
.
updateById
(
subTask
);
return
new
MapRestResult
();
}
//批量反馈
@PostMapping
(
"feedbackBatch"
)
@ApiOperation
(
value
=
"批量反馈子任务"
)
@OperLog
(
message
=
"批量反馈子任务"
,
operation
=
OperationType
.
UPDATE
)
@Transactional
public
MapRestResult
feedbackBatch
(
SubTaskDto
subTaskDto
)
throws
Exception
{
//入参校验
if
(
subTaskDto
.
getFile
()
==
null
)
{
return
MapRestResult
.
build
(
201
,
"必须上传反馈文件"
,
null
);
}
String
trueName
=
subTaskDto
.
getTrueName
();
String
policemanid
=
subTaskDto
.
getPolicemanid
();
String
unitcode
=
subTaskDto
.
getUnitcode
();
String
unitname
=
subTaskDto
.
getUnitname
();
String
username
=
subTaskDto
.
getUsername
();
//用户名
//读反馈文件
MultipartFile
file
=
subTaskDto
.
getFile
();
String
originalFilename
=
file
.
getOriginalFilename
();
//文件全名(包含后缀)
List
<
SubTask
>
list
=
handelExcel
(
originalFilename
,
file
,
SubTask
.
class
);
//处理一下 list 里的内容,反馈次数加一.
for
(
int
i
=
0
;
i
<
list
.
size
();
i
++)
{
SubTask
subTask
=
list
.
get
(
i
);
//先拿主键id去数据库查最新的反馈次数,然后加1
String
id
=
subTask
.
getId
();
SubTask
byId
=
this
.
subTaskService
.
getById
(
id
);
//如果根据id查不出有这条子任务,证明反馈模板的id被魔改了,直接抛出异常整个中断.
if
(
byId
==
null
)
{
throw
new
Exception
(
"模板中的子任务id:【"
+
id
+
"】不存在!"
);
}
int
fkcs
=
byId
.
getFkcs
();
//重点:把该条子任务的接收人账号更新为当前反馈的这个人的用户名
subTask
.
setJsrzh
(
username
);
subTask
.
setGxr
(
trueName
);
subTask
.
setGxrjh
(
policemanid
);
subTask
.
setGxrdwdm
(
unitcode
);
subTask
.
setGxrdwmc
(
unitname
);
subTask
.
setGxsj
(
new
Date
());
subTask
.
setFksj
(
new
Date
());
//反馈时间就是完成时间
subTask
.
setFkcs
(++
fkcs
);
//反馈次数+1
subTask
.
setFkbz
(
"1"
);
//反馈标注设置为1
subTask
.
setFkrdwdm
(
unitcode
);
//反馈人单位代码
subTask
.
setFkrdwmc
(
unitname
);
//反馈人单位名称
subTask
.
setFkrxm
(
trueName
);
//反馈人姓名
subTask
.
setFkrjh
(
policemanid
);
//反馈人警号
list
.
set
(
i
,
subTask
);
//返回正确数据
}
this
.
subTaskService
.
updateBatchById
(
list
);
return
MapRestResult
.
build
(
200
,
"批量反馈成功!"
,
list
.
size
(),
list
);
}
/**
* 1、只能一级一级往上退,只有分局退回到市局领导(拥有权限的一些人)才把退回标志为“1”
* 2、如何找到上一级的账号是谁?根据Token的单位代码判断。
* 3、如果当前Token是指挥中心公共账号,直接把退回标志置"1",不用审批。不会改接收人相关信息。(现在后台直接做处理退回)
* 4、例子:拥有下发任务的市局领导下发了任务->各个指挥中心公共账号接收(比如东坑分局指挥中心)->指挥中心公共账号可以流转至下面的公共账号或个人(比如东坑分局指挥中心科技中队)
* 东坑分局指挥中心科技中队退回至东坑分局指挥中心,需要审批,审批通过后,只修改接收人相关信息。不会把退回标志变成“1”。
* 5、已经处于待审批状态则无法重复提交退回审批申请
*
* @param subTaskDto
* @return
*/
@PostMapping
(
"sendBack"
)
@ApiOperation
(
value
=
"子任务退回"
)
@OperLog
(
message
=
"子任务退回"
,
operation
=
OperationType
.
ADD
)
@Transactional
public
MapRestResult
sendBack
(
@RequestBody
SubTaskDto
subTaskDto
)
{
//查一下子任务状态,不能重复退回
SubTask
byId
=
this
.
subTaskService
.
getById
(
subTaskDto
.
getId
());
String
thbz
=
byId
.
getThbz
();
if
(
StringUtils
.
isNotBlank
(
thbz
)
&&
"1"
.
equals
(
thbz
))
{
return
new
MapRestResult
(
201
,
"子任务已退回过,无法重复退回!"
,
null
);
}
//当前登陆人的信息
ServletRequestAttributes
requestAttributes
=
(
ServletRequestAttributes
)
RequestContextHolder
.
getRequestAttributes
();
HttpServletRequest
request
=
requestAttributes
.
getRequest
();
SysUser
user
=
(
SysUser
)
request
.
getAttribute
(
"user"
);
String
trueName
=
user
.
getTrueName
();
String
policemanid
=
user
.
getPolicemanid
();
String
unitcode
=
user
.
getUnitcode
();
String
unitname
=
user
.
getUnitname
();
String
username
=
user
.
getUsername
();
//用户名
//第一步先看Token里的用户名是不是指挥中心公共账号,如果是,则直接退回不审批(要弄个字典表!还没弄!)
//缺:指挥中心公共账号的一个字典!直接查
//上一级单位的判断:先拿当前的机构代码,去掉后面全部的0,然后再去掉2位,再把0补全到12位,则为直属上级单位代码
//这里先用东坑分局指挥中心做测试,加了字典表后再改
if
(
username
.
equals
(
"441978010000"
))
{
//用户名不会为空,不用判空
String
id
=
subTaskDto
.
getId
();
//子任务编号
SubTask
subTask
=
new
SubTask
();
subTask
.
setId
(
id
);
subTask
.
setGxr
(
trueName
);
subTask
.
setGxrjh
(
policemanid
);
subTask
.
setGxrdwdm
(
unitcode
);
subTask
.
setGxrdwmc
(
unitname
);
subTask
.
setGxsj
(
new
Date
());
subTask
.
setThbz
(
"1"
);
subTask
.
setThMessage
(
subTaskDto
.
getThMessage
());
//退回缘由,存到子任务的字段
subTask
.
setThsj
(
new
Date
());
this
.
subTaskService
.
updateById
(
subTask
);
return
MapRestResult
.
build
(
200
,
"退回成功(当前登陆账号为指挥中心公共账号,直接退回不用审批)"
,
null
);
}
//个人民警登陆,或指挥公共账号下面的公共账号登陆,都需要提交审批申请单
QueryWrapper
<
Approve
>
qw
=
new
QueryWrapper
<>();
qw
.
eq
(
"flow_no"
,
subTaskDto
.
getId
());
//子任务编号
qw
.
eq
(
"audit_type"
,
"8"
);
//退回审批:8
qw
.
eq
(
"audit_status"
,
"1"
);
Approve
one
=
approveService
.
getOne
(
qw
);
if
(
one
!=
null
)
{
return
new
MapRestResult
(
201
,
"已处于待审批状态,不能重复提交审批!"
,
null
);
}
Approve
approve
=
new
Approve
();
String
approveNo
=
KeyUtil
.
getUUIDKey
(
"A"
);
approve
.
setId
(
approveNo
);
//审批主表主键
approve
.
setFlowNo
(
subTaskDto
.
getId
());
//连接专项角色表主键
approve
.
setAuditType
(
"8"
);
//退回审批:8
approve
.
setLrr
(
trueName
);
approve
.
setLrrjh
(
policemanid
);
approve
.
setLrrdwdm
(
unitcode
);
approve
.
setLrrdwmc
(
unitname
);
approve
.
setRksj
(
new
Date
());
approve
.
setTotalPoint
(
subTaskDto
.
getTotalPoint
());
//总审核节点(表明此审核业务的总共审核节点数)
approve
.
setNowPoint
(
subTaskDto
.
getNowPoint
());
//当前所在审核节点(表明此审核业务当前所处的节点)
approve
.
setSubtaskId
(
subTaskDto
.
getId
());
//子任务编号
approve
.
setAuditName
(
subTaskDto
.
getAuditName
());
//申请单名称
//如果当前登陆人的单位就是指挥中心的单位,unitcode等于upUnitCode,还没写!!!!!!!!!!!!!!!!!要等把指挥公共账号导到用户表并用字段区分!
//先把后面的0全部去掉,再去掉后面2位,再用0补全到12位
String
s
=
unitcode
.
replaceAll
(
"0+$"
,
""
);
//去掉后面全部0
String
substring
=
s
.
substring
(
0
,
s
.
length
()
-
2
);
//去掉后面2位
String
upUnitCode
=
addZeroForNum
(
substring
,
12
);
//用0右补全12位
approve
.
setTargetJsrzh
(
upUnitCode
);
//目标接收人账号
approve
.
setBz
(
subTaskDto
.
getThMessage
());
//退回缘由
//存审批主表信息
approveService
.
save
(
approve
);
ApproveDetail
approveDetail
=
new
ApproveDetail
();
String
approveDetailNo
=
KeyUtil
.
getUUIDKey
(
"AD"
);
approveDetail
.
setId
(
approveDetailNo
);
//审批明细表主键
approveDetail
.
setAuditId
(
approveNo
);
//连接审批主表主键
approveDetail
.
setAuditUserId
(
subTaskDto
.
getAuditUserId
());
//由谁审批
approveDetail
.
setAuditUserName
(
subTaskDto
.
getAuditUserName
());
//审批人名字
approveDetail
.
setLrr
(
trueName
);
approveDetail
.
setLrrjh
(
policemanid
);
approveDetail
.
setLrrdwdm
(
unitcode
);
approveDetail
.
setLrrdwmc
(
unitname
);
approveDetail
.
setRksj
(
new
Date
());
approveDetail
.
setNowPoint
(
subTaskDto
.
getNowPoint
());
//当前所在审核节点(表明此审核业务当前所处的节点)
approveDetail
.
setAuditUserType
(
subTaskDto
.
getAuditUserType
());
//目前为特指某人
approveDetailService
.
save
(
approveDetail
);
return
new
MapRestResult
();
}
//评价
@PostMapping
(
"evaluation"
)
@ApiOperation
(
value
=
"子任务评价"
)
@OperLog
(
message
=
"子任务评价"
,
operation
=
OperationType
.
UPDATE
)
public
MapRestResult
evaluation
(
@RequestBody
SubTaskDto
subTaskDto
)
{
String
id
=
subTaskDto
.
getId
();
SubTask
byId
=
this
.
subTaskService
.
getById
(
id
);
if
(
null
==
byId
)
{
return
new
MapRestResult
().
error
(
"子任务不存在"
);
}
if
(
StringUtils
.
isNotBlank
(
byId
.
getPjbz
())
&&
"1"
.
equals
(
byId
.
getPjbz
()))
{
return
new
MapRestResult
().
error
(
"子任务已评价"
);
}
//已反馈 或 已超时 可以评价
if
(
"1"
.
equals
(
byId
.
getFkbz
())
||
"1"
.
equals
(
byId
.
getCsbz
()))
{
//当前登陆人的信息
ServletRequestAttributes
requestAttributes
=
(
ServletRequestAttributes
)
RequestContextHolder
.
getRequestAttributes
();
HttpServletRequest
request
=
requestAttributes
.
getRequest
();
SysUser
user
=
(
SysUser
)
request
.
getAttribute
(
"user"
);
String
trueName
=
user
.
getTrueName
();
String
policemanid
=
user
.
getPolicemanid
();
String
unitcode
=
user
.
getUnitcode
();
String
unitname
=
user
.
getUnitname
();
SubTask
subTask
=
new
SubTask
();
subTask
.
setId
(
subTaskDto
.
getId
());
//子任务主键编号
subTask
.
setPjbz
(
"1"
);
//已评价
subTask
.
setPjdj
(
subTaskDto
.
getPjdj
());
//评价等级 0:不及格 1:及格
subTask
.
setEvaluation
(
subTaskDto
.
getEvaluation
());
//评语
subTask
.
setPjsj
(
new
Date
());
subTask
.
setGxr
(
trueName
);
subTask
.
setGxrjh
(
policemanid
);
subTask
.
setGxrdwdm
(
unitcode
);
subTask
.
setGxrdwmc
(
unitname
);
subTask
.
setGxsj
(
new
Date
());
this
.
subTaskService
.
updateById
(
subTask
);
return
new
MapRestResult
();
}
return
new
MapRestResult
().
error
(
"子任务要处于已反馈或已超时状态才可以评价"
);
}
public
<
T
>
List
handelExcel
(
String
fileName
,
MultipartFile
file
,
Class
<
T
>
t
)
throws
Exception
{
if
(!
fileName
.
matches
(
"^.+\\.(?i)(xls)$"
)
&&
!
fileName
.
matches
(
"^.+\\.(?i)(xlsx)$"
))
{
throw
new
Exception
();
}
boolean
isExcel2003
=
true
;
if
(
fileName
.
matches
(
"^.+\\.(?i)(xlsx)$"
))
{
isExcel2003
=
false
;
}
InputStream
is
=
file
.
getInputStream
();
Workbook
wb
=
null
;
if
(
isExcel2003
)
{
wb
=
new
HSSFWorkbook
(
is
);
}
else
{
wb
=
new
XSSFWorkbook
(
is
);
}
Sheet
sheet
=
wb
.
getSheetAt
(
0
);
//获取表头列
Row
row
=
sheet
.
getRow
(
0
);
//表头字段放入titleList中(根据放进去的顺序做反射!)
List
<
String
>
titleList
=
new
ArrayList
<
String
>();
//直接把反馈模板第一列的id的字段名加到List 很关键!
titleList
.
add
(
"id"
);
//这里前端直接按顺序把表头字段名传过来,再存到titleList里面
for
(
int
i
=
0
;
i
<
row
.
getLastCellNum
();
i
++)
{
//查列表,把列名对应的字段名查出来
QueryWrapper
<
Column
>
qw
=
new
QueryWrapper
<>();
qw
.
eq
(
"field_name"
,
row
.
getCell
(
i
).
getStringCellValue
());
//只查询有效的
qw
.
eq
(
"xxsc_pdbz"
,
"0"
);
//只查询有效的
Column
one
=
this
.
columnService
.
getOne
(
qw
);
if
(
one
!=
null
)
{
titleList
.
add
(
one
.
getEntityName
());
}
}
//获得该类的所有属性
Field
[]
fields
=
t
.
getDeclaredFields
();
List
<
T
>
list
=
new
ArrayList
<
T
>();
for
(
int
r
=
1
;
r
<=
sheet
.
getLastRowNum
();
r
++)
{
T
tIns
=
t
.
newInstance
();
boolean
nullrow
=
false
;
for
(
Field
field
:
fields
)
{
PropertyDescriptor
pd
=
new
PropertyDescriptor
(
field
.
getName
(),
t
);
int
num
=
titleList
.
indexOf
(
field
.
getName
());
if
(
num
!=
-
1
)
{
//获得set方法
Method
method
=
pd
.
getWriteMethod
();
System
.
out
.
println
(
num
);
//第几个字段索引
System
.
out
.
println
(
r
);
//第几行
Row
nowrow
=
sheet
.
getRow
(
r
);
//行
if
(
nowrow
!=
null
)
{
Cell
cell
=
nowrow
.
getCell
(
num
);
if
(
cell
!=
null
)
{
cell
.
setCellType
(
CellType
.
STRING
);
method
.
invoke
(
tIns
,
cell
.
getStringCellValue
());
}
else
{
method
.
invoke
(
tIns
,
""
);
}
}
else
{
nullrow
=
true
;
break
;
}
}
}
if
(
nullrow
==
true
)
{
break
;
}
list
.
add
(
tIns
);
}
return
list
;
}
}
service/publicapi/src/main/java/com/founder/publicapi/controller/ZczxService/XcrwController.java
View file @
b544cc7a
...
...
@@ -211,7 +211,7 @@ public class XcrwController extends ApiController {
qw1
.
eq
(
"XCRWBH"
,
id
);
qw1
.
eq
(
"XXSC_PDBZ"
,
"0"
);
qw1
.
eq
(
"FILE_TYPE"
,
"1"
);
// queryWrapper.select(XcrwFile.class, info -> !info.getColumn().equals("FILE_CONTENT
"));
qw1
.
select
(
XcrwFile
.
class
,
info
->
!
info
.
getColumn
().
equals
(
"file_content
"
));
List
<
XcrwFile
>
sqdList
=
xcrwFileService
.
list
(
qw1
);
//2.协查任务反馈单
...
...
@@ -219,6 +219,8 @@ public class XcrwController extends ApiController {
qw2
.
eq
(
"XCRWBH"
,
id
);
qw2
.
eq
(
"XXSC_PDBZ"
,
"0"
);
qw2
.
eq
(
"FILE_TYPE"
,
"2"
);
qw2
.
select
(
XcrwFile
.
class
,
info
->
!
info
.
getColumn
().
equals
(
"file_content"
));
List
<
XcrwFile
>
fkdList
=
xcrwFileService
.
list
(
qw2
);
Xcrw
xcrw
=
records
.
get
(
i
);
xcrw
.
setXcrwSqd
(
sqdList
);
...
...
@@ -241,6 +243,7 @@ public class XcrwController extends ApiController {
@OperLog
(
message
=
"协查结果反馈"
,
operation
=
OperationType
.
UPDATE
)
@Transactional
public
MapRestResult
feedback
(
XcrwDto
xcrwDto
)
{
String
xcrwbh
=
xcrwDto
.
getXcrwbh
();
Xcrw
xcrw
=
this
.
xcrwService
.
getById
(
xcrwbh
);
if
(
null
==
xcrw
)
{
...
...
@@ -255,7 +258,16 @@ public class XcrwController extends ApiController {
return
new
MapRestResult
().
error
(
"协查任务已退回"
);
}
BeanUtil
.
copyProperties
(
xcrwDto
,
xcrw
);
//重点:把该条子任务的接收人账号更新为当前反馈的这个人的用户名
xcrw
.
setXcrwjsrzh
(
xcrwDto
.
getUsername
());
//用户名
xcrw
.
setXcrwfkrxm
(
xcrwDto
.
getTrueName
());
//姓名
xcrw
.
setXcrwfkrjh
(
xcrwDto
.
getPolicemanid
());
//姓名
xcrw
.
setXcrwfkrdwdm
(
xcrwDto
.
getUnitcode
());
//单位代码
xcrw
.
setXcrwfkrdwmc
(
xcrwDto
.
getUnitname
());
//单位名称
xcrw
.
setXcrwjssj
(
new
Date
());
//协查任务反馈后就结束了
xcrw
.
setXcrwFkzt
(
"1"
);
//设置协查任务反馈判断标志为1,代表已反馈
//更新协查任务信息
...
...
service/publicapi/src/main/java/com/founder/publicapi/controller/ZczxService/ZczxController.java
View file @
b544cc7a
...
...
@@ -255,7 +255,7 @@ public class ZczxController extends ApiController {
approveDetail
.
setId
(
approveDetailNo
);
//审批明细表主键
approveDetail
.
setAuditId
(
approveNo
);
//连接审批主表主键
approveDetail
.
setAuditUserId
(
approveDto
.
getAuditUserId
());
//由谁审批
approveDetail
.
setAuditUserName
(
trueName
);
//审批人
approveDetail
.
setAuditUserName
(
approveDto
.
getAuditUserName
());
//审批人名字
approveDetail
.
setLrr
(
trueName
);
approveDetail
.
setLrrjh
(
policemanid
);
approveDetail
.
setLrrdwdm
(
unitcode
);
...
...
service/publicapi/src/main/java/com/founder/publicapi/mapper/mysqlMapper/xml/ApproveMapper.xml
View file @
b544cc7a
...
...
@@ -35,6 +35,9 @@
wa.zxmc,
wa.xcrwbh,
wa.xcrwmc,
wa.subtask_id,
wa.target_jsrzh,
wa.bz,
ad.audit_user_id,
ad.audit_time,
ad.audit_opinion,
...
...
service/publicapi/src/main/java/com/founder/publicapi/mapper/mysqlMapper/xml/SubTaskMapper.xml
View file @
b544cc7a
...
...
@@ -97,7 +97,15 @@
s.yjbz,
s.thbz,
s.evaluation,
s.fkcs,
s.fksj,
s.thsj,
s.yjsj,
s.pjsj,
s.pjbz,
s.pjdj,
s.main_id,
s.th_message,
m.task_name,
m.task_type,
m.task_content
...
...
wswx_files/内部接口文档/下发任务相关/wswx-下发任务-子任务批量反馈.doc
0 → 100644
View file @
b544cc7a
File added
wswx_files/内部接口文档/下发任务相关/wswx-下发任务-子任务移交.doc
View file @
b544cc7a
No preview for this file type
wswx_files/内部接口文档/下发任务相关/wswx-下发任务-子任务退回.doc
0 → 100644
View file @
b544cc7a
File added
wswx_files/内部接口文档/下发任务相关/wswx-审批接口(子任务移交审批).doc
0 → 100644
View file @
b544cc7a
File added
wswx_files/内部接口文档/下发任务相关/wswx-审批接口(子任务退回审批).doc
0 → 100644
View file @
b544cc7a
File added
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