Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
amos-boot-zx-biz
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
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
Jobs
Commits
Open sidebar
项目统一框架
一体化_户用光伏项目代码
amos-boot-zx-biz
Commits
1d0c99c3
Commit
1d0c99c3
authored
Sep 30, 2024
by
hezhuozhi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
提交还款管理
parent
be95fc97
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
762 additions
and
0 deletions
+762
-0
BusinessTypeEnum.java
...join/amos/boot/module/hygf/api/Enum/BusinessTypeEnum.java
+1
-0
RepaymentCronSendStateEnum.java
...boot/module/hygf/api/Enum/RepaymentCronSendStateEnum.java
+25
-0
RepaymentMessageStateEnum.java
.../boot/module/hygf/api/Enum/RepaymentMessageStateEnum.java
+35
-0
RepaymentRepayStateEnum.java
...os/boot/module/hygf/api/Enum/RepaymentRepayStateEnum.java
+35
-0
RepaymentDto.java
...m/yeejoin/amos/boot/module/hygf/api/dto/RepaymentDto.java
+67
-0
RepaymentExcelDto.java
...join/amos/boot/module/hygf/api/dto/RepaymentExcelDto.java
+43
-0
Repayment.java
...m/yeejoin/amos/boot/module/hygf/api/entity/Repayment.java
+89
-0
RepaymentMapper.java
...oin/amos/boot/module/hygf/api/mapper/RepaymentMapper.java
+19
-0
IRepaymentService.java
.../amos/boot/module/hygf/api/service/IRepaymentService.java
+10
-0
RepaymentMapper.xml
...f-api/src/main/resources/mapper/mysql/RepaymentMapper.xml
+9
-0
RepaymentController.java
.../boot/module/hygf/biz/controller/RepaymentController.java
+201
-0
RepaymentServiceImpl.java
...ot/module/hygf/biz/service/impl/RepaymentServiceImpl.java
+228
-0
No files found.
amos-boot-system-jxiop/amos-boot-module-hygf-api/src/main/java/com/yeejoin/amos/boot/module/hygf/api/Enum/BusinessTypeEnum.java
View file @
1d0c99c3
...
@@ -19,6 +19,7 @@ public enum BusinessTypeEnum {
...
@@ -19,6 +19,7 @@ public enum BusinessTypeEnum {
HYGF_YSLC
(
"AcceptanceCheck"
,
"验收流程"
),
HYGF_YSLC
(
"AcceptanceCheck"
,
"验收流程"
),
HYGF_BWLC
(
"GridConnected"
,
"并网流程"
),
HYGF_BWLC
(
"GridConnected"
,
"并网流程"
),
HYGF_SGLCSH
(
"ProcessEngineering"
,
"施工流程审核"
),
HYGF_SGLCSH
(
"ProcessEngineering"
,
"施工流程审核"
),
HYGF_REPAY
(
"Repatment"
,
"还款"
),
;
;
private
final
String
code
;
private
final
String
code
;
...
...
amos-boot-system-jxiop/amos-boot-module-hygf-api/src/main/java/com/yeejoin/amos/boot/module/hygf/api/Enum/RepaymentCronSendStateEnum.java
0 → 100644
View file @
1d0c99c3
package
com
.
yeejoin
.
amos
.
boot
.
module
.
hygf
.
api
.
Enum
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
/**
* @description:还款消息状态枚举
* @author: hzz
* @createDate: 2023/12/13
*/
@Getter
@AllArgsConstructor
public
enum
RepaymentCronSendStateEnum
{
UN_SEND
(
0
,
"不执行定时任务"
),
SEND
(
1
,
"执行定时任务"
);
/**
* 编码
*/
private
Integer
code
;
/**
* 名称,描述
*/
private
String
remark
;
}
amos-boot-system-jxiop/amos-boot-module-hygf-api/src/main/java/com/yeejoin/amos/boot/module/hygf/api/Enum/RepaymentMessageStateEnum.java
0 → 100644
View file @
1d0c99c3
package
com
.
yeejoin
.
amos
.
boot
.
module
.
hygf
.
api
.
Enum
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
/**
* @description:还款消息状态枚举
* @author: hzz
* @createDate: 2023/12/13
*/
@Getter
@AllArgsConstructor
public
enum
RepaymentMessageStateEnum
{
UN_CONFIRM
(
0
,
"待确认"
),
CONFIRM
(
1
,
"确认"
);
/**
* 编码
*/
private
Integer
code
;
/**
* 名称,描述
*/
private
String
remark
;
public
static
RepaymentMessageStateEnum
getByCode
(
Integer
code
)
{
RepaymentMessageStateEnum
anEnum
=
null
;
for
(
RepaymentMessageStateEnum
type
:
RepaymentMessageStateEnum
.
values
())
{
if
(
type
.
getCode
()
==
code
)
{
anEnum
=
type
;
break
;
}
}
return
anEnum
;
}
}
amos-boot-system-jxiop/amos-boot-module-hygf-api/src/main/java/com/yeejoin/amos/boot/module/hygf/api/Enum/RepaymentRepayStateEnum.java
0 → 100644
View file @
1d0c99c3
package
com
.
yeejoin
.
amos
.
boot
.
module
.
hygf
.
api
.
Enum
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
/**
* @description:还款消息状态枚举
* @author: hzz
* @createDate: 2023/12/13
*/
@Getter
@AllArgsConstructor
public
enum
RepaymentRepayStateEnum
{
UN_REPAY
(
0
,
"待还款"
),
REPAY
(
1
,
"已还款"
);
/**
* 编码
*/
private
Integer
code
;
/**
* 名称,描述
*/
private
String
remark
;
public
static
RepaymentRepayStateEnum
getByCode
(
Integer
code
)
{
RepaymentRepayStateEnum
anEnum
=
null
;
for
(
RepaymentRepayStateEnum
type
:
RepaymentRepayStateEnum
.
values
())
{
if
(
type
.
getCode
()
==
code
)
{
anEnum
=
type
;
break
;
}
}
return
anEnum
;
}
}
amos-boot-system-jxiop/amos-boot-module-hygf-api/src/main/java/com/yeejoin/amos/boot/module/hygf/api/dto/RepaymentDto.java
0 → 100644
View file @
1d0c99c3
package
com
.
yeejoin
.
amos
.
boot
.
module
.
hygf
.
api
.
dto
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.yeejoin.amos.boot.biz.common.dto.BaseDto
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
java.time.LocalDate
;
import
java.util.Date
;
/**
*
*
* @author hzz
* @date 2024-09-26
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@ApiModel
(
value
=
"RepaymentDto"
,
description
=
"还款Dto实体类"
)
public
class
RepaymentDto
extends
BaseDto
{
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
value
=
"公司名称"
)
private
String
companyName
;
@ApiModelProperty
(
value
=
"公司CODE"
)
private
String
regionalCompaniesCode
;
@ApiModelProperty
(
value
=
"公司ID"
)
private
Long
companyId
;
@ApiModelProperty
(
value
=
"期次"
)
private
String
period
;
@ApiModelProperty
(
value
=
"还款时间"
)
private
LocalDate
repayDate
;
@ApiModelProperty
(
value
=
"租金"
)
private
Double
rent
;
@ApiModelProperty
(
value
=
"利息"
)
private
Double
interest
;
@ApiModelProperty
(
value
=
"本金"
)
private
Double
principal
;
@ApiModelProperty
(
value
=
"放款批次"
)
private
String
loanPeriod
;
@ApiModelProperty
(
value
=
"消息状态0未确认1已确认"
)
private
Integer
messageState
;
@ApiModelProperty
(
value
=
"消息状态"
)
private
String
messageStateStr
;
@ApiModelProperty
(
value
=
"还款状态0未还款1已还款"
)
private
Integer
repayState
;
@ApiModelProperty
(
value
=
"还款状态"
)
private
String
repayStateStr
;
@ApiModelProperty
(
value
=
"定时发送状态"
)
private
Integer
cronSendState
;
}
amos-boot-system-jxiop/amos-boot-module-hygf-api/src/main/java/com/yeejoin/amos/boot/module/hygf/api/dto/RepaymentExcelDto.java
0 → 100644
View file @
1d0c99c3
package
com
.
yeejoin
.
amos
.
boot
.
module
.
hygf
.
api
.
dto
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.time.LocalDate
;
import
java.util.Date
;
/**
*
*
* @author hzz
* @date 2024-09-29
*/
@Data
@ApiModel
(
value
=
"RepaymentExcelDto"
,
description
=
"还款excel实体类"
)
public
class
RepaymentExcelDto
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
value
=
"公司名称"
)
private
String
companyName
;
@ApiModelProperty
(
value
=
"期次"
)
private
String
period
;
@ApiModelProperty
(
value
=
"还款时间"
)
private
LocalDate
repayDate
;
@ApiModelProperty
(
value
=
"租金"
)
private
Double
rent
;
@ApiModelProperty
(
value
=
"利息"
)
private
Double
interest
;
@ApiModelProperty
(
value
=
"本金"
)
private
Double
principal
;
@ApiModelProperty
(
value
=
"放款批次"
)
private
String
loanPeriod
;
}
amos-boot-system-jxiop/amos-boot-module-hygf-api/src/main/java/com/yeejoin/amos/boot/module/hygf/api/entity/Repayment.java
0 → 100644
View file @
1d0c99c3
package
com
.
yeejoin
.
amos
.
boot
.
module
.
hygf
.
api
.
entity
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.yeejoin.amos.boot.biz.common.entity.BaseEntity
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
import
java.time.LocalDate
;
import
java.util.Date
;
/**
*
*
* @author hzz
* @date 2024-09-26
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@Accessors
(
chain
=
true
)
@TableName
(
value
=
"hygf_repayment"
,
autoResultMap
=
true
)
public
class
Repayment
extends
BaseEntity
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 公司名称
*/
@TableField
(
"company_name"
)
private
String
companyName
;
/**
* 公司CODE
*/
@TableField
(
"regional_companies_code"
)
private
String
regionalCompaniesCode
;
/**
* 公司ID
*/
@TableField
(
"company_id"
)
private
Long
companyId
;
/**
* 期次
*/
@TableField
(
"period"
)
private
String
period
;
/**
* 还款时间
*/
@TableField
(
"repayDate"
)
private
LocalDate
repayDate
;
/**
* 租金
*/
@TableField
(
"rent"
)
private
Double
rent
;
/**
* 利息
*/
@TableField
(
"interest"
)
private
Double
interest
;
/**
* 本金
*/
@TableField
(
"principal"
)
private
Double
principal
;
/**
* 放款批次
*/
@TableField
(
"loan_period"
)
private
String
loanPeriod
;
/**
* 消息状态0未确认1已确认
*/
@TableField
(
"message_state"
)
private
Integer
messageState
;
/**
* 还款状态0未还款1已还款
*/
@TableField
(
"repay_state"
)
private
Integer
repayState
;
/**
* 定时发送状态
*/
@TableField
(
"cron_send_state"
)
private
Integer
cronSendState
;
}
amos-boot-system-jxiop/amos-boot-module-hygf-api/src/main/java/com/yeejoin/amos/boot/module/hygf/api/mapper/RepaymentMapper.java
0 → 100644
View file @
1d0c99c3
package
com
.
yeejoin
.
amos
.
boot
.
module
.
hygf
.
api
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.yeejoin.amos.boot.module.hygf.api.config.UserEmpower
;
import
com.yeejoin.amos.boot.module.hygf.api.dto.RepaymentDto
;
import
com.yeejoin.amos.boot.module.hygf.api.entity.Repayment
;
import
java.util.List
;
/**
* Mapper 接口
*
* @author hzz
* @date 2024-09-26
*/
public
interface
RepaymentMapper
extends
BaseMapper
<
Repayment
>
{
@UserEmpower
(
field
=
{
"regional_companies_code"
},
dealerField
=
{
"regional_companies_code"
},
fieldConditions
=
{
"in"
},
relationship
=
"and"
)
List
<
RepaymentDto
>
queryPage
();
}
amos-boot-system-jxiop/amos-boot-module-hygf-api/src/main/java/com/yeejoin/amos/boot/module/hygf/api/service/IRepaymentService.java
0 → 100644
View file @
1d0c99c3
package
com
.
yeejoin
.
amos
.
boot
.
module
.
hygf
.
api
.
service
;
/**
* 接口类
*
* @author hzz
* @date 2024-09-26
*/
public
interface
IRepaymentService
{
}
amos-boot-system-jxiop/amos-boot-module-hygf-api/src/main/resources/mapper/mysql/RepaymentMapper.xml
0 → 100644
View file @
1d0c99c3
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.yeejoin.amos.boot.module.hygf.api.mapper.RepaymentMapper"
>
<select
id=
"queryPage"
resultType=
"com.yeejoin.amos.boot.module.hygf.api.dto.RepaymentDto"
>
select * from hygf_repayment
order by rec_date DESC
</select>
</mapper>
amos-boot-system-jxiop/amos-boot-module-hygf-biz/src/main/java/com/yeejoin/amos/boot/module/hygf/biz/controller/RepaymentController.java
0 → 100644
View file @
1d0c99c3
package
com
.
yeejoin
.
amos
.
boot
.
module
.
hygf
.
biz
.
controller
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yeejoin.amos.boot.biz.common.controller.BaseController
;
import
com.yeejoin.amos.boot.module.hygf.api.dto.RepaymentDto
;
import
com.yeejoin.amos.boot.module.hygf.api.entity.Repayment
;
import
com.yeejoin.amos.boot.module.hygf.api.util.FileUtil
;
import
com.yeejoin.amos.boot.module.hygf.biz.service.impl.RepaymentServiceImpl
;
import
com.yeejoin.amos.feign.privilege.model.AgencyUserModel
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.multipart.MultipartFile
;
import
org.typroject.tyboot.core.foundation.enumeration.UserType
;
import
org.typroject.tyboot.core.restful.doc.TycloudOperation
;
import
org.typroject.tyboot.core.restful.utils.ResponseHelper
;
import
org.typroject.tyboot.core.restful.utils.ResponseModel
;
import
javax.servlet.http.HttpServletResponse
;
import
java.util.List
;
/**
*
*
* @author 还款管理
* @date 2024-09-26
*/
@RestController
@Api
(
tags
=
"还款管理Api"
)
@RequestMapping
(
value
=
"/repayment"
)
public
class
RepaymentController
extends
BaseController
{
@Autowired
RepaymentServiceImpl
repaymentService
;
/**
* 新增
*
* @return
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@PostMapping
(
value
=
"/save"
)
@ApiOperation
(
httpMethod
=
"POST"
,
value
=
"新增"
,
notes
=
"新增"
)
public
ResponseModel
<
RepaymentDto
>
save
(
@RequestBody
RepaymentDto
model
)
{
model
=
repaymentService
.
createWithModel
(
model
);
return
ResponseHelper
.
buildResponse
(
model
);
}
/**
* 根据sequenceNbr更新
*
* @return
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@PutMapping
(
value
=
"/updateBySequenceNbr"
)
@ApiOperation
(
httpMethod
=
"PUT"
,
value
=
"根据sequenceNbr更新"
,
notes
=
"根据sequenceNbr更新"
)
public
ResponseModel
<?>
updateBySequenceNbr
(
@RequestBody
Repayment
model
)
{
repaymentService
.
updateById
(
model
);
return
ResponseHelper
.
buildResponse
(
null
);
}
/**
* 根据sequenceNbr确认消息
*
* @return
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@PutMapping
(
value
=
"/messageBySequenceNbr"
)
@ApiOperation
(
httpMethod
=
"PUT"
,
value
=
"根据sequenceNbr确认消息"
,
notes
=
"根据sequenceNbr确认消息"
)
public
ResponseModel
<?>
confirmMessageState
(
@RequestParam
(
value
=
"sequenceNbr"
)
Long
sequenceNbr
)
{
repaymentService
.
confirmMessageState
(
sequenceNbr
);
return
ResponseHelper
.
buildResponse
(
null
);
}
/**
* 根据sequenceNbr还款
*
* @return
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@PutMapping
(
value
=
"/repayBySequenceNbr"
)
@ApiOperation
(
httpMethod
=
"PUT"
,
value
=
"根据sequenceNbr还款"
,
notes
=
"根据sequenceNbr还款"
)
public
ResponseModel
<?>
batchRepay
(
@RequestParam
(
value
=
"sequenceNbr"
)
Long
sequenceNbr
)
{
repaymentService
.
repay
(
sequenceNbr
);
return
ResponseHelper
.
buildResponse
(
null
);
}
/**
* 根据sequenceNbr批量确认消息
*
* @return
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@PostMapping
(
value
=
"/batchConfirmMessageState"
)
@ApiOperation
(
httpMethod
=
"POST"
,
value
=
"根据sequenceNbr批量确认消息"
,
notes
=
"根据sequenceNbr批量确认消息"
)
public
ResponseModel
<?>
batchConfirmMessageState
(
@RequestBody
List
<
Long
>
sequenceNbrList
)
{
repaymentService
.
batchConfirmMessageState
(
sequenceNbrList
);
return
ResponseHelper
.
buildResponse
(
null
);
}
/**
* 根据sequenceNbr批量还款
*
* @return
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@PostMapping
(
value
=
"/batchRepay"
)
@ApiOperation
(
httpMethod
=
"POST"
,
value
=
"根据sequenceNbr批量还款"
,
notes
=
"根据sequenceNbr批量还款"
)
public
ResponseModel
<?>
batchRepay
(
@RequestBody
List
<
Long
>
sequenceNbrList
)
{
repaymentService
.
batchRepay
(
sequenceNbrList
);
return
ResponseHelper
.
buildResponse
(
null
);
}
/**
* 根据sequenceNbr批量删除
*
* @return
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@PostMapping
(
value
=
"batchDelete"
)
@ApiOperation
(
httpMethod
=
"POST"
,
value
=
"根据sequenceNbr批量删除"
,
notes
=
"根据sequenceNbr批量删除"
)
public
ResponseModel
<
Boolean
>
deleteBySequenceNbr
(
@RequestBody
List
<
Long
>
sequenceNbrList
)
{
return
ResponseHelper
.
buildResponse
(
repaymentService
.
deleteBatchSeq
(
sequenceNbrList
));
}
/**
* 导入还款模板Excel
*
* @return
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@PostMapping
(
value
=
"importRepaymentExcel"
)
@ApiOperation
(
httpMethod
=
"POST"
,
value
=
"导入还款模板Excel"
,
notes
=
"导入还款模板Excel"
)
public
ResponseModel
<?>
importRepaymentExcel
(
@RequestPart
(
"file"
)
MultipartFile
file
)
{
AgencyUserModel
userInfo
=
getUserInfo
();
repaymentService
.
importRepaymentExcel
(
file
,
userInfo
);
return
ResponseHelper
.
buildResponse
(
null
);
}
/**
* 导入还款模板Excel
*
* @return
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@PostMapping
(
value
=
"exportRepaymentExcel"
)
@ApiOperation
(
httpMethod
=
"POST"
,
value
=
"导出还款模板Excel"
,
notes
=
"导出还款模板Excel"
)
public
ResponseModel
<?>
exportRepaymentExcel
(
@RequestBody
List
<
Long
>
sequenceNbrList
,
HttpServletResponse
response
)
{
repaymentService
.
exportRepaymentExcel
(
sequenceNbrList
,
response
);
return
ResponseHelper
.
buildResponse
(
null
);
}
@GetMapping
(
value
=
"/exportTemplates"
)
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"模板下载"
,
notes
=
"模板下载"
)
public
void
exportTemplates
(
HttpServletResponse
response
)
{
FileUtil
.
downloadResource
(
"还款管理导入模板.xlsx"
,
"templates/repaymentTemplates.xlsx"
,
response
);
}
/**
* 根据sequenceNbr删除
*
* @param sequenceNbr 主键
* @return
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@DeleteMapping
(
value
=
"/delete"
)
@ApiOperation
(
httpMethod
=
"DELETE"
,
value
=
"根据sequenceNbr删除"
,
notes
=
"根据sequenceNbr删除"
)
public
ResponseModel
<
Boolean
>
deleteBySequenceNbr
(
@RequestParam
(
value
=
"sequenceNbr"
)
Long
sequenceNbr
)
{
return
ResponseHelper
.
buildResponse
(
repaymentService
.
removeById
(
sequenceNbr
));
}
/**
* 根据sequenceNbr查询
*
* @param sequenceNbr 主键
* @return
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@GetMapping
(
value
=
"/selectDetail"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"根据sequenceNbr查询单个"
,
notes
=
"根据sequenceNbr查询单个"
)
public
ResponseModel
<
RepaymentDto
>
selectOne
(
@RequestParam
(
value
=
"sequenceNbr"
)
Long
sequenceNbr
)
{
RepaymentDto
repaymentDto
=
repaymentService
.
queryBySeq
(
sequenceNbr
);
return
ResponseHelper
.
buildResponse
(
repaymentDto
);
}
/**
* 列表分页查询
*
* @param current 当前页
* @param current 每页大小
* @return
*/
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@GetMapping
(
value
=
"/page"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"分页查询"
,
notes
=
"分页查询"
)
public
ResponseModel
<
Page
<
RepaymentDto
>>
queryForPage
(
@RequestParam
(
value
=
"current"
)
int
current
,
@RequestParam
(
value
=
"size"
)
int
size
)
{
return
ResponseHelper
.
buildResponse
(
repaymentService
.
queryForRepaymentPage
(
current
,
size
));
}
}
amos-boot-system-jxiop/amos-boot-module-hygf-biz/src/main/java/com/yeejoin/amos/boot/module/hygf/biz/service/impl/RepaymentServiceImpl.java
0 → 100644
View file @
1d0c99c3
package
com
.
yeejoin
.
amos
.
boot
.
module
.
hygf
.
biz
.
service
.
impl
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.poi.excel.ExcelReader
;
import
cn.hutool.poi.excel.ExcelUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.github.pagehelper.PageHelper
;
import
com.github.pagehelper.PageInfo
;
import
com.yeejoin.amos.boot.biz.common.utils.ExcelUtils
;
import
com.yeejoin.amos.boot.module.hygf.api.Enum.*
;
import
com.yeejoin.amos.boot.module.hygf.api.dto.RepaymentDto
;
import
com.yeejoin.amos.boot.module.hygf.api.dto.WorkflowResultDto
;
import
com.yeejoin.amos.boot.module.hygf.api.entity.Repayment
;
import
com.yeejoin.amos.boot.module.hygf.api.mapper.RepaymentMapper
;
import
com.yeejoin.amos.boot.module.hygf.api.service.IRepaymentService
;
import
com.yeejoin.amos.feign.privilege.model.AgencyUserModel
;
import
com.yeejoin.amos.feign.privilege.model.CompanyModel
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.web.multipart.MultipartFile
;
import
org.typroject.tyboot.core.rdbms.service.BaseService
;
import
org.typroject.tyboot.core.restful.exception.instance.BadRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
import
java.time.LocalDate
;
import
java.time.temporal.ChronoUnit
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
* 还款实现层
*
* @author hzz
* @date 2024-09-26
*/
@Service
public
class
RepaymentServiceImpl
extends
BaseService
<
RepaymentDto
,
Repayment
,
RepaymentMapper
>
implements
IRepaymentService
{
@Autowired
CommonServiceImpl
commonService
;
@Autowired
RepaymentMapper
repaymentMapper
;
public
Page
<
RepaymentDto
>
queryForRepaymentPage
(
int
current
,
int
size
)
{
PageHelper
.
startPage
(
current
,
size
);
List
<
RepaymentDto
>
list
=
repaymentMapper
.
queryPage
();
PageInfo
<
RepaymentDto
>
pages
=
new
PageInfo
(
list
);
List
<
RepaymentDto
>
pagesList
=
pages
.
getList
();
if
(
CollectionUtil
.
isNotEmpty
(
pagesList
))
{
//为了前端页面展示
for
(
RepaymentDto
repaymentDto
:
pagesList
)
{
repaymentDto
.
setMessageStateStr
(
RepaymentMessageStateEnum
.
getByCode
(
repaymentDto
.
getMessageState
()).
getRemark
());
repaymentDto
.
setRepayStateStr
(
RepaymentRepayStateEnum
.
getByCode
(
repaymentDto
.
getMessageState
()).
getRemark
());
}
}
Page
<
RepaymentDto
>
page
=
new
Page
<>();
page
.
setCurrent
(
current
);
page
.
setTotal
(
pages
.
getTotal
());
page
.
setSize
(
size
);
page
.
setRecords
(
pages
.
getList
());
return
page
;
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
batchConfirmMessageState
(
List
<
Long
>
sequenceNbrList
)
{
if
(
CollectionUtil
.
isNotEmpty
(
sequenceNbrList
))
{
LambdaUpdateWrapper
<
Repayment
>
updateWrapper
=
new
LambdaUpdateWrapper
<>();
updateWrapper
.
set
(
Repayment:
:
getMessageState
,
RepaymentMessageStateEnum
.
CONFIRM
.
getCode
())
.
set
(
Repayment:
:
getCronSendState
,
RepaymentCronSendStateEnum
.
UN_SEND
.
getCode
())
.
in
(
Repayment:
:
getSequenceNbr
,
sequenceNbrList
);
this
.
update
(
updateWrapper
);
for
(
Long
sequenceNbr
:
sequenceNbrList
)
{
//更新工作台信息
updateTaskModel
(
String
.
valueOf
(
sequenceNbr
));
}
}
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
batchRepay
(
List
<
Long
>
sequenceNbrList
)
{
if
(
CollectionUtil
.
isNotEmpty
(
sequenceNbrList
))
{
LambdaUpdateWrapper
<
Repayment
>
updateWrapper
=
new
LambdaUpdateWrapper
<>();
updateWrapper
.
set
(
Repayment:
:
getRepayState
,
RepaymentRepayStateEnum
.
REPAY
.
getCode
())
.
in
(
Repayment:
:
getSequenceNbr
,
sequenceNbrList
);
this
.
update
(
updateWrapper
);
}
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
confirmMessageState
(
Long
sequenceNbr
)
{
LambdaUpdateWrapper
<
Repayment
>
updateWrapper
=
new
LambdaUpdateWrapper
<>();
updateWrapper
.
set
(
Repayment:
:
getMessageState
,
RepaymentMessageStateEnum
.
CONFIRM
.
getCode
())
.
set
(
Repayment:
:
getCronSendState
,
RepaymentCronSendStateEnum
.
UN_SEND
.
getCode
())
.
eq
(
Repayment:
:
getSequenceNbr
,
sequenceNbr
);
this
.
update
(
updateWrapper
);
//更新工作台信息
updateTaskModel
(
String
.
valueOf
(
sequenceNbr
));
}
/**
* 更新工作台信息
* @param sequenceNbr
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
private
void
updateTaskModel
(
String
sequenceNbr
)
{
Map
<
String
,
Object
>
updateTaskParam
=
new
HashMap
<>();
updateTaskParam
.
put
(
"flowStatus"
,
FlowStatusEnum
.
TO_BE_FINISHED
.
getCode
());
updateTaskParam
.
put
(
"flowStatusLabel"
,
FlowStatusEnum
.
TO_BE_FINISHED
.
getName
());
updateTaskParam
.
put
(
"taskStatus"
,
FlowStatusEnum
.
TO_BE_FINISHED
.
getCode
());
updateTaskParam
.
put
(
"taskStatusLabel"
,
FlowStatusEnum
.
TO_BE_FINISHED
.
getName
());
updateTaskParam
.
put
(
"model"
,
sequenceNbr
);
updateTaskParam
.
put
(
"relationId"
,
sequenceNbr
);
commonService
.
updateTaskModel
(
updateTaskParam
);
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
repay
(
Long
sequenceNbr
)
{
LambdaUpdateWrapper
<
Repayment
>
updateWrapper
=
new
LambdaUpdateWrapper
<>();
updateWrapper
.
set
(
Repayment:
:
getRepayState
,
RepaymentRepayStateEnum
.
REPAY
.
getCode
())
.
eq
(
Repayment:
:
getSequenceNbr
,
sequenceNbr
);
this
.
update
(
updateWrapper
);
}
/**
* 定时发送还款信息 15天发送、5天发送、当天发送
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
cronSendRepayMessage
()
{
List
<
Repayment
>
repaymentList
=
list
();
if
(
CollectionUtil
.
isNotEmpty
(
repaymentList
))
{
for
(
Repayment
repayment
:
repaymentList
)
{
//此处拿出还款日期进行对比15天发送、5天发送、当天发送
LocalDate
repayDate
=
repayment
.
getRepayDate
();
LocalDate
now
=
LocalDate
.
now
();
long
betweenDay
=
ChronoUnit
.
DAYS
.
between
(
now
,
repayDate
);
Boolean
dateSend
=
betweenDay
==
15
||
betweenDay
==
5
||
betweenDay
==
0
;
if
(
dateSend
&&
repayment
.
getCronSendState
()
==
RepaymentCronSendStateEnum
.
SEND
.
getCode
())
{
//生成待办
WorkflowResultDto
workflowResultDto
=
new
WorkflowResultDto
();
workflowResultDto
.
setInstanceId
(
String
.
valueOf
(
repayment
.
getSequenceNbr
()));
commonService
.
buildTaskModel
(
commonService
.
buildTaskModelDto
(
repayment
,
workflowResultDto
,
BusinessTypeEnum
.
HYGF_REPAY
));
}
if
(
repayment
.
getCronSendState
()
<
0
)
{
//关闭定时任务
LambdaUpdateWrapper
<
Repayment
>
updateWrapper
=
new
LambdaUpdateWrapper
<>();
updateWrapper
.
set
(
Repayment:
:
getCronSendState
,
RepaymentCronSendStateEnum
.
UN_SEND
.
getCode
())
.
eq
(
Repayment:
:
getSequenceNbr
,
repayment
.
getSequenceNbr
());
this
.
update
(
updateWrapper
);
}
}
}
}
public
void
importRepaymentExcel
(
MultipartFile
file
,
AgencyUserModel
userInfo
)
{
//获取当前用户权限的公司
try
{
List
<
CompanyModel
>
companys
=
userInfo
.
getCompanys
();
if
(
CollectionUtil
.
isEmpty
(
companys
))
{
throw
new
BadRequest
(
"该用户没有公司"
);
}
ExcelReader
reader
=
ExcelUtil
.
getReader
(
file
.
getInputStream
());
List
<
List
<
Object
>>
read
=
reader
.
read
(
1
);
List
<
Repayment
>
repaymentList
=
new
ArrayList
<>();
for
(
List
<
Object
>
objects
:
read
)
{
if
(
objects
.
size
()
!=
7
)
{
throw
new
BadRequest
(
"模板列不是7个"
);
}
Repayment
repayment
=
new
Repayment
();
String
companyName
=
(
String
)
objects
.
get
(
0
);
for
(
CompanyModel
company
:
companys
)
{
if
(
company
.
getCompanyName
().
equals
(
companyName
))
{
repayment
.
setCompanyName
(
companyName
);
repayment
.
setCompanyId
(
company
.
getSequenceNbr
());
repayment
.
setRegionalCompaniesCode
(
company
.
getCompanyCode
());
}
}
if
(
StrUtil
.
isEmpty
(
repayment
.
getCompanyName
()))
{
throw
new
BadRequest
(
companyName
+
",该用户没有权限"
);
}
String
period
=
(
String
)
objects
.
get
(
1
);
String
repayDate
=
(
String
)
objects
.
get
(
2
);
String
rent
=
(
String
)
objects
.
get
(
3
);
String
interest
=
(
String
)
objects
.
get
(
4
);
String
principal
=
(
String
)
objects
.
get
(
5
);
String
loanPeriod
=
(
String
)
objects
.
get
(
6
);
repayment
.
setMessageState
(
RepaymentMessageStateEnum
.
UN_CONFIRM
.
getCode
());
repayment
.
setCronSendState
(
RepaymentCronSendStateEnum
.
SEND
.
getCode
());
repayment
.
setPeriod
(
period
);
repayment
.
setRepayDate
(
LocalDate
.
parse
(
repayDate
));
repayment
.
setRent
(
Double
.
valueOf
(
rent
));
repayment
.
setInterest
(
Double
.
valueOf
(
interest
));
repayment
.
setPrincipal
(
Double
.
valueOf
(
principal
));
repayment
.
setLoanPeriod
(
loanPeriod
);
repaymentList
.
add
(
repayment
);
}
saveBatch
(
repaymentList
);
}
catch
(
IOException
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
throw
new
BadRequest
(
"导入失败,失败原因["
+
e
.
getMessage
()
+
"]"
);
}
}
public
void
exportRepaymentExcel
(
List
<
Long
>
sequenceNbrList
,
HttpServletResponse
response
)
{
LambdaQueryWrapper
<
Repayment
>
wrapper
=
new
LambdaQueryWrapper
<>();
//如果是空值导出全部
if
(
CollectionUtil
.
isNotEmpty
(
sequenceNbrList
))
{
wrapper
.
in
(
Repayment:
:
getSequenceNbr
,
sequenceNbrList
);
}
List
<
Repayment
>
repaymentList
=
list
(
wrapper
);
if
(
CollectionUtil
.
isNotEmpty
(
repaymentList
))
{
List
<
RepaymentDto
>
dataList
=
new
ArrayList
<>();
for
(
Repayment
repayment
:
repaymentList
)
{
RepaymentDto
repaymentDto
=
BeanUtil
.
copyProperties
(
repayment
,
RepaymentDto
.
class
);
dataList
.
add
(
repaymentDto
);
}
ExcelUtils
.
exportExcel
(
dataList
,
""
,
"还款管理"
,
RepaymentDto
.
class
,
"还款管理.xlsx"
,
response
);
}
}
}
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