From abd9495e830881e23bb518e239f9923f2601f78a Mon Sep 17 00:00:00 2001 From: cc_caijp <1049976610@qq.com> Date: Mon, 12 Jan 2026 10:04:47 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=B8=82=E5=9C=BA=E4=B8=BB=E4=BD=93=E9=99=A4?= =?UTF-8?q?=E5=90=8D=E4=BF=AE=E5=A4=8D=E7=AE=A1=E7=90=86=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../business/service/TSTaskListService.java | 2 + .../service/impl/TSTaskListServiceImpl.java | 8 +- .../EntBaseExpelledInfoController.java | 31 +- .../expelled/entity/ExpelledAuditInfo.java | 22 ++ .../expelled/entity/ExpelledRepairInfo.java | 183 +++++++++++ .../expelled/entity/ExpelledResultInfo.java | 7 + .../mapper/ExpelledRepairInfoMapper.java | 13 + .../service/IExpelledAuditInfoService.java | 6 +- .../service/IExpelledRepairInfoService.java | 45 +++ .../impl/ExpelledAuditInfoServiceImpl.java | 27 +- .../impl/ExpelledRepairInfoServiceImpl.java | 303 ++++++++++++++++++ .../aiccs/aiccs/expelled/vo/AuditInfoVo.java | 45 ++- .../aiccs/expelled/vo/RepairApproveInfo.java | 153 +++++++++ .../aiccs/aiccs/expelled/vo/RepairInfoVo.java | 40 +++ .../common/constant/BaseDataConstant.java | 3 + .../expelled/ExpelledAuditInfoMapper.xml | 9 +- .../expelled/ExpelledRepairInfoMapper.xml | 4 + 17 files changed, 879 insertions(+), 22 deletions(-) create mode 100644 src/main/java/com/chinaweal/aiccs/aiccs/expelled/entity/ExpelledRepairInfo.java create mode 100644 src/main/java/com/chinaweal/aiccs/aiccs/expelled/mapper/ExpelledRepairInfoMapper.java create mode 100644 src/main/java/com/chinaweal/aiccs/aiccs/expelled/service/IExpelledRepairInfoService.java create mode 100644 src/main/java/com/chinaweal/aiccs/aiccs/expelled/service/impl/ExpelledRepairInfoServiceImpl.java create mode 100644 src/main/java/com/chinaweal/aiccs/aiccs/expelled/vo/RepairApproveInfo.java create mode 100644 src/main/java/com/chinaweal/aiccs/aiccs/expelled/vo/RepairInfoVo.java create mode 100644 src/main/resources/mybatis/mapper/aiccs/expelled/ExpelledRepairInfoMapper.xml diff --git a/src/main/java/com/chinaweal/aiccs/aiccs/business/service/TSTaskListService.java b/src/main/java/com/chinaweal/aiccs/aiccs/business/service/TSTaskListService.java index b40b9cc..f45f4fb 100644 --- a/src/main/java/com/chinaweal/aiccs/aiccs/business/service/TSTaskListService.java +++ b/src/main/java/com/chinaweal/aiccs/aiccs/business/service/TSTaskListService.java @@ -227,4 +227,6 @@ public interface TSTaskListService extends BaseService { IPage queryxyxfCqList(Page page, Map paramMap); List exportxyxfCqList(Map paramMap); + + TSTaskList searchTaskListByBizId(String bizId); } diff --git a/src/main/java/com/chinaweal/aiccs/aiccs/business/service/impl/TSTaskListServiceImpl.java b/src/main/java/com/chinaweal/aiccs/aiccs/business/service/impl/TSTaskListServiceImpl.java index 55cc815..a84e998 100644 --- a/src/main/java/com/chinaweal/aiccs/aiccs/business/service/impl/TSTaskListServiceImpl.java +++ b/src/main/java/com/chinaweal/aiccs/aiccs/business/service/impl/TSTaskListServiceImpl.java @@ -42,12 +42,9 @@ import com.chinaweal.aiccs.org.entity.OrgUnits; import com.chinaweal.aiccs.org.mapper.AicorgMapper; import com.chinaweal.aiccs.org.mapper.TUsersMapper; import com.chinaweal.aicorg.model.AICUser; -import com.chinaweal.solr.entity.EBaseInfoSolrBean; import com.chinaweal.youfool.framework.springboot.mybatis.plus.BaseServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; -import org.springframework.data.solr.core.query.Criteria; -import org.springframework.data.solr.core.query.SimpleQuery; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -699,4 +696,9 @@ public class TSTaskListServiceImpl extends BaseServiceImpl().eq(TSTaskList::getBizseqid, bizId)); + } + } diff --git a/src/main/java/com/chinaweal/aiccs/aiccs/expelled/controller/EntBaseExpelledInfoController.java b/src/main/java/com/chinaweal/aiccs/aiccs/expelled/controller/EntBaseExpelledInfoController.java index dfd6b1e..95b232e 100644 --- a/src/main/java/com/chinaweal/aiccs/aiccs/expelled/controller/EntBaseExpelledInfoController.java +++ b/src/main/java/com/chinaweal/aiccs/aiccs/expelled/controller/EntBaseExpelledInfoController.java @@ -6,9 +6,11 @@ import com.chinaweal.aiccs.aiccs.expelled.entity.ExpelledBizInfo; import com.chinaweal.aiccs.aiccs.expelled.service.IEntBaseExpelledInfoService; import com.chinaweal.aiccs.aiccs.expelled.service.IExpelledAuditInfoService; import com.chinaweal.aiccs.aiccs.expelled.service.IExpelledBizInfoService; -import com.chinaweal.aiccs.aiccs.expelled.service.IExpelledResultInfoService; +import com.chinaweal.aiccs.aiccs.expelled.service.IExpelledRepairInfoService; import com.chinaweal.aiccs.aiccs.expelled.vo.AuditInfoVo; import com.chinaweal.aiccs.aiccs.expelled.vo.BizInfoVo; +import com.chinaweal.aiccs.aiccs.expelled.vo.RepairInfoVo; +import com.chinaweal.aiccs.common.base.controller.BaseController; import com.chinaweal.youfool.framework.springboot.base.query.BaseQuery; import com.chinaweal.youfool.framework.springboot.rest.RestResult; import com.chinaweal.youfool.framework.springboot.rest.ResultCode; @@ -22,6 +24,7 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @@ -36,7 +39,7 @@ import java.io.IOException; @RestController @RequestMapping("/expelled") @Slf4j -public class EntBaseExpelledInfoController { +public class EntBaseExpelledInfoController extends BaseController { @Resource private IEntBaseExpelledInfoService entBaseExpelledInfoService; @@ -45,7 +48,7 @@ public class EntBaseExpelledInfoController { @Resource private IExpelledAuditInfoService expelledAuditInfoService; @Resource - private IExpelledResultInfoService expelledResultInfoService; + private IExpelledRepairInfoService expelledRepairInfoService; @ApiOperation(value = "1.分页查询市场主体拟除名名单信息", position = 1) @PostMapping("/list") @@ -133,11 +136,11 @@ public class EntBaseExpelledInfoController { @ApiOperation(value = "11.新增、更新、删除除名决定管理", position = 11) @PostMapping("/audit/save") - public RestResult saveAudit(@RequestBody AuditInfoVo query) { + public RestResult saveAudit(@RequestBody AuditInfoVo query, HttpServletRequest request) { if (CollectionUtils.isEmpty(query.getBizInfos())) { return RestResult.error(ResultCode.PARAM_IS_BLANK, "请至少勾选一个拟除名市场主体"); } - expelledAuditInfoService.saveAudit(query); + expelledAuditInfoService.saveAudit(query, request); return RestResult.ok(); } @@ -147,4 +150,22 @@ public class EntBaseExpelledInfoController { IPage data = expelledAuditInfoService.listHavedoAuditInfo(query); return RestResult.ok(data); } + + @ApiOperation(value = "13.启动除名修复业务", position = 13) + @PostMapping("/repair/startBiz") + public RestResult startRepairBiz(@RequestBody AuditInfoVo query, HttpServletRequest request) { + return expelledRepairInfoService.startRepairBiz(query, request); + } + + @ApiOperation(value = "14.获取除名修复业务详情", position = 14) + @GetMapping("/repair/getBiz") + public RestResult getRepairBiz(String bizId) { + return expelledRepairInfoService.getRepairBiz(bizId); + } + + @ApiOperation(value = "15.除名修复业务审批流程", position = 15) + @PostMapping("/repair/nextBiz") + public RestResult nextRepairBiz(@RequestBody RepairInfoVo repairInfoQuery, HttpServletRequest request) { + return expelledRepairInfoService.nextRepairBiz(repairInfoQuery, request); + } } diff --git a/src/main/java/com/chinaweal/aiccs/aiccs/expelled/entity/ExpelledAuditInfo.java b/src/main/java/com/chinaweal/aiccs/aiccs/expelled/entity/ExpelledAuditInfo.java index 99653b5..0095f58 100644 --- a/src/main/java/com/chinaweal/aiccs/aiccs/expelled/entity/ExpelledAuditInfo.java +++ b/src/main/java/com/chinaweal/aiccs/aiccs/expelled/entity/ExpelledAuditInfo.java @@ -12,6 +12,7 @@ import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import java.io.Serializable; +import java.time.LocalDate; /** * @Description: 市场主体拟除名名单决定业务表实体类 @@ -49,6 +50,27 @@ public class ExpelledAuditInfo extends SuperEntity implements Serializable { @TableField(value = "AUDIT_NO") private String auditNo; + /** + * 除名时间 + */ + @ApiModelProperty(value = "除名时间") + @TableField(value = "REMOVE_DATE") + private LocalDate removeDate; + + /** + * 除名机关编码 + */ + @ApiModelProperty(value = "除名机关编码") + @TableField(value = "REMOVE_ORG_NO") + private String removeOrgNo; + + /** + * 除名机关名称 + */ + @ApiModelProperty(value = "除名机关名称") + @TableField(value = "REMOVE_ORG_NAME") + private String removeOrgName; + /** * 逻辑删除标识:0-未删除,1-已删除 */ diff --git a/src/main/java/com/chinaweal/aiccs/aiccs/expelled/entity/ExpelledRepairInfo.java b/src/main/java/com/chinaweal/aiccs/aiccs/expelled/entity/ExpelledRepairInfo.java new file mode 100644 index 0000000..1addd4f --- /dev/null +++ b/src/main/java/com/chinaweal/aiccs/aiccs/expelled/entity/ExpelledRepairInfo.java @@ -0,0 +1,183 @@ +package com.chinaweal.aiccs.aiccs.expelled.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.youfool.framework.springboot.json.LocalDateTimeStringSerializer; +import com.chinaweal.youfool.framework.springboot.mybatis.plus.SuperEntity; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.time.LocalDate; + +/** + * @Description: 市场主体除名修复业务表实体类 + * @Author: TiAmo-cc + * @Email: 1049976610@qq.com + * @Date: 2026/1/8 10:15 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName(value = "EXPELLED_REPAIR_INFO") +@ApiModel(value = "ExpelledRepairInfo对象", description = "市场主体除名修复业务信息") +public class ExpelledRepairInfo extends SuperEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键ID(UUID) + */ + @ApiModelProperty(value = "主键ID") + @TableId(value = "ID", type = IdType.ASSIGN_UUID) + private String id; + + /** + * 市场主体拟除名名单决定业务表主键ID(UUID) + */ + @ApiModelProperty(value = "市场主体拟除名名单决定业务表主键ID") + @TableField(value = "AUDIT_ID") + private String auditId; + + /** + * 市场主体拟除名名单结果表主键ID(UUID) + */ + @ApiModelProperty(value = "市场主体拟除名名单结果表主键ID(UUID)") + @TableField(value = "RESULT_ID") + private String resultId; + + /** + * 待办表主键ID(UUID) + */ + @ApiModelProperty(value = "待办表主键ID") + @TableField(value = "BIZ_ID") + private String bizId; + + /** + * 受理状态:0-不受理,1-受理 + */ + @ApiModelProperty(value = "受理状态:0-不受理,1-受理") + @TableField(value = "ACCEPT_STATUS") + private String acceptStatus; + + /** + * 当前环节:1-受理中,2-审核中,3-审批中,4-通过,5-不通过 + */ + @ApiModelProperty(value = "当前环节:1-受理中,2-审核中,3-审批中,4-通过,5-不通过") + @TableField(value = "LINK_TYPE") + private String linkType; + + /** + * 申请时间 + */ + @ApiModelProperty(value = "申请时间") + @TableField(value = "APPLY_DATE") + @JsonSerialize(using = LocalDateTimeStringSerializer.class) + private LocalDate applyDate; + + /** + * 除名原因 + */ + @ApiModelProperty(value = "除名原因") + @TableField(value = "REMOVE_REASON") + private String removeReason; + + /** + * 除名时间 + */ + @ApiModelProperty(value = "除名时间") + @TableField(value = "REMOVE_DATE") + @JsonSerialize(using = LocalDateTimeStringSerializer.class) + private LocalDate removeDate; + + /** + * 除名机关编码 + */ + @ApiModelProperty(value = "除名机关编码") + @TableField(value = "REMOVE_ORG_NO") + private String removeOrgNo; + + /** + * 除名机关名称 + */ + @ApiModelProperty(value = "除名机关名称") + @TableField(value = "REMOVE_ORG_NAME") + private String removeOrgName; + + /** + * 企业名称 + */ + @ApiModelProperty(value = "企业名称") + @TableField(value = "ENT_NAME") + private String entName; + + /** + * 统一社会信用代码 + */ + @ApiModelProperty(value = "统一社会信用代码") + @TableField(value = "USCC") + private String uscc; + + /** + * 法定代表人(负责人、经营者) + */ + @ApiModelProperty(value = "法定代表人(负责人、经营者)") + @TableField(value = "LEREP_NAME") + private String lerepName; + + /** + * 住所(经营场所) + */ + @ApiModelProperty(value = "住所(经营场所)") + @TableField(value = "ADDRESS") + private String address; + + /** + * 联系人 + */ + @ApiModelProperty(value = "联系人") + @TableField(value = "CONTACT_NAME") + private String contactName; + + /** + * 联系电话 + */ + @ApiModelProperty(value = "联系电话") + @TableField(value = "CONTACT_PHONE") + private String contactPhone; + + /** + * 核实情况 + */ + @ApiModelProperty(value = "核实情况") + @TableField(value = "SITUATION") + private String situation; + + /** + * 核准日期 + */ + @ApiModelProperty(value = "核准日期") + @TableField(value = "APPROVE_DATE") + @JsonSerialize(using = LocalDateTimeStringSerializer.class) + private LocalDate approveDate; + + /** + * 除名修复原因 + */ + @ApiModelProperty(value = "除名修复原因") + @TableField(value = "REPAIR_REASON") + private String repairReason; + + /** + * 备注 + */ + @ApiModelProperty(value = "备注") + @TableField(value = "REMARK") + private String remark; +} diff --git a/src/main/java/com/chinaweal/aiccs/aiccs/expelled/entity/ExpelledResultInfo.java b/src/main/java/com/chinaweal/aiccs/aiccs/expelled/entity/ExpelledResultInfo.java index f5d0449..1b397ae 100644 --- a/src/main/java/com/chinaweal/aiccs/aiccs/expelled/entity/ExpelledResultInfo.java +++ b/src/main/java/com/chinaweal/aiccs/aiccs/expelled/entity/ExpelledResultInfo.java @@ -76,4 +76,11 @@ public class ExpelledResultInfo extends SuperEntity implements Serializable { @ApiModelProperty(value = "异议/决定意见") @TableField(value = "AUDIT_OPINION") private String auditOpinion; + + /** + * 状态:10-有效,11-修复中,99-已完成 + */ + @ApiModelProperty(value = "状态:10-有效,11-修复中,99-已完成") + @TableField(value = "STATE") + private String state; } diff --git a/src/main/java/com/chinaweal/aiccs/aiccs/expelled/mapper/ExpelledRepairInfoMapper.java b/src/main/java/com/chinaweal/aiccs/aiccs/expelled/mapper/ExpelledRepairInfoMapper.java new file mode 100644 index 0000000..b7c9ad6 --- /dev/null +++ b/src/main/java/com/chinaweal/aiccs/aiccs/expelled/mapper/ExpelledRepairInfoMapper.java @@ -0,0 +1,13 @@ +package com.chinaweal.aiccs.aiccs.expelled.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.chinaweal.aiccs.aiccs.expelled.entity.ExpelledRepairInfo; + +/** + * @Description: 市场主体除名修复业务表dao层 + * @Author: TiAmo-cc + * @Email: 1049976610@qq.com + * @Date: 2026/1/8 10:23 + */ +public interface ExpelledRepairInfoMapper extends BaseMapper { +} diff --git a/src/main/java/com/chinaweal/aiccs/aiccs/expelled/service/IExpelledAuditInfoService.java b/src/main/java/com/chinaweal/aiccs/aiccs/expelled/service/IExpelledAuditInfoService.java index 6a9f8e3..7fdedf0 100644 --- a/src/main/java/com/chinaweal/aiccs/aiccs/expelled/service/IExpelledAuditInfoService.java +++ b/src/main/java/com/chinaweal/aiccs/aiccs/expelled/service/IExpelledAuditInfoService.java @@ -6,6 +6,8 @@ import com.chinaweal.aiccs.aiccs.expelled.entity.ExpelledAuditInfo; import com.chinaweal.aiccs.aiccs.expelled.vo.AuditInfoVo; import com.chinaweal.youfool.framework.springboot.base.query.BaseQuery; +import javax.servlet.http.HttpServletRequest; + /** * @Description: 市场主体拟除名名单决定业务表接口类 * @Author: TiAmo-cc @@ -27,7 +29,7 @@ public interface IExpelledAuditInfoService extends IService { /** * 保存市场主体拟除名名单决定业务信息 */ - void saveAudit(AuditInfoVo query); + void saveAudit(AuditInfoVo query, HttpServletRequest request); /** * 根据业务号查询市场主体拟除名名单异议/决定业务信息 @@ -37,5 +39,5 @@ public interface IExpelledAuditInfoService extends IService { /** * 生成业务号 */ - String generateBizNo(); + String generateAuditNo(); } diff --git a/src/main/java/com/chinaweal/aiccs/aiccs/expelled/service/IExpelledRepairInfoService.java b/src/main/java/com/chinaweal/aiccs/aiccs/expelled/service/IExpelledRepairInfoService.java new file mode 100644 index 0000000..eac60d6 --- /dev/null +++ b/src/main/java/com/chinaweal/aiccs/aiccs/expelled/service/IExpelledRepairInfoService.java @@ -0,0 +1,45 @@ +package com.chinaweal.aiccs.aiccs.expelled.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.chinaweal.aiccs.aiccs.auditing.entity.TSOpinion; +import com.chinaweal.aiccs.aiccs.business.entity.TSTaskList; +import com.chinaweal.aiccs.aiccs.expelled.entity.ExpelledRepairInfo; +import com.chinaweal.aiccs.aiccs.expelled.vo.AuditInfoVo; +import com.chinaweal.aiccs.aiccs.expelled.vo.RepairInfoVo; +import com.chinaweal.aicorg.model.AICUser; +import com.chinaweal.youfool.framework.springboot.rest.RestResult; + +import javax.servlet.http.HttpServletRequest; + +/** + * @Description: 市场主体除名修复业务表接口类 + * @Author: TiAmo-cc + * @Email: 1049976610@qq.com + * @Date: 2026/1/8 10:24 + */ +public interface IExpelledRepairInfoService extends IService { + + /** + * 启动除名修复业务 + */ + RestResult startRepairBiz(AuditInfoVo query, HttpServletRequest request); + + TSTaskList startRepairBizAccept(AICUser user, TSTaskList tsTaskList, ExpelledRepairInfo repairInfo); + + /** + * 启动除名修复业务 + */ + RestResult getRepairBiz(String bizId); + + /** + * 除名修复业务审批流程 + */ + RestResult nextRepairBiz(RepairInfoVo repairInfoQuery, HttpServletRequest request); + + TSTaskList saveRepairAuditProcess(AICUser user, TSTaskList tsTaskList, ExpelledRepairInfo repairInfo, TSOpinion opinion, String nextNodeId, String[] nextPerformerIds, String[] nextPerformerNames); + + /** + * 根据业务号查询除名修复业务信息 + */ + ExpelledRepairInfo getExpelledRepairInfoByBizId(String bizId); +} diff --git a/src/main/java/com/chinaweal/aiccs/aiccs/expelled/service/impl/ExpelledAuditInfoServiceImpl.java b/src/main/java/com/chinaweal/aiccs/aiccs/expelled/service/impl/ExpelledAuditInfoServiceImpl.java index c7ab8b8..f5cb90f 100644 --- a/src/main/java/com/chinaweal/aiccs/aiccs/expelled/service/impl/ExpelledAuditInfoServiceImpl.java +++ b/src/main/java/com/chinaweal/aiccs/aiccs/expelled/service/impl/ExpelledAuditInfoServiceImpl.java @@ -15,11 +15,16 @@ import com.chinaweal.aiccs.aiccs.expelled.service.IExpelledEntInfoService; import com.chinaweal.aiccs.aiccs.expelled.service.IExpelledResultInfoService; import com.chinaweal.aiccs.aiccs.expelled.vo.AuditInfoVo; import com.chinaweal.aiccs.aiccs.expelled.vo.BizInfoVo; +import com.chinaweal.aiccs.common.base.controller.BaseController; import com.chinaweal.aiccs.utils.DocumentNoGenerator; +import com.chinaweal.aicorg.model.AICUser; import com.chinaweal.youfool.framework.springboot.base.query.BaseQuery; +import com.chinaweal.youfool.framework.springboot.exception.custom.BusinessException; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.time.LocalDate; import java.util.UUID; /** @@ -47,12 +52,12 @@ public class ExpelledAuditInfoServiceImpl extends ServiceImpl implements IExpelledRepairInfoService { + + @Resource + private TSTaskListService tsTaskListService; + @Resource + private WorkFlowService workFlowService; + @Resource + private TSOpinionService opinionService; + @Resource + private IExpelledResultInfoService expelledResultInfoService; + + @Override + public RestResult startRepairBiz(AuditInfoVo query, HttpServletRequest request) { + AICUser user = BaseController.getLoginUser(request); + if (user == null) { + throw new BusinessException("登录超时,请重新登录"); + } + ExpelledResultInfo resultInfo = expelledResultInfoService.getById(query.getResultId()); + if (resultInfo == null) { + throw new BusinessException("市场主体拟除名结果信息不存在,请联系管理员"); + } + Map resultMap = new HashMap<>(); + String bizId = UUID.randomUUID().toString(); + // 添加待办启动流程 + TSTaskList tsTaskList = new TSTaskList(); + tsTaskList.setBizseqid(bizId); + tsTaskList.setBustype(BaseDataConstant.BUSINESS_TYPE_REMOVE_REPAIR); // 除名修复 + tsTaskList.setBusname(query.getEntName()); + // 保存除名修复数据 + ExpelledRepairInfo repairInfo = new ExpelledRepairInfo(); + repairInfo.setAuditId(query.getAuditId()); + repairInfo.setResultId(query.getResultId()); + repairInfo.setBizId(bizId); + repairInfo.setApplyDate(LocalDate.now()); + repairInfo.setRemoveReason(query.getAuditOpinion()); + repairInfo.setRemoveDate(query.getRemoveDate()); + repairInfo.setRemoveOrgNo(query.getRemoveOrgNo()); + repairInfo.setRemoveOrgName(query.getRemoveOrgName()); + repairInfo.setEntName(query.getEntName()); + repairInfo.setUscc(query.getUscc()); + repairInfo.setLerepName(query.getLerepName()); + repairInfo.setAddress(query.getAddress()); + // 保存业务待办信息 + tsTaskList = startRepairBizAccept(user, tsTaskList, repairInfo); + List nextSequenceFlows = workFlowService.findNextSequenceFlowList(tsTaskList.getWorkflowid()); + TSTwfProcessNode currentNode = workFlowService.findCurrentNode(tsTaskList.getWorkflowid()); + String opinionType = BaseDataConstant.getOpinionTypeByWorkFlowNode(currentNode.getCurrentnode()); + if (opinionType == null) { + opinionType = "1"; + } + // 更新除名结果表信息 + resultInfo.setState("11"); // 修复中 + expelledResultInfoService.saveOrUpdate(resultInfo); + resultMap.put("repairInfo", repairInfo); + resultMap.put("taskId", tsTaskList.getTasklistid()); + resultMap.put("bizId", bizId); + resultMap.put("nextSequenceFlows", nextSequenceFlows); + resultMap.put("currentNode", currentNode.getCurrentnode()); + resultMap.put("currentNodeName", WorkFlowUtil.getNodeName(currentNode.getCurrentnode())); + resultMap.put("currentLinkTypeID", opinionType); + return RestResult.ok(resultMap); + } + + @Override + public TSTaskList startRepairBizAccept(AICUser user, TSTaskList tsTaskList, ExpelledRepairInfo repairInfo) { + if (StringUtils.isBlank(tsTaskList.getTasklistid())) { + repairInfo.setId(UUID.randomUUID().toString()); + repairInfo.setLinkType("1"); + saveOrUpdate(repairInfo); + String definedname = FlowUtil.EXPTLISTWORKFLOW; // 除名修复,这类参考使用企业经营异常名录流程模板,应该是可以的吧 + // 新待办 + tsTaskList = HandleWorkFlowUtil.createTaskList(tsTaskList, user); + // 开始工作流 + tsTaskListService.startWorkFlow(tsTaskList, user, definedname); + } + return tsTaskList; + } + + @Override + public RestResult getRepairBiz(String bizId) { + Map resultMap = new HashMap<>(); + // 除名修复业务表 + ExpelledRepairInfo repairInfo = getExpelledRepairInfoByBizId(bizId); + if (repairInfo == null) { + throw new BusinessException("除名修复业务信息不存在,请联系管理员"); + } + resultMap.put("repairInfo", repairInfo); + // 除名业务待办 + TSTaskList tsTaskList = tsTaskListService.searchTaskListByBizId(bizId); + if (tsTaskList == null) { + throw new BusinessException("除名修复业务待办信息不存在,请联系管理员"); + } + resultMap.put("tsTaskList", new TSTaskList().setTasklistid(tsTaskList.getTasklistid()).setWorkflowid(tsTaskList.getWorkflowid())); + // 获取历史审批意见 + LambdaQueryWrapper opinionWrapper = new LambdaQueryWrapper<>(); + opinionWrapper.eq(TSOpinion::getBizseq, bizId) + .ne(TSOpinion::getOpiniontype, "55") + .orderByAsc(TSOpinion::getHandledate); + List tsOpinions = opinionService.list(opinionWrapper); + resultMap.put("historyOpinions", tsOpinions); + return RestResult.ok(resultMap); + } + + @Override + public RestResult nextRepairBiz(RepairInfoVo repairInfoQuery, HttpServletRequest request) { + AICUser user = BaseController.getLoginUser(request); + if (user == null) { + throw new BusinessException("登录超时,请重新登录"); + } + String bizId = repairInfoQuery.getBizId(); + String taskId = repairInfoQuery.getTaskId(); + String nextNodeId = repairInfoQuery.getNextNodeId(); + String nextPerformerIds = repairInfoQuery.getNextPerformerIds(); + String nextPerformerNames = repairInfoQuery.getNextPerformerNames(); + RepairApproveInfo repairApproveInfo = repairInfoQuery.getRepairApproveInfo(); + if (StringUtils.isBlank(bizId)) { + throw new BusinessException("bizId参数缺失"); + } + if (StringUtils.isBlank(taskId)) { + throw new BusinessException("taskId参数缺失"); + } + if (StringUtils.isBlank(nextNodeId)) { + throw new BusinessException("nextNodeId参数缺失"); + } +// if (!FlowUtil.EXPTLISTWORKFLOW_ENDEXPTLIST.equals(nextNodeId)) { +// if (StringUtils.isBlank(nextPerformerIds)) { +// throw new BusinessException("nextPerformerIds参数缺失"); +// } +// if (StringUtils.isBlank(nextPerformerNames)) { +// throw new BusinessException("nextPerformerNames参数缺失"); +// } +// } + if (repairApproveInfo == null) { + throw new BusinessException("repairApproveInfo参数缺失"); + } +// if (StringUtils.equals("handleExptlist", nextNodeId) +// || StringUtils.equals("overFinish", nextNodeId)) { +// if (repairInfo != null +// && StringUtils.isNotBlank(repairInfo.getBizId())) { +// // TODO +// } +// } + Map resultMap = new HashMap<>(); + ExpelledRepairInfo repairInfo = getExpelledRepairInfoByBizId(bizId); + if (repairInfo == null) { + throw new BusinessException("除名修复业务信息不存在,请联系管理员"); + } + // 更新除名修复业务表 + if (repairApproveInfo != null && StringUtils.isNotBlank(repairApproveInfo.getBizId())) { + TSTaskList tsTaskList = tsTaskListService.selectByTasklistID(taskId); + TSTwfProcessNode processNode = workFlowService.findCurrentNode(tsTaskList.getWorkflowid()); + + // 下一步为审核 + if (StringUtils.equals(FlowUtil.EXPTLISTWORKFLOW_HANDLEEXPTLIST, nextNodeId)) { + if (StringUtils.equals(FlowUtil.EXPTLISTWORKFLOW_EXPTLISTENTER, processNode.getCurrentnode())) { + BeanUtil.copyBean(repairApproveInfo, repairInfo); + } + } + + if (StringUtils.isBlank(nextPerformerIds)) { + processNode = workFlowService.findCurrentNode(tsTaskList.getWorkflowid()); + int order = WorkFlowUtil.checkNextOrder(processNode.getCurrentnode(), nextNodeId); + // 通过order判断为回退还是前进 >0 前进 + if (order > 0) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(TSOpinion::getWorkflowid, tsTaskList.getWorkflowid()) + .eq(TSOpinion::getOpiniontype, "0") // 经办为0 + .orderByDesc(TSOpinion::getLauptime); + List list = opinionService.list(wrapper); + if (CollectionUtils.isEmpty(list)) { + return RestResult.error(ResultCode.DATA_NONE, "审批意见不存在,请联系管理员"); + } + nextPerformerIds = list.get(0).getHandlerid(); + nextPerformerNames = list.get(0).getHandler(); + } + // 回退时获取经办人 + if (order < 0) { + // 获取经办人 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(TSOpinion::getWorkflowid, tsTaskList.getWorkflowid()) + .eq(TSOpinion::getOpiniontype, '0') + .orderByDesc(TSOpinion::getLauptime); + List list = opinionService.list(wrapper); + if (CollectionUtils.isEmpty(list)) { + return RestResult.error(ResultCode.DATA_NONE, "审批意见不存在,请联系管理员"); + } + nextPerformerIds = list.get(0).getHandlerid(); + nextPerformerNames = list.get(0).getHandler(); + } + } + + // 发送 + String[] ids = StringUtils.split(nextPerformerIds, Constant.COMMA); + String[] names = StringUtils.split(nextPerformerNames, Constant.COMMA); + try { + tsTaskList = saveRepairAuditProcess(user, tsTaskList, repairInfo, repairInfoQuery.getOpinionQuery(), nextNodeId, ids, names); + if (ids.length == 1 && StringUtils.equals(user.getPrimaryKey(), ids[0])) { + resultMap.put("bizId", bizId); + resultMap.put("taskId", taskId); + resultMap.put("nextNodeId", nextNodeId); + resultMap.put("workFlowId", tsTaskList.getWorkflowid()); + } + } catch (Exception e) { + log.error("除名修复业务审批出错:", e); + throw new BusinessException("除名修复业务审批出错"); + } + } + return RestResult.ok(resultMap); + } + + @Override + public TSTaskList saveRepairAuditProcess(AICUser user, TSTaskList tsTaskList, ExpelledRepairInfo repairInfo, TSOpinion opinion, String nextNodeId, String[] nextPerformerIds, String[] nextPerformerNames) { + try { + if (StringUtils.isNotBlank(tsTaskList.getAcceptgroupid())) { + workFlowService.claimGroup(tsTaskList.getWorkflowid(), user.getPrimaryKey()); + } + tsTaskListService.updateWorkFlow(user, opinion, tsTaskList, nextNodeId, nextPerformerIds, nextPerformerNames); + if (FlowUtil.EXPTLISTWORKFLOW_HANDLEEXPTLIST.equals(nextNodeId)) { // 审批 + repairInfo.setLinkType("3"); // 审批流程中把状态设置成"审批中" + saveOrUpdate(repairInfo); + } + LocalDate now = LocalDate.now(); + ExpelledResultInfo resultInfo = expelledResultInfoService.getById(repairInfo.getResultId()); + if (FlowUtil.EXPTLISTWORKFLOW_ENDEXPTLIST.equals(nextNodeId)) { // 完结时 + repairInfo.setApproveDate(now); // 核准时间 + repairInfo.setLinkType("4"); // 1-受理中,2-审核中,3-审批中,4-通过,5-不通过 + saveOrUpdate(repairInfo); + resultInfo.setState("99"); // 修复完成 + } + if (FlowUtil.EXPTLISTWORKFLOW_OVEREXPTLIST.equals(nextNodeId)) { + repairInfo.setApproveDate(now); // 核准时间 + repairInfo.setLinkType("5"); // 1-受理中,2-审核中,3-审批中,4-通过,5-不通过 + saveOrUpdate(repairInfo); + resultInfo.setState("10"); // 恢复有效 + } + if (FlowUtil.EXPTLISTWORKFLOW_OVERFINISH.equals(nextNodeId)) { + repairInfo.setApproveDate(now); // 核准时间 + repairInfo.setLinkType("5"); // 1-受理中,2-审核中,3-审批中,4-通过,5-不通过 + saveOrUpdate(repairInfo); + resultInfo.setState("10"); // 恢复有效 + } + expelledResultInfoService.saveOrUpdate(resultInfo); + } catch (Exception e) { + log.error("除名修复流程审核出错", e); + throw new BusinessException("除名修复流程审核出错"); + } + return tsTaskList; + } + + @Override + public ExpelledRepairInfo getExpelledRepairInfoByBizId(String bizId) { + return getOne(new LambdaQueryWrapper().eq(ExpelledRepairInfo::getBizId, bizId)); + } +} diff --git a/src/main/java/com/chinaweal/aiccs/aiccs/expelled/vo/AuditInfoVo.java b/src/main/java/com/chinaweal/aiccs/aiccs/expelled/vo/AuditInfoVo.java index 26ed034..d2f8224 100644 --- a/src/main/java/com/chinaweal/aiccs/aiccs/expelled/vo/AuditInfoVo.java +++ b/src/main/java/com/chinaweal/aiccs/aiccs/expelled/vo/AuditInfoVo.java @@ -1,8 +1,11 @@ package com.chinaweal.aiccs.aiccs.expelled.vo; +import com.chinaweal.youfool.framework.springboot.json.LocalDateTimeStringSerializer; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.io.Serializable; import java.time.LocalDate; import java.util.List; @@ -13,13 +16,15 @@ import java.util.List; * @Date: 2026/1/7 11:39 */ @Data -public class AuditInfoVo { +public class AuditInfoVo implements Serializable { + + private static final long serialVersionUID = 1L; /** - * 主键ID(UUID) + * 市场主体拟除名名单决定业务表主键ID */ - @ApiModelProperty(value = "主键ID") - private String id; + @ApiModelProperty(value = "市场主体拟除名名单决定业务表主键ID") + private String auditId; /** * 业务类型:1-异议管理,2-决定管理 @@ -33,6 +38,12 @@ public class AuditInfoVo { @ApiModelProperty(value = "业务号") private String auditNo; + /** + * 市场主体拟除名名单结果表主键ID(UUID) + */ + @ApiModelProperty(value = "市场主体拟除名名单结果表主键ID(UUID)") + private String resultId; + /** * 是否有异议:0-无,1-有 */ @@ -57,6 +68,25 @@ public class AuditInfoVo { @ApiModelProperty(value = "异议/决定意见") private String auditOpinion; + /** + * 除名时间 + */ + @ApiModelProperty(value = "除名时间") + @JsonSerialize(using = LocalDateTimeStringSerializer.class) + private LocalDate removeDate; + + /** + * 除名机关编码 + */ + @ApiModelProperty(value = "除名机关编码") + private String removeOrgNo; + + /** + * 除名机关名称 + */ + @ApiModelProperty(value = "除名机关名称") + private String removeOrgName; + /** * 拟除名名单企业信息主键ID */ @@ -115,8 +145,15 @@ public class AuditInfoVo { * 送达时间 */ @ApiModelProperty(value = "送达时间") + @JsonSerialize(using = LocalDateTimeStringSerializer.class) private LocalDate sendTime; + /** + * 状态:10-有效,11-修复中,99-已完成 + */ + @ApiModelProperty(value = "状态:10-有效,11-修复中,99-已完成") + private String state; + /** * 拟除名异议告知业务信息 */ diff --git a/src/main/java/com/chinaweal/aiccs/aiccs/expelled/vo/RepairApproveInfo.java b/src/main/java/com/chinaweal/aiccs/aiccs/expelled/vo/RepairApproveInfo.java new file mode 100644 index 0000000..e8a89de --- /dev/null +++ b/src/main/java/com/chinaweal/aiccs/aiccs/expelled/vo/RepairApproveInfo.java @@ -0,0 +1,153 @@ +package com.chinaweal.aiccs.aiccs.expelled.vo; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.chinaweal.youfool.framework.springboot.json.LocalDateTimeStringSerializer; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.time.LocalDate; + +/** + * @Description: + * @Author: TiAmo-cc + * @Email: 1049976610@qq.com + * @Date: 2026/1/9 10:09 + */ +@Data +public class RepairApproveInfo implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键ID(UUID) + */ + @ApiModelProperty(value = "主键ID") + @TableId(value = "ID", type = IdType.ASSIGN_UUID) + private String id; + + /** + * 市场主体拟除名名单决定业务表主键ID(UUID) + */ + @ApiModelProperty(value = "市场主体拟除名名单决定业务表主键ID") + private String auditId; + + /** + * 市场主体拟除名名单结果表主键ID(UUID) + */ + @ApiModelProperty(value = "市场主体拟除名名单结果表主键ID(UUID)") + private String resultId; + + /** + * 待办表主键ID(UUID) + */ + @ApiModelProperty(value = "待办表主键ID") + private String bizId; + + /** + * 受理状态:0-不受理,1-受理 + */ + @ApiModelProperty(value = "受理状态:0-不受理,1-受理") + private String acceptStatus; + + /** + * 当前环节:1-受理中,2-审核中,3-审批中,4-通过,5-不通过 + */ + @ApiModelProperty(value = "当前环节:1-受理中,2-审核中,3-审批中,4-通过,5-不通过") + private String linkType; + + /** + * 申请时间 + */ + @ApiModelProperty(value = "申请时间") + @JsonSerialize(using = LocalDateTimeStringSerializer.class) + private LocalDate applyDate; + + /** + * 除名原因 + */ + @ApiModelProperty(value = "除名原因") + private String removeReason; + + /** + * 除名时间 + */ + @ApiModelProperty(value = "除名时间") + @JsonSerialize(using = LocalDateTimeStringSerializer.class) + private LocalDate removeDate; + + /** + * 除名机关编码 + */ + @ApiModelProperty(value = "除名机关编码") + private String removeOrgNo; + + /** + * 除名机关名称 + */ + @ApiModelProperty(value = "除名机关名称") + private String removeOrgName; + + /** + * 企业名称 + */ + @ApiModelProperty(value = "企业名称") + private String entName; + + /** + * 统一社会信用代码 + */ + @ApiModelProperty(value = "统一社会信用代码") + private String uscc; + + /** + * 法定代表人(负责人、经营者) + */ + @ApiModelProperty(value = "法定代表人(负责人、经营者)") + private String lerepName; + + /** + * 住所(经营场所) + */ + @ApiModelProperty(value = "住所(经营场所)") + private String address; + + /** + * 联系人 + */ + @ApiModelProperty(value = "联系人") + private String contactName; + + /** + * 联系电话 + */ + @ApiModelProperty(value = "联系电话") + private String contactPhone; + + /** + * 核实情况 + */ + @ApiModelProperty(value = "核实情况") + private String situation; + + /** + * 核准日期 + */ + @ApiModelProperty(value = "核准日期") + @JsonSerialize(using = LocalDateTimeStringSerializer.class) + private LocalDate approveDate; + + /** + * 除名修复原因 + */ + @ApiModelProperty(value = "除名修复原因") + private String repairReason; + + /** + * 备注 + */ + @ApiModelProperty(value = "备注") + private String remark; +} diff --git a/src/main/java/com/chinaweal/aiccs/aiccs/expelled/vo/RepairInfoVo.java b/src/main/java/com/chinaweal/aiccs/aiccs/expelled/vo/RepairInfoVo.java new file mode 100644 index 0000000..30c6649 --- /dev/null +++ b/src/main/java/com/chinaweal/aiccs/aiccs/expelled/vo/RepairInfoVo.java @@ -0,0 +1,40 @@ +package com.chinaweal.aiccs.aiccs.expelled.vo; + +import com.chinaweal.aiccs.aiccs.auditing.entity.TSOpinion; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description: + * @Author: TiAmo-cc + * @Email: 1049976610@qq.com + * @Date: 2026/1/8 14:57 + */ +@Data +public class RepairInfoVo implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "除名修复业务主键ID") + private String bizId; + + @ApiModelProperty(value = "待办表主键ID") + private String taskId; + + @ApiModelProperty(value = "下一环节节点名") + private String nextNodeId; + + @ApiModelProperty(value = "下一环节操作人ID") + private String nextPerformerIds; + + @ApiModelProperty(value = "下一环节操作人姓名") + private String nextPerformerNames; + + @ApiModelProperty(value = "除名修复业务信息") + private RepairApproveInfo repairApproveInfo; + + @ApiModelProperty(value = "审批意见") + private TSOpinion opinionQuery; +} diff --git a/src/main/java/com/chinaweal/aiccs/common/constant/BaseDataConstant.java b/src/main/java/com/chinaweal/aiccs/common/constant/BaseDataConstant.java index 69b8848..1cbc314 100644 --- a/src/main/java/com/chinaweal/aiccs/common/constant/BaseDataConstant.java +++ b/src/main/java/com/chinaweal/aiccs/common/constant/BaseDataConstant.java @@ -92,6 +92,9 @@ public class BaseDataConstant { public static final String EXPTLIST_TYPE_FARMER_OBJECTION = "19";//列入农合异常名录异议 public static final String BUSTNESS_TYPE_REM_ABN_OBJECTION = "20"; // 移出异常名录异议 public static final String BUSINESS_TYPE_FORCE_DEREGISTER = "50";// 拟强制注销 + + public static final String BUSINESS_TYPE_REMOVE_REPAIR = "1001"; // 除名修复 + // 地址批量列异 public static final String EXPTLIST_TYPE_ADDRESSBATCH_ENTEREXCP = "71";//企业地址批量列异 public static final String EXPTLIST_TYPE_ADDRESSBATCH_INDIVIDUAL_TAG = "72";//个体户地址批量列异 diff --git a/src/main/resources/mybatis/mapper/aiccs/expelled/ExpelledAuditInfoMapper.xml b/src/main/resources/mybatis/mapper/aiccs/expelled/ExpelledAuditInfoMapper.xml index d35c3f3..ae731ea 100644 --- a/src/main/resources/mybatis/mapper/aiccs/expelled/ExpelledAuditInfoMapper.xml +++ b/src/main/resources/mybatis/mapper/aiccs/expelled/ExpelledAuditInfoMapper.xml @@ -4,12 +4,16 @@ diff --git a/src/main/resources/mybatis/mapper/aiccs/expelled/ExpelledRepairInfoMapper.xml b/src/main/resources/mybatis/mapper/aiccs/expelled/ExpelledRepairInfoMapper.xml new file mode 100644 index 0000000..9fea46e --- /dev/null +++ b/src/main/resources/mybatis/mapper/aiccs/expelled/ExpelledRepairInfoMapper.xml @@ -0,0 +1,4 @@ + + + +