From 79a8afe6c02e5373ea67dbcb33f29ea387f41d2b Mon Sep 17 00:00:00 2001 From: lSun <15893999301@qq.com> Date: Thu, 23 Oct 2025 17:57:46 +0800 Subject: [PATCH] =?UTF-8?q?rpa=E6=9C=BA=E5=99=A8=E4=BA=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CertificateStatisticsController.java | 158 +++++++ .../domain/vo/CertificateStatisticsBean.java | 176 ++++++++ .../mapper/CertificateStatisticsMapper.java | 54 +++ .../service/CertificateStatisticsService.java | 67 +++ .../CertificateStatisticsServiceImpl.java | 145 ++++++ .../bmw/CertificateStatisticsMapper.xml | 420 ++++++++++++++++++ 6 files changed, 1020 insertions(+) create mode 100644 bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/controller/CertificateStatisticsController.java create mode 100644 bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/vo/CertificateStatisticsBean.java create mode 100644 bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/mapper/CertificateStatisticsMapper.java create mode 100644 bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/CertificateStatisticsService.java create mode 100644 bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/CertificateStatisticsServiceImpl.java create mode 100644 bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/CertificateStatisticsMapper.xml diff --git a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/controller/CertificateStatisticsController.java b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/controller/CertificateStatisticsController.java new file mode 100644 index 0000000..9f3bf1e --- /dev/null +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/controller/CertificateStatisticsController.java @@ -0,0 +1,158 @@ +package com.bonus.bmw.controller; + + +import com.bonus.bmw.domain.vo.CertificateStatisticsBean; +import com.bonus.bmw.service.CertificateStatisticsService; +import com.bonus.common.core.utils.poi.ExcelUtil; +import com.bonus.common.core.web.controller.BaseController; +import com.bonus.common.core.web.page.TableDataInfo; +import com.bonus.common.log.annotation.SysLog; +import com.bonus.common.log.enums.OperaType; +import com.bonus.system.api.domain.SysUser; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + + +/** + * packageName com.bonus.gzrn.rnbmw.certificate.controller + * + * @author lsun + * @version 1.0.0 + * @className CertificateStatisticsController (此处以class为例) + * @date 2024/11/5 + * @description 持证统计 + */ +@Controller +@Api(tags = "持证统计") +@RestController +@RequestMapping(value = "/certificateStatistics") +public class CertificateStatisticsController extends BaseController { + + public static Logger logger = LoggerFactory.getLogger(CertificateStatisticsController.class); + + @Resource(name = "CertificateStatisticsService") + private CertificateStatisticsService service; + + + @GetMapping("getCertificateTypeList") + @SysLog(title = "rap机器人", businessType = OperaType.QUERY,logType = 0,module = "rap机器人->持证统计",details = "持证统计列表") + public TableDataInfo listProjects(CertificateStatisticsBean o) { + try { + startPage(); + List list = service.getList(o); + return getDataTable(list); + } catch (Exception e) { + logger.error(e.toString(), e); + } + return getDataTableError(new ArrayList<>()); + } + + /** + * 查询持证类型树 + * @param o + * @return + */ + @GetMapping("getTreeDataType") + @SysLog(title = "rap机器人", businessType = OperaType.QUERY,logType = 0,module = "rap机器人->持证统计",details = "查询持证类型树") + public List getTreeDataType(@RequestBody(required = false) CertificateStatisticsBean o) { + return service.getTreeDataType(o); + } + + /** + * 查询公司工程树 + * @param o + * @return + */ + @GetMapping("getTreeDataPro") + @SysLog(title = "rap机器人", businessType = OperaType.QUERY,logType = 0,module = "rap机器人->持证统计",details = "查询公司工程树") + public List getTreeDataPro(@RequestBody(required = false) CertificateStatisticsBean o) { + return service.getTreeDataPro(o); + } + + + /** + * 查询工种下拉选 + * @param o + * @return + */ +// @PostMapping("getPost") +// @ApiOperation(value = "查询工种下拉选") +// public List getPost(@RequestBody(required = false) CertificateStatisticsBean o) { +// return service.getPost(o); +// } + + /** + * 证书统计导出 + * @param response + * @param o + */ + @PostMapping("/exportOwnData") + @SysLog(title = "rap机器人", businessType = OperaType.EXPORT,logType = 0,module = "rap机器人->持证统计",details = "持证统计-导出") + public void exportOwnData(HttpServletResponse response, CertificateStatisticsBean o){ + List list = service.getCertificateTypeList(o); + ExcelUtil util = new ExcelUtil<>(CertificateStatisticsBean.class); + util.exportExcel(response,list,"持证统计-导出详情", "持证统计-导出详情"); + } + + /** + * 获取预警列表 + * @return + */ + @GetMapping("getCertificateWarningList") + @SysLog(title = "rap机器人", businessType = OperaType.QUERY,logType = 0,module = "rap机器人->持证统计预警",details = "持证统计预警") + public TableDataInfo getCertificateWarningList(CertificateStatisticsBean o) { + try { + startPage(); + List list = service.getListWarning(o); + return getDataTable(list); + } catch (Exception e) { + logger.error(e.toString(), e); + } + return getDataTableError(new ArrayList<>()); + } + + + /** + * 获取证件类别统计 + * @return + */ + @GetMapping("getCategoryChart") + @SysLog(title = "rap机器人", businessType = OperaType.QUERY,logType = 0,module = "rap机器人->获取证件类别统计",details = "获取证件类别统计") + public List getCategoryChart() { + List list = null; + try { + list = service.getCategoryChart(); + } catch (Exception e) { + e.printStackTrace(); + } + return list; + } + + + /** + * 获取证件类别统计 + * @return + */ + @GetMapping("getStatusChart") + @SysLog(title = "rap机器人", businessType = OperaType.QUERY,logType = 0,module = "rap机器人->获取证件状态统计",details = "获取证件状态统计") + public List getStatusChart() { + List list = null; + try { + list = service.getStatusChart(); + } catch (Exception e) { + e.printStackTrace(); + } + return list; + } +} diff --git a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/vo/CertificateStatisticsBean.java b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/vo/CertificateStatisticsBean.java new file mode 100644 index 0000000..588f9bd --- /dev/null +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/domain/vo/CertificateStatisticsBean.java @@ -0,0 +1,176 @@ +package com.bonus.bmw.domain.vo; + +import com.bonus.common.core.annotation.Excel; +import com.bonus.common.core.web.domain.BaseEntity; +import lombok.Data; + +import java.util.List; + +/** + * packageName com.bonus.gzrn.rnbmw.certificate.entity + * + * @author lsun + * @version 1.0.0 + * @className certificateStatisticsBean + * @date 2024/11/5 + * @description 持证统计 + */ +@Data +public class CertificateStatisticsBean extends BaseEntity { + /** + * 树 + */ + private String title; + + private String id; + + private String name; + + private String pid; + + private Boolean spread; + + private String neatenWorkOperation; + + private List children; + + /** + * 基础数据 + */ + /** + *姓名 + */ + @Excel(name = "姓名") + private String username; + /** + * 身份证 + */ + @Excel(name = "身份证号") + private String idNumber; + /** + * 工种id + */ + private String postId; + /** + * 工种 + */ + @Excel(name = "工种") + private String postName; + /** + * 作业类别 + */ + @Excel(name = "进持证类别") + private String workType; + /** + * 操作项目 + */ + @Excel(name = "操作项目") + private String workOperation; + /** + * 应复审日期 + */ + @Excel(name = "应复审日期") + private String reviewDate; + /** + * 应复审日期 + */ + private String realityReviewDate; + + /** + * 证件有效期 + */ + @Excel(name = "证件状态") + private String certificateStatus; + /** + * 证件有效期 + */ + @Excel(name = "证件有效期") + private String validityData; + /** + * 有效开始时间 + */ + private String validStartDate; + /** + * 有效结束时间 + */ + private String validEndDate; + /** + * 签发机关 + */ + @Excel(name = "签发机关") + private String issuingAuthority; + /** + * 证件照片 + */ + private String certificatePhoto; + /** + * 证件状态 + */ + private String certificateState; + /** + * 树节点id + */ + private String treeNodeId; + + /** + * 工程id + */ + private String proId; + /** + * 分公司id + */ + private String subComId; + + /** + * 树节点类型 + */ + private String nodeType; + /** + * 总数 + */ + private Integer total; + + private String keyword; + + /** + * 在职状态 + */ + private String onState; + /** + * 电话 + */ + @Excel(name = "电话") + private String phone; + /** + * + * 入场时间 + */ + @Excel(name = "入场时间") + private String einTime; + /** + * 出场时间 + */ + @Excel(name = "出场时间") + private String exitTime; + + /** + * 风险预警 + */ + private String riskWarning; + + private String startTime; + private String endTime; + + /** + * 有效 + */ + private String effective; + /** + * 过期 + */ + private String beOverdue; + /** + * 即将过期 + */ + private String expiringSoon; +} diff --git a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/mapper/CertificateStatisticsMapper.java b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/mapper/CertificateStatisticsMapper.java new file mode 100644 index 0000000..f5147a1 --- /dev/null +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/mapper/CertificateStatisticsMapper.java @@ -0,0 +1,54 @@ +package com.bonus.bmw.mapper; + +import com.bonus.bmw.domain.vo.CertificateStatisticsBean; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +import java.util.List; +import java.util.Map; + +/** + * packageName com.bonus.gzrn.rnbmw.certificate.dao + * + * @author lsun + * @version 1.0.0 + * @className certificateStatisticsDao (此处以class为例) + * @date 2024/11/5 + * @description 持证统计 + */ +@Repository(value = "CertificateStatisticsMapper") +@Mapper +public interface CertificateStatisticsMapper { + + + List getList(CertificateStatisticsBean o); + + List getTreeDataTypeOne(CertificateStatisticsBean o); + + List getTreeDataTypeTwo(CertificateStatisticsBean o); + + List getTreeDataProOne(CertificateStatisticsBean o); + + List getTreeDataProTwo(CertificateStatisticsBean o); + + List getPost(CertificateStatisticsBean o); + + List getListWarning(CertificateStatisticsBean o); + + List getCategoryChart(); + + List getStatusChart(); + + /** + * 查询预警数据 + * @return + */ + List getWarning(); + + /** + * 查询复审数据 + * @return + */ + List getReexamine(); +} diff --git a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/CertificateStatisticsService.java b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/CertificateStatisticsService.java new file mode 100644 index 0000000..c6ee0aa --- /dev/null +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/CertificateStatisticsService.java @@ -0,0 +1,67 @@ +package com.bonus.bmw.service; + + +import com.bonus.bmw.domain.vo.CertificateStatisticsBean; + +import java.util.List; +import java.util.Map; + +/** + * packageName com.bonus.gzrn.rnbmw.certificate.service + * + * @author lsun + * @version 1.0.0 + * @className CertificateStatisticsService (此处以class为例) + * @date 2024/11/5 + * @description 持证统计 + */ +public interface CertificateStatisticsService { + + /** + * 获取列表 + * @return + */ + List getList(CertificateStatisticsBean o); + + + /** + * 查询持证类型树 + * @param o + * @return + */ + List getTreeDataType(CertificateStatisticsBean o); + + /** + *查询公司工程树 + * @param o + * @return + */ + List getTreeDataPro(CertificateStatisticsBean o); + + /** + * 查询工种下拉选 + * @param o + * @return + */ + List getPost(CertificateStatisticsBean o); + + /** + * 获取持证类型列表 + * @return + */ + List getCertificateTypeList(CertificateStatisticsBean o); + + /** + * 获取持证预警列表 + * @return + */ + List getListWarning(CertificateStatisticsBean o); + + /** + * 获取证件类别统计 + * @return + */ + List getCategoryChart(); + + List getStatusChart(); +} diff --git a/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/CertificateStatisticsServiceImpl.java b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/CertificateStatisticsServiceImpl.java new file mode 100644 index 0000000..3084a61 --- /dev/null +++ b/bonus-modules/bonus-bmw/src/main/java/com/bonus/bmw/service/CertificateStatisticsServiceImpl.java @@ -0,0 +1,145 @@ +package com.bonus.bmw.service; + +import com.bonus.bmw.mapper.CertificateStatisticsMapper; +import com.bonus.bmw.domain.vo.CertificateStatisticsBean; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * packageName com.bonus.gzrn.rnbmw.certificate.service + * + * @author lsun + * @version 1.0.0 + * @className CertificateStatisticsService (此处以class为例) + * @date 2024/11/5 + * @description 持证统计 + */ +@Service(value = "CertificateStatisticsService") +public class CertificateStatisticsServiceImpl implements CertificateStatisticsService { + + @Resource(name = "CertificateStatisticsMapper") + private CertificateStatisticsMapper dao; + + @Override + public List getList(CertificateStatisticsBean o) { + return dao.getList(o); + } + + /** + *查询持证类型树 + * @param o + * @return + */ + @Override + public List getTreeDataType(CertificateStatisticsBean o) { + List topList = new ArrayList<>(); + List parentList = new ArrayList<>(); + List childList = new ArrayList<>(); + try { + parentList = dao.getTreeDataTypeOne(o); + childList = dao.getTreeDataTypeTwo(o); + if(parentList.size() > 0){ + Integer total = 0; + for (int i = 0; i < parentList.size(); i++) { + List childListNew = new ArrayList<>(); + String parentWorkType = parentList.get(i).getName(); + for (int j = 0; j < childList.size(); j++) { + String childWorkType = childList.get(j).getName(); + if(parentWorkType.equals(childWorkType)){ + CertificateStatisticsBean vo = new CertificateStatisticsBean(); + vo.setId(childList.get(j).getId()); + vo.setName(childList.get(j).getNeatenWorkOperation()); + vo.setTitle(childList.get(j).getTitle()); + childListNew.add(vo); + } + } + parentList.get(i).setChildren(childListNew); + total += parentList.get(i).getTotal(); + } + CertificateStatisticsBean vo = new CertificateStatisticsBean(); + vo.setTitle("全部(" + total + ")"); + vo.setChildren(parentList); + vo.setSpread(true); + topList.add(vo); + } + }catch (Exception e){ + e.printStackTrace(); + } + return topList; + } + + /** + *查询公司工程树 + * @param o + * @return + */ + @Override + public List getTreeDataPro(CertificateStatisticsBean o) { + List topList = new ArrayList<>(); + List parentList = new ArrayList<>(); + List childList = new ArrayList<>(); + try { + parentList = dao.getTreeDataProOne(o); + childList = dao.getTreeDataProTwo(o); + if(parentList.size() > 0){ + Integer total = 0; + for (int i = 0; i < parentList.size(); i++) { + List childListNew = new ArrayList<>(); + String parentId = parentList.get(i).getId(); + for (int j = 0; j < childList.size(); j++) { + String childPid = childList.get(j).getPid(); + if(parentId.equals(childPid)){ + CertificateStatisticsBean vo = new CertificateStatisticsBean(); + vo.setId(childList.get(j).getId()); + vo.setName(childList.get(j).getName()); + vo.setTitle(childList.get(j).getTitle()); + vo.setNodeType("3"); + childListNew.add(vo); + } + } + parentList.get(i).setChildren(childListNew); + total += parentList.get(i).getTotal(); + } + CertificateStatisticsBean vo = new CertificateStatisticsBean(); + vo.setTitle("全部(" + total + ")"); + vo.setChildren(parentList); + vo.setSpread(true); + topList.add(vo); + } + }catch (Exception e){ + e.printStackTrace(); + } + return topList; + } + + @Override + public List getPost(CertificateStatisticsBean o) { + return dao.getPost(o); + } + + @Override + public List getCertificateTypeList(CertificateStatisticsBean o) { + return dao.getList(o); + } + + @Override + public List getListWarning(CertificateStatisticsBean o) { + return dao.getListWarning(o); + } + + @Override + public List getCategoryChart() { + return dao.getCategoryChart(); + } + + @Override + public List getStatusChart() { + return dao.getStatusChart(); + } + + +} diff --git a/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/CertificateStatisticsMapper.xml b/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/CertificateStatisticsMapper.xml new file mode 100644 index 0000000..b11c4da --- /dev/null +++ b/bonus-modules/bonus-bmw/src/main/resources/mapper/bmw/CertificateStatisticsMapper.xml @@ -0,0 +1,420 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file