Commit 27e184c9 authored by hcing's avatar hcing

feat(tcm): 风险报送 接口开发

parent 62e2ffcf
package com.yeejoin.amos.boot.module.tcm.api.dto;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
......@@ -60,4 +61,7 @@ public class RiskProcessesDto extends BaseDto {
@ApiModelProperty(value = "创建人")
private String createUserName;
@ApiModelProperty(value = "风险处置单位/监管单位")
private String riskDisposalUnit;
}
package com.yeejoin.amos.boot.module.tcm.api.dto;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import com.yeejoin.amos.boot.module.tcm.api.entity.RiskProcesses;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import java.util.List;
/**
* 风险报送表
......@@ -16,17 +18,20 @@ import java.util.Date;
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value="RiskReportDto", description="风险报送表")
public class RiskReportDto extends BaseDto {
@ApiModel(value = "RiskReportDto", description = "风险报送表")
public class RiskReportDto extends BaseDto {
private static final long serialVersionUID = 1L;
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "报送编号")
private String reportNo;
@ApiModelProperty(value = "风险类型")
private String riskType;
@ApiModelProperty(value = "风险类型code")
private String riskTypeCode;
@ApiModelProperty(value = "风险类型名称")
private String riskTypeName;
@ApiModelProperty(value = "报送单位seq")
private String reportCompanySeq;
......@@ -103,4 +108,22 @@ public class RiskReportDto extends BaseDto {
@ApiModelProperty(value = "创建人")
private String createUserName;
@ApiModelProperty(value = "登录人所在单位类型/监管supervision/企业company")
private String unitType;
@ApiModelProperty(value = "暂存or提交标志")
private Boolean submitFlag;
@ApiModelProperty(value = "报送单位Name-搜索用")
private String reportCompanyNameWithSearch;
@ApiModelProperty(value = "风险企业")
private String riskCompany;
@ApiModelProperty(value = "风险处置单位")
private String riskDisposalUnit;
@ApiModelProperty(value = "风险处置单位")
private List<RiskProcesses> riskProcesses;
}
......@@ -2,10 +2,9 @@ package com.yeejoin.amos.boot.module.tcm.api.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import org.typroject.tyboot.core.rdbms.orm.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import lombok.*;
import java.util.Date;
/**
......@@ -15,8 +14,10 @@ import java.util.Date;
* @date 2025-08-08
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("tzs_risk_processes")
public class RiskProcesses extends BaseEntity {
......
......@@ -2,10 +2,8 @@ package com.yeejoin.amos.boot.module.tcm.api.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.typroject.tyboot.core.rdbms.orm.entity.BaseEntity;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import lombok.*;
import java.util.Date;
......@@ -16,8 +14,10 @@ import java.util.Date;
* @date 2025-08-08
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("tzs_risk_report")
public class RiskReport extends BaseEntity {
......@@ -30,10 +30,16 @@ public class RiskReport extends BaseEntity {
private String reportNo;
/**
* 风险类型
* 风险类型code 平台字典值 RISK_TYPE
*/
@TableField("risk_type")
private String riskType;
@TableField("risk_type_code")
private String riskTypeCode;
/**
* 风险类型name 平台字典值 RISK_TYPE
*/
@TableField("risk_type_name")
private String riskTypeName;
/**
* 报送单位seq
......
package com.yeejoin.amos.boot.module.tcm.api.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 处置方式-风险报送使用
*/
@Getter
@AllArgsConstructor
public enum DisposalMethodEnums {
CONFIRM_DISPOSAL("10001", "确认已处置", "情况说明"),
NOT_NEED_DISPOSAL("10002", "无需处置", "情况说明"),
ISSUED_DISPOSAL("10003", "下发整改", "整改意见"),
REPORT_DISPOSAL("10004", "整改上报", "整改情况"),
REPORT_FOR_WARDE("10005", "转办", "情况说明");
private final String code;
private final String name;
private final String title;
}
package com.yeejoin.amos.boot.module.tcm.api.enums;
import lombok.Getter;
/**
* 风险报告处理状态枚举
*/
@Getter
public enum RiskReportProcessStatus {
DRAFT("草稿"),
TO_HANDLE("待处理"),
TO_RECTIFY("待整改"),
TO_CONFIRM("待确认"),
COMPLETED("已办理");
private final String name;
RiskReportProcessStatus(String name) {
this.name = name;
}
/**
* 根据中文名称获取枚举
*/
public static RiskReportProcessStatus fromName(String name) {
for (RiskReportProcessStatus status : values()) {
if (status.name.equals(name)) {
return status;
}
}
return null;
}
}
package com.yeejoin.amos.boot.module.tcm.api.enums;
import lombok.Getter;
/**
* 风险报告状态枚举
*/
@Getter
public enum RiskReportStage {
/**
* 草稿状态
*/
DRAFT("草稿"),
/**
* 监管处置
*/
SUPERVISION("监管处置"),
/**
* 企业整改
*/
COMPANY_RECTIFICATION("企业整改");
private final String name;
RiskReportStage(String name) {
this.name = name;
}
/**
* 根据中文名称获取枚举
*/
public static RiskReportStage fromName(String name) {
for (RiskReportStage status : values()) {
if (status.name.equals(name)) {
return status;
}
}
return null;
}
}
\ No newline at end of file
package com.yeejoin.amos.boot.module.tcm.api.enums;
public enum RiskUnitType {
DISPOSAL("处置单位"), // 处置单位
RECTIFICATION("整改单位"); // 整改单位
private final String label;
RiskUnitType(String label) {
this.label = label;
}
public String getLabel() {
return label;
}
/**
* 通过中文名称查找枚举
*/
public static RiskUnitType fromLabel(String label) {
for (RiskUnitType type : values()) {
if (type.label.equals(label)) {
return type;
}
}
throw new IllegalArgumentException("未知的单位类型: " + label);
}
}
......@@ -2,8 +2,10 @@ package com.yeejoin.amos.boot.module.tcm.api.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.tcm.api.dto.RiskReportDto;
import com.yeejoin.amos.boot.module.tcm.api.entity.RiskReport;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.Map;
......@@ -18,4 +20,12 @@ public interface RiskReportMapper extends BaseMapper<RiskReport> {
Page<Map<String, String>> allAgencyWithPage(@Param("page") Page<Map<String, String>> page,
@Param("isAdmin") boolean isAdmin,
@Param("companyName") String companyName);
Page<RiskReport> queryForRiskReportPage(@Param("page") Page<RiskReport> page,
@Param("dto") RiskReportDto reportDto);
Map<String, String> getCompanyBySeq(@Param("companySeq") String companySeq);
@Select("select risk_disposal_unit_org_code from tzs_risk_report where sequence_nbr = #{sequenceNbr}")
String getRiskDisposalUnitOrgCode(Long sequenceNbr);
}
......@@ -2,6 +2,9 @@ package com.yeejoin.amos.boot.module.tcm.api.service;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.tcm.api.dto.RiskProcessesDto;
import com.yeejoin.amos.boot.module.tcm.api.dto.RiskReportDto;
import com.yeejoin.amos.boot.module.tcm.api.entity.RiskReport;
import com.yeejoin.amos.feign.systemctl.model.DictionarieValueModel;
import java.util.List;
......@@ -20,4 +23,14 @@ public interface IRiskReportService {
JSONObject superviseOrgForEnter(String enterSeq);
List<DictionarieValueModel> riskTypeByPermission();
Page<RiskReport> queryForRiskReportPage(RiskReportDto reportDto, int current, int size);
RiskReport saveOrUpdateReport(RiskReportDto dto);
RiskReportDto selectRiskDetail(Long sequenceNbr);
Boolean forWardeBySeq(Long riskReportSeq, RiskProcessesDto riskProcessesDto);
List<String> permissionButton(Long sequenceNbr);
}
......@@ -2,6 +2,15 @@
<!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.tcm.api.mapper.RiskReportMapper">
<select id="getCompanyBySeq" resultType="java.util.Map">
SELECT sequence_nbr AS "companySeq",
company_code AS "companyCode",
company_name AS "companyName",
org_code AS "companyOrgCode"
FROM privilege_company
WHERE sequence_nbr = #{companySeq}
</select>
<select id="allAgencyWithPage" resultType="java.util.Map">
SELECT
sequence_nbr AS "key",
......@@ -21,4 +30,91 @@
sequence_nbr
</select>
<sql id="baseSelectForRiskReport">
SELECT sequence_nbr,
is_delete,
report_no,
risk_type_code,
risk_type_name,
report_company_seq,
report_company_name,
risk_company_seq,
risk_company_name,
risk_disposal_unit_seq,
risk_disposal_unit_name,
risk_disposal_unit_org_code,
all_risk_disposal_unit_org_code,
risk_equip_record,
operation_user_id,
risk_main_title,
risk_main_content,
report_user_id,
report_user_name,
report_user_phone,
current_stage,
current_status,
end_date,
create_date,
create_user_id
</sql>
<select id="queryForRiskReportPage" resultType="com.yeejoin.amos.boot.module.tcm.api.entity.RiskReport">
select * FROM
(
SELECT * FROM (
-- 风险单位
<include refid="baseSelectForRiskReport"/>
FROM tzs_risk_report AS rr1
WHERE rr1."risk_company_code" = #{dto.riskCompanyCode}
UNION
-- 报送单位(排除草稿)
<include refid="baseSelectForRiskReport"/>
FROM tzs_risk_report AS rr2
WHERE rr2."report_company_code" = #{dto.reportCompanyCode}
AND rr2."current_status" != '草稿'
<!-- 处置单位 -->
<if test='dto.unitType != null and dto.unitType != "" and dto.unitType == "supervision"'>
UNION
<include refid="baseSelectForRiskReport"/>
FROM tzs_risk_report AS rr3
WHERE rr3."all_risk_disposal_unit_org_code" like CONCAT('%', #{dto.riskDisposalUnitOrgCode}, '%')
</if>
<!-- 自己的草稿状态 -->
<if test='dto.createUserId != null and dto.createUserId != ""'>
UNION
<include refid="baseSelectForRiskReport"/>
FROM tzs_risk_report AS rr4
WHERE rr4."create_user_id" = #{dto.createUserId}
AND rr4."current_status" = '草稿'
</if>
) AS temp
<where>
temp."is_delete" = 'f'
<if test="dto.riskTypeCode != null and dto.riskTypeCode != ''">
AND temp."risk_type_code" = #{dto.riskTypeCode}
</if>
<if test="dto.currentStatus != null and dto.currentStatus != ''">
AND temp."current_status" = #{dto.currentStatus}
</if>
<if test="dto.riskMainTitle != null and dto.riskMainTitle != ''">
AND temp."risk_main_title" LIKE CONCAT('%', #{dto.riskMainTitle}, '%')
</if>
<if test="dto.reportCompanyNameWithSearch != null and dto.reportCompanyNameWithSearch != ''">
AND temp."report_company_name" LIKE CONCAT('%', #{dto.reportCompanyNameWithSearch}, '%')
</if>
<if test="dto.riskCompanyName != null and dto.riskCompanyName != ''">
AND temp."risk_company_name" LIKE CONCAT('%', #{dto.riskCompanyName}, '%')
</if>
<if test="dto.riskDisposalUnitName != null and dto.riskDisposalUnitName != ''">
AND temp."risk_disposal_unit_name" LIKE CONCAT('%', #{dto.riskDisposalUnitName}, '%')
</if>
</where>
) as t
ORDER BY t."create_date" DESC
</select>
</mapper>
......@@ -3,6 +3,8 @@ package com.yeejoin.amos.boot.module.tcm.biz.controller;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.module.tcm.api.dto.RiskProcessesDto;
import com.yeejoin.amos.boot.module.tcm.api.dto.RiskReportDto;
import com.yeejoin.amos.boot.module.tcm.api.entity.RiskReport;
import com.yeejoin.amos.boot.module.tcm.api.service.IRiskReportService;
import com.yeejoin.amos.feign.systemctl.model.DictionarieValueModel;
......@@ -15,7 +17,6 @@ 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.HttpServletRequest;
import java.util.List;
import java.util.Map;
......@@ -67,47 +68,34 @@ public class RiskReportController extends BaseController {
}
/**
* 新增
* 风险报送列表分页查询
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/save")
@ApiOperation(httpMethod = "POST", value = "新增", notes = "新增")
public ResponseModel<RiskReport> save(@RequestBody RiskReport entity) {
// entity = riskReportServiceImpl.createWithModel(entity);
return ResponseHelper.buildResponse(entity);
}
/**
* 根据sequenceNbr更新
*
* @param sequenceNbr 主键
* @return
* @param current 当前页
* @param size 每页大小
* @return result
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PutMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "PUT", value = "根据sequenceNbr更新", notes = "根据sequenceNbr更新")
public ResponseModel<RiskReport> updateBySequenceNbrRiskReport(@RequestBody RiskReport entity, @PathVariable(value = "sequenceNbr") Long sequenceNbr) {
entity.setSequenceNbr(sequenceNbr);
return ResponseHelper.buildResponse(null);
@PostMapping(value = "/page")
@ApiOperation(httpMethod = "POST", value = "分页查询", notes = "分页查询")
public ResponseModel<Page<RiskReport>> queryForRiskReportPage(@RequestParam(value = "current") int current,
@RequestParam(value = "size") int size,
@RequestBody RiskReportDto reportDto) {
;
return ResponseHelper.buildResponse(iRiskReportService.queryForRiskReportPage(reportDto, current, size));
}
/**
* 根据sequenceNbr删除
*
* @param sequenceNbr 主键
* @return
* 风险上报 新增
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@DeleteMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "DELETE", value = "根据sequenceNbr删除", notes = "根据sequenceNbr删除")
public ResponseModel<Boolean> deleteBySequenceNbr(HttpServletRequest request, @PathVariable(value = "sequenceNbr") Long sequenceNbr) {
return ResponseHelper.buildResponse(null);
@PostMapping(value = "/saveOrUpdateReport")
@ApiOperation(httpMethod = "POST", value = "风险上报", notes = "风险上报")
public ResponseModel<RiskReport> saveOrUpdateReport(@RequestBody RiskReportDto dto) {
return ResponseHelper.buildResponse(iRiskReportService.saveOrUpdateReport(dto));
}
/**
* 根据sequenceNbr查询
* 根据sequenceNbr查询详情
*
* @param sequenceNbr 主键
* @return
......@@ -115,37 +103,30 @@ public class RiskReportController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "GET", value = "根据sequenceNbr查询单个", notes = "根据sequenceNbr查询单个")
public ResponseModel<RiskReport> selectOne(@PathVariable Long sequenceNbr) {
return ResponseHelper.buildResponse(null);
public ResponseModel<RiskReportDto> selectRiskDetail(@PathVariable Long sequenceNbr) {
return ResponseHelper.buildResponse(iRiskReportService.selectRiskDetail(sequenceNbr));
}
/**
* 列表分页查询
*
* @param current 当前页
* @param current 每页大小
* @return
* 转办
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/page")
@ApiOperation(httpMethod = "GET", value = "分页查询", notes = "分页查询")
public ResponseModel<Page<RiskReport>> queryForPage(@RequestParam(value = "current") int current, @RequestParam
(value = "size") int size) {
Page<RiskReport> page = new Page<RiskReport>();
page.setCurrent(current);
page.setSize(size);
return ResponseHelper.buildResponse(null);
@PutMapping(value = "/forWarde/{sequenceNbr}")
@ApiOperation(httpMethod = "PUT", value = "转办", notes = "转办")
public ResponseModel<Boolean> forWardeBySeq(@PathVariable Long sequenceNbr,
@RequestBody RiskProcessesDto riskProcessesDto) {
return ResponseHelper.buildResponse(iRiskReportService.forWardeBySeq(sequenceNbr, riskProcessesDto));
}
/**
* 列表全部数据查询
*
* @return
* 风险详情中的按钮权限(保存/保存提交/转办/处置/提交整改)
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET", value = "列表全部数据查询", notes = "列表全部数据查询")
@GetMapping(value = "/list")
public ResponseModel<List<RiskReport>> selectForList() {
return ResponseHelper.buildResponse(null);
@PutMapping(value = "/permissionButton/{sequenceNbr}")
@ApiOperation(httpMethod = "PUT", value = "风险详情中的按钮权限", notes = "风险详情中的按钮权限")
public ResponseModel<List<String>> permissionButton(@PathVariable(value = "sequenceNbr") Long sequenceNbr) {
return ResponseHelper.buildResponse(iRiskReportService.permissionButton(sequenceNbr));
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment