Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
amos-boot-biz
Project
Project
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
项目统一框架
amos-boot-biz
Commits
0087739a
Commit
0087739a
authored
Oct 09, 2021
by
chenhao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
完成微型消防站优化项的开发
parent
ef9a8f1e
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
782 additions
and
145 deletions
+782
-145
DutyFireFightingDto.java
.../amos/boot/module/common/api/dto/DutyFireFightingDto.java
+49
-0
DutyFireFightingExcleDto.java
.../boot/module/common/api/dto/DutyFireFightingExcleDto.java
+75
-0
OrgUsrDto.java
...om/yeejoin/amos/boot/module/common/api/dto/OrgUsrDto.java
+3
-0
ExcelUtil.java
.../yeejoin/amos/boot/module/common/api/excel/ExcelUtil.java
+0
-0
TemplateDynamicCellWriteHandlerDate.java
...common/api/excel/TemplateDynamicCellWriteHandlerDate.java
+107
-0
IDutyCommonService.java
...os/boot/module/common/api/service/IDutyCommonService.java
+30
-0
IDutyFireFightingService.java
...t/module/common/api/service/IDutyFireFightingService.java
+20
-0
IOrgUsrService.java
...n/amos/boot/module/common/api/service/IOrgUsrService.java
+6
-0
ExcelEnums.java
...om/yeejoin/amos/boot/module/jcs/api/enums/ExcelEnums.java
+2
-2
DutyCarController.java
.../boot/module/common/biz/controller/DutyCarController.java
+1
-1
DutyFireFightingController.java
...ule/common/biz/controller/DutyFireFightingController.java
+160
-0
DutyPersonController.java
...ot/module/common/biz/controller/DutyPersonController.java
+22
-13
DutyCarServiceImpl.java
...ot/module/common/biz/service/impl/DutyCarServiceImpl.java
+29
-111
DutyCommonServiceImpl.java
...module/common/biz/service/impl/DutyCommonServiceImpl.java
+105
-1
DutyFireFightingServiceImpl.java
.../common/biz/service/impl/DutyFireFightingServiceImpl.java
+44
-0
FireStationServiceImpl.java
...odule/common/biz/service/impl/FireStationServiceImpl.java
+22
-0
OrgUsrServiceImpl.java
...oot/module/common/biz/service/impl/OrgUsrServiceImpl.java
+0
-0
ExcelServiceImpl.java
...os/boot/module/jcs/biz/service/impl/ExcelServiceImpl.java
+107
-17
No files found.
amos-boot-module/amos-boot-module-api/amos-boot-module-common-api/src/main/java/com/yeejoin/amos/boot/module/common/api/dto/DutyFireFightingDto.java
0 → 100644
View file @
0087739a
package
com
.
yeejoin
.
amos
.
boot
.
module
.
common
.
api
.
dto
;
import
java.io.Serializable
;
import
java.util.List
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
@Data
@ApiModel
(
value
=
"DutyFireFightingDto"
,
description
=
"微型消防站值班"
)
public
class
DutyFireFightingDto
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
value
=
"用户id"
)
private
String
userId
;
@ApiModelProperty
(
value
=
"用户名称"
)
private
String
userName
;
@ApiModelProperty
(
value
=
"单位ID"
)
private
String
teamId
;
@ApiModelProperty
(
value
=
"单位名称"
)
private
String
teamName
;
@ApiModelProperty
(
value
=
"岗位id"
)
private
String
postType
;
@ApiModelProperty
(
value
=
"岗位名称"
)
private
String
postTypeName
;
@ApiModelProperty
(
value
=
"值班信息"
)
private
List
<
DutyPersonShiftDto
>
dutyShift
;
@ApiModelProperty
(
value
=
"值班开始时间"
)
private
String
startTime
;
@ApiModelProperty
(
value
=
"值班结束时间"
)
private
String
endTime
;
@ApiModelProperty
(
value
=
"微型消防站"
)
private
String
fireFighting
;
@ApiModelProperty
(
value
=
"微型消防站Id"
)
private
String
fireFightingId
;
}
amos-boot-module/amos-boot-module-api/amos-boot-module-common-api/src/main/java/com/yeejoin/amos/boot/module/common/api/dto/DutyFireFightingExcleDto.java
0 → 100644
View file @
0087739a
package
com
.
yeejoin
.
amos
.
boot
.
module
.
common
.
api
.
dto
;
import
java.io.Serializable
;
import
java.util.List
;
import
com.alibaba.excel.annotation.ExcelIgnore
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
@Data
@ApiModel
(
value
=
"DutyFireFightingExcleDto"
,
description
=
"微型消防站值班"
)
public
class
DutyFireFightingExcleDto
implements
Serializable
{
@ExcelIgnore
private
static
final
long
serialVersionUID
=
1L
;
@ExcelProperty
(
value
=
"序号"
,
index
=
0
)
@ApiModelProperty
(
value
=
"序号"
)
private
Integer
number
;
@ExcelIgnore
@ApiModelProperty
(
value
=
"单位ID"
)
private
String
teamId
;
@ExcelProperty
(
value
=
"单位名称"
,
index
=
1
)
@ApiModelProperty
(
value
=
"单位名称"
)
private
String
teamName
;
@ExcelIgnore
@ApiModelProperty
(
value
=
"用户id"
)
private
String
userId
;
@ExcelProperty
(
value
=
"用户名称"
,
index
=
2
)
@ApiModelProperty
(
value
=
"用户名称"
)
private
String
userName
;
// @ExcelIgnore
// @ApiModelProperty(value = "部门id")
// private String deptId;
// @ExcelIgnore
// @ApiModelProperty(value = "部门名称")
// private String deptName;
@ExcelIgnore
@ApiModelProperty
(
value
=
"岗位id"
)
private
String
postType
;
@ExcelProperty
(
value
=
"岗位"
,
index
=
3
)
@ApiModelProperty
(
value
=
"岗位名称"
)
private
String
postTypeName
;
@ExcelProperty
(
value
=
"微型消防站"
,
index
=
4
)
@ApiModelProperty
(
value
=
"微型消防站"
)
private
String
fireFighting
;
@ExcelIgnore
@ApiModelProperty
(
value
=
"微型消防站Id"
)
private
String
fireFightingId
;
@ExcelIgnore
@ApiModelProperty
(
value
=
"值班信息"
)
private
List
<
DutyPersonShiftDto
>
dutyShift
;
@ExcelIgnore
@ApiModelProperty
(
value
=
"值班开始时间"
)
private
String
startTime
;
@ExcelIgnore
@ApiModelProperty
(
value
=
"值班结束时间"
)
private
String
endTime
;
}
amos-boot-module/amos-boot-module-api/amos-boot-module-common-api/src/main/java/com/yeejoin/amos/boot/module/common/api/dto/OrgUsrDto.java
View file @
0087739a
...
...
@@ -75,4 +75,7 @@ public class OrgUsrDto extends BaseDto {
@ApiModelProperty
(
value
=
"动态表单值"
)
private
List
<
DynamicFormInstance
>
dynamicFormValue
;
@ApiModelProperty
(
value
=
"动态表单值-DTO类型"
)
private
List
<
DynamicFormInstanceDto
>
dynamicFormValueDto
;
}
amos-boot-module/amos-boot-module-api/amos-boot-module-common-api/src/main/java/com/yeejoin/amos/boot/module/common/api/excel/ExcelUtil.java
View file @
0087739a
This diff is collapsed.
Click to expand it.
amos-boot-module/amos-boot-module-api/amos-boot-module-common-api/src/main/java/com/yeejoin/amos/boot/module/common/api/excel/TemplateDynamicCellWriteHandlerDate.java
0 → 100644
View file @
0087739a
package
com
.
yeejoin
.
amos
.
boot
.
module
.
common
.
api
.
excel
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
import
org.apache.poi.ss.usermodel.DataValidation
;
import
org.apache.poi.ss.usermodel.DataValidationConstraint
;
import
org.apache.poi.ss.usermodel.DataValidationHelper
;
import
org.apache.poi.ss.usermodel.Name
;
import
org.apache.poi.ss.usermodel.Sheet
;
import
org.apache.poi.ss.usermodel.Workbook
;
import
org.apache.poi.ss.util.CellRangeAddressList
;
import
org.apache.poi.xssf.usermodel.XSSFDataValidation
;
import
com.alibaba.excel.write.handler.SheetWriteHandler
;
import
com.alibaba.excel.write.metadata.holder.WriteSheetHolder
;
import
com.alibaba.excel.write.metadata.holder.WriteWorkbookHolder
;
public
class
TemplateDynamicCellWriteHandlerDate
implements
SheetWriteHandler
{
/**
* 构造器注入
*/
private
List
<
Map
<
Integer
,
String
[]>>
explicitListConstraintMap
=
new
ArrayList
<
Map
<
Integer
,
String
[]>>();
public
TemplateDynamicCellWriteHandlerDate
(
List
<
Map
<
Integer
,
String
[]>>
explicitListConstraintMap
)
{
this
.
explicitListConstraintMap
=
explicitListConstraintMap
;
}
/**
* 避免生成的导入模板下拉值获取不到
*/
private
static
final
Integer
LIMIT_NUMBER
=
0
;
/**
* 返回excel列标A-Z-AA-ZZ
*
* @param num 列数
* @return java.lang.String
*/
private
String
getExcelLine
(
int
num
)
{
String
line
=
""
;
int
first
=
num
/
26
;
int
second
=
num
%
26
;
if
(
first
>
0
)
{
line
=
(
char
)
(
'A'
+
first
-
1
)
+
""
;
}
line
+=
(
char
)
(
'A'
+
second
)
+
""
;
return
line
;
}
@Override
public
void
beforeSheetCreate
(
WriteWorkbookHolder
writeWorkbookHolder
,
WriteSheetHolder
writeSheetHolder
)
{
// TODO Auto-generated method stub
}
@Override
public
void
afterSheetCreate
(
WriteWorkbookHolder
writeWorkbookHolder
,
WriteSheetHolder
writeSheetHolder
)
{
if
(
explicitListConstraintMap
!=
null
)
{
// 这里可以对cell进行任何操作
Sheet
sheet
=
writeSheetHolder
.
getSheet
();
DataValidationHelper
helper
=
sheet
.
getDataValidationHelper
();
for
(
int
index
=
0
;
index
<
explicitListConstraintMap
.
size
()
;
index
++
)
{
int
startIndex
=
index
+
1
;
explicitListConstraintMap
.
get
(
index
).
forEach
((
k
,
v
)->{
// 设置下拉单元格的首行 末行 首列 末列
CellRangeAddressList
rangeList
=
new
CellRangeAddressList
(
startIndex
,
startIndex
,
k
,
k
);
// 如果下拉值总数大于100,则使用一个新sheet存储,避免生成的导入模板下拉值获取不到
if
(
v
.
length
>
LIMIT_NUMBER
)
{
//定义sheet的名称
//1.创建一个隐藏的sheet 名称为 hidden + k
String
sheetName
=
"hidden"
+
startIndex
+
k
;
Workbook
workbook
=
writeWorkbookHolder
.
getWorkbook
();
Sheet
hiddenSheet
=
workbook
.
createSheet
(
sheetName
);
for
(
int
i
=
0
,
length
=
v
.
length
;
i
<
length
;
i
++)
{
// 开始的行数i,列数k
hiddenSheet
.
createRow
(
i
).
createCell
(
k
).
setCellValue
(
v
[
i
]);
}
Name
category1Name
=
workbook
.
createName
();
category1Name
.
setNameName
(
sheetName
);
String
excelLine
=
getExcelLine
(
k
);
// =hidden!$H:$1:$H$50 sheet为hidden的 H1列开始H50行数据获取下拉数组
String
refers
=
"="
+
sheetName
+
"!$"
+
excelLine
+
"$1:$"
+
excelLine
+
"$"
+
(
v
.
length
+
1
);
// 将刚才设置的sheet引用到你的下拉列表中
DataValidationConstraint
constraint
=
helper
.
createFormulaListConstraint
(
refers
);
DataValidation
dataValidation
=
helper
.
createValidation
(
constraint
,
rangeList
);
if
(
dataValidation
instanceof
XSSFDataValidation
){
dataValidation
.
setSuppressDropDownArrow
(
true
);
dataValidation
.
setShowErrorBox
(
true
);
}
else
{
dataValidation
.
setSuppressDropDownArrow
(
false
);
}
writeSheetHolder
.
getSheet
().
addValidationData
(
dataValidation
);
// 设置存储下拉列值得sheet为隐藏
int
hiddenIndex
=
workbook
.
getSheetIndex
(
sheetName
);
if
(!
workbook
.
isSheetHidden
(
hiddenIndex
))
{
workbook
.
setSheetHidden
(
hiddenIndex
,
true
);
}
}
});
}
}
}
}
amos-boot-module/amos-boot-module-api/amos-boot-module-common-api/src/main/java/com/yeejoin/amos/boot/module/common/api/service/IDutyCommonService.java
View file @
0087739a
package
com
.
yeejoin
.
amos
.
boot
.
module
.
common
.
api
.
service
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.yeejoin.amos.boot.module.common.api.dto.DutyPersonShiftDto
;
import
java.text.ParseException
;
import
java.util.List
;
...
...
@@ -86,4 +87,33 @@ public interface IDutyCommonService {
* @return
*/
List
<
Long
>
getDutyShiftIdList
();
/**
* 添加动态表单数据保存的方法,返回保存数据的instanceid
* @param userId
* @param map
* @param groupCode
* @return
*/
public
Long
excuteDynamicFormInstance
(
String
userId
,
Map
<
String
,
Object
>
map
,
String
groupCode
);
/**
* 修改动态表单数据
* @param groupCode
* @param instanceId
* @param map
*/
public
void
updateDynamicFormInstance
(
String
groupCode
,
Long
instanceId
,
Map
<
String
,
Object
>
map
)
;
/**
* 保存值班人的信息---
* @param instanceId
* @param dutyShift
* @param startTime
*/
public
void
saveDutyPersonShiftDetail
(
Long
instanceId
,
List
<
DutyPersonShiftDto
>
dutyShift
,
String
startTime
)
;
/**
* 添加值班人的信息 可以保存空信息
* @param instanceId
* @param dutyShiftList
*/
public
void
insertPersonShift
(
Long
instanceId
,
List
<
DutyPersonShiftDto
>
dutyShiftList
);
}
amos-boot-module/amos-boot-module-api/amos-boot-module-common-api/src/main/java/com/yeejoin/amos/boot/module/common/api/service/IDutyFireFightingService.java
0 → 100644
View file @
0087739a
package
com
.
yeejoin
.
amos
.
boot
.
module
.
common
.
api
.
service
;
import
com.yeejoin.amos.boot.module.common.api.dto.DutyFireFightingDto
;
public
interface
IDutyFireFightingService
extends
IDutyCommonService
{
/**
* 值班信息保存
* @param DutyFireFightingDto 对象
* @return List<DutyCarDto>
*/
DutyFireFightingDto
save
(
DutyFireFightingDto
dto
);
/**
* 更新
* @param instanceId 实例id
* @param DutyFireFightingDto 业务对象
* @return List<DutyCarDto>
*/
DutyFireFightingDto
update
(
Long
instanceId
,
DutyFireFightingDto
dto
);
}
amos-boot-module/amos-boot-module-api/amos-boot-module-common-api/src/main/java/com/yeejoin/amos/boot/module/common/api/service/IOrgUsrService.java
View file @
0087739a
...
...
@@ -216,4 +216,10 @@ public interface IOrgUsrService {
* @return
*/
List
<
OrgUsrExcelDto
>
exportPersonToExcelByParentId
(
Long
parentId
);
/**
* 查询目标公司下所有人员的简要信息,数据包含:所在公司id和name ,人员id和name,岗位id和name
* @param ids
* @return
*/
public
List
<
Map
<
String
,
Object
>>
getPersonDetailByCompanyIds
(
List
<
String
>
ids
);
}
amos-boot-module/amos-boot-module-api/amos-boot-module-jcs-api/src/main/java/com/yeejoin/amos/boot/module/jcs/api/enums/ExcelEnums.java
View file @
0087739a
...
...
@@ -25,8 +25,8 @@ public enum ExcelEnums {
// BUG 2455 相关代码 bykongfm
TGRY
(
"特岗人员"
,
"特岗人员"
,
"com.yeejoin.amos.boot.module.common.api.dto.SpecialPositionStaffDto"
,
"TGRY"
),
//("TGRY","特岗人员")
JYZB
(
"救援装备"
,
"救援装备"
,
"com.yeejoin.amos.boot.module.common.api.dto.RescueEquipmentDto"
,
"JYZB"
),
//("JYZB","救援装备")
XFZB
(
"消防装备"
,
"消防装备"
,
"com.yeejoin.amos.boot.module.common.api.dto.EquipmentDetailDownloadTemplateDto"
,
"XFZB"
)
;
//("XFZB","消防装备")
XFZB
(
"消防装备"
,
"消防装备"
,
"com.yeejoin.amos.boot.module.common.api.dto.EquipmentDetailDownloadTemplateDto"
,
"XFZB"
)
,
//("XFZB","消防装备")
WXXFZB
(
"微型消防站值班"
,
"微型消防站值班"
,
"com.yeejoin.amos.boot.module.common.api.dto.DutyFireFightingExcleDto"
,
"WXXFZB"
);
//("WXXFZB","微型消防站值班")
private
String
fileName
;
private
String
sheetName
;
private
String
classUrl
;
...
...
amos-boot-module/amos-boot-module-biz/amos-boot-module-common-biz/src/main/java/com/yeejoin/amos/boot/module/common/biz/controller/DutyCarController.java
View file @
0087739a
...
...
@@ -33,7 +33,7 @@ import java.util.Map;
@Api
(
tags
=
"值班车辆接口Api"
)
@RequestMapping
(
value
=
"/common/duty-car"
)
public
class
DutyCarController
extends
BaseController
{
@Autowired
IDutyCarService
iDutyCarService
;
...
...
amos-boot-module/amos-boot-module-biz/amos-boot-module-common-biz/src/main/java/com/yeejoin/amos/boot/module/common/biz/controller/DutyFireFightingController.java
0 → 100644
View file @
0087739a
package
com
.
yeejoin
.
amos
.
boot
.
module
.
common
.
biz
.
controller
;
import
java.text.ParseException
;
import
java.util.List
;
import
java.util.Map
;
import
javax.servlet.http.HttpServletResponse
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.DeleteMapping
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PutMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.typroject.tyboot.core.foundation.enumeration.UserType
;
import
org.typroject.tyboot.core.foundation.utils.ValidationUtil
;
import
org.typroject.tyboot.core.restful.doc.TycloudOperation
;
import
org.typroject.tyboot.core.restful.exception.instance.BadRequest
;
import
org.typroject.tyboot.core.restful.utils.ResponseHelper
;
import
org.typroject.tyboot.core.restful.utils.ResponseModel
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.yeejoin.amos.boot.biz.common.controller.BaseController
;
import
com.yeejoin.amos.boot.module.common.api.dto.DutyFireFightingDto
;
import
com.yeejoin.amos.boot.module.common.api.service.IDutyFireFightingService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiParam
;
@RestController
@Api
(
tags
=
"微型消防站值班接口Api"
)
@RequestMapping
(
value
=
"/common/duty-FireFighting"
)
public
class
DutyFireFightingController
extends
BaseController
{
@Autowired
IDutyFireFightingService
iDutyFireFightingService
;
/**
* 值班列表视图--分页
*
* @return ResponseModel
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@GetMapping
(
value
=
"/page-list"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"值班列表视图-分页"
,
notes
=
"值班列表视图-分页"
)
public
ResponseModel
<
IPage
<
Map
<
String
,
Object
>>>
pageList
(
@ApiParam
(
value
=
"开始日期"
,
required
=
true
)
@RequestParam
String
beginDate
,
@ApiParam
(
value
=
"结束日期"
,
required
=
true
)
@RequestParam
String
endDate
,
@ApiParam
(
value
=
"当前页"
,
required
=
true
)
@RequestParam
(
value
=
"current"
)
int
current
,
@ApiParam
(
value
=
"页面大小"
,
required
=
true
)
@RequestParam
(
value
=
"size"
)
int
size
)
throws
ParseException
{
return
ResponseHelper
.
buildResponse
(
iDutyFireFightingService
.
pageList
(
current
,
size
,
beginDate
,
endDate
));
}
/**
* 值班列表视图--不分页
*
* @return ResponseModel
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@GetMapping
(
value
=
"/list"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"值班列表视图-不分页"
,
notes
=
"值班列表视图-不分页"
)
public
ResponseModel
list
(
@ApiParam
(
value
=
"开始日期"
,
required
=
true
)
@RequestParam
String
beginDate
,
@ApiParam
(
value
=
"结束日期"
,
required
=
true
)
@RequestParam
String
endDate
)
throws
ParseException
{
return
ResponseHelper
.
buildResponse
(
iDutyFireFightingService
.
list
(
null
,
beginDate
,
endDate
));
}
/**
* 值班月视图
*
* @return ResponseModel
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@GetMapping
(
"/statistics-day"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"值班月视图"
,
notes
=
"值班月视图"
)
public
ResponseModel
<
List
<
Map
<
String
,
Object
>>>
dutyDetail
(
@ApiParam
(
value
=
"开始日期"
,
required
=
true
)
@RequestParam
String
beginDate
,
@ApiParam
(
value
=
"结束日期"
,
required
=
true
)
@RequestParam
String
endDate
)
throws
ParseException
{
return
ResponseHelper
.
buildResponse
(
iDutyFireFightingService
.
statisticsDay
(
beginDate
,
endDate
));
}
/**
* 调班
*
* @return ResponseModel
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@PostMapping
(
"/duty-adjust"
)
@ApiOperation
(
httpMethod
=
"POST"
,
value
=
"调班保存"
,
notes
=
"调班保存"
)
public
ResponseModel
dutyAdjustSave
(
@RequestBody
DutyFireFightingDto
dto
)
{
return
ResponseHelper
.
buildResponse
(
iDutyFireFightingService
.
save
(
dto
));
}
/**
* 调班
*
* @param instanceId 实例id
* @param dutyCarDto 业务对象
* @return DutyCarDto
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@PutMapping
(
"/duty-adjust"
)
@ApiOperation
(
httpMethod
=
"PUT"
,
value
=
"调班更新"
,
notes
=
"调班更新"
)
public
ResponseModel
dutyAdjustUpdate
(
@RequestParam
Long
instanceId
,
@RequestBody
DutyFireFightingDto
dto
)
{
return
ResponseHelper
.
buildResponse
(
iDutyFireFightingService
.
update
(
instanceId
,
dto
));
}
/**
* 微型消防站导出
*
* @return ResponseModel
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@GetMapping
(
"/exportExcel"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"微型消防站导出"
,
notes
=
"微型消防站导出"
)
public
ResponseModel
exportExcel
(
HttpServletResponse
response
,
@ApiParam
(
value
=
"开始日期"
,
required
=
true
)
@RequestParam
String
beginDate
,
@ApiParam
(
value
=
"结束日期"
,
required
=
true
)
@RequestParam
String
endDate
)
throws
ParseException
{
return
ResponseHelper
.
buildResponse
(
iDutyFireFightingService
.
downloadList
(
beginDate
,
endDate
));
}
/**
* 值班数据删除
*
* @param instanceId 实例id
* @param startTime 开始时间
* @param endTime 结束时间
* @return ResponseModel
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@DeleteMapping
(
"/{instanceId}/{startTime}/{endTime}"
)
@ApiOperation
(
httpMethod
=
"DELETE"
,
value
=
"值班数据删除"
,
notes
=
"值班数据删除"
)
public
ResponseModel
deleteDutyData
(
@PathVariable
Long
instanceId
,
@PathVariable
String
startTime
,
@PathVariable
String
endTime
)
{
if
(
ValidationUtil
.
isEmpty
(
instanceId
)
||
ValidationUtil
.
isEmpty
(
startTime
)
||
ValidationUtil
.
isEmpty
(
endTime
)){
throw
new
BadRequest
(
"参数校验失败."
);
}
return
ResponseHelper
.
buildResponse
(
iDutyFireFightingService
.
deleteDutyData
(
instanceId
,
startTime
,
endTime
));
}
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@ApiOperation
(
"查询指定日期值班人信息列表"
)
@GetMapping
(
"/person/{dutyDay}/list"
)
public
ResponseModel
listDutyPerson
(
@ApiParam
(
value
=
"值班日期"
,
required
=
true
)
@PathVariable
String
dutyDay
,
@ApiParam
(
value
=
"班次id"
)
@RequestParam
(
required
=
false
)
Long
shiftId
,
@ApiParam
(
value
=
"岗位"
)
@RequestParam
(
required
=
false
)
String
postType
){
return
ResponseHelper
.
buildResponse
(
iDutyFireFightingService
.
dayDutyPersonList
(
dutyDay
,
shiftId
,
postType
));
}
}
amos-boot-module/amos-boot-module-biz/amos-boot-module-common-biz/src/main/java/com/yeejoin/amos/boot/module/common/biz/controller/DutyPersonController.java
View file @
0087739a
package
com
.
yeejoin
.
amos
.
boot
.
module
.
common
.
biz
.
controller
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.yeejoin.amos.boot.biz.common.controller.BaseController
;
import
com.yeejoin.amos.boot.module.common.api.dto.DutyPersonDto
;
import
com.yeejoin.amos.boot.module.common.api.service.IDutyPersonService
;
import
java.text.ParseException
;
import
java.util.List
;
import
java.util.Map
;
import
javax.servlet.http.HttpServletResponse
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiParam
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.DeleteMapping
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PutMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.typroject.tyboot.core.foundation.enumeration.UserType
;
import
org.typroject.tyboot.core.foundation.utils.ValidationUtil
;
import
org.typroject.tyboot.core.restful.doc.TycloudOperation
;
...
...
@@ -17,11 +23,14 @@ import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import
org.typroject.tyboot.core.restful.utils.ResponseHelper
;
import
org.typroject.tyboot.core.restful.utils.ResponseModel
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.text.ParseException
;
import
java.util.List
;
import
java.util.Map
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.yeejoin.amos.boot.biz.common.controller.BaseController
;
import
com.yeejoin.amos.boot.module.common.api.dto.DutyPersonDto
;
import
com.yeejoin.amos.boot.module.common.api.service.IDutyPersonService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiParam
;
/**
...
...
amos-boot-module/amos-boot-module-biz/amos-boot-module-common-biz/src/main/java/com/yeejoin/amos/boot/module/common/biz/service/impl/DutyCarServiceImpl.java
View file @
0087739a
package
com
.
yeejoin
.
amos
.
boot
.
module
.
common
.
biz
.
service
.
impl
;
import
java.util.ArrayList
;
import
java.util.Calendar
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Set
;
import
java.util.stream.Collectors
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.typroject.tyboot.core.foundation.context.RequestContext
;
import
org.typroject.tyboot.core.foundation.utils.Bean
;
import
org.typroject.tyboot.core.foundation.utils.ValidationUtil
;
import
org.typroject.tyboot.core.restful.exception.instance.BadRequest
;
import
org.typroject.tyboot.core.restful.utils.ResponseModel
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.yeejoin.amos.boot.biz.common.utils.DateUtils
;
import
com.yeejoin.amos.boot.module.common.api.dto.DutyCarDto
;
import
com.yeejoin.amos.boot.module.common.api.dto.DutyPersonShiftDto
;
import
com.yeejoin.amos.boot.module.common.api.entity.DutyPersonShift
;
import
com.yeejoin.amos.boot.module.common.api.entity.DynamicFormColumn
;
import
com.yeejoin.amos.boot.module.common.api.entity.DynamicFormInstance
;
...
...
@@ -12,23 +29,6 @@ import com.yeejoin.amos.boot.module.common.api.feign.EquipFeignClient;
import
com.yeejoin.amos.boot.module.common.api.mapper.FirefightersMapper
;
import
com.yeejoin.amos.boot.module.common.api.service.IDutyCarService
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.ObjectUtils
;
import
org.typroject.tyboot.core.foundation.context.RequestContext
;
import
org.typroject.tyboot.core.foundation.utils.Bean
;
import
org.typroject.tyboot.core.foundation.utils.ValidationUtil
;
import
org.typroject.tyboot.core.restful.exception.instance.BadRequest
;
import
org.typroject.tyboot.core.restful.utils.ResponseModel
;
import
java.util.ArrayList
;
import
java.util.Calendar
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Set
;
import
java.util.stream.Collectors
;
/**
* @author DELL
*/
...
...
@@ -58,14 +58,6 @@ public class DutyCarServiceImpl extends DutyCommonServiceImpl implements IDutyCa
public
DutyCarDto
save
(
DutyCarDto
dutyCarDto
)
{
// BUG 2807 更新人员车辆排版值班的保存逻辑 如果没有填写数据则保存空数据 。 同步修改 查询 导出相关逻辑 by kongfm 2021-09-14
//1.保存行数据
String
groupCode
=
this
.
getGroupCode
();
String
userId
=
dutyCarDto
.
getUserId
();
List
<
DynamicFormInstance
>
instances
=
dynamicFormInstanceService
.
list
(
new
LambdaQueryWrapper
<
DynamicFormInstance
>().
eq
(
DynamicFormInstance:
:
getFieldCode
,
"userId"
)
.
eq
(
DynamicFormInstance:
:
getFieldValue
,
userId
)
.
eq
(
DynamicFormInstance:
:
getGroupCode
,
this
.
getGroupCode
()));
Long
instanceId
=
null
;
if
(
StringUtils
.
isNotEmpty
(
dutyCarDto
.
getDutyAreaId
()))
{
// 根据建筑id 查找建筑
ResponseModel
<
Map
<
String
,
Object
>>
response
=
null
;
...
...
@@ -78,102 +70,28 @@ public class DutyCarServiceImpl extends DutyCommonServiceImpl implements IDutyCa
dutyCarDto
.
setDutyArea
(
result
.
get
(
"name"
).
toString
());
}
Map
<
String
,
Object
>
map
=
Bean
.
BeantoMap
(
dutyCarDto
);
if
(!
instances
.
isEmpty
())
{
// 0.定位instanceId,准备进行更新操作
instanceId
=
instances
.
get
(
0
).
getInstanceId
();
// 已经有了走更新方法
//1.查询已有数据
List
<
DynamicFormInstance
>
hasInstances
=
dynamicFormInstanceService
.
list
(
new
LambdaQueryWrapper
<
DynamicFormInstance
>().
eq
(
DynamicFormInstance:
:
getInstanceId
,
instanceId
));
//2.list 转 map
Map
<
Object
,
DynamicFormInstance
>
instanceMap
=
Bean
.
listToMap
(
hasInstances
,
"fieldCode"
,
DynamicFormInstance
.
class
);
//3.查询列数据,已列为主
List
<
DynamicFormColumn
>
columns
=
dynamicFormColumnService
.
list
(
new
LambdaQueryWrapper
<
DynamicFormColumn
>().
eq
(
DynamicFormColumn:
:
getGroupCode
,
groupCode
));
//4.已列为主 填充动态表单数据
List
<
DynamicFormInstance
>
entrys
=
new
ArrayList
<>();
for
(
DynamicFormColumn
column
:
columns
)
{
DynamicFormInstance
formInstance
=
instanceMap
.
get
(
column
.
getFieldCode
());
if
(!
ObjectUtils
.
isEmpty
(
formInstance
))
{
//有的更新
formInstance
.
setFieldValue
(
map
.
get
(
column
.
getFieldCode
())
!=
null
?
map
.
get
(
column
.
getFieldCode
()).
toString
()
:
""
);
}
else
{
//没有的新增
formInstance
=
new
DynamicFormInstance
();
buildFormInstanceData
(
instanceId
,
map
,
column
,
formInstance
);
}
entrys
.
add
(
formInstance
);
}
if
(!
entrys
.
isEmpty
()){
dynamicFormInstanceService
.
saveOrUpdateBatch
(
entrys
);
}
}
else
{
instanceId
=
dynamicFormInstanceService
.
commonSave
(
groupCode
,
map
);
}
if
(
dutyCarDto
.
getDutyShift
()
!=
null
&&
dutyCarDto
.
getDutyShift
().
size
()
==
0
)
{
Calendar
startDate
=
Calendar
.
getInstance
();
startDate
.
setTime
(
DateUtils
.
longStr2Date
(
dutyCarDto
.
getStartTime
()));
int
dates
=
startDate
.
getActualMaximum
(
Calendar
.
DAY_OF_MONTH
);
startDate
.
set
(
Calendar
.
DAY_OF_MONTH
,
1
);
List
<
DutyPersonShift
>
dutyShift
=
new
ArrayList
<>(
dates
);
for
(
int
i
=
0
;
i
<
dates
;
i
++)
{
DutyPersonShift
temp
=
new
DutyPersonShift
();
temp
.
setAppKey
(
RequestContext
.
getAppKey
());
temp
.
setDutyDate
(
startDate
.
getTime
());
temp
.
setIsDelete
(
false
);
temp
.
setInstanceId
(
instanceId
);
dutyShift
.
add
(
temp
);
startDate
.
add
(
Calendar
.
DAY_OF_YEAR
,
1
);
}
dutyPersonShiftService
.
saveOrUpdateBatch
(
dutyShift
);
}
//2.保存值班信息
insertPersonShift
(
instanceId
,
dutyCarDto
);
// 修改操作动态表单的方法,修改人陈浩 -------------start 2021-09-28
Long
instanceId
=
excuteDynamicFormInstance
(
dutyCarDto
.
getUserId
(),
map
,
this
.
getGroupCode
());
saveDutyPersonShiftDetail
(
instanceId
,
dutyCarDto
.
getDutyShift
()
,
dutyCarDto
.
getStartTime
())
;
insertPersonShift
(
instanceId
,
dutyCarDto
.
getDutyShift
());
// 修改操作动态表单的方法,修改人陈浩 -------------end 2021-09-28
//3.返回保存后的数据
return
dutyCarDto
;
}
@Override
public
DutyCarDto
update
(
Long
instanceId
,
DutyCarDto
dutyCarDto
)
{
String
groupCode
=
this
.
getGroupCode
();
//1.查询已有数据
List
<
DynamicFormInstance
>
instances
=
dynamicFormInstanceService
.
list
(
new
LambdaQueryWrapper
<
DynamicFormInstance
>().
eq
(
DynamicFormInstance:
:
getInstanceId
,
instanceId
));
//2.list 转 map
Map
<
Object
,
DynamicFormInstance
>
instanceMap
=
Bean
.
listToMap
(
instances
,
"fieldCode"
,
DynamicFormInstance
.
class
);
//3.查询列数据,已列为主
List
<
DynamicFormColumn
>
columns
=
dynamicFormColumnService
.
list
(
new
LambdaQueryWrapper
<
DynamicFormColumn
>().
eq
(
DynamicFormColumn:
:
getGroupCode
,
groupCode
));
//页面数据转Map
Map
<
String
,
Object
>
map
=
Bean
.
BeantoMap
(
dutyCarDto
);
//4.已列为主 填充动态表单数据
List
<
DynamicFormInstance
>
entrys
=
new
ArrayList
<>();
updateFormValue
(
entrys
,
map
,
instanceId
,
columns
,
instanceMap
);
if
(!
entrys
.
isEmpty
())
{
dynamicFormInstanceService
.
saveOrUpdateBatch
(
entrys
);
}
//修改操作动态表单修改的逻辑方法,陈浩 start ----2021-09-28
updateDynamicFormInstance
(
this
.
getGroupCode
(),
instanceId
,
Bean
.
BeantoMap
(
dutyCarDto
));
//修改操作动态表单修改的逻辑方法,陈浩 end ----2021-09-28
//5.更新值班信息人日期数据
insertPersonShift
(
instanceId
,
dutyCarDto
);
insertPersonShift
(
instanceId
,
dutyCarDto
.
getDutyShift
()
);
return
dutyCarDto
;
}
private
void
insertPersonShift
(
Long
instanceId
,
DutyCarDto
dutyCarDto
)
{
Set
<
DutyPersonShift
>
personShiftList
=
dutyCarDto
.
getDutyShift
().
stream
().
map
(
dto
->
{
// BUG 2807 修改时发现BUG 车辆保存有问题 by kongfm 2021-09-14
// 根据instanceId 和 日期查找 如果有则更新
DutyPersonShift
dutyPersonShift
=
dutyPersonShiftService
.
getOne
(
new
LambdaQueryWrapper
<
DutyPersonShift
>().
eq
(
DutyPersonShift:
:
getInstanceId
,
instanceId
).
eq
(
DutyPersonShift:
:
getDutyDate
,
dto
.
getDutyDate
()));
if
(
dutyPersonShift
==
null
)
{
dutyPersonShift
=
new
DutyPersonShift
();
}
dto
.
setInstanceId
(
instanceId
);
Bean
.
copyExistPropertis
(
dto
,
dutyPersonShift
);
dutyPersonShift
.
setAppKey
(
RequestContext
.
getAppKey
());
return
dutyPersonShift
;
}).
collect
(
Collectors
.
toSet
());
if
(!
personShiftList
.
isEmpty
())
{
dutyPersonShiftService
.
saveOrUpdateBatch
(
personShiftList
);
}
}
private
void
buildFormInstanceData
(
Long
instanceId
,
Map
<
String
,
Object
>
map
,
DynamicFormColumn
column
,
DynamicFormInstance
formInstance
)
{
fillFormInstanceData
(
instanceId
,
map
,
column
,
formInstance
,
sequence
.
nextId
());
...
...
amos-boot-module/amos-boot-module-biz/amos-boot-module-common-biz/src/main/java/com/yeejoin/amos/boot/module/common/biz/service/impl/DutyCommonServiceImpl.java
View file @
0087739a
...
...
@@ -35,6 +35,7 @@ import com.baomidou.mybatisplus.core.toolkit.Sequence;
import
com.yeejoin.amos.boot.biz.common.entity.BaseEntity
;
import
com.yeejoin.amos.boot.biz.common.utils.DateUtils
;
import
com.yeejoin.amos.boot.module.common.api.dto.DutyCarDto
;
import
com.yeejoin.amos.boot.module.common.api.dto.DutyFireFightingDto
;
import
com.yeejoin.amos.boot.module.common.api.dto.DutyPersonDto
;
import
com.yeejoin.amos.boot.module.common.api.dto.DutyPersonShiftDto
;
import
com.yeejoin.amos.boot.module.common.api.dto.DutyShiftDto
;
...
...
@@ -294,8 +295,10 @@ public class DutyCommonServiceImpl implements IDutyCommonService {
String
fileName
;
if
(
"dutyCar"
.
equals
(
groupCode
))
{
list
=
jsonArray
.
toJavaList
(
DutyCarDto
.
class
);
}
else
{
}
else
if
(
"dutyPerson"
.
equals
(
groupCode
))
{
list
=
jsonArray
.
toJavaList
(
DutyPersonDto
.
class
);
}
else
if
(
"dutyFireFighting"
.
equals
(
groupCode
)){
list
=
jsonArray
.
toJavaList
(
DutyFireFightingDto
.
class
);
}
return
list
;
}
...
...
@@ -487,4 +490,105 @@ public class DutyCommonServiceImpl implements IDutyCommonService {
public
List
<
Long
>
getDutyShiftIdList
()
{
return
getOnDuty
(
new
DateTime
());
}
/***
* 将操作动态表单的方法单独提出来
* @author 陈浩
* @serialData 2021-09-28
* @param userId
* @param map
* @param groupCode
* @return
*/
public
Long
excuteDynamicFormInstance
(
String
userId
,
Map
<
String
,
Object
>
map
,
String
groupCode
)
{
List
<
DynamicFormInstance
>
instances
=
dynamicFormInstanceService
.
list
(
new
LambdaQueryWrapper
<
DynamicFormInstance
>().
eq
(
DynamicFormInstance:
:
getFieldCode
,
"userId"
)
.
eq
(
DynamicFormInstance:
:
getFieldValue
,
userId
)
.
eq
(
DynamicFormInstance:
:
getGroupCode
,
this
.
getGroupCode
()));
Long
instanceId
=
null
;
if
(!
instances
.
isEmpty
())
{
// 0.定位instanceId,准备进行更新操作
instanceId
=
instances
.
get
(
0
).
getInstanceId
();
// 已经有了走更新方法
//1.查询已有数据
List
<
DynamicFormInstance
>
hasInstances
=
dynamicFormInstanceService
.
list
(
new
LambdaQueryWrapper
<
DynamicFormInstance
>().
eq
(
DynamicFormInstance:
:
getInstanceId
,
instanceId
));
//2.list 转 map
Map
<
Object
,
DynamicFormInstance
>
instanceMap
=
Bean
.
listToMap
(
hasInstances
,
"fieldCode"
,
DynamicFormInstance
.
class
);
//3.查询列数据,已列为主
List
<
DynamicFormColumn
>
columns
=
dynamicFormColumnService
.
list
(
new
LambdaQueryWrapper
<
DynamicFormColumn
>().
eq
(
DynamicFormColumn:
:
getGroupCode
,
groupCode
));
//4.已列为主 填充动态表单数据
List
<
DynamicFormInstance
>
entrys
=
new
ArrayList
<>();
for
(
DynamicFormColumn
column
:
columns
)
{
DynamicFormInstance
formInstance
=
instanceMap
.
get
(
column
.
getFieldCode
());
if
(!
ObjectUtils
.
isEmpty
(
formInstance
))
{
//有的更新
formInstance
.
setFieldValue
(
map
.
get
(
column
.
getFieldCode
())
!=
null
?
map
.
get
(
column
.
getFieldCode
()).
toString
()
:
""
);
}
else
{
//没有的新增
formInstance
=
new
DynamicFormInstance
();
buildFormInstanceData
(
instanceId
,
map
,
column
,
formInstance
);
}
entrys
.
add
(
formInstance
);
}
if
(!
entrys
.
isEmpty
()){
dynamicFormInstanceService
.
saveOrUpdateBatch
(
entrys
);
}
}
else
{
instanceId
=
dynamicFormInstanceService
.
commonSave
(
groupCode
,
map
);
}
return
instanceId
;
}
public
void
updateDynamicFormInstance
(
String
groupCode
,
Long
instanceId
,
Map
<
String
,
Object
>
map
)
{
//1.查询已有数据
List
<
DynamicFormInstance
>
instances
=
dynamicFormInstanceService
.
list
(
new
LambdaQueryWrapper
<
DynamicFormInstance
>().
eq
(
DynamicFormInstance:
:
getInstanceId
,
instanceId
));
//2.list 转 map
Map
<
Object
,
DynamicFormInstance
>
instanceMap
=
Bean
.
listToMap
(
instances
,
"fieldCode"
,
DynamicFormInstance
.
class
);
//3.查询列数据,已列为主
List
<
DynamicFormColumn
>
columns
=
dynamicFormColumnService
.
list
(
new
LambdaQueryWrapper
<
DynamicFormColumn
>().
eq
(
DynamicFormColumn:
:
getGroupCode
,
groupCode
));
//页面数据转Map
//4.已列为主 填充动态表单数据
List
<
DynamicFormInstance
>
entrys
=
new
ArrayList
<>();
updateFormValue
(
entrys
,
map
,
instanceId
,
columns
,
instanceMap
);
if
(!
entrys
.
isEmpty
())
{
dynamicFormInstanceService
.
saveOrUpdateBatch
(
entrys
);
}
}
public
void
saveDutyPersonShiftDetail
(
Long
instanceId
,
List
<
DutyPersonShiftDto
>
dutyShift
,
String
startTime
)
{
if
(
dutyShift
!=
null
&&
dutyShift
.
size
()
==
0
)
{
Calendar
startDate
=
Calendar
.
getInstance
();
startDate
.
setTime
(
DateUtils
.
longStr2Date
(
startTime
));
int
dates
=
startDate
.
getActualMaximum
(
Calendar
.
DAY_OF_MONTH
);
startDate
.
set
(
Calendar
.
DAY_OF_MONTH
,
1
);
List
<
DutyPersonShift
>
dutyShiftList
=
new
ArrayList
<>(
dates
);
for
(
int
i
=
0
;
i
<
dates
;
i
++)
{
DutyPersonShift
temp
=
new
DutyPersonShift
();
temp
.
setAppKey
(
RequestContext
.
getAppKey
());
temp
.
setDutyDate
(
startDate
.
getTime
());
temp
.
setIsDelete
(
false
);
temp
.
setInstanceId
(
instanceId
);
dutyShiftList
.
add
(
temp
);
startDate
.
add
(
Calendar
.
DAY_OF_YEAR
,
1
);
}
dutyPersonShiftService
.
saveOrUpdateBatch
(
dutyShiftList
);
}
}
public
void
insertPersonShift
(
Long
instanceId
,
List
<
DutyPersonShiftDto
>
dutyShiftList
)
{
Set
<
DutyPersonShift
>
personShiftList
=
dutyShiftList
.
stream
().
map
(
dto
->
{
// BUG 2807 修改时发现BUG 车辆保存有问题 by kongfm 2021-09-14
// 根据instanceId 和 日期查找 如果有则更新
DutyPersonShift
dutyPersonShift
=
dutyPersonShiftService
.
getOne
(
new
LambdaQueryWrapper
<
DutyPersonShift
>().
eq
(
DutyPersonShift:
:
getInstanceId
,
instanceId
).
eq
(
DutyPersonShift:
:
getDutyDate
,
dto
.
getDutyDate
()));
if
(
dutyPersonShift
==
null
)
{
dutyPersonShift
=
new
DutyPersonShift
();
}
dto
.
setInstanceId
(
instanceId
);
Bean
.
copyExistPropertis
(
dto
,
dutyPersonShift
);
dutyPersonShift
.
setAppKey
(
RequestContext
.
getAppKey
());
return
dutyPersonShift
;
}).
collect
(
Collectors
.
toSet
());
if
(!
personShiftList
.
isEmpty
())
{
dutyPersonShiftService
.
saveOrUpdateBatch
(
personShiftList
);
}
}
}
amos-boot-module/amos-boot-module-biz/amos-boot-module-common-biz/src/main/java/com/yeejoin/amos/boot/module/common/biz/service/impl/DutyFireFightingServiceImpl.java
0 → 100644
View file @
0087739a
package
com
.
yeejoin
.
amos
.
boot
.
module
.
common
.
biz
.
service
.
impl
;
import
java.util.Map
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.typroject.tyboot.core.foundation.utils.Bean
;
import
com.yeejoin.amos.boot.module.common.api.dto.DutyFireFightingDto
;
import
com.yeejoin.amos.boot.module.common.api.dto.FireStationDto
;
import
com.yeejoin.amos.boot.module.common.api.service.IDutyFireFightingService
;
@Service
public
class
DutyFireFightingServiceImpl
extends
DutyCommonServiceImpl
implements
IDutyFireFightingService
{
@Autowired
FireStationServiceImpl
fireStationServiceImpl
;
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
DutyFireFightingDto
save
(
DutyFireFightingDto
dto
)
{
// 根据微型消防站ID,获取微型消防站名称
FireStationDto
fireStationDtoResult
=
fireStationServiceImpl
.
queryBySeq
(
Long
.
parseLong
(
dto
.
getFireFightingId
()));
dto
.
setFireFighting
(
fireStationDtoResult
.
getName
());
Map
<
String
,
Object
>
map
=
Bean
.
BeantoMap
(
dto
);
Long
instanceId
=
excuteDynamicFormInstance
(
dto
.
getUserId
(),
map
,
this
.
getGroupCode
());
saveDutyPersonShiftDetail
(
instanceId
,
dto
.
getDutyShift
(),
dto
.
getStartTime
());
insertPersonShift
(
instanceId
,
dto
.
getDutyShift
());
return
dto
;
}
@Override
public
DutyFireFightingDto
update
(
Long
instanceId
,
DutyFireFightingDto
dto
)
{
updateDynamicFormInstance
(
this
.
getGroupCode
(),
instanceId
,
Bean
.
BeantoMap
(
dto
));
insertPersonShift
(
instanceId
,
dto
.
getDutyShift
());
return
dto
;
}
public
String
getGroupCode
()
{
return
"dutyFireFighting"
;
}
}
amos-boot-module/amos-boot-module-biz/amos-boot-module-common-biz/src/main/java/com/yeejoin/amos/boot/module/common/biz/service/impl/FireStationServiceImpl.java
View file @
0087739a
package
com
.
yeejoin
.
amos
.
boot
.
module
.
common
.
biz
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yeejoin.amos.boot.module.common.api.dto.FireStationDto
;
...
...
@@ -116,4 +117,25 @@ public class FireStationServiceImpl extends BaseService<FireStationDto, FireStat
this
.
updateById
(
entity
);
return
Bean
.
toModel
(
entity
,
model
);
}
/**
* 列表查询 示例
*/
public
List
<
FireStation
>
queryForFireStationList
(
List
<
String
>
companyIdList
)
{
LambdaQueryWrapper
<
FireStation
>
wrapper
=
new
LambdaQueryWrapper
<
FireStation
>();
wrapper
.
eq
(
FireStation:
:
getIsDelete
,
false
);
wrapper
.
in
(
FireStation:
:
getBizCompanyId
,
companyIdList
);
return
this
.
baseMapper
.
selectList
(
wrapper
);
}
/**
* 查询当前公司下的所有微型消防站信息
* @param companyId
* @return
*/
public
List
<
Map
<
String
,
Object
>>
queryForFireStationListByCompanyId
(
Long
companyId
)
{
LambdaQueryWrapper
<
FireStation
>
wrapper
=
new
LambdaQueryWrapper
<
FireStation
>();
wrapper
.
eq
(
FireStation:
:
getIsDelete
,
false
);
wrapper
.
eq
(
FireStation:
:
getBizCompanyId
,
companyId
);
wrapper
.
select
(
FireStation:
:
getSequenceNbr
,
FireStation:
:
getName
);
return
this
.
baseMapper
.
selectMaps
(
wrapper
);
}
}
amos-boot-module/amos-boot-module-biz/amos-boot-module-common-biz/src/main/java/com/yeejoin/amos/boot/module/common/biz/service/impl/OrgUsrServiceImpl.java
View file @
0087739a
This source diff could not be displayed because it is too large. You can
view the blob
instead.
amos-boot-module/amos-boot-module-biz/amos-boot-module-jcs-biz/src/main/java/com/yeejoin/amos/boot/module/jcs/biz/service/impl/ExcelServiceImpl.java
View file @
0087739a
...
...
@@ -39,6 +39,7 @@ import com.yeejoin.amos.boot.biz.common.utils.DateUtils;
import
com.yeejoin.amos.boot.biz.common.utils.QRCodeUtil
;
import
com.yeejoin.amos.boot.module.common.api.dto.CompanyPerson
;
import
com.yeejoin.amos.boot.module.common.api.dto.DutyCarDto
;
import
com.yeejoin.amos.boot.module.common.api.dto.DutyFireFightingDto
;
import
com.yeejoin.amos.boot.module.common.api.dto.DutyPersonDto
;
import
com.yeejoin.amos.boot.module.common.api.dto.DutyPersonShiftDto
;
import
com.yeejoin.amos.boot.module.common.api.dto.DutyShiftDto
;
...
...
@@ -76,6 +77,7 @@ import com.yeejoin.amos.boot.module.common.api.entity.MaintenanceCompany;
import
com.yeejoin.amos.boot.module.common.api.entity.RescueEquipment
;
import
com.yeejoin.amos.boot.module.common.api.entity.SpecialPositionStaff
;
import
com.yeejoin.amos.boot.module.common.api.excel.ExcelUtil
;
import
com.yeejoin.amos.boot.module.common.api.service.IDutyFireFightingService
;
import
com.yeejoin.amos.boot.module.common.api.service.IDutyPersonService
;
import
com.yeejoin.amos.boot.module.common.api.service.IKeySiteService
;
import
com.yeejoin.amos.boot.module.common.api.service.IMaintenanceCompanyService
;
...
...
@@ -304,6 +306,9 @@ public class ExcelServiceImpl {
case
"JYZB"
:
excelImportLinkageUnitJYZBDto
(
multipartFile
);
break
;
case
"WXXFZB"
:
excelImportDutyPerson
(
multipartFile
,
"WXXFZB"
);
break
;
}
return
;
}
...
...
@@ -904,6 +909,9 @@ if (excelDtoList != null && excelDtoList.size() > 0) {
}
else
if
(
ExcelEnums
.
RYZB
.
getType
().
equals
(
dutyType
))
{
initDutyPersonData
(
sheet
,
dataList
,
dayByMonth
);
dutyPersonService
.
saveImportData
(
dataList
);
}
else
if
(
ExcelEnums
.
WXXFZB
.
getType
().
equals
(
dutyType
))
{
initDutyFireFightingData
(
sheet
,
dataList
,
dayByMonth
);
dutyPersonService
.
saveImportData
(
dataList
);
}
}
}
...
...
@@ -1016,7 +1024,56 @@ if (excelDtoList != null && excelDtoList.size() > 0) {
}
}
}
private
void
initDutyFireFightingData
(
XSSFSheet
sheet
,
List
<
Map
<
String
,
Object
>>
dataList
,
List
<
Date
>
dayByMonth
)
{
// 遍历行,i = 1,从第二行开始,第一行是表头跳过。
for
(
int
i
=
1
;
i
<
sheet
.
getPhysicalNumberOfRows
();
i
++)
{
DutyFireFightingDto
dutyFireFightingDto
=
new
DutyFireFightingDto
();
// row是一行数据,row.getCell(i),代表拿到这一行,第i列数据
Row
row
=
sheet
.
getRow
(
i
);
if
(
row
==
null
)
{
continue
;
}
Cell
cell
=
row
.
getCell
(
1
);
if
(
cell
==
null
){
continue
;
}
String
[]
split
=
cell
.
toString
().
split
(
"@"
);
dutyFireFightingDto
.
setTeamId
(
split
[
1
]);
dutyFireFightingDto
.
setTeamName
(
split
[
0
]);
cell
=
row
.
getCell
(
2
);
if
(
cell
!=
null
)
{
String
[]
splitStr
=
cell
.
toString
().
split
(
"@"
);
dutyFireFightingDto
.
setUserName
(
MAINTENANCE_PERSON
);
dutyFireFightingDto
.
setUserId
(
MAINTENANCE_PERSON
);
}
cell
=
row
.
getCell
(
3
);
if
(
cell
!=
null
)
{
String
[]
splitStr
=
cell
.
toString
().
split
(
"@"
);
dutyFireFightingDto
.
setPostTypeName
(
splitStr
[
0
]);
dutyFireFightingDto
.
setPostType
(
splitStr
[
1
]);
}
cell
=
row
.
getCell
(
4
);
if
(
cell
!=
null
)
{
String
[]
splitStr
=
cell
.
toString
().
split
(
"@"
);
dutyFireFightingDto
.
setFireFighting
(
splitStr
[
0
]);
dutyFireFightingDto
.
setFireFightingId
(
splitStr
[
1
]);
}
List
<
DutyPersonShiftDto
>
dutyShift
=
new
ArrayList
<>();
for
(
int
j
=
0
;
j
<
dayByMonth
.
size
();
j
++)
{
cell
=
row
.
getCell
(
5
+
j
);
String
dutyType
=
cell
==
null
?
""
:
cell
.
toString
();
if
(!
StringUtils
.
isEmpty
(
dutyType
))
{
DutyPersonShiftDto
dutyPersonShiftDto
=
new
DutyPersonShiftDto
();
dutyPersonShiftDto
.
setDutyDate
(
dayByMonth
.
get
(
j
));
dutyPersonShiftDto
.
setShiftId
(
Long
.
valueOf
(
dutyType
.
split
(
"@"
)[
1
]));
dutyShift
.
add
(
dutyPersonShiftDto
);
}
}
dutyFireFightingDto
.
setDutyShift
(
dutyShift
);
Map
<
String
,
Object
>
dutyPersonDtoMap
=
Bean
.
BeantoMap
(
dutyFireFightingDto
);
dataList
.
add
(
dutyPersonDtoMap
);
}
}
private
void
excelImportMaintenancePerson
(
MultipartFile
multipartFile
)
throws
Exception
{
List
<
MaintenancePersonExcleDto
>
excelDtoList
=
ExcelUtil
.
readFirstSheetExcel
(
multipartFile
,
MaintenancePersonExcleDto
.
class
,
1
);
...
...
@@ -1062,18 +1119,22 @@ if (excelDtoList != null && excelDtoList.size() > 0) {
data
=
initDutyCarTemplate
(
ids
);
}
else
if
(
ExcelEnums
.
RYZB
.
getType
().
equals
(
excelDto
.
getType
()))
{
data
=
initDutyPersonTemplate
(
ids
);
}
else
if
(
ExcelEnums
.
WXXFZB
.
getType
().
equals
(
excelDto
.
getType
())){
data
=
initDutyDutyFireFightingTemplate
(
ids
);
}
//代码报错暂时注释掉
// else if(ExcelEnums.WXXFZB.getType().equals(excelDto.getType())){
// data = initDutyDutyFireFightingTemplate(ids);
// }
// 获取日期
List
<
Map
<
String
,
Object
>>
rangeDate
=
dutyPersonShiftService
.
getBaseMapper
().
genRangeDate
(
beginDate
,
endDate
);
List
<
String
>
dayByMonth
=
new
ArrayList
<>();
rangeDate
.
forEach
(
item
->
dayByMonth
.
add
((
String
)
item
.
get
(
"date"
)));
exportDutyTemplate
(
response
,
excelDto
.
getClassUrl
(),
dayByMonth
,
excelDto
,
data
,
true
);
if
(
ExcelEnums
.
WXXFZB
.
getType
().
equals
(
excelDto
.
getType
()))
{
exportDutyTemplate
(
response
,
excelDto
.
getClassUrl
(),
dayByMonth
,
excelDto
,
data
,
true
,
true
);
}
else
{
exportDutyTemplate
(
response
,
excelDto
.
getClassUrl
(),
dayByMonth
,
excelDto
,
data
,
true
,
false
);
}
}
private
List
<
List
<
Object
>>
initDutyDutyFireFightingTemplate
(
String
ids
)
{
List
<
List
<
Object
>>
data
=
new
ArrayList
<>();
// 根据id列表获取单位下的微型消防站集合
...
...
@@ -1081,16 +1142,18 @@ if (excelDtoList != null && excelDtoList.size() > 0) {
if
(!
ValidationUtil
.
isEmpty
(
ids
))
{
companyIdList
=
Lists
.
newArrayList
(
ids
.
split
(
","
));
}
List
<
FirefightersDto
>
firefightersDtoList
=
fireTeamService
.
getFighterByTeamId
(
companyIdList
);
List
<
Map
<
String
,
Object
>>
personDetailList
=
orgUsrServer
.
getPersonDetailByCompanyIds
(
companyIdList
);
if
(!
firefightersDto
List
.
isEmpty
())
{
if
(!
personDetail
List
.
isEmpty
())
{
AtomicInteger
row
=
new
AtomicInteger
(
1
);
firefightersDtoList
.
forEach
(
o
->
{
personDetailList
.
forEach
(
o
->
{
DutyFireFightingDto
dto
=
(
DutyFireFightingDto
)
Bean
.
mapToBean
(
o
,
DutyFireFightingDto
.
class
);
ArrayList
<
Object
>
list
=
new
ArrayList
<>();
list
.
add
(
row
.
getAndIncrement
());
list
.
add
(
o
.
getFireTeamName
()
+
"@"
+
o
.
getFireTeamId
());
list
.
add
(
o
.
getName
()
+
"@"
+
o
.
getSequenceNbr
());
list
.
add
(
o
.
getJobTitle
()
+
"@"
+
o
.
getJobTitleCode
());
list
.
add
(
dto
.
getTeamName
()
+
"@"
+
dto
.
getTeamId
());
list
.
add
(
dto
.
getUserName
()+
"@"
+
dto
.
getUserId
());
list
.
add
(
dto
.
getPostTypeName
()+
"@"
+
dto
.
getPostType
());
list
.
add
(
o
.
get
(
"fireStation"
));
data
.
add
(
list
);
});
}
...
...
@@ -1108,9 +1171,35 @@ if (excelDtoList != null && excelDtoList.size() > 0) {
data
=
initDutyCarInfo
(
beginDate
,
endDate
,
dayByMonth
);
}
else
if
(
ExcelEnums
.
RYZB
.
getType
().
equals
(
excelDto
.
getType
()))
{
data
=
initDutyPersonInfo
(
beginDate
,
endDate
,
dayByMonth
);
}
else
if
(
ExcelEnums
.
WXXFZB
.
getType
().
equals
(
excelDto
.
getType
())){
data
=
initDutyDutyFireFightingTemplate
(
beginDate
,
endDate
,
dayByMonth
);
}
exportDutyTemplate
(
response
,
excelDto
.
getClassUrl
(),
dayByMonth
,
excelDto
,
data
,
false
);
exportDutyTemplate
(
response
,
excelDto
.
getClassUrl
(),
dayByMonth
,
excelDto
,
data
,
false
,
false
);
}
@Autowired
IDutyFireFightingService
dutyFireFightingService
;
private
List
<
List
<
Object
>>
initDutyDutyFireFightingTemplate
(
String
beginDate
,
String
endDate
,
List
<
String
>
dayByMonth
)
throws
ParseException
{
List
<
DutyFireFightingDto
>
list
=
dutyFireFightingService
.
downloadList
(
beginDate
,
endDate
);
List
<
List
<
Object
>>
data
=
new
ArrayList
<>();
// 组装导出数据
if
(!
list
.
isEmpty
())
{
AtomicInteger
row
=
new
AtomicInteger
(
1
);
list
.
forEach
(
o
->
{
ArrayList
<
Object
>
detailList
=
new
ArrayList
<>();
detailList
.
add
(
row
.
getAndIncrement
());
detailList
.
add
(
o
.
getTeamName
());
detailList
.
add
(
o
.
getUserName
());
detailList
.
add
(
o
.
getPostTypeName
());
detailList
.
add
(
o
.
getFireFighting
());
List
<
DutyPersonShiftDto
>
dutyShift
=
o
.
getDutyShift
();
initDutyShift
(
dayByMonth
,
dutyShift
,
detailList
);
data
.
add
(
detailList
);
});
}
return
data
;
}
private
List
<
List
<
Object
>>
initDutyCarTemplate
(
String
teamIds
)
{
...
...
@@ -1173,13 +1262,14 @@ if (excelDtoList != null && excelDtoList.size() > 0) {
private
void
exportDutyTemplate
(
HttpServletResponse
response
,
String
classUrl
,
List
<
String
>
dayByMonth
,
ExcelDto
excelDto
,
List
<?
extends
Object
>
data
,
Boolean
flag
)
{
ExcelDto
excelDto
,
List
<?
extends
Object
>
data
,
Boolean
flag
,
Boolean
typeFlag
)
{
try
{
// 获取排班类型
String
[]
dutyNameList
=
getDutyNameList
();
Class
<?>
clz
=
Class
.
forName
(
classUrl
);
ExcelUtil
.
createDutyTemplate
(
response
,
excelDto
.
getFileName
(),
excelDto
.
getSheetName
(),
data
,
clz
,
dayByMonth
,
dutyNameList
,
dataSourcesImpl
,
flag
);
ExcelUtil
.
createDutyTemplate
(
response
,
excelDto
.
getFileName
(),
excelDto
.
getSheetName
(),
data
,
clz
,
dayByMonth
,
dutyNameList
,
dataSourcesImpl
,
flag
,
typeFlag
);
}
catch
(
ClassNotFoundException
e
)
{
e
.
printStackTrace
();
}
...
...
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