Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
D
device-back
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
1
议题
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Matrix
device-back
Commits
f19ec192
提交
f19ec192
authored
9月 14, 2021
作者:
zjm
浏览文件
操作
浏览文件
下载
差异文件
合并分支 'dev' 到 'master'
Dev to master 查看合并请求
!29
上级
41cc6fdf
080bf66f
显示空白字符变更
内嵌
并排
正在显示
18 个修改的文件
包含
328 行增加
和
24 行删除
+328
-24
DeviceApplyController.java
...kj/dev/device/apply/controller/DeviceApplyController.java
+13
-0
ApplyBillDetailVo.java
...m/tykj/dev/device/apply/subject/vo/ApplyBillDetailVo.java
+3
-0
UploadApplyFile.java
...com/tykj/dev/device/apply/subject/vo/UploadApplyFile.java
+11
-0
DeviceCheckController.java
...device/confirmcheck/controller/DeviceCheckController.java
+21
-4
FinalCheckController.java
...ev/device/finalcheck/controller/FinalCheckController.java
+11
-5
FinalReport.java
...tykj/dev/device/finalcheck/entity/domain/FinalReport.java
+8
-0
TimeParam.java
.../com/tykj/dev/device/finalcheck/entity/dto/TimeParam.java
+6
-0
FileVo.java
...java/com/tykj/dev/device/finalcheck/entity/vo/FileVo.java
+30
-0
FinalReportVo.java
...m/tykj/dev/device/finalcheck/entity/vo/FinalReportVo.java
+4
-0
FinalCheckService.java
...tykj/dev/device/finalcheck/service/FinalCheckService.java
+10
-1
FinalCheckServiceImpl.java
...device/finalcheck/service/impl/FinalCheckServiceImpl.java
+26
-7
DeviceLibraryService.java
...tykj/dev/device/library/service/DeviceLibraryService.java
+5
-0
DeviceLibraryServiceImpl.java
...device/library/service/impl/DeviceLibraryServiceImpl.java
+19
-0
DeviceNumberUtils.java
.../com/tykj/dev/device/library/utils/DeviceNumberUtils.java
+43
-0
StorageBillController.java
.../dev/device/storage/controller/StorageBillController.java
+67
-2
CreateSeqVo.java
...a/com/tykj/dev/device/storage/subject/vo/CreateSeqVo.java
+28
-0
TaskSelectController.java
...ev/device/taskselect/controller/TaskSelectController.java
+20
-2
FinalCheckControllerTest.java
...ava/com/tykj/dev/finalcheck/FinalCheckControllerTest.java
+3
-3
没有找到文件。
dev-apply/src/main/java/com/tykj/dev/device/apply/controller/DeviceApplyController.java
浏览文件 @
f19ec192
...
...
@@ -441,6 +441,9 @@ public class DeviceApplyController {
if
(
uploadApplyFile
.
getReplyFiles
()
!=
null
&&
uploadApplyFile
.
getReplyFiles
().
size
()
>
0
)
{
deviceApplyBill
.
setReplyFiles
(
FilesUtil
.
stringFileToList
(
uploadApplyFile
.
getReplyFiles
()));
}
//add
deviceApplyBill
.
setAgent
(
uploadApplyFile
.
getAgent
());
deviceApplyBill
.
setReplyUnit
(
uploadApplyFile
.
getReplyUnit
());
deviceApplyBillService
.
update
(
deviceApplyBill
);
}
else
{
...
...
@@ -476,7 +479,17 @@ public class DeviceApplyController {
if
(
uploadApplyFile
.
getApplyBillDetailVos
()
!=
null
&&
uploadApplyFile
.
getApplyBillDetailVos
().
size
()
>
0
)
{
deviceApplyBill
.
setApplyStat
(
JacksonUtil
.
toJSon
(
uploadApplyFile
.
getApplyBillDetailVos
()));
}
//add
deviceApplyBill
.
setAgent
(
uploadApplyFile
.
getAgent
());
deviceApplyBill
.
setReplyUnit
(
uploadApplyFile
.
getReplyUnit
());
DeviceApplyBill
deviceApplyBill1
=
deviceApplyBillService
.
update
(
deviceApplyBill
);
//通过列装id查询列装
// List<ApplyBillDetailVo> applyBillDetailVos = uploadApplyFile.getApplyBillDetailVos();
// for (ApplyBillDetailVo applyBillDetailVo : applyBillDetailVos) {
// PackingLibrary packingLibrary = packingLibraryService.getOne(applyBillDetailVo.getPackingId());
// BeanUtils.copyProperties(applyBillDetailVo,packingLibrary);
// packingLibraryService.update(packingLibrary);
// }
if
(
deviceApplyBill
.
getApplyType
()
>
1
)
{
List
<
String
>
seqs
=
new
ArrayList
<>();
List
<
ReplyVo
>
replyVos
=
JacksonUtil
.
readValue
(
deviceApplyBill1
.
getReplyVos
(),
new
TypeReference
<
List
<
ReplyVo
>>()
{
...
...
dev-apply/src/main/java/com/tykj/dev/device/apply/subject/vo/ApplyBillDetailVo.java
浏览文件 @
f19ec192
...
...
@@ -23,6 +23,9 @@ public class ApplyBillDetailVo {
@ApiModelProperty
(
value
=
"申请数量"
)
private
Integer
storageCount
;
@ApiModelProperty
(
value
=
"批复数量"
)
private
Integer
waitNum
;
@ApiModelProperty
(
value
=
"已入库数量"
)
private
Integer
completeCount
=
0
;
...
...
dev-apply/src/main/java/com/tykj/dev/device/apply/subject/vo/UploadApplyFile.java
浏览文件 @
f19ec192
...
...
@@ -39,4 +39,15 @@ public class UploadApplyFile {
@ApiModelProperty
(
value
=
"申请批复结果(0:未通过,1:通过)"
)
private
Integer
status
;
/**
* 批复单位
*/
@ApiModelProperty
(
value
=
"批复单位"
)
private
String
replyUnit
;
/**
* 经办人
*/
@ApiModelProperty
(
value
=
"经办人"
)
private
String
agent
;
}
dev-confirmcheck/src/main/java/com/tykj/dev/device/confirmcheck/controller/DeviceCheckController.java
浏览文件 @
f19ec192
...
...
@@ -437,7 +437,7 @@ public class DeviceCheckController {
linkVo
.
setType
(
2
);
//看到的都是自查 根据tpye和billId找到父级节点 这里的根节点只能是检查节点
Task
rootTask
=
taskRepo
.
findAllByBillIdAndBusinessType
(
billId
,
type
).
stream
()
.
filter
(
task
->
task
.
getCustomInfo
().
contains
(
"exam"
))
.
filter
(
task
->
Objects
.
nonNull
(
task
.
getCustomInfo
())
&&
task
.
getCustomInfo
().
contains
(
"exam"
))
.
findFirst
()
.
orElseThrow
(()
->
new
ApiException
(
"[核查模块]没有找到对应billId的检查任务,您给的billId = "
+
billId
));
// 找到所有的子节点
...
...
@@ -941,7 +941,7 @@ public class DeviceCheckController {
Integer
fatherId
=
0
;
Integer
initStatusId
=
0
;
// level = 1 或者2 市省级 否则 区级 ,市省级的自查初始状态160,区级的自查初始状态140
// level = 1 或者2 市省级 否则
就是
区级 ,市省级的自查初始状态160,区级的自查初始状态140
if
(
unit
.
getLevel
()
==
1
||
unit
.
getLevel
()
==
2
)
{
fatherId
=
cityExamIdMap
.
get
(
unit
.
getUnitId
());
initStatusId
=
CHECK_DETAIL_CITY_0
.
id
;
...
...
@@ -1331,7 +1331,6 @@ public class DeviceCheckController {
detailRepo
.
updateCheckDetail4Check
(
id
,
detailString
,
checkResult
,
(
int
)
count
);
}
//依据detail账单对应的checkUserId来判断是2流程还是多流程的
Integer
userAId
=
currentDetail
.
getCheckUserAId
();
Integer
userBId
=
currentDetail
.
getCheckUserBId
();
...
...
@@ -1352,6 +1351,8 @@ public class DeviceCheckController {
log
.
info
(
"[核查模块] 详情任务推进到下个阶段..."
);
taskService
.
moveToNext
(
currentTask
);
summaryDetail
(
currentTask
,
currentDetail
);
// // 检查该exam任务是否可以完结推进了
// advanceExamTask(currentTask.getParentTaskId());
}
}
else
{
//不通过则回到第一阶段
...
...
@@ -1392,6 +1393,9 @@ public class DeviceCheckController {
currentDetail
.
setUserCId
(
userId
);
currentDetail
=
detailRepo
.
save
(
currentDetail
);
summaryDetail
(
currentTask
,
currentDetail
);
// // 检查该exam任务是否可以完结推进了
// advanceExamTask(currentTask.getParentTaskId());
return
ResponseEntity
.
ok
(
"市专管员审核通过,结束"
+
currentDetail
.
getCheckUnit
()
+
" 区的自查任务并汇总数据"
);
}
else
{
log
.
info
(
"[核查模块] 市专管员审核未通过,回滚该任务到初始状态,任务id = {}"
,
currentTask
.
getId
());
...
...
@@ -1416,6 +1420,19 @@ public class DeviceCheckController {
}
/**
* 尝试自动完结检查任务(市/省的)
* 1. 当且仅当该检查任务的状态等于@link{CHECK_EXAM_STAT_1}时且其下的所有子任务均为完结状态,自动推进
* @param exam的taskId
*/
private
void
advanceExamTask
(
Integer
examTaskId
)
{
TaskBto
parentTask
=
taskService
.
findByTaskId
(
examTaskId
);
if
(
parentTask
.
getBillStatus
().
equals
(
CHECK_EXAM_STAT_1
.
id
)&&
taskService
.
TaskTreeIsOver
(
examTaskId
)){
log
.
info
(
"[核查模块] 检测到task id = {}的检查任务已经可以自动推进了,自动推进至下一步"
,
examTaskId
);
statConfirm
(
parentTask
.
getBillId
());
}
}
/**
* 省专管员审核自查数据的方法
*
...
...
@@ -1493,7 +1510,7 @@ public class DeviceCheckController {
cDetail
.
setCheckFiles
(
""
);
cDetail
.
setCheckFileList
(
Lists
.
newArrayList
());
cDetail
=
detailRepo
.
save
(
cDetail
);
// 创建新的任务(被拒绝的自查单位如果是区则是140状态,否则是160状态)
// 创建新的任务(被拒绝的自查单位如果是区则是140状态,否则是160状态
)
String
unitName
=
cDetail
.
getCheckUnit
();
Integer
level
=
unitsRepo
.
findByName
(
unitName
).
getLevel
();
Integer
initStatusId
=
0
;
...
...
dev-finalcheck/src/main/java/com/tykj/dev/device/finalcheck/controller/FinalCheckController.java
浏览文件 @
f19ec192
...
...
@@ -4,11 +4,9 @@ import cn.afterturn.easypoi.excel.ExcelExportUtil;
import
cn.afterturn.easypoi.excel.entity.TemplateExportParams
;
import
com.tykj.dev.config.swagger.AutoDocument
;
import
com.tykj.dev.device.finalcheck.entity.domain.FinalDetail
;
import
com.tykj.dev.device.finalcheck.entity.domain.FinalReport
;
import
com.tykj.dev.device.finalcheck.entity.dto.TimeParam
;
import
com.tykj.dev.device.finalcheck.entity.vo.FinalDetailVo
;
import
com.tykj.dev.device.finalcheck.entity.vo.FinalRemakeVo
;
import
com.tykj.dev.device.finalcheck.entity.vo.FinalReportSelectVo
;
import
com.tykj.dev.device.finalcheck.entity.vo.FinalReportVo
;
import
com.tykj.dev.device.finalcheck.entity.vo.*
;
import
com.tykj.dev.device.finalcheck.service.FinalCheckService
;
import
com.tykj.dev.misc.base.ResultObj
;
import
com.tykj.dev.misc.utils.ResultUtil
;
...
...
@@ -66,7 +64,8 @@ public class FinalCheckController {
@PostMapping
(
"/reports"
)
@ApiOperation
(
value
=
"生成决算报告"
)
public
ResponseEntity
<
ResultObj
<
FinalReportVo
>>
generateReport
(
@RequestBody
TimeParam
time
)
{
FinalReportVo
finalReportVo
=
fcService
.
generateReport
(
time
.
getStartTime
(),
time
.
getEndTime
());
FinalReportVo
finalReportVo
=
fcService
.
generateReport
(
time
.
getStartTime
(),
time
.
getEndTime
(),
time
.
getSendFileList
());
return
ResultUtil
.
success
(
finalReportVo
);
}
...
...
@@ -151,4 +150,11 @@ public class FinalCheckController {
return
ResponseEntity
.
ok
(
finalDetail
);
}
@PostMapping
(
"/reports/uploadFile"
)
@ApiOperation
(
value
=
"上传单据"
)
public
ResponseEntity
uploadFile
(
@RequestBody
FileVo
fileVo
)
{
FinalReport
finalReport
=
fcService
.
uploadFile
(
fileVo
);
return
ResponseEntity
.
ok
(
finalReport
);
}
}
dev-finalcheck/src/main/java/com/tykj/dev/device/finalcheck/entity/domain/FinalReport.java
浏览文件 @
f19ec192
package
com
.
tykj
.
dev
.
device
.
finalcheck
.
entity
.
domain
;
import
com.tykj.dev.device.file.service.FilesUtil
;
import
com.tykj.dev.device.finalcheck.entity.vo.FinalDetailVo
;
import
com.tykj.dev.device.finalcheck.entity.vo.FinalReportVo
;
import
com.tykj.dev.misc.base.BaseEntity
;
import
com.tykj.dev.misc.utils.MapperUtils
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.NoArgsConstructor
;
import
javax.persistence.Column
;
import
javax.persistence.Entity
;
import
java.time.LocalDate
;
import
java.time.LocalDateTime
;
...
...
@@ -39,8 +42,13 @@ public class FinalReport extends BaseEntity {
private
String
operator
;
@ApiModelProperty
(
value
=
"上传单据"
)
@Column
(
name
=
"send_files"
,
columnDefinition
=
"TEXT"
)
private
String
sendFiles
;
public
FinalReportVo
toVo
(
List
<
FinalDetail
>
details
)
{
FinalReportVo
reportVo
=
MapperUtils
.
map
(
this
,
FinalReportVo
.
class
);
reportVo
.
setSendFileList
(
FilesUtil
.
stringFileToList
(
this
.
getSendFiles
()));
List
<
FinalDetailVo
>
detailVos
=
MapperUtils
.
mapAll
(
details
,
FinalDetailVo
.
class
);
reportVo
.
setDetails
(
detailVos
);
return
reportVo
;
...
...
dev-finalcheck/src/main/java/com/tykj/dev/device/finalcheck/entity/dto/TimeParam.java
浏览文件 @
f19ec192
...
...
@@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import
com.fasterxml.jackson.annotation.JsonPropertyOrder
;
import
com.fasterxml.jackson.databind.annotation.JsonDeserialize
;
import
com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer
;
import
com.tykj.dev.device.file.entity.FileRet
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
...
...
@@ -11,6 +12,7 @@ import lombok.Data;
import
lombok.NoArgsConstructor
;
import
java.time.LocalDate
;
import
java.util.List
;
/**
* TimeParam.
...
...
@@ -34,4 +36,8 @@ public class TimeParam {
@JsonDeserialize
(
using
=
LocalDateDeserializer
.
class
)
@ApiModelProperty
(
value
=
"决算结束时间"
,
example
=
"2020-11-02"
)
private
LocalDate
endTime
;
@ApiModelProperty
(
value
=
"单据"
)
private
List
<
FileRet
>
sendFileList
;
}
dev-finalcheck/src/main/java/com/tykj/dev/device/finalcheck/entity/vo/FileVo.java
0 → 100644
浏览文件 @
f19ec192
package
com
.
tykj
.
dev
.
device
.
finalcheck
.
entity
.
vo
;
import
cn.afterturn.easypoi.excel.annotation.ExcelTarget
;
import
com.tykj.dev.device.file.entity.FileRet
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.util.List
;
/**
* finalDetailVo.
*
* @author Matrix <xhyrzldf@gmail.com>
* @since 2020/9/24 at 5:41 下午
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public
class
FileVo
{
@ApiModelProperty
(
"文件"
)
private
List
<
FileRet
>
fileRets
;
@ApiModelProperty
(
"id"
)
private
Integer
id
;
}
dev-finalcheck/src/main/java/com/tykj/dev/device/finalcheck/entity/vo/FinalReportVo.java
浏览文件 @
f19ec192
...
...
@@ -5,6 +5,7 @@ import cn.afterturn.easypoi.excel.annotation.ExcelTarget;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.fasterxml.jackson.databind.annotation.JsonDeserialize
;
import
com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer
;
import
com.tykj.dev.device.file.entity.FileRet
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
...
...
@@ -64,4 +65,7 @@ public class FinalReportVo {
@ApiModelProperty
(
"报告细节列表"
)
private
List
<
FinalDetailVo
>
details
;
@ApiModelProperty
(
value
=
"单据"
)
private
List
<
FileRet
>
sendFileList
;
}
dev-finalcheck/src/main/java/com/tykj/dev/device/finalcheck/service/FinalCheckService.java
浏览文件 @
f19ec192
package
com
.
tykj
.
dev
.
device
.
finalcheck
.
service
;
import
com.tykj.dev.device.file.entity.FileRet
;
import
com.tykj.dev.device.finalcheck.entity.domain.FinalDetail
;
import
com.tykj.dev.device.finalcheck.entity.domain.FinalReport
;
import
com.tykj.dev.device.finalcheck.entity.vo.FileVo
;
import
com.tykj.dev.device.finalcheck.entity.vo.FinalRemakeVo
;
import
com.tykj.dev.device.finalcheck.entity.vo.FinalReportSelectVo
;
import
com.tykj.dev.device.finalcheck.entity.vo.FinalReportVo
;
import
org.springframework.data.domain.Page
;
import
java.time.LocalDate
;
import
java.util.List
;
/**
* FinalCheckService.
...
...
@@ -23,7 +27,7 @@ public interface FinalCheckService {
* @param endTime 决算结束时间
* @return {@link FinalReportVo}
*/
FinalReportVo
generateReport
(
LocalDate
startTime
,
LocalDate
endTime
);
FinalReportVo
generateReport
(
LocalDate
startTime
,
LocalDate
endTime
,
List
<
FileRet
>
sendFileList
);
/**
* 根据关键字查询报告列表(不附带detail)
...
...
@@ -44,4 +48,9 @@ public interface FinalCheckService {
*/
FinalDetail
addRemake
(
FinalRemakeVo
finalRemakeVo
);
/**
* 上传单据
*/
FinalReport
uploadFile
(
FileVo
fileVo
);
}
dev-finalcheck/src/main/java/com/tykj/dev/device/finalcheck/service/impl/FinalCheckServiceImpl.java
浏览文件 @
f19ec192
package
com
.
tykj
.
dev
.
device
.
finalcheck
.
service
.
impl
;
import
com.github.wenhao.jpa.Specifications
;
import
com.tykj.dev.device.file.entity.FileRet
;
import
com.tykj.dev.device.file.service.FilesUtil
;
import
com.tykj.dev.device.finalcheck.entity.domain.FinalDetail
;
import
com.tykj.dev.device.finalcheck.entity.domain.FinalReport
;
import
com.tykj.dev.device.finalcheck.entity.vo.FileVo
;
import
com.tykj.dev.device.finalcheck.entity.vo.FinalRemakeVo
;
import
com.tykj.dev.device.finalcheck.entity.vo.FinalReportSelectVo
;
import
com.tykj.dev.device.finalcheck.entity.vo.FinalReportVo
;
...
...
@@ -11,11 +14,14 @@ import com.tykj.dev.device.finalcheck.repisotry.FinalReportDao;
import
com.tykj.dev.device.finalcheck.service.FinalCheckService
;
import
com.tykj.dev.device.library.repository.DeviceLibraryDao
;
import
com.tykj.dev.device.library.subject.domin.DeviceLibrary
;
import
com.tykj.dev.device.task.subject.bto.TaskBto
;
import
com.tykj.dev.device.user.util.UserUtils
;
import
com.tykj.dev.device.usereport.service.DeviceUseReportService
;
import
com.tykj.dev.device.usereport.subject.vo.DeviceStatistics
;
import
com.tykj.dev.misc.exception.ApiException
;
import
com.tykj.dev.misc.utils.JacksonUtil
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.jpa.domain.Specification
;
...
...
@@ -77,18 +83,17 @@ public class FinalCheckServiceImpl implements FinalCheckService {
// private DeviceLibraryService deviceLibraryService;
@Override
public
FinalReportVo
generateReport
(
LocalDate
startTime
,
LocalDate
endTime
)
{
public
FinalReportVo
generateReport
(
LocalDate
startTime
,
LocalDate
endTime
,
List
<
FileRet
>
sendFileList
)
{
String
name
=
startTime
+
"~"
+
endTime
+
"决算报告"
;
String
unitName
=
userService
.
getCurrentUserUnitName
();
String
operatorName
=
userService
.
getCurrentName
();
FinalReport
report
=
new
FinalReport
(
name
,
unitName
,
startTime
,
endTime
,
LocalDateTime
.
now
(),
operatorName
);
FinalReport
report
=
new
FinalReport
(
name
,
unitName
,
startTime
,
endTime
,
LocalDateTime
.
now
(),
operatorName
,
FilesUtil
.
stringFileToList
(
sendFileList
));
FinalReportVo
finalReportVo
=
new
FinalReportVo
();
finalReportVo
.
setSendFileList
(
sendFileList
);
report
=
reportDao
.
save
(
report
);
// 查询这段时间内该单位下的所有装备 并且计数
long
l
=
System
.
currentTimeMillis
();
// List<DeviceLibrary> devices = deviceDao.findAllByUnitBetweenTime(unitName, localDateToDate(startTime), localDateToDate(endTime));
List
<
DeviceLibrary
>
devices
=
deviceDao
.
findAll
();
System
.
out
.
println
(
System
.
currentTimeMillis
()-
l
);
//
// PredicateBuilder<DeviceLibrary> builder = Specifications.and();
// builder.eq("ownUnit",unitName);
// List<DeviceLibrary> devices = deviceDao.findAll(builder.build());
...
...
@@ -167,7 +172,6 @@ public class FinalCheckServiceImpl implements FinalCheckService {
}
detailList
=
detailDao
.
saveAll
(
detailList
);
return
report
.
toVo
(
detailList
);
}
...
...
@@ -219,7 +223,9 @@ public class FinalCheckServiceImpl implements FinalCheckService {
.
orElse
(
Collections
.
emptyList
());
//按照名称排序
List
<
FinalDetail
>
finalDetails
=
detailList
.
stream
().
sorted
(
Comparator
.
comparing
(
FinalDetail:
:
getModel
)).
collect
(
Collectors
.
toList
());
return
report
.
toVo
(
finalDetails
);
FinalReportVo
finalReportVo
=
report
.
toVo
(
finalDetails
);
finalReportVo
.
setSendFileList
(
FilesUtil
.
stringFileToList
(
report
.
getSendFiles
()));
return
finalReportVo
;
}
@Override
...
...
@@ -235,4 +241,17 @@ public class FinalCheckServiceImpl implements FinalCheckService {
FinalDetail
save
=
detailDao
.
save
(
finalDetail
);
return
save
;
}
@Override
public
FinalReport
uploadFile
(
FileVo
fileVo
)
{
Optional
<
FinalReport
>
byId
=
reportDao
.
findById
(
fileVo
.
getId
());
FinalReport
finalReport1
=
new
FinalReport
();
if
(
byId
.
isPresent
()){
FinalReport
finalReport
=
byId
.
get
();
finalReport
.
setSendFiles
(
FilesUtil
.
stringFileToList
(
fileVo
.
getFileRets
()));
finalReport1
=
reportDao
.
save
(
finalReport
);
}
BeanUtils
.
copyProperties
(
finalReport1
,
FinalReportVo
.
class
);
return
finalReport1
;
}
}
dev-library/src/main/java/com/tykj/dev/device/library/service/DeviceLibraryService.java
浏览文件 @
f19ec192
...
...
@@ -246,4 +246,9 @@ public interface DeviceLibraryService {
* @param
*/
void
updateLocalAndOwn
(
String
localUnit
,
List
<
Integer
>
deviceIds
);
/**
* 根据型号查询序列号 取最大值的Device对象
*/
int
getMaxSeqNumber
(
String
model
);
}
dev-library/src/main/java/com/tykj/dev/device/library/service/impl/DeviceLibraryServiceImpl.java
浏览文件 @
f19ec192
...
...
@@ -13,6 +13,7 @@ import com.tykj.dev.device.library.service.DeviceLibraryService;
import
com.tykj.dev.device.library.subject.domin.DeviceLibrary
;
import
com.tykj.dev.device.library.subject.vo.DeviceLibrarySelectVo
;
import
com.tykj.dev.device.library.subject.vo.DeviceStatisticsVo
;
import
com.tykj.dev.device.library.utils.DeviceNumberUtils
;
import
com.tykj.dev.device.user.subject.entity.Units
;
import
com.tykj.dev.device.user.subject.service.UnitsService
;
import
com.tykj.dev.device.user.subject.service.UserPublicService
;
...
...
@@ -740,6 +741,24 @@ public class DeviceLibraryServiceImpl implements DeviceLibraryService {
deviceLibraryDao
.
updateDevicesOwnUnit
(
localUnit
,
deviceIds
);
}
@Override
public
int
getMaxSeqNumber
(
String
model
)
{
List
<
DeviceLibrary
>
devices
=
deviceLibraryDao
.
findAllByModel
(
model
);
return
devices
.
stream
()
.
max
(
Comparator
.
comparing
(
DeviceNumberUtils:
:
extractSeqNumber
))
.
map
(
d
->
DeviceNumberUtils
.
parseSeq2Number
(
d
.
getSeqNumber
()))
.
orElse
(
0
);
// return devices.stream()
// .map(deviceLibrary -> deviceLibrary.getSeqNumber().substring(deviceLibrary.getSeqNumber().length()-4))
// .sorted(Comparator.comparing(String::toString).reversed())
// .collect(Collectors.toList());
}
@Override
public
DeviceLibrary
update
(
DeviceLibrary
deviceLibraryEntity
)
{
...
...
dev-library/src/main/java/com/tykj/dev/device/library/utils/DeviceNumberUtils.java
0 → 100644
浏览文件 @
f19ec192
package
com
.
tykj
.
dev
.
device
.
library
.
utils
;
import
com.tykj.dev.device.library.subject.domin.DeviceLibrary
;
public
class
DeviceNumberUtils
{
public
static
int
extractSeqNumber
(
DeviceLibrary
device
){
String
seqString
=
device
.
getSeqNumber
().
substring
(
device
.
getSeqNumber
().
length
()
-
4
);
return
Integer
.
parseInt
(
seqString
.
replace
(
"0"
,
""
));
}
/**
*
* @param seqString 默认是形如 '0081'这样的字符串
* @return 0081
*/
public
static
int
parseSeq2Number
(
String
seqString
){
return
Integer
.
parseInt
(
seqString
.
replace
(
"0"
,
""
));
}
/**
*
* @param seqNumber 形如 35这样的数字
* @return '0035'
*/
public
static
String
parseNumber2Seq
(
int
seqNumber
){
String
seqString
=
String
.
valueOf
(
seqNumber
);
if
(
seqString
.
length
()
==
1
){
seqString
=
"000"
+
seqString
;
}
if
(
seqString
.
length
()
==
2
){
seqString
=
"00"
+
seqString
;
}
if
(
seqString
.
length
()
==
3
){
seqString
=
"0"
+
seqString
;
}
return
seqString
;
}
}
dev-storage/src/main/java/com/tykj/dev/device/storage/controller/StorageBillController.java
浏览文件 @
f19ec192
...
...
@@ -16,6 +16,7 @@ import com.tykj.dev.device.library.subject.Dto.DeviceLogDto;
import
com.tykj.dev.device.library.subject.domin.DeviceLibrary
;
import
com.tykj.dev.device.library.subject.vo.DeviceLibrarySaveVo
;
import
com.tykj.dev.device.library.subject.vo.FileVo
;
import
com.tykj.dev.device.library.utils.DeviceNumberUtils
;
import
com.tykj.dev.device.packing.service.PackingLibraryService
;
import
com.tykj.dev.device.packing.subject.domin.PackingLibrary
;
import
com.tykj.dev.device.storage.repository.StorageBillDao
;
...
...
@@ -49,6 +50,7 @@ import org.springframework.beans.factory.annotation.Qualifier;
import
org.springframework.cache.annotation.CacheEvict
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
...
...
@@ -56,6 +58,7 @@ import java.util.*;
import
java.util.concurrent.Executor
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
import
java.util.stream.IntStream
;
import
static
java
.
util
.
stream
.
Collectors
.
toMap
;
...
...
@@ -158,7 +161,7 @@ public class StorageBillController {
}
}
@ApiOperation
(
value
=
"自动生成序列号"
,
notes
=
"可以通过这个接口自动生成序列号"
)
@ApiOperation
(
value
=
"自动生成
装备
序列号"
,
notes
=
"可以通过这个接口自动生成序列号"
)
@PostMapping
(
value
=
"/autoCreate/{num}"
)
public
ResponseEntity
autoCreate
(
@PathVariable
(
"num"
)
int
num
){
Long
seq
=
snowflake
.
creatNextId
();
...
...
@@ -171,6 +174,43 @@ public class StorageBillController {
return
ResponseEntity
.
ok
(
stringBuffer
.
toString
());
}
@ApiOperation
(
value
=
"自动生成配件序列号"
,
notes
=
"可以通过这个接口自动生成序列号"
)
@PostMapping
(
value
=
"/autoCreateForPart"
)
public
ResponseEntity
autoCreateForPart
(
@RequestBody
CreateSeqVo
createSeqVo
){
Integer
num
=
createSeqVo
.
getNum
();
//获取集合中的元素
// List<String> seq = createSeq();
//方法生成满的 0001-9999 list1
//getModel idList list2
//list1 list2 取差集 list3
//list3 next model下的可用
//getcurrentId max = n , 需要生成 m个 ,(n,n+m] n=0,m=5 (0,5]
// (5,11]
//根据型号查询数据库
int
maxSeqNumber
=
deviceLibraryService
.
getMaxSeqNumber
(
createSeqVo
.
getModel
());
List
<
String
>
seqList
=
IntStream
.
rangeClosed
(
maxSeqNumber
+
1
,
num
)
.
mapToObj
(
DeviceNumberUtils:
:
parseNumber2Seq
)
.
collect
(
Collectors
.
toList
());
// int start =0;
// if (!CollectionUtils.isEmpty(allSeq)){
// //说明数据库中存有该集合中的数字
// String s = allSeq.get(0);
// start = Integer.parseInt(s);
// }
// List<String> seq2 = createSeq2(start+1, start+1+num);
// StringJoiner stringBuffer = new StringJoiner("-");
// String modelStyle = createSeqVo.getModel()+createSeqVo.getStyle();
// for (String s : seq2) {
// stringBuffer.add(modelStyle+s);
// }
// return ResponseEntity.ok(stringBuffer.toString());
return
ResponseEntity
.
ok
(
seqList
);
}
@ApiOperation
(
value
=
"获取序列号区间列表"
,
notes
=
"可以通过这个接口获取序列号区间列表"
)
@GetMapping
(
value
=
"/getSeq/{num}/{string}"
)
public
ResponseEntity
getSeq
(
@PathVariable
(
"string"
)
String
s
,
@PathVariable
(
"num"
)
Integer
num
){
...
...
@@ -537,7 +577,7 @@ public class StorageBillController {
if
(
map
.
get
(
applyBillDetailVo
.
getPackingId
())!=
null
){
applyBillDetailVo
.
setCompleteCount
(
map
.
get
(
applyBillDetailVo
.
getPackingId
()).
getCompleteCount
());
applyBillDetailVos
.
set
(
i
,
applyBillDetailVo
);
if
(!
applyBillDetailVo
.
get
StorageCount
().
equals
(
applyBillDetailVo
.
getCompleteCount
())){
if
(!
applyBillDetailVo
.
get
WaitNum
().
equals
(
applyBillDetailVo
.
getCompleteCount
())){
isEnd
=
false
;
}
}
...
...
@@ -796,4 +836,29 @@ public class StorageBillController {
public
ResponseEntity
getFiles
(
Integer
taskId
){
return
ResponseEntity
.
ok
(
storageBillService
.
getFileList
(
taskId
));
}
/**
* @return 生成装备附件的序列号
*/
private
List
<
String
>
createSeq
()
{
Set
<
String
>
set
=
new
HashSet
<>();
for
(
int
i
=
0
;
i
<
10000
;
i
++)
{
String
s
=
String
.
format
(
"%04d"
,
i
);
set
.
add
(
s
);
}
return
set
.
stream
().
sorted
(
Comparator
.
comparing
(
String:
:
toString
)).
skip
(
1
).
collect
(
Collectors
.
toList
());
}
/**
* @return 生成装备附件的序列号
*/
private
List
<
String
>
createSeq2
(
int
start
,
int
num
)
{
List
<
String
>
list
=
new
ArrayList
<>();
for
(
int
i
=
start
;
i
<
num
;
i
++)
{
String
s
=
String
.
format
(
"%04d"
,
i
);
list
.
add
(
s
);
}
return
list
;
}
}
dev-storage/src/main/java/com/tykj/dev/device/storage/subject/vo/CreateSeqVo.java
0 → 100644
浏览文件 @
f19ec192
package
com
.
tykj
.
dev
.
device
.
storage
.
subject
.
vo
;
import
com.tykj.dev.device.library.subject.domin.DeviceLibrary
;
import
com.tykj.dev.device.storage.subject.domin.StorageBill
;
import
com.tykj.dev.device.task.subject.vo.TaskLogUserVo
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.util.List
;
/**
* @author dengdiyi
*/
@Data
@ApiModel
(
"生成附件的装备序列号"
)
public
class
CreateSeqVo
{
@ApiModelProperty
(
name
=
"型号"
)
private
String
model
;
@ApiModelProperty
(
name
=
"形态"
)
private
Integer
style
;
@ApiModelProperty
(
name
=
"数量"
)
private
Integer
num
;
}
dev-taskselect/src/main/java/com/tykj/dev/device/taskselect/controller/TaskSelectController.java
浏览文件 @
f19ec192
...
...
@@ -10,6 +10,7 @@ import com.tykj.dev.device.apply.service.DeviceApplyBillService;
import
com.tykj.dev.device.apply.subject.domin.DeviceApplyBill
;
import
com.tykj.dev.device.apply.subject.vo.ApplyBillDetailVo
;
import
com.tykj.dev.device.apply.subject.vo.ReplyVo
;
import
com.tykj.dev.device.file.entity.FileRet
;
import
com.tykj.dev.device.file.service.FilesUtil
;
import
com.tykj.dev.device.library.repository.DeviceLibraryDao
;
import
com.tykj.dev.device.library.service.DeviceLibraryService
;
...
...
@@ -358,6 +359,9 @@ public class TaskSelectController {
deviceApplyBillEntity
.
setApplyFileList
(
FilesUtil
.
stringFileToList
(
deviceApplyBillEntity
.
getApplyFiles
()));
deviceApplyBillEntity
.
setBackFileList
(
FilesUtil
.
stringFileToList
(
deviceApplyBillEntity
.
getBackFiles
()));
deviceApplyBillEntity
.
setApplyNumFileList
(
FilesUtil
.
stringFileToList
(
deviceApplyBillEntity
.
getApplyNumFiles
()));
List
<
ApplyBillDetailVo
>
applyBillDetailVos
=
JacksonUtil
.
readValue
(
deviceApplyBillEntity
.
getApplyStat
(),
new
TypeReference
<
List
<
ApplyBillDetailVo
>>()
{
});
Map
<
Integer
,
ApplyBillDetailVo
>
applyBillDetailVoMap
=
applyBillDetailVos
.
stream
().
collect
(
toMap
(
ApplyBillDetailVo:
:
getPackingId
,
Function
.
identity
()));
Map
<
Integer
,
ReplyVo
>
map
=
new
HashMap
<>();
if
(
deviceApplyBillEntity
.
getReplyVos
()!=
null
)
{
map
=
Objects
.
requireNonNull
(
JacksonUtil
.
readValue
(
deviceApplyBillEntity
.
getReplyVos
(),
new
TypeReference
<
List
<
ReplyVo
>>()
{
...
...
@@ -385,11 +389,18 @@ public class TaskSelectController {
if
(
packingIdList
.
size
()
==
numList
.
size
())
{
for
(
int
i
=
0
;
i
<
packingIdList
.
size
();
i
++)
{
PackingLibrary
p
=
packingLibraryService
.
getOne
(
packingIdList
.
get
(
i
));
ApplyBillDetailVo
applyBillDetailVo
=
applyBillDetailVoMap
.
get
(
packingIdList
.
get
(
i
));
if
(
deviceApplyBillEntity
.
getApplyType
()==
1
)
{
p
.
setApplyNum
(
numList
.
get
(
i
));
if
(
statMap
.
size
()>
0
){
p
.
setCompleteNum
(
statMap
.
get
(
p
.
getId
()).
getCompleteCount
());
p
.
setWaitNum
(
p
.
getApplyNum
()-
p
.
getCompleteNum
());
// p.setWaitNum(p.getApplyNum()-p.getCompleteNum());
if
(
applyBillDetailVo
.
getWaitNum
()
==
null
){
p
.
setWaitNum
(
null
);
}
else
{
p
.
setWaitNum
(
applyBillDetailVo
.
getWaitNum
()-
p
.
getCompleteNum
());
}
// p.setWaitNum(applyBillDetailVo.getWaitNum()-p.getCompleteNum());
p
.
setSeq
(
statMap
.
get
(
p
.
getId
()).
getSeqInterval
());
}
}
...
...
@@ -398,7 +409,14 @@ public class TaskSelectController {
p
.
setApplyNum
(
map
.
get
(
p
.
getId
()).
getNum
());
p
.
setSeq
(
map
.
get
(
p
.
getId
()).
getSeqInterval
());
p
.
setCompleteNum
(
map
.
get
(
p
.
getId
()).
getCompleteCount
());
p
.
setWaitNum
(
p
.
getApplyNum
()-
p
.
getCompleteNum
());
if
(
applyBillDetailVo
.
getWaitNum
()
==
null
){
p
.
setWaitNum
(
null
);
}
else
{
p
.
setWaitNum
(
applyBillDetailVo
.
getWaitNum
()-
p
.
getCompleteNum
());
}
// p.setWaitNum(p.getApplyNum()-p.getCompleteNum());
// p.setWaitNum(applyBillDetailVo.getWaitNum()-p.getCompleteNum());
// p.setWaitNum(p.getWaitNum()-p.getCompleteNum());
}
}
packingLibraryEntityList
.
add
(
p
);
...
...
dev-union/src/test/java/com/tykj/dev/finalcheck/FinalCheckControllerTest.java
浏览文件 @
f19ec192
...
...
@@ -25,8 +25,8 @@ public class FinalCheckControllerTest extends BaseTest {
@Test
public
void
generateReport
()
{
TimeParam
timeParam
=
new
TimeParam
(
LocalDate
.
of
(
2020
,
1
,
1
),
LocalDate
.
of
(
2020
,
11
,
1
));
System
.
out
.
println
(
fcController
.
generateReport
(
timeParam
));
//
TimeParam timeParam = new TimeParam(LocalDate.of(2020, 1, 1),
//
LocalDate.of(2020, 11, 1));
//
System.out.println(fcController.generateReport(timeParam));
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论