rpa机器人
This commit is contained in:
parent
5b4fb4d5b3
commit
79a8afe6c0
|
|
@ -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<CertificateStatisticsBean> 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<CertificateStatisticsBean> 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<CertificateStatisticsBean> getTreeDataPro(@RequestBody(required = false) CertificateStatisticsBean o) {
|
||||
return service.getTreeDataPro(o);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 查询工种下拉选
|
||||
* @param o
|
||||
* @return
|
||||
*/
|
||||
// @PostMapping("getPost")
|
||||
// @ApiOperation(value = "查询工种下拉选")
|
||||
// public List<CertificateStatisticsBean> 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<CertificateStatisticsBean> list = service.getCertificateTypeList(o);
|
||||
ExcelUtil<CertificateStatisticsBean> 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<CertificateStatisticsBean> 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<CertificateStatisticsBean> getCategoryChart() {
|
||||
List<CertificateStatisticsBean> 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<CertificateStatisticsBean> getStatusChart() {
|
||||
List<CertificateStatisticsBean> list = null;
|
||||
try {
|
||||
list = service.getStatusChart();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return list;
|
||||
}
|
||||
}
|
||||
|
|
@ -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<CertificateStatisticsBean> 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;
|
||||
}
|
||||
|
|
@ -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<CertificateStatisticsBean> getList(CertificateStatisticsBean o);
|
||||
|
||||
List<CertificateStatisticsBean> getTreeDataTypeOne(CertificateStatisticsBean o);
|
||||
|
||||
List<CertificateStatisticsBean> getTreeDataTypeTwo(CertificateStatisticsBean o);
|
||||
|
||||
List<CertificateStatisticsBean> getTreeDataProOne(CertificateStatisticsBean o);
|
||||
|
||||
List<CertificateStatisticsBean> getTreeDataProTwo(CertificateStatisticsBean o);
|
||||
|
||||
List<CertificateStatisticsBean> getPost(CertificateStatisticsBean o);
|
||||
|
||||
List<CertificateStatisticsBean> getListWarning(CertificateStatisticsBean o);
|
||||
|
||||
List<CertificateStatisticsBean> getCategoryChart();
|
||||
|
||||
List<CertificateStatisticsBean> getStatusChart();
|
||||
|
||||
/**
|
||||
* 查询预警数据
|
||||
* @return
|
||||
*/
|
||||
List<CertificateStatisticsBean> getWarning();
|
||||
|
||||
/**
|
||||
* 查询复审数据
|
||||
* @return
|
||||
*/
|
||||
List<CertificateStatisticsBean> getReexamine();
|
||||
}
|
||||
|
|
@ -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<CertificateStatisticsBean> getList(CertificateStatisticsBean o);
|
||||
|
||||
|
||||
/**
|
||||
* 查询持证类型树
|
||||
* @param o
|
||||
* @return
|
||||
*/
|
||||
List<CertificateStatisticsBean> getTreeDataType(CertificateStatisticsBean o);
|
||||
|
||||
/**
|
||||
*查询公司工程树
|
||||
* @param o
|
||||
* @return
|
||||
*/
|
||||
List<CertificateStatisticsBean> getTreeDataPro(CertificateStatisticsBean o);
|
||||
|
||||
/**
|
||||
* 查询工种下拉选
|
||||
* @param o
|
||||
* @return
|
||||
*/
|
||||
List<CertificateStatisticsBean> getPost(CertificateStatisticsBean o);
|
||||
|
||||
/**
|
||||
* 获取持证类型列表
|
||||
* @return
|
||||
*/
|
||||
List<CertificateStatisticsBean> getCertificateTypeList(CertificateStatisticsBean o);
|
||||
|
||||
/**
|
||||
* 获取持证预警列表
|
||||
* @return
|
||||
*/
|
||||
List<CertificateStatisticsBean> getListWarning(CertificateStatisticsBean o);
|
||||
|
||||
/**
|
||||
* 获取证件类别统计
|
||||
* @return
|
||||
*/
|
||||
List<CertificateStatisticsBean> getCategoryChart();
|
||||
|
||||
List<CertificateStatisticsBean> getStatusChart();
|
||||
}
|
||||
|
|
@ -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<CertificateStatisticsBean> getList(CertificateStatisticsBean o) {
|
||||
return dao.getList(o);
|
||||
}
|
||||
|
||||
/**
|
||||
*查询持证类型树
|
||||
* @param o
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<CertificateStatisticsBean> getTreeDataType(CertificateStatisticsBean o) {
|
||||
List<CertificateStatisticsBean> topList = new ArrayList<>();
|
||||
List<CertificateStatisticsBean> parentList = new ArrayList<>();
|
||||
List<CertificateStatisticsBean> 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<CertificateStatisticsBean> 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<CertificateStatisticsBean> getTreeDataPro(CertificateStatisticsBean o) {
|
||||
List<CertificateStatisticsBean> topList = new ArrayList<>();
|
||||
List<CertificateStatisticsBean> parentList = new ArrayList<>();
|
||||
List<CertificateStatisticsBean> 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<CertificateStatisticsBean> 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<CertificateStatisticsBean> getPost(CertificateStatisticsBean o) {
|
||||
return dao.getPost(o);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<CertificateStatisticsBean> getCertificateTypeList(CertificateStatisticsBean o) {
|
||||
return dao.getList(o);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<CertificateStatisticsBean> getListWarning(CertificateStatisticsBean o) {
|
||||
return dao.getListWarning(o);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<CertificateStatisticsBean> getCategoryChart() {
|
||||
return dao.getCategoryChart();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<CertificateStatisticsBean> getStatusChart() {
|
||||
return dao.getStatusChart();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,420 @@
|
|||
<?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.bonus.bmw.mapper.CertificateStatisticsMapper">
|
||||
|
||||
<select id="getList" resultType="com.bonus.bmw.domain.vo.CertificateStatisticsBean">
|
||||
SELECT
|
||||
bw.name AS username,
|
||||
bcr.id_number AS idNumber,
|
||||
bweh.post_name AS postName,
|
||||
bct.work_type AS workType,
|
||||
bct.work_operation AS workOperation,
|
||||
bcr.reality_review_date AS reviewDate,
|
||||
bcr.valid_start_date AS validStartDate,
|
||||
bcr.valid_end_date AS validEndDate,
|
||||
bcr.issuing_authority AS issuingAuthority,
|
||||
bcr.certificate_photo AS certificatePhoto,
|
||||
CONCAT( bcr.valid_start_date, '~', bcr.valid_end_date ) AS validityData,
|
||||
if((bcr.valid_start_date < CURRENT_DATE AND bcr.valid_end_date > CURRENT_DATE), '有效', '失效') AS
|
||||
certificateStatus,
|
||||
bw.PHONE,
|
||||
bweh.EIN_TIME as einTime,
|
||||
bweh.EXIT_TIME as exitTime
|
||||
FROM
|
||||
bm_certificate_type_auto bct
|
||||
LEFT JOIN (
|
||||
SELECT * FROM (
|
||||
SELECT * FROM bm_certificate_read ORDER BY valid_end_date DESC limit 999999999
|
||||
) a GROUP BY a.id_number, a.certificate_id
|
||||
) bcr ON bcr.certificate_id = bct.id
|
||||
LEFT JOIN pm_worker bw ON bw.id_number = bcr.id_number AND bw.is_active = '1'
|
||||
LEFT JOIN bm_worker_ein_pro_record bweh ON bweh.worker_id = bw.id AND bweh.is_active = '1'
|
||||
LEFT JOIN pm_project bp ON bp.id = bweh.pro_id
|
||||
left JOIN pm_main_project po ON po.id = bp.main_pro_id
|
||||
WHERE bct.is_hidden = '0'
|
||||
AND bct.is_active = '1'
|
||||
AND bcr.ID_NUMBER is not null
|
||||
AND bweh.worker_id is not null
|
||||
<if test="onState == 1 or onState == '1'">
|
||||
AND bweh.EXIT_TIME is null
|
||||
</if>
|
||||
|
||||
<if test="onState == 2 or onState == '2'">
|
||||
AND bweh.EXIT_TIME is not null
|
||||
</if>
|
||||
|
||||
<if test="neatenWorkOperation != '' and neatenWorkOperation != null">
|
||||
AND bct.neaten_work_operation = #{neatenWorkOperation}
|
||||
</if>
|
||||
<if test="name != '' and name != null and name != 'null' ">
|
||||
AND (bct.work_type = #{name} OR bct.neaten_work_operation = #{name})
|
||||
</if>
|
||||
<if test="subComId != '' and subComId != null">
|
||||
AND po.`id` = #{subComId}
|
||||
</if>
|
||||
<if test="proId != '' and proId != null">
|
||||
AND bp.`id` = #{proId}
|
||||
</if>
|
||||
<if test="keyword != '' and keyword != null">
|
||||
AND (bcr.id_number like concat('%',#{keyword},'%') OR bw.`name` like
|
||||
concat('%',#{keyword},'%'))
|
||||
</if>
|
||||
<if test="postId != '' and postId != null">
|
||||
AND bweh.post_id like concat('%',#{postId},'%')
|
||||
</if>
|
||||
<if test="certificateState == 1 or certificateState == '1'">
|
||||
AND (bcr.valid_start_date < CURRENT_DATE AND bcr.valid_end_date > CURRENT_DATE)
|
||||
</if>
|
||||
<if test="certificateState == 2 or certificateState == '2'">
|
||||
AND (bcr.valid_start_date > CURRENT_DATE OR bcr.valid_end_date < CURRENT_DATE)
|
||||
</if>
|
||||
<if test="certificateState == 3 or certificateState == '3'">
|
||||
AND (DATEDIFF(bcr.reality_review_date, CURRENT_DATE) > 0 AND DATEDIFF(bcr.reality_review_date, CURRENT_DATE)
|
||||
<= 90)
|
||||
</if>
|
||||
<if test="certificateState == 4 or certificateState == '4'">
|
||||
AND (DATEDIFF(bcr.reality_review_date, CURRENT_DATE) > 0 AND DATEDIFF(bcr.reality_review_date, CURRENT_DATE)
|
||||
<= 30)
|
||||
</if>
|
||||
GROUP BY bcr.id_number,bct.neaten_work_operation
|
||||
</select>
|
||||
|
||||
<select id="getTreeDataTypeOne"
|
||||
resultType="com.bonus.bmw.domain.vo.CertificateStatisticsBean">
|
||||
SELECT
|
||||
id,
|
||||
`name`,
|
||||
sum( title ) AS total,
|
||||
CONCAT( `name`, '(', sum( title ), ')' ) AS title
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
bct.id AS id,
|
||||
bct.work_type AS NAME,
|
||||
COUNT( DISTINCT bw.id_number ) AS title
|
||||
FROM
|
||||
bm_certificate_type_auto bct
|
||||
LEFT JOIN (
|
||||
SELECT * FROM (
|
||||
SELECT * FROM bm_certificate_read ORDER BY valid_end_date DESC limit 999999999
|
||||
) a GROUP BY a.id_number, a.certificate_id
|
||||
) bcr ON bcr.certificate_id = bct.id
|
||||
LEFT JOIN pm_worker bw ON bw.id_number = bcr.id_number AND bw.is_active = '1'
|
||||
LEFT JOIN bm_worker_ein_pro_record bweh ON bweh.worker_id = bw.id AND bweh.is_active = '1'
|
||||
WHERE bct.is_hidden = '0' AND bct.is_active = '1'
|
||||
<if test="name != '' and name != null">
|
||||
AND (bct.work_type like concat('%',#{name},'%') OR bct.neaten_work_operation like concat('%',#{name},'%'))
|
||||
</if>
|
||||
GROUP BY bct.work_type,
|
||||
bct.neaten_work_operation
|
||||
) a
|
||||
GROUP BY name
|
||||
</select>
|
||||
<select id="getTreeDataTypeTwo"
|
||||
resultType="com.bonus.bmw.domain.vo.CertificateStatisticsBean">
|
||||
SELECT
|
||||
bct.id AS id,
|
||||
bct.work_type AS name,
|
||||
bct.neaten_work_operation AS neatenWorkOperation,
|
||||
CONCAT(bct.neaten_work_operation,'(',COUNT(DISTINCT bw.id_number), ')') AS title
|
||||
FROM
|
||||
bm_certificate_type_auto bct
|
||||
LEFT JOIN (
|
||||
SELECT * FROM (
|
||||
SELECT * FROM bm_certificate_read ORDER BY valid_end_date DESC limit 999999999
|
||||
) a GROUP BY a.id_number, a.certificate_id
|
||||
) bcr ON bcr.certificate_id = bct.id
|
||||
LEFT JOIN pm_worker bw ON bw.id_number = bcr.id_number AND bw.is_active = '1'
|
||||
LEFT JOIN bm_worker_ein_pro_record bweh ON bweh.worker_id = bw.id AND bweh.is_active = '1'
|
||||
WHERE bct.is_hidden = '0' AND bct.is_active = '1'
|
||||
<if test="name != '' and name != null">
|
||||
AND (bct.work_type like concat('%',#{name},'%') OR bct.neaten_work_operation like concat('%',#{name},'%'))
|
||||
</if>
|
||||
GROUP BY bct.`neaten_work_operation`
|
||||
</select>
|
||||
<select id="getTreeDataProOne"
|
||||
resultType="com.bonus.bmw.domain.vo.CertificateStatisticsBean">
|
||||
SELECT
|
||||
po.id AS id,
|
||||
po.main_pro_name AS NAME,
|
||||
COUNT( bweh.id_number ) AS total,
|
||||
CONCAT( po.main_pro_name, '(', COUNT( bweh.id_number ), ')' ) AS title,
|
||||
'2' AS nodeType
|
||||
FROM
|
||||
pm_main_project po
|
||||
LEFT JOIN pm_project bp ON bp.main_pro_id = po.id
|
||||
AND bp.is_active = '1'
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
bweh.pro_id,
|
||||
bw.id_number,
|
||||
bct.work_type,
|
||||
bct.`neaten_work_operation`,
|
||||
bct.is_hidden,
|
||||
bct.is_active
|
||||
FROM
|
||||
bm_worker_ein_pro_record bweh
|
||||
LEFT JOIN pm_worker bw ON bw.id = bweh.worker_id AND bw.is_active = '1'
|
||||
INNER JOIN ( SELECT * FROM ( SELECT * FROM bm_certificate_read ORDER BY valid_end_date DESC LIMIT 999999999 ) a
|
||||
GROUP BY a.id_number, a.certificate_id ) bcr ON bw.id_number = bcr.id_number
|
||||
INNER JOIN bm_certificate_type_auto bct ON bcr.certificate_id = bct.id
|
||||
AND bct.is_hidden = '0'
|
||||
AND bct.is_active = '1'
|
||||
WHERE
|
||||
bweh.is_active = '1'
|
||||
GROUP BY
|
||||
bcr.id_number,
|
||||
bct.`neaten_work_operation`
|
||||
) bweh ON bp.id = bweh.pro_id
|
||||
WHERE
|
||||
po.is_active = '1'
|
||||
<if test="name != '' and name != null">
|
||||
AND (po.`main_pro_name` like concat('%',#{name},'%') OR bp.`pro_name` like concat('%',#{name},'%'))
|
||||
</if>
|
||||
GROUP BY po.id
|
||||
</select>
|
||||
<select id="getTreeDataProTwo"
|
||||
resultType="com.bonus.bmw.domain.vo.CertificateStatisticsBean">
|
||||
SELECT
|
||||
bp.id AS id,
|
||||
bp.pro_name AS name,
|
||||
po.id AS pid,
|
||||
CONCAT( bp.pro_name, '(', COUNT( bweh.id_number ), ')' ) AS title,
|
||||
'3' AS nodeType
|
||||
FROM
|
||||
pm_main_project po
|
||||
LEFT JOIN pm_project bp ON bp.main_pro_id = po.id
|
||||
AND bp.is_active = '1'
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
bweh.pro_id,
|
||||
bw.id_number,
|
||||
bct.work_type,
|
||||
bct.`neaten_work_operation`
|
||||
FROM
|
||||
bm_worker_ein_pro_record bweh
|
||||
LEFT JOIN pm_worker bw ON bw.id = bweh.worker_id AND bw.is_active = '1'
|
||||
INNER JOIN (
|
||||
SELECT * FROM (
|
||||
SELECT * FROM bm_certificate_read ORDER BY valid_end_date DESC limit 999999999
|
||||
) a GROUP BY a.id_number, a.certificate_id
|
||||
) bcr ON bw.id_number = bcr.id_number
|
||||
INNER JOIN bm_certificate_type_auto bct ON bcr.certificate_id = bct.id
|
||||
AND bct.is_hidden = '0'
|
||||
AND bct.is_active = '1'
|
||||
WHERE
|
||||
bweh.is_active = '1'
|
||||
GROUP BY bcr.id_number,bct.`neaten_work_operation`
|
||||
) bweh ON bp.id = bweh.pro_id
|
||||
WHERE po.is_active = '1'
|
||||
AND bp.id IS NOT NULL
|
||||
AND bp.is_active = '1'
|
||||
<if test="name != '' and name != null">
|
||||
AND (po.`main_pro_name` like concat('%',#{name},'%') OR bp.`pro_name` like concat('%',#{name},'%'))
|
||||
</if>
|
||||
GROUP BY
|
||||
bp.id
|
||||
</select>
|
||||
|
||||
<select id="getPost" resultType="com.bonus.bmw.domain.vo.CertificateStatisticsBean">
|
||||
SELECT id AS id,
|
||||
name
|
||||
FROM sys_dic_detail
|
||||
WHERE dic_type = '3'
|
||||
AND is_active = '1'
|
||||
</select>
|
||||
|
||||
<select id="getListWarning" resultType="com.bonus.bmw.domain.vo.CertificateStatisticsBean">
|
||||
SELECT
|
||||
*
|
||||
FROM(
|
||||
SELECT
|
||||
bw.name AS username,
|
||||
bcr.id_number AS idNumber,
|
||||
bweh.post_name AS postName,
|
||||
bct.work_type AS workType,
|
||||
bct.work_operation AS workOperation,
|
||||
bcr.reality_review_date AS reviewDate,
|
||||
bcr.valid_start_date AS validStartDate,
|
||||
bcr.valid_end_date AS validEndDate,
|
||||
bcr.issuing_authority AS issuingAuthority,
|
||||
bcr.certificate_photo AS certificatePhoto,
|
||||
CONCAT( bcr.valid_start_date, '~', bcr.valid_end_date ) AS validityData,
|
||||
if((bcr.valid_start_date < CURRENT_DATE AND bcr.valid_end_date > CURRENT_DATE), '有效', '失效') AS
|
||||
certificateStatus,
|
||||
bw.PHONE,
|
||||
bweh.EIN_TIME as einTime,
|
||||
bweh.EXIT_TIME as exitTime,
|
||||
CASE
|
||||
WHEN STR_TO_DATE(bcr.valid_end_date, '%Y-%m-%d') < CURDATE() THEN '已过期'
|
||||
WHEN STR_TO_DATE(bcr.valid_end_date, '%Y-%m-%d') BETWEEN DATE_FORMAT(CURDATE(), '%Y-%m-01') AND
|
||||
LAST_DAY(CURDATE()) THEN '当月过期'
|
||||
WHEN STR_TO_DATE(bcr.valid_end_date, '%Y-%m-%d') > CURDATE()
|
||||
AND STR_TO_DATE(bcr.valid_end_date, '%Y-%m-%d') <= DATE_ADD(CURDATE(), INTERVAL 3 MONTH) THEN '即将过期'
|
||||
ELSE '正常'
|
||||
END AS riskWarning
|
||||
FROM
|
||||
bm_certificate_type_auto bct
|
||||
LEFT JOIN (
|
||||
SELECT * FROM (
|
||||
SELECT * FROM bm_certificate_read ORDER BY valid_end_date DESC limit 999999999
|
||||
) a GROUP BY a.id_number, a.certificate_id
|
||||
) bcr ON bcr.certificate_id = bct.id
|
||||
LEFT JOIN pm_worker bw ON bw.id_number = bcr.id_number AND bw.is_active = '1'
|
||||
LEFT JOIN bm_worker_ein_pro_record bweh ON bweh.worker_id = bw.id AND bweh.is_active = '1'
|
||||
LEFT JOIN pm_project bp ON bp.id = bweh.pro_id
|
||||
left JOIN pm_main_project po ON po.id = bp.main_pro_id
|
||||
WHERE bct.is_hidden = '0'
|
||||
AND bct.is_active = '1'
|
||||
AND SUBSTRING(bcr.valid_end_date, 1, 7) BETWEEN #{startTime} AND #{endTime}
|
||||
<if test="onState == 1 or onState == '1'">
|
||||
AND bweh.EXIT_TIME is null
|
||||
</if>
|
||||
|
||||
<if test="onState == 2 or onState == '2'">
|
||||
AND bweh.EXIT_TIME is not null
|
||||
</if>
|
||||
GROUP BY bcr.id_number,bct.neaten_work_operation
|
||||
) aa
|
||||
<where>
|
||||
<if test="riskWarning != '' and riskWarning != null">
|
||||
AND riskWarning = #{riskWarning}
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="getCategoryChart" resultType="com.bonus.bmw.domain.vo.CertificateStatisticsBean">
|
||||
SELECT id,
|
||||
`name`,
|
||||
sum(title) AS total,
|
||||
CONCAT(`name`, '(', sum(title), ')') AS title
|
||||
FROM (SELECT bct.id AS id,
|
||||
bct.work_type AS NAME,
|
||||
COUNT(DISTINCT bw.id_number) AS title
|
||||
FROM bm_certificate_type_auto bct
|
||||
LEFT JOIN (SELECT *
|
||||
FROM (SELECT *
|
||||
FROM bm_certificate_read
|
||||
ORDER BY valid_end_date DESC limit 999999999) a
|
||||
GROUP BY a.id_number, a.certificate_id) bcr ON bcr.certificate_id = bct.id
|
||||
LEFT JOIN pm_worker bw ON bw.id_number = bcr.id_number AND bw.is_active = '1'
|
||||
LEFT JOIN bm_worker_ein_pro_record bweh
|
||||
ON bweh.worker_id = bw.id AND bweh.is_active = '1'
|
||||
WHERE bct.is_hidden = '0'
|
||||
AND bct.is_active = '1'
|
||||
|
||||
GROUP BY bct.work_type,
|
||||
bct.neaten_work_operation) a
|
||||
GROUP BY name
|
||||
ORDER BY total DESC LIMIT 0 , 3
|
||||
</select>
|
||||
<select id="getStatusChart" resultType="com.bonus.bmw.domain.vo.CertificateStatisticsBean">
|
||||
SELECT (SELECT COALESCE(SUM(total), 0)
|
||||
FROM (SELECT id,
|
||||
`name`,
|
||||
SUM(title) AS total,
|
||||
CONCAT(`name`, '(', SUM(title), ')') AS title
|
||||
FROM (SELECT bct.id AS id,
|
||||
bct.work_type AS NAME,
|
||||
COUNT(DISTINCT bw.id_number) AS title
|
||||
FROM bm_certificate_type_auto bct
|
||||
LEFT JOIN (SELECT *
|
||||
FROM (SELECT *
|
||||
FROM bm_certificate_read bcr
|
||||
WHERE STR_TO_DATE(bcr.valid_end_date, '%Y-%m-%d') > CURDATE()
|
||||
AND STR_TO_DATE(bcr.valid_end_date, '%Y-%m-%d')<=
|
||||
DATE_ADD(CURDATE(), INTERVAL 3 MONTH)
|
||||
ORDER BY valid_end_date DESC LIMIT 999999999) a
|
||||
GROUP BY a.id_number, a.certificate_id) bcr
|
||||
ON bcr.certificate_id = bct.id
|
||||
LEFT JOIN pm_worker bw ON bw.id_number = bcr.id_number AND bw.is_active = '1'
|
||||
LEFT JOIN bm_worker_ein_pro_record bweh
|
||||
ON bweh.worker_id = bw.id AND bweh.is_active = '1'
|
||||
WHERE bct.is_hidden = '0'
|
||||
AND bct.is_active = '1'
|
||||
GROUP BY bct.work_type, bct.neaten_work_operation) a
|
||||
GROUP BY `name`) aa) AS effective,
|
||||
|
||||
(SELECT COALESCE(SUM(total), 0)
|
||||
FROM (SELECT id,
|
||||
`name`,
|
||||
SUM(title) AS total,
|
||||
CONCAT(`name`, '(', SUM(title), ')') AS title
|
||||
FROM (SELECT bct.id AS id,
|
||||
bct.work_type AS NAME,
|
||||
COUNT(DISTINCT bw.id_number) AS title
|
||||
FROM bm_certificate_type_auto bct
|
||||
LEFT JOIN (SELECT *
|
||||
FROM (SELECT *
|
||||
FROM bm_certificate_read bcr
|
||||
WHERE STR_TO_DATE(bcr.valid_end_date, '%Y-%m-%d') < CURDATE()
|
||||
ORDER BY valid_end_date DESC LIMIT 999999999) a
|
||||
GROUP BY a.id_number, a.certificate_id) bcr
|
||||
ON bcr.certificate_id = bct.id
|
||||
LEFT JOIN pm_worker bw ON bw.id_number = bcr.id_number AND bw.is_active = '1'
|
||||
LEFT JOIN bm_worker_ein_pro_record bweh
|
||||
ON bweh.worker_id = bw.id AND bweh.is_active = '1'
|
||||
WHERE bct.is_hidden = '0'
|
||||
AND bct.is_active = '1'
|
||||
GROUP BY bct.work_type, bct.neaten_work_operation) a
|
||||
GROUP BY `name`) bb) AS beOverdue,
|
||||
|
||||
(SELECT COALESCE(SUM(total), 0)
|
||||
FROM (SELECT id,
|
||||
`name`,
|
||||
SUM(title) AS total,
|
||||
CONCAT(`name`, '(', SUM(title), ')') AS title
|
||||
FROM (SELECT bct.id AS id,
|
||||
bct.work_type AS NAME,
|
||||
COUNT(DISTINCT bw.id_number) AS title
|
||||
FROM bm_certificate_type_auto bct
|
||||
LEFT JOIN (SELECT *
|
||||
FROM (SELECT *
|
||||
FROM bm_certificate_read bcr
|
||||
WHERE STR_TO_DATE(bcr.valid_end_date, '%Y-%m-%d') > CURDATE()
|
||||
ORDER BY valid_end_date DESC LIMIT 999999999) a
|
||||
GROUP BY a.id_number, a.certificate_id) bcr
|
||||
ON bcr.certificate_id = bct.id
|
||||
LEFT JOIN pm_worker bw ON bw.id_number = bcr.id_number AND bw.is_active = '1'
|
||||
LEFT JOIN bm_worker_ein_pro_record bweh
|
||||
ON bweh.worker_id = bw.id AND bweh.is_active = '1'
|
||||
WHERE bct.is_hidden = '0'
|
||||
AND bct.is_active = '1'
|
||||
GROUP BY bct.work_type, bct.neaten_work_operation) a
|
||||
GROUP BY `name`) cc) AS expiringSoon
|
||||
</select>
|
||||
|
||||
<select id="getWarning" resultType="com.bonus.bmw.domain.vo.CertificateStatisticsBean">
|
||||
SELECT bw.`NAME` as username,
|
||||
bb.`NAME`,
|
||||
bb.valid_end_date as validEndDate,
|
||||
bw.PHONE
|
||||
FROM pm_worker bw
|
||||
LEFT JOIN (SELECT *
|
||||
FROM bm_certificate_read a
|
||||
LEFT JOIN bm_certificate_type_auto b on a.certificate_id = b.id
|
||||
WHERE valid_end_date = DATE_ADD(CURDATE(), INTERVAL 3 MONTH )
|
||||
OR valid_end_date = DATE_ADD(CURDATE(), INTERVAL 6 MONTH )
|
||||
GROUP BY id_number,
|
||||
certificate_id) bb ON bw.ID_NUMBER = bb.id_number
|
||||
WHERE bb.ID_NUMBER is not null
|
||||
</select>
|
||||
|
||||
<select id="getReexamine" resultType="com.bonus.bmw.domain.vo.CertificateStatisticsBean">
|
||||
SELECT bw.`NAME` as username,
|
||||
bb.`NAME`,
|
||||
bb.reality_review_date as reviewDate,
|
||||
bw.PHONE
|
||||
FROM pm_worker bw
|
||||
LEFT JOIN (SELECT *
|
||||
FROM bm_certificate_read a
|
||||
LEFT JOIN bm_certificate_type_auto b on a.certificate_id = b.id
|
||||
WHERE reality_review_date = DATE_ADD(CURDATE(), INTERVAL 3 MONTH )
|
||||
OR reality_review_date = DATE_ADD(CURDATE(), INTERVAL 6 MONTH )
|
||||
GROUP BY id_number,
|
||||
certificate_id) bb ON bw.ID_NUMBER = bb.id_number
|
||||
WHERE bb.ID_NUMBER is not null
|
||||
</select>
|
||||
</mapper>
|
||||
Loading…
Reference in New Issue