From b9ae62b1202b287f3075ab451ad69017724deecd Mon Sep 17 00:00:00 2001 From: lroyia Date: Tue, 10 Feb 2026 16:54:35 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=A7=E6=B3=95=E7=B3=BB=E7=BB=9F=E5=AF=B9?= =?UTF-8?q?=E6=8E=A5=E6=95=B0=E6=8D=AE=E6=B8=85=E6=B4=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/PenaltySecurityController.java | 96 ++++++++++++++- .../security/entity/PenaltyCaseInfo.java | 109 ++++++++++++++++++ .../aiccs/security/entity/PenaltyEntInfo.java | 94 +++++++++++++++ .../entity/dto/PenaltyCaseInfoRequestDto.java | 2 +- .../mapper/PenaltyCaseInfoMapper.java | 12 ++ .../security/mapper/PenaltyEntInfoMapper.java | 12 ++ .../service/IPenaltyCaseInfoService.java | 12 ++ .../service/IPenaltyEntInfoService.java | 12 ++ .../impl/PenaltyCaseInfoServiceImpl.java | 16 +++ .../impl/PenaltyEntInfoServiceImpl.java | 16 +++ 10 files changed, 379 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/chinaweal/aiccs/aiccs/security/entity/PenaltyCaseInfo.java create mode 100644 src/main/java/com/chinaweal/aiccs/aiccs/security/entity/PenaltyEntInfo.java create mode 100644 src/main/java/com/chinaweal/aiccs/aiccs/security/mapper/PenaltyCaseInfoMapper.java create mode 100644 src/main/java/com/chinaweal/aiccs/aiccs/security/mapper/PenaltyEntInfoMapper.java create mode 100644 src/main/java/com/chinaweal/aiccs/aiccs/security/service/IPenaltyCaseInfoService.java create mode 100644 src/main/java/com/chinaweal/aiccs/aiccs/security/service/IPenaltyEntInfoService.java create mode 100644 src/main/java/com/chinaweal/aiccs/aiccs/security/service/impl/PenaltyCaseInfoServiceImpl.java create mode 100644 src/main/java/com/chinaweal/aiccs/aiccs/security/service/impl/PenaltyEntInfoServiceImpl.java diff --git a/src/main/java/com/chinaweal/aiccs/aiccs/security/controller/PenaltySecurityController.java b/src/main/java/com/chinaweal/aiccs/aiccs/security/controller/PenaltySecurityController.java index 126cbe8..22bc2ec 100644 --- a/src/main/java/com/chinaweal/aiccs/aiccs/security/controller/PenaltySecurityController.java +++ b/src/main/java/com/chinaweal/aiccs/aiccs/security/controller/PenaltySecurityController.java @@ -3,6 +3,8 @@ package com.chinaweal.aiccs.aiccs.security.controller; import com.alibaba.fastjson.JSONObject; import com.chinaweal.aiccs.aiccs.security.entity.PenaltyAcceptLog; import com.chinaweal.aiccs.aiccs.security.entity.PenaltyAppInfo; +import com.chinaweal.aiccs.aiccs.security.entity.PenaltyCaseInfo; +import com.chinaweal.aiccs.aiccs.security.entity.PenaltyEntInfo; import com.chinaweal.aiccs.aiccs.security.entity.dto.LoginInfoParamDto; import com.chinaweal.aiccs.aiccs.security.entity.dto.PenaltyCaseInfoEntInfoDto; import com.chinaweal.aiccs.aiccs.security.entity.dto.PenaltyCaseInfoRequestDto; @@ -11,7 +13,11 @@ import com.chinaweal.aiccs.aiccs.security.entity.vo.SecurityResultVO; import com.chinaweal.aiccs.aiccs.security.enums.ErrorCode; import com.chinaweal.aiccs.aiccs.security.service.IPenaltyAcceptLogService; import com.chinaweal.aiccs.aiccs.security.service.IPenaltyAppInfoService; +import com.chinaweal.aiccs.aiccs.security.service.IPenaltyCaseInfoService; +import com.chinaweal.aiccs.aiccs.security.service.IPenaltyEntInfoService; +import com.chinaweal.aiccs.common.constant.CommonConstants; import com.chinaweal.aiccs.common.constant.Constant; +import com.chinaweal.aiccs.common.util.DateUtils; import com.chinaweal.aiccs.common.util.StringUtils; import com.chinaweal.aiccs.org.entity.TUsers; import com.chinaweal.aiccs.org.service.TUsersService; @@ -20,7 +26,9 @@ import org.apache.commons.collections.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.time.LocalDate; import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; /** * 批量吊销对外接口 @@ -39,6 +47,10 @@ public class PenaltySecurityController { private IPenaltyAppInfoService penaltyAppInfoService; @Autowired private IPenaltyAcceptLogService penaltyAcceptLogService; + @Autowired + private IPenaltyCaseInfoService penaltyCaseInfoService; + @Autowired + private IPenaltyEntInfoService penaltyEntInfoService; /** * 登录 @@ -135,7 +147,89 @@ public class PenaltySecurityController { penaltyAcceptLog.setDataJson(JSONObject.toJSONString(requestDto)); penaltyAcceptLog.setCreateTime(LocalDateTime.now()); penaltyAcceptLogService.save(penaltyAcceptLog); - // TODO: 接收业务处理 accpetid + + // 保存案件信息到PENALTY_CASE_INFO表 + PenaltyCaseInfo penaltyCaseInfo = new PenaltyCaseInfo(); + penaltyCaseInfo.setCaseid(requestDto.getCaseid()); + penaltyCaseInfo.setAcceptid(penaltyAcceptLog.getAcceptId()); + penaltyCaseInfo.setCasename(requestDto.getCasename()); + penaltyCaseInfo.setCaseintroduction(requestDto.getCaseintroduction()); + penaltyCaseInfo.setIllegality(requestDto.getIllegality()); + penaltyCaseInfo.setPenalty(requestDto.getPenalty()); + penaltyCaseInfo.setPenaltydate(LocalDate.parse(requestDto.getPenaltydate(), DateTimeFormatter.ofPattern(DateUtils.DATE_DEFAULT_FORMAT))); + penaltyCaseInfo.setPenaltyorg(requestDto.getPenaltyorg()); + penaltyCaseInfo.setUpdateTime(LocalDateTime.now()); + penaltyCaseInfo.setFlgDeleted(CommonConstants.FALSE_0); + PenaltyCaseInfo byId = penaltyCaseInfoService.getById(penaltyCaseInfo.getCaseid()); + if (byId != null) { + penaltyCaseInfoService.updateById(penaltyCaseInfo); + } else { + penaltyCaseInfo.setCreateTime(LocalDateTime.now()); + penaltyCaseInfoService.save(penaltyCaseInfo); + } + + // 保存吊销主体清单到PENALTY_ENT_INFO表 + for (PenaltyCaseInfoEntInfoDto entInfoDto : requestDto.getPenaltylist()) { + PenaltyEntInfo one = penaltyEntInfoService.lambdaQuery().eq(PenaltyEntInfo::getCaseid, requestDto.getCaseid()) + .eq(PenaltyEntInfo::getPripid, entInfoDto.getPripid()).ne(PenaltyEntInfo::getFlgDeleted, CommonConstants.TRUE_1) + .last("limit 1").one(); + + PenaltyEntInfo penaltyEntInfo = new PenaltyEntInfo(); + penaltyEntInfo.setCaseid(requestDto.getCaseid()); + penaltyEntInfo.setPripid(entInfoDto.getPripid()); + penaltyEntInfo.setUniscid(entInfoDto.getUniscid()); + penaltyEntInfo.setLegal(entInfoDto.getLegal()); + penaltyEntInfo.setEnttype(StringUtils.trimToEmpty(cleanEntTypeCode(entInfoDto.getEnttype()))); + penaltyEntInfo.setCreateTime(LocalDateTime.now()); + penaltyEntInfo.setUpdateTime(LocalDateTime.now()); + penaltyEntInfo.setFlgDeleted("0"); + if (one == null) { + penaltyEntInfoService.save(penaltyEntInfo); + } else { + penaltyEntInfo.setId(one.getId()); + penaltyEntInfoService.updateById(penaltyEntInfo); + } + } + return SecurityResultAcceptVO.success(penaltyAcceptLog.getAcceptId()); } + + /** + * 清洗市场主体类型编码 + * 从"类型中文名(类型编码)"格式中提取纯类型编码 + * 支持多个括号、中文括号和英文括号 + * + * @param enttype 原始市场主体类型字符串 + * @return 清洗后的类型编码,如果无法提取则返回原字符串 + */ + private String cleanEntTypeCode(String enttype) { + if (StringUtils.isBlank(enttype)) { + return enttype; + } + + String str = enttype.trim(); + + // 替换中文括号为英文括号,统一处理 + str = str.replace('(', '(').replace(')', ')'); + + // 找到最后一个左括号 + int lastLeftBracket = str.lastIndexOf('('); + if (lastLeftBracket == -1) { + // 没有找到括号,直接返回原字符串 + return str; + } + + // 找到最后一个左括号对应的右括号 + int lastRightBracket = str.lastIndexOf(')'); + if (lastRightBracket == -1 || lastRightBracket < lastLeftBracket) { + // 没有找到对应的右括号,直接返回原字符串 + return str; + } + + // 提取括号内的内容 + String code = str.substring(lastLeftBracket + 1, lastRightBracket).trim(); + + // 如果提取的内容为空,返回原字符串 + return StringUtils.isBlank(code) ? enttype : code; + } } diff --git a/src/main/java/com/chinaweal/aiccs/aiccs/security/entity/PenaltyCaseInfo.java b/src/main/java/com/chinaweal/aiccs/aiccs/security/entity/PenaltyCaseInfo.java new file mode 100644 index 0000000..20569a1 --- /dev/null +++ b/src/main/java/com/chinaweal/aiccs/aiccs/security/entity/PenaltyCaseInfo.java @@ -0,0 +1,109 @@ +package com.chinaweal.aiccs.aiccs.security.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.chinaweal.aiccs.common.util.DateUtils; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.time.LocalDate; +import java.time.LocalDateTime; + +/** + * 执法系统-案件信息表 + * @author lroyia + * @since 2026/2/10 + **/ +@Data +@Accessors(chain = true) +@TableName("AICCS.PENALTY_CASE_INFO") +@ApiModel("执法系统-案件信息表") +public class PenaltyCaseInfo implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 案件编号 + */ + @TableId(type = IdType.ASSIGN_UUID, value = "CASEID") + @ApiModelProperty("案件编号") + private String caseid; + + /** + * 接收数据时的对接记录ID + */ + @TableField("ACCEPTID") + @ApiModelProperty("接收数据时的对接记录ID") + private String acceptid; + + /** + * 案件名称 + */ + @TableField("CASENAME") + @ApiModelProperty("案件名称") + private String casename; + + /** + * 案由 + */ + @TableField("CASEINTRODUCTION") + @ApiModelProperty("案由") + private String caseintroduction; + + /** + * 违法行为 + */ + @TableField("ILLEGALITY") + @ApiModelProperty("违法行为") + private String illegality; + + /** + * 处罚内容 + */ + @TableField("PENALTY") + @ApiModelProperty("处罚内容") + private String penalty; + + /** + * 处罚决定日期 + */ + @TableField("PENALTYDATE") + @ApiModelProperty("处罚决定日期") + private LocalDate penaltydate; + + /** + * 处罚决定机关 + */ + @TableField("PENALTYORG") + @ApiModelProperty("处罚决定机关") + private String penaltyorg; + + /** + * 创建时间 + */ + @TableField("CREATE_TIME") + @ApiModelProperty("创建时间") + @JsonFormat(pattern = DateUtils.DATETIME_DEFAULT_FORMAT, timezone = "GMT+8") + private LocalDateTime createTime; + + /** + * 更新时间 + */ + @TableField("UPDATE_TIME") + @ApiModelProperty("更新时间") + @JsonFormat(pattern = DateUtils.DATETIME_DEFAULT_FORMAT, timezone = "GMT+8") + private LocalDateTime updateTime; + + /** + * 删除标识(0:正常,1:删除) + */ + @TableField("FLG_DELETED") + @ApiModelProperty("删除标识(0:正常,1:删除)") + private String flgDeleted; +} \ No newline at end of file diff --git a/src/main/java/com/chinaweal/aiccs/aiccs/security/entity/PenaltyEntInfo.java b/src/main/java/com/chinaweal/aiccs/aiccs/security/entity/PenaltyEntInfo.java new file mode 100644 index 0000000..91a229e --- /dev/null +++ b/src/main/java/com/chinaweal/aiccs/aiccs/security/entity/PenaltyEntInfo.java @@ -0,0 +1,94 @@ +package com.chinaweal.aiccs.aiccs.security.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.chinaweal.aiccs.common.util.DateUtils; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * 执法系统-吊销主体清单表 + * @author lroyia + * @since 2026/2/10 + **/ +@Data +@Accessors(chain = true) +@TableName("AICCS.PENALTY_ENT_INFO") +@ApiModel("执法系统-吊销主体清单表") +public class PenaltyEntInfo implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(type = IdType.ASSIGN_UUID, value = "ID") + @ApiModelProperty("主键ID") + private String id; + + /** + * 案件编号(关联PENALTY_CASE_INFO表) + */ + @TableField("CASEID") + @ApiModelProperty("案件编号(关联PENALTY_CASE_INFO表)") + private String caseid; + + /** + * 市场主体身份代码 + */ + @TableField("PRIPID") + @ApiModelProperty("市场主体身份代码") + private String pripid; + + /** + * 统一社会信用代码 + */ + @TableField("UNISCID") + @ApiModelProperty("统一社会信用代码") + private String uniscid; + + /** + * 法定代表人(负责人) + */ + @TableField("LEGAL") + @ApiModelProperty("法定代表人(负责人)") + private String legal; + + /** + * 市场主体类型 + */ + @TableField("ENTTYPE") + @ApiModelProperty("市场主体类型") + private String enttype; + + /** + * 创建时间 + */ + @TableField("CREATE_TIME") + @ApiModelProperty("创建时间") + @JsonFormat(pattern = DateUtils.DATETIME_DEFAULT_FORMAT, timezone = "GMT+8") + private LocalDateTime createTime; + + /** + * 更新时间 + */ + @TableField("UPDATE_TIME") + @ApiModelProperty("更新时间") + @JsonFormat(pattern = DateUtils.DATETIME_DEFAULT_FORMAT, timezone = "GMT+8") + private LocalDateTime updateTime; + + /** + * 删除标识(0:正常,1:删除) + */ + @TableField("FLG_DELETED") + @ApiModelProperty("删除标识(0:正常,1:删除)") + private String flgDeleted; +} \ No newline at end of file diff --git a/src/main/java/com/chinaweal/aiccs/aiccs/security/entity/dto/PenaltyCaseInfoRequestDto.java b/src/main/java/com/chinaweal/aiccs/aiccs/security/entity/dto/PenaltyCaseInfoRequestDto.java index 391997f..b0cc8d6 100644 --- a/src/main/java/com/chinaweal/aiccs/aiccs/security/entity/dto/PenaltyCaseInfoRequestDto.java +++ b/src/main/java/com/chinaweal/aiccs/aiccs/security/entity/dto/PenaltyCaseInfoRequestDto.java @@ -10,7 +10,7 @@ import java.io.Serializable; import java.util.List; /** - * + * 批量吊销接口请求参数 * @author lroyia * @since 2026/1/12 16:56 **/ diff --git a/src/main/java/com/chinaweal/aiccs/aiccs/security/mapper/PenaltyCaseInfoMapper.java b/src/main/java/com/chinaweal/aiccs/aiccs/security/mapper/PenaltyCaseInfoMapper.java new file mode 100644 index 0000000..25a1930 --- /dev/null +++ b/src/main/java/com/chinaweal/aiccs/aiccs/security/mapper/PenaltyCaseInfoMapper.java @@ -0,0 +1,12 @@ +package com.chinaweal.aiccs.aiccs.security.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.chinaweal.aiccs.aiccs.security.entity.PenaltyCaseInfo; + +/** + * 执法系统-案件信息 Mapper + * @author lroyia + * @since 2026/2/10 + **/ +public interface PenaltyCaseInfoMapper extends BaseMapper { +} \ No newline at end of file diff --git a/src/main/java/com/chinaweal/aiccs/aiccs/security/mapper/PenaltyEntInfoMapper.java b/src/main/java/com/chinaweal/aiccs/aiccs/security/mapper/PenaltyEntInfoMapper.java new file mode 100644 index 0000000..0e621cb --- /dev/null +++ b/src/main/java/com/chinaweal/aiccs/aiccs/security/mapper/PenaltyEntInfoMapper.java @@ -0,0 +1,12 @@ +package com.chinaweal.aiccs.aiccs.security.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.chinaweal.aiccs.aiccs.security.entity.PenaltyEntInfo; + +/** + * 执法系统-吊销主体清单 Mapper + * @author lroyia + * @since 2026/2/10 + **/ +public interface PenaltyEntInfoMapper extends BaseMapper { +} \ No newline at end of file diff --git a/src/main/java/com/chinaweal/aiccs/aiccs/security/service/IPenaltyCaseInfoService.java b/src/main/java/com/chinaweal/aiccs/aiccs/security/service/IPenaltyCaseInfoService.java new file mode 100644 index 0000000..ec4eb67 --- /dev/null +++ b/src/main/java/com/chinaweal/aiccs/aiccs/security/service/IPenaltyCaseInfoService.java @@ -0,0 +1,12 @@ +package com.chinaweal.aiccs.aiccs.security.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.chinaweal.aiccs.aiccs.security.entity.PenaltyCaseInfo; + +/** + * 执法系统-案件信息 service + * @author lroyia + * @since 2026/2/10 + **/ +public interface IPenaltyCaseInfoService extends IService { +} \ No newline at end of file diff --git a/src/main/java/com/chinaweal/aiccs/aiccs/security/service/IPenaltyEntInfoService.java b/src/main/java/com/chinaweal/aiccs/aiccs/security/service/IPenaltyEntInfoService.java new file mode 100644 index 0000000..0cadd58 --- /dev/null +++ b/src/main/java/com/chinaweal/aiccs/aiccs/security/service/IPenaltyEntInfoService.java @@ -0,0 +1,12 @@ +package com.chinaweal.aiccs.aiccs.security.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.chinaweal.aiccs.aiccs.security.entity.PenaltyEntInfo; + +/** + * 执法系统-吊销主体清单 service + * @author lroyia + * @since 2026/2/10 + **/ +public interface IPenaltyEntInfoService extends IService { +} \ No newline at end of file diff --git a/src/main/java/com/chinaweal/aiccs/aiccs/security/service/impl/PenaltyCaseInfoServiceImpl.java b/src/main/java/com/chinaweal/aiccs/aiccs/security/service/impl/PenaltyCaseInfoServiceImpl.java new file mode 100644 index 0000000..23683ef --- /dev/null +++ b/src/main/java/com/chinaweal/aiccs/aiccs/security/service/impl/PenaltyCaseInfoServiceImpl.java @@ -0,0 +1,16 @@ +package com.chinaweal.aiccs.aiccs.security.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.chinaweal.aiccs.aiccs.security.entity.PenaltyCaseInfo; +import com.chinaweal.aiccs.aiccs.security.mapper.PenaltyCaseInfoMapper; +import com.chinaweal.aiccs.aiccs.security.service.IPenaltyCaseInfoService; +import org.springframework.stereotype.Service; + +/** + * 执法系统-案件信息 service实现类 + * @author lroyia + * @since 2026/2/10 + **/ +@Service +public class PenaltyCaseInfoServiceImpl extends ServiceImpl implements IPenaltyCaseInfoService { +} \ No newline at end of file diff --git a/src/main/java/com/chinaweal/aiccs/aiccs/security/service/impl/PenaltyEntInfoServiceImpl.java b/src/main/java/com/chinaweal/aiccs/aiccs/security/service/impl/PenaltyEntInfoServiceImpl.java new file mode 100644 index 0000000..07813c3 --- /dev/null +++ b/src/main/java/com/chinaweal/aiccs/aiccs/security/service/impl/PenaltyEntInfoServiceImpl.java @@ -0,0 +1,16 @@ +package com.chinaweal.aiccs.aiccs.security.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.chinaweal.aiccs.aiccs.security.entity.PenaltyEntInfo; +import com.chinaweal.aiccs.aiccs.security.mapper.PenaltyEntInfoMapper; +import com.chinaweal.aiccs.aiccs.security.service.IPenaltyEntInfoService; +import org.springframework.stereotype.Service; + +/** + * 执法系统-吊销主体清单 service实现类 + * @author lroyia + * @since 2026/2/10 + **/ +@Service +public class PenaltyEntInfoServiceImpl extends ServiceImpl implements IPenaltyEntInfoService { +} \ No newline at end of file