diff --git a/BlockFinanceCentral/src/main/java/com/sztzjy/block_finance/controller/StuDebtTransferStartController.java b/BlockFinanceCentral/src/main/java/com/sztzjy/block_finance/controller/StuDebtTransferStartController.java index 460ce62..074faab 100644 --- a/BlockFinanceCentral/src/main/java/com/sztzjy/block_finance/controller/StuDebtTransferStartController.java +++ b/BlockFinanceCentral/src/main/java/com/sztzjy/block_finance/controller/StuDebtTransferStartController.java @@ -1,12 +1,20 @@ package com.sztzjy.block_finance.controller; +import com.alibaba.fastjson.JSONObject; +import com.nimbusds.jose.shaded.gson.JsonObject; import com.sztzjy.block_finance.annotation.AnonymousAccess; +import com.sztzjy.block_finance.entity.StuDebtInvestigationInfo; +import com.sztzjy.block_finance.entity.dto.StuDebtTransferDTO; +import com.sztzjy.block_finance.service.StuDebtTransferStartService; import com.sztzjy.block_finance.util.ResultEntity; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import io.swagger.annotations.ApiParam; +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; /** * @author tz @@ -16,11 +24,55 @@ import org.springframework.web.bind.annotation.RestController; @RequestMapping("api/stu/supplyChainFinance/debtTransfer") @Api(tags = "供应链金融流程:发起债权转让贴现--智能合约执行") public class StuDebtTransferStartController { + @Resource + StuDebtTransferStartService stuDebtTransferStartService; + + @PostMapping("/debtTransferFileDisplay") + @AnonymousAccess + @ApiOperation("发起债权转让贴现--债权转让文件展示") + public ResultEntity> debtTransferFileDisplay(@ApiParam("用户ID") String userId){ + List stuDebtTransferDTOList=stuDebtTransferStartService.debtTransferFileDisplay(userId); + return new ResultEntity<>(HttpStatus.OK,"成功",stuDebtTransferDTOList); + } + + @PostMapping("/operate") + @AnonymousAccess + @ApiOperation("发起债权转让贴现--操作:下载、上传、读取") + public ResultEntity operate(@ApiParam("文件ID") Integer id, + @ApiParam("操作类型") String operateType){ + int result=stuDebtTransferStartService.operate(id,operateType); + return new ResultEntity<>(HttpStatus.OK,operateType+"成功"); + } + + @PostMapping("/applicationForDebtTransfer") + @AnonymousAccess + @ApiOperation("发起债权转让贴现--发起债权转让申请") + public ResultEntity applicationForDebtTransfer(@ApiParam("用户ID") String userId){ + stuDebtTransferStartService.applicationForDebtTransfer(userId); + return new ResultEntity<>(HttpStatus.OK,"成功"); + } + + @PostMapping("/debtInvestigationFileDisplay") + @AnonymousAccess + @ApiOperation("债项调查--债权转让文件展示") + public ResultEntity> debtInvestigationFileDisplay(@ApiParam("用户ID") String userId){ + List stuDebtInvestigationInfos=stuDebtTransferStartService.debtInvestigationFileDisplay(userId); + return new ResultEntity<>(HttpStatus.OK,"成功",stuDebtInvestigationInfos); + } + + @PostMapping("/debtInvestigationPassed") + @AnonymousAccess + @ApiOperation("债项调查--债项调查通过") + public ResultEntity debtInvestigationPassed(@RequestBody List stuDebtInvestigationInfo){ + stuDebtTransferStartService.debtInvestigationPassed(stuDebtInvestigationInfo); + return new ResultEntity(HttpStatus.OK,"通过"); + } - @PostMapping("/getStuHashNavigation") + @PostMapping("/supplierFileDisplay") @AnonymousAccess - @ApiOperation("债权转让文件展示") - public ResultEntity debtTransferFileDisplay(){ - return null; + @ApiOperation("数字签章确权(供应商/核心企业/保理公司)--文件展示") + public ResultEntity> supplierFileDisplay(@ApiParam("用户ID") String userId){ + List stuDebtTransferDTOList=stuDebtTransferStartService.supplierFileDisplay(userId); + return new ResultEntity<>(HttpStatus.OK,"成功",stuDebtTransferDTOList); } } diff --git a/BlockFinanceCentral/src/main/java/com/sztzjy/block_finance/entity/dto/StuDebtTransferDTO.java b/BlockFinanceCentral/src/main/java/com/sztzjy/block_finance/entity/dto/StuDebtTransferDTO.java new file mode 100644 index 0000000..f4aa487 --- /dev/null +++ b/BlockFinanceCentral/src/main/java/com/sztzjy/block_finance/entity/dto/StuDebtTransferDTO.java @@ -0,0 +1,24 @@ +package com.sztzjy.block_finance.entity.dto; + +import lombok.Data; + +/** + * @author tz + * @date 2024/3/7 14:02 + */ +@Data +public class StuDebtTransferDTO { + private Integer id; + + private String fileName; + + private String url; + + private Integer uploadStatus; + + private Integer readStatus; + + private Integer downloadStatus; + + private String userId; +} diff --git a/BlockFinanceCentral/src/main/java/com/sztzjy/block_finance/mappers/StuDebtInvestigationInfoMapper.java b/BlockFinanceCentral/src/main/java/com/sztzjy/block_finance/mappers/StuDebtInvestigationInfoMapper.java index 2511829..29ed142 100644 --- a/BlockFinanceCentral/src/main/java/com/sztzjy/block_finance/mappers/StuDebtInvestigationInfoMapper.java +++ b/BlockFinanceCentral/src/main/java/com/sztzjy/block_finance/mappers/StuDebtInvestigationInfoMapper.java @@ -3,8 +3,10 @@ package com.sztzjy.block_finance.mappers; import com.sztzjy.block_finance.entity.StuDebtInvestigationInfo; import com.sztzjy.block_finance.entity.StuDebtInvestigationInfoExample; import java.util.List; -import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +@Mapper public interface StuDebtInvestigationInfoMapper { long countByExample(StuDebtInvestigationInfoExample example); diff --git a/BlockFinanceCentral/src/main/java/com/sztzjy/block_finance/service/StuDebtTransferStartService.java b/BlockFinanceCentral/src/main/java/com/sztzjy/block_finance/service/StuDebtTransferStartService.java new file mode 100644 index 0000000..c448250 --- /dev/null +++ b/BlockFinanceCentral/src/main/java/com/sztzjy/block_finance/service/StuDebtTransferStartService.java @@ -0,0 +1,24 @@ +package com.sztzjy.block_finance.service; + +import com.sztzjy.block_finance.entity.StuDebtInvestigationInfo; +import com.sztzjy.block_finance.entity.dto.StuDebtTransferDTO; + +import java.util.List; + +/** + * @author tz + * @date 2024/3/7 14:05 + */ +public interface StuDebtTransferStartService { + List debtTransferFileDisplay(String userId); + + int operate(Integer id, String operateType); + + void applicationForDebtTransfer(String userId); + + List debtInvestigationFileDisplay(String userId); + + void debtInvestigationPassed(List stuDebtInvestigationInfo); + + List supplierFileDisplay(String userId); +} diff --git a/BlockFinanceCentral/src/main/java/com/sztzjy/block_finance/service/impl/StuDebtTransferStartServiceImpl.java b/BlockFinanceCentral/src/main/java/com/sztzjy/block_finance/service/impl/StuDebtTransferStartServiceImpl.java new file mode 100644 index 0000000..92e8e8b --- /dev/null +++ b/BlockFinanceCentral/src/main/java/com/sztzjy/block_finance/service/impl/StuDebtTransferStartServiceImpl.java @@ -0,0 +1,124 @@ +package com.sztzjy.block_finance.service.impl; + +import com.sztzjy.block_finance.config.exception.handler.ServiceException; +import com.sztzjy.block_finance.entity.StuDebtInvestigationInfo; +import com.sztzjy.block_finance.entity.StuDebtInvestigationInfoExample; +import com.sztzjy.block_finance.entity.StuTransactionDocumentsInfo; +import com.sztzjy.block_finance.entity.StuTransactionDocumentsInfoExample; +import com.sztzjy.block_finance.entity.dto.StuDebtTransferDTO; +import com.sztzjy.block_finance.mappers.StuDebtInvestigationInfoMapper; +import com.sztzjy.block_finance.mappers.StuTransactionDocumentsInfoMapper; +import com.sztzjy.block_finance.service.StuDebtTransferStartService; +import com.sztzjy.block_finance.util.ConvertUtil; +import org.springframework.http.HttpStatus; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; +import java.util.UUID; + +/** + * @author tz + * @date 2024/3/7 14:05 + */ +@Service +public class StuDebtTransferStartServiceImpl implements StuDebtTransferStartService { + @Resource + ConvertUtil convertUtil; + @Resource + StuTransactionDocumentsInfoMapper stuTransactionDocumentsInfoMapper; + @Resource + StuDebtInvestigationInfoMapper stuDebtInvestigationInfoMapper; + @Override + public List debtTransferFileDisplay(String userId) { + + StuTransactionDocumentsInfoExample stuTransactionDocumentsInfoExample=new StuTransactionDocumentsInfoExample(); + stuTransactionDocumentsInfoExample.createCriteria().andUserIdEqualTo(userId); + List stuTransactionDocumentsInfoList = stuTransactionDocumentsInfoMapper.selectByExample(stuTransactionDocumentsInfoExample); + + if(stuTransactionDocumentsInfoList.isEmpty()){ + //查询默认数据 + StuTransactionDocumentsInfoExample example = new StuTransactionDocumentsInfoExample(); + example.createCriteria().andUserIdIsNull(); + List stuTransactionDocumentsInfos = stuTransactionDocumentsInfoMapper.selectByExample(example); + + for (int i = 0; i < stuTransactionDocumentsInfos.size(); i++) { + StuTransactionDocumentsInfo stuTransactionDocumentsInfo = stuTransactionDocumentsInfos.get(i); + Integer uuid = UUID.randomUUID().toString().replaceAll("-", "").hashCode(); + uuid = uuid < 0 ? -uuid : uuid;//String.hashCode() 值会为空 + stuTransactionDocumentsInfo.setId(uuid); + stuTransactionDocumentsInfo.setUserId(userId); + stuTransactionDocumentsInfoMapper.insert(stuTransactionDocumentsInfo); + stuTransactionDocumentsInfoList.add(stuTransactionDocumentsInfo); + } + } + List stuDebtTransferDTOList = convertUtil.entityToDTOList(stuTransactionDocumentsInfoList, StuDebtTransferDTO.class); + return stuDebtTransferDTOList; + } + + @Override + public int operate(Integer id, String operateType) { + StuTransactionDocumentsInfo stuTransactionDocumentsInfo = stuTransactionDocumentsInfoMapper.selectByPrimaryKey(id); + if(operateType.equals("下载")){ + stuTransactionDocumentsInfo.setDownloadStatus(1); + } + if(operateType.equals("上传")){ + if(stuTransactionDocumentsInfo.getDownloadStatus()!=1){ + throw new ServiceException(HttpStatus.ACCEPTED,"未下载文件,无法上传"); + } + stuTransactionDocumentsInfo.setUploadStatus(1); + } + if(operateType.equals("读取")){ + if(stuTransactionDocumentsInfo.getUploadStatus()!=1){ + throw new ServiceException(HttpStatus.ACCEPTED,"未上传文件,无法读取"); + } + stuTransactionDocumentsInfo.setReadStatus(1); + } + int update = stuTransactionDocumentsInfoMapper.updateByPrimaryKey(stuTransactionDocumentsInfo); + return update; + } + + @Override + public void applicationForDebtTransfer(String userId) { + StuTransactionDocumentsInfoExample stuTransactionDocumentsInfoExample=new StuTransactionDocumentsInfoExample(); + stuTransactionDocumentsInfoExample.createCriteria().andUserIdEqualTo(userId); + List stuTransactionDocumentsInfos = stuTransactionDocumentsInfoMapper.selectByExample(stuTransactionDocumentsInfoExample); + for (int i = 0; i < stuTransactionDocumentsInfos.size(); i++) { + if(stuTransactionDocumentsInfos.get(i).getReadStatus()!=1){ + throw new ServiceException(HttpStatus.ACCEPTED,"文件未全部读取"); + } + } + } + + @Override + public List debtInvestigationFileDisplay(String userId) { + List stuDebtInvestigationInfos = stuDebtInvestigationInfoMapper.selectByExample(null); + return stuDebtInvestigationInfos; + } + + @Override + public void debtInvestigationPassed(List stuDebtInvestigationInfo) { + //查询内置数据 + List stuDebtInvestigationInfos = stuDebtInvestigationInfoMapper.selectByExample(null); + //进行比较 + for (int i = 0; i < stuDebtInvestigationInfo.size(); i++) { + for (int j = 0; j < stuDebtInvestigationInfos.size(); j++) { + if(stuDebtInvestigationInfo.get(i).getId()==stuDebtInvestigationInfos.get(j).getId()){ //是否是同一文件 + if(!stuDebtInvestigationInfo.get(i).getOnAnalysis().equals(stuDebtInvestigationInfos.get(j).getOnAnalysis())){ + throw new ServiceException(HttpStatus.ACCEPTED,"分析结果选择错误"); + } + break; + } + } + } + } + + @Override + public List supplierFileDisplay(String userId) { + StuTransactionDocumentsInfoExample example=new StuTransactionDocumentsInfoExample(); + example.createCriteria().andUserIdEqualTo(userId).andSupplierDisplayEqualTo(1); + List stuTransactionDocumentsInfoList = stuTransactionDocumentsInfoMapper.selectByExample(example); + List stuDebtTransferDTOList = convertUtil.entityToDTOList(stuTransactionDocumentsInfoList, StuDebtTransferDTO.class); + return stuDebtTransferDTOList; + } +}