补充文书生成逻辑

This commit is contained in:
黎润豪 2026-03-09 15:24:29 +08:00
parent 566fbd1953
commit bb9de99c74
6 changed files with 329 additions and 12 deletions

View File

@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.chinaweal.aiccs.aiccs.abnormal.entity.EPriPerson; import com.chinaweal.aiccs.aiccs.abnormal.entity.EPriPerson;
import com.chinaweal.aiccs.aiccs.abnormal.service.EPriPersonService; import com.chinaweal.aiccs.aiccs.abnormal.service.EPriPersonService;
import com.chinaweal.aiccs.aiccs.abnormal.entity.TSWrit;
import com.chinaweal.aiccs.aiccs.abnormal.service.TSWritService;
import com.chinaweal.aiccs.aiccs.auditing.entity.TSOpinion; import com.chinaweal.aiccs.aiccs.auditing.entity.TSOpinion;
import com.chinaweal.aiccs.aiccs.auditing.service.TSOpinionService; import com.chinaweal.aiccs.aiccs.auditing.service.TSOpinionService;
import com.chinaweal.aiccs.aiccs.business.entity.TSTaskList; import com.chinaweal.aiccs.aiccs.business.entity.TSTaskList;
@ -20,6 +22,7 @@ import com.chinaweal.aiccs.aiccs.seriousillegal.entity.dto.*;
import com.chinaweal.aiccs.aiccs.seriousillegal.entity.vo.ApprovalPageVo; import com.chinaweal.aiccs.aiccs.seriousillegal.entity.vo.ApprovalPageVo;
import com.chinaweal.aiccs.aiccs.seriousillegal.entity.vo.TaskDetailVo; import com.chinaweal.aiccs.aiccs.seriousillegal.entity.vo.TaskDetailVo;
import com.chinaweal.aiccs.aiccs.seriousillegal.entity.vo.TaskSubmitResultVo; import com.chinaweal.aiccs.aiccs.seriousillegal.entity.vo.TaskSubmitResultVo;
import com.chinaweal.aiccs.aiccs.seriousillegal.entity.vo.PrintTSWritVo;
import com.chinaweal.aiccs.aiccs.seriousillegal.service.IEOtIlldisdetailService; import com.chinaweal.aiccs.aiccs.seriousillegal.service.IEOtIlldisdetailService;
import com.chinaweal.aiccs.aiccs.seriousillegal.service.IEOtIlldisdetailTempService; import com.chinaweal.aiccs.aiccs.seriousillegal.service.IEOtIlldisdetailTempService;
import com.chinaweal.aiccs.aiccs.system.entity.TRBaseCode; import com.chinaweal.aiccs.aiccs.system.entity.TRBaseCode;
@ -29,6 +32,7 @@ import com.chinaweal.aiccs.common.constant.BaseDataConstant;
import com.chinaweal.aiccs.common.util.FlowUtil; import com.chinaweal.aiccs.common.util.FlowUtil;
import com.chinaweal.aiccs.common.util.StringUtils; import com.chinaweal.aiccs.common.util.StringUtils;
import com.chinaweal.aiccs.common.util.WorkFlowUtil; import com.chinaweal.aiccs.common.util.WorkFlowUtil;
import com.chinaweal.aiccs.common.util.WorkNoUtil;
import com.chinaweal.aicorg.model.AICUser; import com.chinaweal.aicorg.model.AICUser;
import com.chinaweal.youfool.framework.springboot.base.query.BaseQuery; import com.chinaweal.youfool.framework.springboot.base.query.BaseQuery;
import com.chinaweal.youfool.framework.springboot.exception.custom.BusinessException; import com.chinaweal.youfool.framework.springboot.exception.custom.BusinessException;
@ -43,7 +47,9 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.time.LocalDate;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.UUID; import java.util.UUID;
@ -84,6 +90,9 @@ public class EOtIlldisdetailController extends BaseController {
@Autowired @Autowired
private EPriPersonService priPersonService; private EPriPersonService priPersonService;
@Autowired
private TSWritService tsWritService;
/** /**
* 列入严重违法失信企业名单黑名单-受理 * 列入严重违法失信企业名单黑名单-受理
*/ */
@ -697,4 +706,91 @@ public class EOtIlldisdetailController extends BaseController {
return RestResult.ok(result); return RestResult.ok(result);
} }
/**
* 打印文书页面
*/
@ApiOperation("打印文书页面")
@PostMapping("/printTSWrit")
public RestResult<PrintTSWritVo> printTSWrit(@RequestBody PrintTSWritDto dto) {
PrintTSWritVo result = new PrintTSWritVo();
if ("1".equals(dto.getPrintstatus())) {
// 打印决定书
EOtIlldisdetailTemp detail = eOtIlldisdetailTempService.getById(dto.getIllid());
if (detail == null) {
throw new BusinessException("记录不存在");
}
TSWrit writQueryModel = new TSWrit();
if ("enter".equals(dto.getType())) {
// 列入决定书
writQueryModel.setWritstype(WorkNoUtil.WORKNOTYPE_21);
writQueryModel.setPripid(detail.getPripid());
writQueryModel.setBizseq(detail.getInBizseq());
} else if ("remove".equals(dto.getType())) {
// 移出决定书
writQueryModel.setWritstype(WorkNoUtil.WORKNOTYPE_25);
writQueryModel.setPripid(detail.getPripid());
writQueryModel.setBizseq(detail.getOutBizseq());
}
List<TSWrit> tsWritQueryModels = tsWritService.listTswrit(writQueryModel);
if (tsWritQueryModels.size() > 0) {
result.setWrirsno(tsWritQueryModels.get(0).getWritsno());
}
result.setDetail(detail);
result.setNowTime(LocalDate.now());
if ("enter".equals(dto.getType())) {
// 列入决定书需要加上届满日期
if (detail.getAbntime() != null) {
result.setExpirationDate(detail.getAbntime().plusYears(5));
}
}
} else if ("3".equals(dto.getPrintstatus())) {
// 打印审批表
TSTaskList taskListModel = taskListService.selectByWorkflowID(dto.getWorkflowid());
if (taskListModel == null) {
throw new BusinessException("待办记录不存在");
}
StringBuilder regno = new StringBuilder();
StringBuilder ename = new StringBuilder();
List<EOtIlldisdetailTemp> list = eOtIlldisdetailTempService.listByBizSeq(taskListModel.getBizseqid());
if (list != null && !list.isEmpty()) {
for (int i = 0; i < list.size(); i++) {
if (i > 2) {
regno.append("等");
ename.append("等企业");
break;
}
if (i > 0) {
ename.append(", ");
regno.append(", ");
}
ename.append(list.get(i).getEntname());
regno.append(list.get(i).getUniscid() != null ? list.get(i).getUniscid() : list.get(i).getRegno());
}
}
List<TSOpinion> opinionList = opinionService.selectByAuditingID(dto.getWorkflowid());
result.setOpinionList(opinionList);
result.setRegno(regno.toString());
result.setEname(ename.toString());
result.setList(list);
if (list != null && !list.isEmpty()) {
result.setDecorgString(list.get(0).getDecorgCn());
if ("enter".equals(dto.getType())) {
result.setLostCreditExplain(list.get(0).getSerillreaCn());
} else if ("remove".equals(dto.getType())) {
result.setLostCreditExplainrem(list.get(0).getRemexcpresCn());
}
}
}
return RestResult.ok(result);
}
} }

View File

@ -183,6 +183,20 @@ public class EOtIlldisdetail extends Model<EOtIlldisdetail> {
@ApiModelProperty(value = "移出文号") @ApiModelProperty(value = "移出文号")
private String redocnum; private String redocnum;
/**
* 列入文书id
*/
@TableField("INTOWRITID")
@ApiModelProperty(value = "列入文书id")
private String intowritid;
/**
* 移除文书id
*/
@TableField("REMWRITID")
@ApiModelProperty(value = "移除文书id")
private String remwritid;
/** /**
* 数据汇总单位 * 数据汇总单位
*/ */

View File

@ -211,6 +211,20 @@ public class EOtIlldisdetailTemp extends Model<EOtIlldisdetailTemp> {
@ApiModelProperty(value = "移出文号") @ApiModelProperty(value = "移出文号")
private String redocnum; private String redocnum;
/**
* 列入文书id
*/
@TableField("INTOWRITID")
@ApiModelProperty(value = "列入文书id")
private String intowritid;
/**
* 移除文书id
*/
@TableField("REMWRITID")
@ApiModelProperty(value = "移除文书id")
private String remwritid;
/** /**
* 数据汇总单位 * 数据汇总单位
*/ */

View File

@ -0,0 +1,40 @@
package com.chinaweal.aiccs.aiccs.seriousillegal.entity.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 打印文书参数DTO
*
* @author lroyia
* @since 2026/3/9
*/
@Data
@ApiModel(value = "PrintTSWritDto", description = "打印文书参数")
public class PrintTSWritDto {
/**
* 打印状态1-决定书3-审批表
*/
@ApiModelProperty(value = "打印状态1-决定书3-审批表", required = true)
private String printstatus;
/**
* 记录ID
*/
@ApiModelProperty(value = "记录ID", required = true)
private String illid;
/**
* 工作流ID
*/
@ApiModelProperty(value = "工作流ID")
private String workflowid;
/**
* 业务类型enter-列入remove-移出
*/
@ApiModelProperty(value = "业务类型enter-列入remove-移出", required = true)
private String type;
}

View File

@ -0,0 +1,91 @@
package com.chinaweal.aiccs.aiccs.seriousillegal.entity.vo;
import com.chinaweal.aiccs.aiccs.auditing.entity.TSOpinion;
import com.chinaweal.aiccs.aiccs.seriousillegal.entity.EOtIlldisdetailTemp;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDate;
import java.util.List;
/**
* 打印文书结果VO
*
* @author lroyia
* @since 2026/3/9
*/
@Data
@ApiModel(value = "PrintTSWritVo", description = "打印文书结果")
public class PrintTSWritVo {
// 决定书模式字段
/**
* 详细信息决定书模式
*/
@ApiModelProperty("详细信息")
private EOtIlldisdetailTemp detail;
/**
* 当前时间
*/
@ApiModelProperty("当前时间")
private LocalDate nowTime;
/**
* 届满日期列入决定书
*/
@ApiModelProperty("届满日期(列入决定书)")
private LocalDate expirationDate;
/**
* 文书号
*/
@ApiModelProperty("文书号")
private String wrirsno;
// 审批表模式字段
/**
* 审批意见列表审批表模式
*/
@ApiModelProperty("审批意见列表")
private List<TSOpinion> opinionList;
/**
* 注册号审批表模式
*/
@ApiModelProperty("注册号")
private String regno;
/**
* 企业名称审批表模式
*/
@ApiModelProperty("企业名称")
private String ename;
/**
* 业务记录列表审批表模式
*/
@ApiModelProperty("业务记录列表")
private List<EOtIlldisdetailTemp> list;
/**
* 决定机关审批表模式
*/
@ApiModelProperty("决定机关")
private String decorgString;
/**
* 列入事由审批表模式-列入类型
*/
@ApiModelProperty("列入事由(审批表模式-列入类型)")
private String lostCreditExplain;
/**
* 移出事由审批表模式-移出类型
*/
@ApiModelProperty("移出事由(审批表模式-移出类型)")
private String lostCreditExplainrem;
}

View File

@ -1,20 +1,26 @@
package com.chinaweal.aiccs.aiccs.seriousillegal.service.impl; package com.chinaweal.aiccs.aiccs.seriousillegal.service.impl;
import com.alibaba.excel.util.CollectionUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.chinaweal.aiccs.aiccs.abnormal.entity.TSWrit;
import com.chinaweal.aiccs.aiccs.abnormal.service.TSWritService;
import com.chinaweal.aiccs.aiccs.auditing.entity.TSOpinion; import com.chinaweal.aiccs.aiccs.auditing.entity.TSOpinion;
import com.chinaweal.aiccs.aiccs.auditing.service.TSOpinionService; import com.chinaweal.aiccs.aiccs.auditing.service.TSOpinionService;
import com.chinaweal.aiccs.aiccs.business.entity.TSTaskList; import com.chinaweal.aiccs.aiccs.business.entity.TSTaskList;
import com.chinaweal.aiccs.aiccs.business.service.TSTaskListService; import com.chinaweal.aiccs.aiccs.business.service.TSTaskListService;
import com.chinaweal.aiccs.aiccs.business.service.WorkFlowService; import com.chinaweal.aiccs.aiccs.business.service.WorkFlowService;
import com.chinaweal.aiccs.aiccs.inspect.service.TSWorkNoService;
import com.chinaweal.aiccs.aiccs.seriousillegal.entity.EOtIlldisdetail; import com.chinaweal.aiccs.aiccs.seriousillegal.entity.EOtIlldisdetail;
import com.chinaweal.aiccs.aiccs.seriousillegal.entity.EOtIlldisdetailTemp; import com.chinaweal.aiccs.aiccs.seriousillegal.entity.EOtIlldisdetailTemp;
import com.chinaweal.aiccs.aiccs.seriousillegal.mapper.EOtIlldisdetailTempMapper; import com.chinaweal.aiccs.aiccs.seriousillegal.mapper.EOtIlldisdetailTempMapper;
import com.chinaweal.aiccs.aiccs.seriousillegal.service.IEOtIlldisdetailService; import com.chinaweal.aiccs.aiccs.seriousillegal.service.IEOtIlldisdetailService;
import com.chinaweal.aiccs.aiccs.seriousillegal.service.IEOtIlldisdetailTempService; import com.chinaweal.aiccs.aiccs.seriousillegal.service.IEOtIlldisdetailTempService;
import com.chinaweal.aiccs.common.constant.BaseDataConstant; import com.chinaweal.aiccs.common.constant.CommonConstants;
import com.chinaweal.aiccs.common.util.FlowUtil; import com.chinaweal.aiccs.common.util.FlowUtil;
import com.chinaweal.aiccs.common.util.StringUtils; import com.chinaweal.aiccs.common.util.StringUtils;
import com.chinaweal.aiccs.common.util.WorkNoUtil;
import com.chinaweal.aiccs.org.service.AicorgService;
import com.chinaweal.aicorg.model.AICUser; import com.chinaweal.aicorg.model.AICUser;
import com.chinaweal.youfool.framework.springboot.exception.custom.BusinessException; import com.chinaweal.youfool.framework.springboot.exception.custom.BusinessException;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -23,7 +29,6 @@ import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List; import java.util.List;
@ -52,13 +57,24 @@ public class EOtIlldisdetailTempServiceImpl extends ServiceImpl<EOtIlldisdetailT
@Autowired @Autowired
private TSOpinionService opinionService; private TSOpinionService opinionService;
@Autowired
private TSWritService tsWritService;
@Autowired
private TSWorkNoService workNoService;
@Autowired
private AicorgService aicorgService;
@Override @Override
public List<EOtIlldisdetailTemp> listByBizSeq(String bizSeq) { public List<EOtIlldisdetailTemp> listByBizSeq(String bizSeq) {
LambdaQueryWrapper<EOtIlldisdetailTemp> wrapper = new LambdaQueryWrapper<>(); List<EOtIlldisdetailTemp> list = lambdaQuery().eq(EOtIlldisdetailTemp::getInBizseq, bizSeq)
wrapper.and(w -> w.eq(EOtIlldisdetailTemp::getInBizseq, bizSeq) .ne(EOtIlldisdetailTemp::getDstate, CommonConstants.DELETED_2).list();
.or() if (CollectionUtils.isEmpty(list)) {
.eq(EOtIlldisdetailTemp::getOutBizseq, bizSeq)); list = lambdaQuery().eq(EOtIlldisdetailTemp::getOutBizseq, bizSeq)
return list(wrapper); .ne(EOtIlldisdetailTemp::getDstate, CommonConstants.DELETED_2).list();
}
return list;
} }
@Override @Override
@ -92,7 +108,32 @@ public class EOtIlldisdetailTempServiceImpl extends ServiceImpl<EOtIlldisdetailT
// 审批通过将Temp表数据复制到正式表 // 审批通过将Temp表数据复制到正式表
for (EOtIlldisdetailTemp tempRecord : tempRecords) { for (EOtIlldisdetailTemp tempRecord : tempRecords) {
tempRecord.setInWorkflowId(taskListModel.getWorkflowid()); tempRecord.setInWorkflowId(taskListModel.getWorkflowid());
eOtIlldisdetailService.copyFromTemp(tempRecord); EOtIlldisdetail detail = eOtIlldisdetailService.copyFromTemp(tempRecord);
// 生成列入文书号
if (detail != null) {
TSWrit tsWritModel = new TSWrit();
String tswritId = java.util.UUID.randomUUID().toString();
tsWritModel.setWritsid(tswritId);
String workNoType = WorkNoUtil.WORKNOTYPE_21; // 列入严重违法失信名单 决定书文号
String writsno = workNoService.getOperatingWrirsno(workNoType, user.getRegionID());
tsWritModel.setBizseq(taskListModel.getBizseqid());
tsWritModel.setWritsno(writsno);
tsWritModel.setWritstype(workNoType);
tsWritModel.setPripid(detail.getPripid());
tsWritModel.setAreaCode(user.getRegionID());
tsWritModel.setWritsname(WorkNoUtil.getWorkNoTypeName(workNoType));
tsWritModel.setContent(detail.getEntname() + "(统一社会信用代码/注册号:"
+ (detail.getUniscid() != null ? detail.getUniscid() : detail.getRegno())
+ "" + detail.getSerillreaCn());
tsWritModel.setCreatetime(LocalDateTime.now());
tsWritModel.setLauptime(LocalDateTime.now());
tsWritService.save(tsWritModel);
// 更新正式表中的列入文书ID
detail.setIntowritid(tswritId);
eOtIlldisdetailService.updateById(detail);
}
} }
} else if (FlowUtil.SERIOUS_ILLEGAL_EXAMINE_FAIL.equals(nextNodeID)) { } else if (FlowUtil.SERIOUS_ILLEGAL_EXAMINE_FAIL.equals(nextNodeID)) {
// 审批不通过删除Temp表数据 // 审批不通过删除Temp表数据
@ -135,12 +176,33 @@ public class EOtIlldisdetailTempServiceImpl extends ServiceImpl<EOtIlldisdetailT
tempRecord.setOutWorkflowId(taskListModel.getWorkflowid()); tempRecord.setOutWorkflowId(taskListModel.getWorkflowid());
EOtIlldisdetail detail = eOtIlldisdetailService.getById(tempRecord.getIllid()); EOtIlldisdetail detail = eOtIlldisdetailService.getById(tempRecord.getIllid());
if (detail != null) { if (detail != null) {
// 生成移出文书号
TSWrit tsWritModel = new TSWrit();
String tswritId = java.util.UUID.randomUUID().toString();
tsWritModel.setWritsid(tswritId);
String workNoType = WorkNoUtil.WORKNOTYPE_25; // 移出严重违法失信名单 决定书
String writsno = workNoService.getOperatingWrirsno(workNoType, user.getRegionID());
tsWritModel.setBizseq(taskListModel.getBizseqid());
tsWritModel.setWritsno(writsno);
tsWritModel.setWritstype(workNoType);
tsWritModel.setPripid(detail.getPripid());
tsWritModel.setAreaCode(user.getRegionID());
tsWritModel.setWritsname(WorkNoUtil.getWorkNoTypeName(workNoType));
tsWritModel.setContent(detail.getEntname() + "(统一社会信用代码/注册号:"
+ (detail.getUniscid() != null ? detail.getUniscid() : detail.getRegno())
+ "" + tempRecord.getRemexcpresCn());
tsWritModel.setCreatetime(LocalDateTime.now());
tsWritModel.setLauptime(LocalDateTime.now());
tsWritService.save(tsWritModel);
// 更新正式表中的移出信息
detail.setRemexcpres(tempRecord.getRemexcpres()); detail.setRemexcpres(tempRecord.getRemexcpres());
detail.setRemexcpresCn(tempRecord.getRemexcpresCn()); detail.setRemexcpresCn(tempRecord.getRemexcpresCn());
detail.setRemdate(tempRecord.getRemdate()); detail.setRemdate(tempRecord.getRemdate());
detail.setRecorg(tempRecord.getRecorg()); detail.setRecorg(tempRecord.getRecorg());
detail.setRecorgCn(tempRecord.getRecorgCn()); detail.setRecorgCn(tempRecord.getRecorgCn());
detail.setRedocnum(tempRecord.getRedocnum()); detail.setRedocnum(tempRecord.getRedocnum());
detail.setRemwritid(tswritId); // 保存移出文书ID
detail.setSExtDatetime(LocalDateTime.now()); detail.setSExtDatetime(LocalDateTime.now());
eOtIlldisdetailService.updateById(detail); eOtIlldisdetailService.updateById(detail);
} }