个人网厅——销户
目录
需求文档
公积金销户类
controller层
service层
service层实现类
1.验证 (个人账户)
2.提交(添加)
controller层
service层
service层实现类
3.分页查询
controller层
service层
service层实现类
4. 详情查询
controller层
service层
service层实现类
需求文档
公积金销户流水表提交(添加)、分页、查看(详情查询)、验证(个人账户)
在离职、退休、提前退休的情况下,会将公积金账户注销并取出里面资金

公积金销户类
controller层
@Tag(name = "管理后台-销户-公积金销户")
@RestController
@RequestMapping("/business/tq-gjjxh")
@Validated
public class TqGjjxhlsbController {@Resourceprivate TqGjjxhlsbService tqGjjxhlsbService;...(类中功能方法)}
service层
/*** 个人网上营业厅-公积金销户流水 Service 接口** @author 芋道源码*/
public interface TqGjjxhlsbService {...
}
service层实现类
/*** 个人网上营业厅-公积金销户流水 Service 实现类** @author 芋道源码*/
@Service
@Validated
public class TqGjjxhlsbServiceImpl implements TqGjjxhlsbService {@Resourceprivate TqGjjxhlsbMapper tqGjjxhlsbMapper;...
}
1.验证 (个人账户)
/*** 根据vo中的定义验证参数合法后,验证请求数据合法性* @param createReqVO (暂存、直接保存)请求参数* @return SaveGeneralReturn*/private CommonResult<SaveGeneralReturn> validateData(TqGjjxhlsbCreateReqVO createReqVO){SaveGeneralReturn saveGeneralReturn=new SaveGeneralReturn();List<ErrorCode> errorCodeList=new ArrayList<>();//传入参数不合法/*******判断网厅是否存在未审批记录*************/LambdaQueryWrapper<TqGjjxhlsbDO> queryWrapper = new LambdaQueryWrapper();queryWrapper.eq(TqGjjxhlsbDO::getGrzh,createReqVO.getGrzh());queryWrapper.ne(TqGjjxhlsbDO::getYwzt,"100");List<TqGjjxhlsbDO> tqGjjxhlsbDOList = tqGjjxhlsbService.getSelectList(queryWrapper);if (tqGjjxhlsbDOList != null && tqGjjxhlsbDOList.size() > 0) {errorCodeList.add(GJJXHLSB_WSP);}saveGeneralReturn.setValidate(errorCodeList.size() == 0);saveGeneralReturn.setErrorCount(errorCodeList.size());saveGeneralReturn.setErrorCodes(errorCodeList);//特殊判断return success(saveGeneralReturn);}
通过查询数据库表TqGjjxhlsbDO来判断,具体查询条件是根据createReqVO中的"grzh"属性等于表中的"grzh"并且"ywzt"属性不等于"100"。如果查询结果不为空且数量大于0,将给予错误码GJJXHLSB_WSP(公积金提取流水表未审批)提示。个人账户具有唯一性,相同的个人账户,不予添加。
2.提交(添加)
controller层
/***提交 保存数据 注意业务状态* */@PostMapping("/create")@Operation(summary = "公积金销户_保存")public CommonResult<SaveGeneralReturn> createTqGjjxhlsb(@Valid @RequestBody TqGjjxhlsbCreateReqVO createReqVO){CommonResult<SaveGeneralReturn> validatedReturn=validateData(createReqVO);SaveGeneralReturn validated=validatedReturn.getData();if(validated.getValidate()){createReqVO.setYwzt("0");BigDecimal id = tqGjjxhlsbService.createTqGjjxhlsb(createReqVO);validated.setId(id);validated.setSuccessMsg("暂存成功");return success(validated);}return error(validatedReturn);}
通过判断
validated对象的validate属性是否为true来确定是否通过了数据验证。如果通过验证,即为库中不存在相同账户的额数据,将createReqVO的ywzt属性设置为"0",调用
tqGjjxhlsbService.createTqGjjxhlsb(createReqVO)方法保存数据,并将返回的id赋值给validated对象的id属性。随后,设置validated对象的successMsg属性为"暂存成功",并返回success(validated)。
service层
/*** 创建个人网上营业厅-公积金销户流水** @param createReqVO 创建信息* @return 编号*/BigDecimal createTqGjjxhlsb(@Valid TqGjjxhlsbCreateReqVO createReqVO);
service层实现类
@Overridepublic BigDecimal createTqGjjxhlsb(TqGjjxhlsbCreateReqVO createReqVO) {// 插入TqGjjxhlsbDO tqGjjxhlsb = TqGjjxhlsbConvert.INSTANCE.convert(createReqVO);tqGjjxhlsbMapper.insert(tqGjjxhlsb);// 返回return tqGjjxhlsb.getId();}
3.分页查询
controller层
/*** @param pageVO 请求参数(包括分页参数)* @return PageResult<TqGjjxhlsbRespVO>*/@GetMapping("/page")@Operation(summary = "公积金销户_分页查询")public CommonResult<PageResult<TqGjjxhlsbRespVO>> getTqGjjxhlsbPage(@Valid TqGjjxhlsbPageReqVO pageVO){PageResult<TqGjjxhlsbDO> pageResult = tqGjjxhlsbService.getTqGjjxhlsbPage(pageVO);return success(TqGjjxhlsbConvert.INSTANCE.convertPage(pageResult));}
service层
/*** 获得个人网上营业厅-公积金销户流水分页** @param pageReqVO 分页查询* @return 个人网上营业厅-公积金销户流水分页*/PageResult<TqGjjxhlsbDO> getTqGjjxhlsbPage(TqGjjxhlsbPageReqVO pageReqVO);
service层实现类
@Overridepublic PageResult<TqGjjxhlsbDO> getTqGjjxhlsbPage(TqGjjxhlsbPageReqVO pageReqVO) {return tqGjjxhlsbMapper.selectPage(pageReqVO);}
4. 详情查询
controller层
/*** 详情* @param id 查询参数* @result TqGjjxhlsbRespVO*/@GetMapping("/get")@Operation(summary = "公积金销户_查看详情")@Parameter(name = "id", description = "编号", required = true, example = "1024")public CommonResult<TqGjjxhlsbRespVO> getTqGjjxhlsb(@RequestParam("id") BigDecimal id){TqGjjxhlsbDO tqGjjxhlsb = tqGjjxhlsbService.getTqGjjxhlsb(id);return success(TqGjjxhlsbConvert.INSTANCE.convert(tqGjjxhlsb));}
service层
/*** 获得个人网上营业厅-公积金销户流水** @param id 编号* @return 个人网上营业厅-公积金销户流水*/TqGjjxhlsbDO getTqGjjxhlsb(BigDecimal id);
service层实现类
@Overridepublic TqGjjxhlsbDO getTqGjjxhlsb(BigDecimal id) {return tqGjjxhlsbMapper.selectById(id);}相关文章:
个人网厅——销户
目录 需求文档 公积金销户类 controller层 service层 service层实现类 1.验证 (个人账户) 2.提交(添加) controller层 service层 service层实现类 3.分页查询 controller层 service层 service层实现类 4. 详情查询…...
通过创建自定义标签来扩展HTML
使用HTML时,例如,使用<b>标记显示粗体文本。 如果需要列表,则对每个列表项使用<ul>标记及其子标记<li> 。 标签由浏览器解释,并与CSS一起确定网页内容的显示方式以及部分内容的行为。 有时,仅使用一…...
Nacos热更新
Nacos热更新 相比其他注册中心,Nacos的优势之一在于热更新。 热更新,就是不需要重启服务,就能够更新配置。 nacos配置中心 首先,需要搭建 Nacos,详情见: https://www.cnblogs.com/expiator/p/17392549.h…...
CSS3 中 transition 和 animation 的属性分别有哪些
Transition 属性: transition 属性用于定义元素在状态改变时从一个样式转换到另一个样式的过渡效果。它包含以下几个属性: • transition-property:指定过渡效果应用的 CSS 属性名称,多个属性可以用逗号分隔。 •…...
【狂神说Java】Nginx详解
✅作者简介:CSDN内容合伙人、信息安全专业在校大学生🏆 🔥系列专栏 :狂神说Java 📃新人博主 :欢迎点赞收藏关注,会回访! 💬舞台再大,你不上台,永远…...
【第六章】软件设计师 之 数据结构与算法基础
文章底部有个人公众号:热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享? 踩过的坑没必要让别人在再踩,自己复盘也能加深记忆。利己利人、所谓双赢。 备考资料导航 软考好处:软考的…...
Git基本概念和使用方式
Git 是一种版本控制系统,用于管理文件版本的变化。以下是其基本概念和使用方式: 仓库(repository):Git 存储代码的地方,可以理解为一个项目的文件夹。提交(commit):Git …...
Falcon构建轻量级的REST API服务
Falcon构建轻量级的REST API服务 文章目录 Falcon构建轻量级的REST API服务安装falcon构建falcon项目应用托管(Hosting Your App)简单示例内容服务(Serving Text)JSON请求和响应处理路由和 URI 参数中间件异常处理 图像服务(Serving Images)创建图像资源关联资源请求和响应对象…...
【Python】python读取,显示,保存图像的几种方法
一、PIL:Python Imaging Library(pillow) PIL读取图片不直接返回numpy对象,可以用numpy提供的函数np.array()进行转换,亦可用Image.fromarray()再从numpy对象转换为原来的Image对象,读取,显示&…...
k8s系列-kuboard 该操作平台的使用操作
文章目录 一、相关平台,以及账号和密码镜像打包服务器仓库地址K8s平台数据库mysql 二、平台概述1.集群导入2.集群管理3.名称空间4.访问控制授权5.集群用户操作审计 三、kuboard平台操作手册一、部署服务操作1.名称空间部署2.工作负载部署 一、相关平台,以…...
基于讯飞星火大语言模型开发的智能插件:小策问答
星火大语言模型是一种基于深度学习的自然语言处理技术,它能够理解和生成人类语言。这种模型的训练过程涉及到大量的数据和复杂的算法,但最终的目标是让机器能够像人一样理解和使用语言。 小策问答是一款基于星火大语言模型的定制化GPT插件小工具。它的主…...
笔记:AI量化策略开发流程-基于BigQuant平台(二)
五、模型训练股票预测 完成了数据处理,接下来就可利用平台集成的各算法进行模型训练和模型预测啦。本文将详细介绍“模型训练”、“模型预测”两大模块操作、原理。 模型训练和模型预测是AI策略区别于传统量化策略的核心,我们通过模型训练模块利用训练…...
100127. 给小朋友们分糖果 II
给你两个正整数 n 和 limit 。 请你将 n 颗糖果分给 3 位小朋友,确保没有任何小朋友得到超过 limit 颗糖果,请你返回满足此条件下的 总方案数 。 示例 1: 输入:n 5, limit 2 输出:3 解释:总共有 3 种方…...
【2】Spring Boot 3 项目搭建
目录 【2】Spring Boot 3 初始项目搭建项目生成1. 使用IDEA商业版创建2. 使用官方start脚手架创建 配置与启动Git版本控制 个人主页: 【⭐️个人主页】 需要您的【💖 点赞关注】支持 💯 【2】Spring Boot 3 初始项目搭建 项目生成 1. 使用IDEA商业版创…...
【第七章】软件设计师 之 程序设计语言与语言程序处理程序基础
文章底部有个人公众号:热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享? 踩过的坑没必要让别人在再踩,自己复盘也能加深记忆。利己利人、所谓双赢。 1、前言 正规式 2、编译过程 编译型&…...
如何判断一个角是否大于180度(2)
理论计算见上一篇: 如何判断一个角是否大于180度?_kv1830的博客-CSDN博客 此篇为代码实现 一。直接上代码: import cv2 as cv import numpy as np import mathdef get_vector(p_from, p_to):return p_to[0] - p_from[0], p_to[1] - p_from…...
ASAM OpenDRIVE V1.7协议超详解(一)
文章目录 前言一、仿真场景的构成二、openDRIVE框架三、g_additionalData四、openDRIVE-header五、openDRIVE-road1、Road总拓扑结构2、Road-link介绍1)link的拓扑结构2)link链接示例3)link前继后继4)道路link规则 3、road-type介…...
springboot的配置信息的设置和读取(application.properties/application.yml)
springboot提供了两种配置信息的文件格式,application.properties和application.yml,基于直接明了,使用方便和高效的前提下下面的配置均采用yml格式配置, 注意 yml采用缩减方式来排列键后面紧跟冒号,然后空格&#x…...
Deepsort项目详解
一、目标追踪整体代码 代码目录如下图所示: 、 追踪相关代码: 检测相关代码和权重 调用 检测 和 追踪的代码: 首先代码分为三个部分: 目标追踪的相关代码和权重目标检测相关代码和权重,这里用的是yolov5.5目标检…...
C语言证明一个偶数总能表示为两个素数之和。输入一个偶数并将其分解为两个素数
完整代码: // 一个偶数总能表示为两个素数之和。输入一个偶数并将其分解为两个素数#include<stdio.h>//判断一个数n是否为素数 int isPrimeNumber(int n){//1不是素数if (n1){return 0;}for (int i 2; i <(n/2); i){//当有n能被整除时,不是素…...
Docker 离线安装指南
参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性,不同版本的Docker对内核版本有不同要求。例如,Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本,Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...
【kafka】Golang实现分布式Masscan任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...
智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...
(十)学生端搭建
本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...
黑马Mybatis
Mybatis 表现层:页面展示 业务层:逻辑处理 持久层:持久数据化保存 在这里插入图片描述 Mybatis快速入门  获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...
【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)
🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...
Go 语言并发编程基础:无缓冲与有缓冲通道
在上一章节中,我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道,它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好࿰…...
