@@ -7,8 +7,8 @@ import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.web.PageResult ;
import com.gxwebsoft.common.system.entity.User ;
import com.gxwebsoft.credit.entity.CreditGqdj ;
import com.gxwebsoft.credit.param.CreditGqdjImportParam ;
import com.gxwebsoft.credit.param.CreditGqdjParam ;
import com.gxwebsoft.credit.param.CreditJudicialImportParam ;
import com.gxwebsoft.credit.service.CreditGqdjService ;
import io.swagger.v3.oas.annotations.Operation ;
import io.swagger.v3.oas.annotations.tags.Tag ;
@@ -23,6 +23,7 @@ import javax.servlet.http.HttpServletResponse;
import java.io.IOException ;
import java.util.ArrayList ;
import java.util.List ;
import java.util.Map ;
/**
* 股权冻结控制器
@@ -144,11 +145,13 @@ public class CreditGqdjController extends BaseController {
int successCount = 0 ;
try {
ExcelImportSupport . ImportResult < CreditJudicialImportParam > importResult = ExcelImportSupport . read (
file , CreditJudicialImportParam . class , this : : isEmptyImportRow ) ;
List < CreditJudicialImportParam > list = importResult . getData ( ) ;
int sheetIndex = ExcelImportSupport . findSheetIndex ( file , " 股权冻结 " , 0 ) ;
ExcelImportSupport . ImportResult < CreditGqdjImportParam > importResult = ExcelImportSupport . read (
file , CreditGqdjImportParam . class , this : : isEmptyImportRow , sheetIndex ) ;
List < CreditGqdjImportParam > list = importResult . getData ( ) ;
int usedTitleRows = importResult . getTitleRows ( ) ;
int usedHeadRows = importResult . getHeadRows ( ) ;
int usedSheetIndex = importResult . getSheetIndex ( ) ;
if ( CollectionUtils . isEmpty ( list ) ) {
return fail ( " 未读取到数据,请确认模板表头与示例格式一致 " , null ) ;
@@ -157,6 +160,9 @@ public class CreditGqdjController extends BaseController {
User loginUser = getLoginUser ( ) ;
Integer currentUserId = loginUser ! = null ? loginUser . getUserId ( ) : null ;
Integer currentTenantId = loginUser ! = null ? loginUser . getTenantId ( ) : null ;
// easypoi 默认不会读取单元格超链接地址; url 通常挂在“案号”列的超链接中,需要额外读取回填。
Map < String , String > urlByCaseNumber = ExcelImportSupport . readHyperlinksByHeaderKey (
file , usedSheetIndex , usedTitleRows , usedHeadRows , " 案号 " ) ;
final int chunkSize = 500 ;
final int mpBatchSize = 500 ;
@@ -164,9 +170,15 @@ public class CreditGqdjController extends BaseController {
List < Integer > chunkRowNumbers = new ArrayList < > ( chunkSize ) ;
for ( int i = 0 ; i < list . size ( ) ; i + + ) {
CreditJudicial ImportParam param = list . get ( i ) ;
CreditGqdj ImportParam param = list . get ( i ) ;
try {
CreditGqdj item = convertImportParamToEntity ( param ) ;
if ( ! ImportHelper . isBlank ( item . getCaseNumber ( ) ) ) {
String link = urlByCaseNumber . get ( item . getCaseNumber ( ) . trim ( ) ) ;
if ( link ! = null & & ! link . isEmpty ( ) ) {
item . setUrl ( link ) ;
}
}
if ( item . getCompanyId ( ) = = null & & companyId ! = null ) {
item . setCompanyId ( companyId ) ;
@@ -294,23 +306,19 @@ public class CreditGqdjController extends BaseController {
@Operation ( summary = " 下载股权冻结导入模板 " )
@GetMapping ( " /import/template " )
public void downloadTemplate ( HttpServletResponse response ) throws IOException {
List < CreditJudicial ImportParam > templateList = new ArrayList < > ( ) ;
List < CreditGqdj ImportParam > templateList = new ArrayList < > ( ) ;
CreditJudicial ImportParam example = new CreditJudicial ImportParam ( ) ;
CreditGqdj ImportParam example = new CreditGqdj ImportParam ( ) ;
example . setDataType ( " 股权冻结 " ) ;
example . setPlaintiffAppellant ( " 原告示例 " ) ;
example . setAppellee ( " 被告示例 " ) ;
example . setOtherPartiesThirdParty ( " 第三人示例 " ) ;
example . setOccurrenceTime ( " 2024-01-01 " ) ;
example . setCaseNumber ( " ( 2024) 示例案号" ) ;
example . setCauseOfAction ( " 案由示例 " ) ;
example . setInvolvedAmount ( " 100000 " ) ;
example . setCourtName ( " 示例法院 " ) ;
example . setDataStatus ( " 已公开 " ) ;
example . setComments ( " 备注信息 " ) ;
templateList . add ( example ) ;
Workbook workbook = ExcelImportSupport . buildTemplate ( " 股权冻结导入模板 " , " 股权冻结 " , CreditJudicial ImportParam . class , templateList ) ;
Workbook workbook = ExcelImportSupport . buildTemplate ( " 股权冻结导入模板 " , " 股权冻结 " , CreditGqdj ImportParam . class , templateList ) ;
response . setContentType ( " application/vnd.openxmlformats-officedocument.spreadsheetml.sheet " ) ;
response . setHeader ( " Content-Disposition " , " attachment; filename=credit_gqdj_import_template.xlsx " ) ;
@@ -319,27 +327,26 @@ public class CreditGqdjController extends BaseController {
workbook . close ( ) ;
}
private boolean isEmptyImportRow ( CreditJudicial ImportParam param ) {
private boolean isEmptyImportRow ( CreditGqdj ImportParam param ) {
if ( param = = null ) {
return true ;
}
return ImportHelper . isBlank ( param . getCaseNumber ( ) )
& & ImportHelper . isBlank ( param . getPlaintiffAppellant ( ) )
& & ImportHelper . isBlank ( param . getAppellee ( ) )
& & ImportHelper . isBlank ( param . getCauseOfAction ( ) ) ;
return ImportHelper . isBlank ( param . getCaseNumber ( ) ) ;
}
private CreditGqdj convertImportParamToEntity ( CreditJudicial ImportParam param ) {
private CreditGqdj convertImportParamToEntity ( CreditGqdj ImportParam param ) {
CreditGqdj entity = new CreditGqdj ( ) ;
entity . setDataType ( param . getDataType ( ) ) ;
entity . setPlaintiffAppellant ( param . getPlaintiffAppellant ( ) ) ;
entity . setAppellee ( param . getAppellee ( ) ) ;
entity . setCaseNumber ( param . getCaseNumber ( ) ) ;
entity . setAppellee ( param . getAppellee ( ) ) ;
entity . setPlaintiffAppellant ( param . getPlaintiffAppellant ( ) ) ;
entity . setInvolvedAmount ( param . getInvolvedAmount ( ) ) ;
entity . setCourtName ( param . getCourtName ( ) ) ;
entity . setDataStatus ( param . getDataStatus ( ) ) ;
entity . setComments ( param . getComments ( ) ) ;
entity . setDataType ( " 股权冻结 " ) ;
entity . setPublicDate ( param . getPublicDate ( ) ) ;
entity . setFreezeDateStart ( param . getFreezeDateStart ( ) ) ;
entity . setFreezeDateEnd ( param . getFreezeDateEnd ( ) ) ;
return entity ;
}