From 7d7dae329c83299478fac45b7f4caa83b24102cc Mon Sep 17 00:00:00 2001 From: dimengzhe Date: Fri, 2 Feb 2024 17:30:24 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=8C=E6=AC=A1=E9=94=80=E5=94=AE=E7=AB=9E?= =?UTF-8?q?=E4=BB=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../loansecondarysalesbidding/BiddingVo.java | 21 +++++ .../LoanSecondarySalesBidding.java | 26 ++++++ .../LoanSecondarySalesBiddingDto.java | 21 +++++ .../LoanSecondarySalesBiddingFeign.java | 36 ++++++++ ...oanSecondarySalesBiddingFeignFallback.java | 12 +++ .../LoanSecondarySalesApplyService.java | 15 ++++ .../LoanSecondarySalesBiddingMapper.java | 24 ++++++ .../LoanSecondarySalesBiddingMapper.xml | 27 ++++++ .../LoanSecondarySalesBiddingRest.java | 41 +++++++++ .../LoanSecondarySalesBiddingService.java | 84 +++++++++++++++++++ doc/databases/risk_center.sql | 27 ++++++ 11 files changed, 334 insertions(+) create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesbidding/BiddingVo.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesbidding/LoanSecondarySalesBidding.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesbidding/LoanSecondarySalesBiddingDto.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesbidding/LoanSecondarySalesBiddingFeign.java create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesbidding/LoanSecondarySalesBiddingFeignFallback.java create mode 100644 anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesbidding/LoanSecondarySalesBiddingMapper.java create mode 100644 anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesbidding/LoanSecondarySalesBiddingMapper.xml create mode 100644 anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesbidding/LoanSecondarySalesBiddingRest.java create mode 100644 anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesbidding/LoanSecondarySalesBiddingService.java diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesbidding/BiddingVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesbidding/BiddingVo.java new file mode 100644 index 0000000000..9481c6d790 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesbidding/BiddingVo.java @@ -0,0 +1,21 @@ +package com.yxt.anrui.riskcenter.api.loansecondarysalesbidding; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/2/2 + **/ +@Data +public class BiddingVo { + @ApiModelProperty("时间") + private String createTime; + @ApiModelProperty("报价") + private String price; + @ApiModelProperty("分公司") + private String useOrgName; + @ApiModelProperty("报价人") + private String createByName; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesbidding/LoanSecondarySalesBidding.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesbidding/LoanSecondarySalesBidding.java new file mode 100644 index 0000000000..6c1f879335 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesbidding/LoanSecondarySalesBidding.java @@ -0,0 +1,26 @@ +package com.yxt.anrui.riskcenter.api.loansecondarysalesbidding; + +import com.yxt.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/2/2 + **/ +@Data +public class LoanSecondarySalesBidding extends BaseEntity { + private static final long serialVersionUID = 5823145478364799224L; + @ApiModelProperty("报价人") + private String createByName; + private String mainSid; + @ApiModelProperty("报价") + private BigDecimal price; + @ApiModelProperty("分公司") + private String useOrgName; + private String useOrgSid; + private String orgSidPath; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesbidding/LoanSecondarySalesBiddingDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesbidding/LoanSecondarySalesBiddingDto.java new file mode 100644 index 0000000000..d0845e0627 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesbidding/LoanSecondarySalesBiddingDto.java @@ -0,0 +1,21 @@ +package com.yxt.anrui.riskcenter.api.loansecondarysalesbidding; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/2/2 + **/ +@Data +public class LoanSecondarySalesBiddingDto { + + private String mainSid; + @ApiModelProperty("报价") + private String price; + @ApiModelProperty("机构全路径") + private String orgPath; + + private String userSid; +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesbidding/LoanSecondarySalesBiddingFeign.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesbidding/LoanSecondarySalesBiddingFeign.java new file mode 100644 index 0000000000..3a98067af5 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesbidding/LoanSecondarySalesBiddingFeign.java @@ -0,0 +1,36 @@ +package com.yxt.anrui.riskcenter.api.loansecondarysalesbidding; + +import com.yxt.common.core.result.ResultBean; +import io.swagger.annotations.ApiOperation; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; + +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/2/2 + **/ +@FeignClient( + contextId = "anrui-riskcenter-LoanSecondarySalesBidding", + name = "anrui-riskcenter", + path = "v1/LoanSecondarySalesBidding", + fallback = LoanSecondarySalesBiddingFeignFallback.class) +public interface LoanSecondarySalesBiddingFeign { + + @ApiOperation("保存") + @PostMapping("/save") + ResultBean save(@RequestBody LoanSecondarySalesBiddingDto dto); + + @ApiOperation("竞价列表") + @GetMapping("/getList") + ResultBean> getList(@RequestParam("sid") String sid); + + @ApiOperation("当前竞价最高") + @GetMapping("/getPrice") + ResultBean getPrice(@RequestParam("sid") String sid); +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesbidding/LoanSecondarySalesBiddingFeignFallback.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesbidding/LoanSecondarySalesBiddingFeignFallback.java new file mode 100644 index 0000000000..c1a74352d2 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansecondarysalesbidding/LoanSecondarySalesBiddingFeignFallback.java @@ -0,0 +1,12 @@ +package com.yxt.anrui.riskcenter.api.loansecondarysalesbidding; + +import org.springframework.stereotype.Component; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/2/2 + **/ +@Component +public class LoanSecondarySalesBiddingFeignFallback { +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyService.java index ee59233091..4d58b277e1 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyService.java @@ -38,6 +38,7 @@ import com.yxt.anrui.riskcenter.api.loanreturninboundtrailer.LoanReturnInboundTr import com.yxt.anrui.riskcenter.api.loanreturnvehledger.LoanReturnVehLedger; import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.*; import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.flowable.*; +import com.yxt.anrui.riskcenter.api.loansecondarysalesbidding.LoanSecondarySalesBiddingDto; import com.yxt.anrui.riskcenter.api.loansecondarysalescost.LoanSecondarySalesCost; import com.yxt.anrui.riskcenter.api.loansecondarysalescost.LoanSecondarySalesCostVo; import com.yxt.anrui.riskcenter.api.loansecondarysalesveh.LoanSecondarySalesVeh; @@ -47,6 +48,7 @@ import com.yxt.anrui.riskcenter.api.loansolutionsdetail.LoanSolutionsDetail; import com.yxt.anrui.riskcenter.biz.loanrestorereportapply.LoanRestoreReportApplyService; import com.yxt.anrui.riskcenter.biz.loanreturninboundapply.LoanReturnInboundApplyService; import com.yxt.anrui.riskcenter.biz.loanreturnvehledger.LoanReturnVehLedgerService; +import com.yxt.anrui.riskcenter.biz.loansecondarysalesbidding.LoanSecondarySalesBiddingService; import com.yxt.anrui.riskcenter.biz.loansecondarysalescost.LoanSecondarySalesCostMapper; import com.yxt.anrui.riskcenter.biz.loansecondarysalescost.LoanSecondarySalesCostService; import com.yxt.anrui.riskcenter.biz.loansecondarysalesveh.LoanSecondarySalesVehService; @@ -117,6 +119,8 @@ public class LoanSecondarySalesApplyService extends MybatisBaseService listPageVo(PagerQuery pq) { LoanSecondarySalesApplyQuery query = pq.getParams(); @@ -504,6 +508,17 @@ public class LoanSecondarySalesApplyService extends MybatisBaseService 0) { + prices = loanSecondarySalesCost.getVehPrice(); + } + loanSecondarySalesBiddingDto.setPrice(prices.toString()); + loanSecondarySalesBiddingDto.setUserSid(loanSecondarySalesApply.getCreateBySid()); + loanSecondarySalesBiddingDto.setOrgPath(loanSecondarySalesApply.getOrgSidPath()); + ResultBean resultBean1 = loanSecondarySalesBiddingService.saveBidding(loanSecondarySalesBiddingDto); } else { //极光推送 loanSecondarySalesApply = fetchBySid(businessSid); diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesbidding/LoanSecondarySalesBiddingMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesbidding/LoanSecondarySalesBiddingMapper.java new file mode 100644 index 0000000000..fa059c426d --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesbidding/LoanSecondarySalesBiddingMapper.java @@ -0,0 +1,24 @@ +package com.yxt.anrui.riskcenter.biz.loansecondarysalesbidding; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yxt.anrui.riskcenter.api.loansecondarysalesbidding.BiddingVo; +import com.yxt.anrui.riskcenter.api.loansecondarysalesbidding.LoanSecondarySalesBidding; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/2/2 + **/ +@Mapper +public interface LoanSecondarySalesBiddingMapper extends BaseMapper { + + + LoanSecondarySalesBidding selectByMainSid(String mainSid); + + List getList(String sid); + + String getPrice(String sid); +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesbidding/LoanSecondarySalesBiddingMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesbidding/LoanSecondarySalesBiddingMapper.xml new file mode 100644 index 0000000000..c60d445623 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesbidding/LoanSecondarySalesBiddingMapper.xml @@ -0,0 +1,27 @@ + + + + + + + + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesbidding/LoanSecondarySalesBiddingRest.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesbidding/LoanSecondarySalesBiddingRest.java new file mode 100644 index 0000000000..ebe92b8462 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesbidding/LoanSecondarySalesBiddingRest.java @@ -0,0 +1,41 @@ +package com.yxt.anrui.riskcenter.biz.loansecondarysalesbidding; + +import com.yxt.anrui.riskcenter.api.loansecondarysalesbidding.BiddingVo; +import com.yxt.anrui.riskcenter.api.loansecondarysalesbidding.LoanSecondarySalesBiddingDto; +import com.yxt.anrui.riskcenter.api.loansecondarysalesbidding.LoanSecondarySalesBiddingFeign; +import com.yxt.common.core.result.ResultBean; +import io.swagger.annotations.Api; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/2/2 + **/ +@RestController +@RequestMapping("v1/LoanSecondarySalesBidding") +@Api(tags = "二次销售公示竞价") +public class LoanSecondarySalesBiddingRest implements LoanSecondarySalesBiddingFeign { + + @Autowired + private LoanSecondarySalesBiddingService loanSecondarySalesBiddingService; + + @Override + public ResultBean save(LoanSecondarySalesBiddingDto dto) { + return loanSecondarySalesBiddingService.saveBidding(dto); + } + + @Override + public ResultBean> getList(String sid) { + return loanSecondarySalesBiddingService.getList(sid); + } + + @Override + public ResultBean getPrice(String sid) { + return loanSecondarySalesBiddingService.getPrice(sid); + } +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesbidding/LoanSecondarySalesBiddingService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesbidding/LoanSecondarySalesBiddingService.java new file mode 100644 index 0000000000..b096cdfdf7 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesbidding/LoanSecondarySalesBiddingService.java @@ -0,0 +1,84 @@ +package com.yxt.anrui.riskcenter.biz.loansecondarysalesbidding; + +import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign; +import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo; +import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign; +import com.yxt.anrui.portal.api.sysuser.SysUserFeign; +import com.yxt.anrui.portal.api.sysuser.SysUserVo; +import com.yxt.anrui.riskcenter.api.loansecondarysalesbidding.BiddingVo; +import com.yxt.anrui.riskcenter.api.loansecondarysalesbidding.LoanSecondarySalesBidding; +import com.yxt.anrui.riskcenter.api.loansecondarysalesbidding.LoanSecondarySalesBiddingDto; +import com.yxt.common.base.service.MybatisBaseService; +import com.yxt.common.base.utils.StringUtils; +import com.yxt.common.core.result.ResultBean; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.util.Collections; +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/2/2 + **/ +@Service +public class LoanSecondarySalesBiddingService extends MybatisBaseService { + + @Autowired + private SysStaffOrgFeign sysStaffOrgFeign; + @Autowired + private SysOrganizationFeign sysOrganizationFeign; + @Autowired + private SysUserFeign sysUserFeign; + + public ResultBean saveBidding(LoanSecondarySalesBiddingDto dto) { + ResultBean rb = ResultBean.fireFail(); + LoanSecondarySalesBidding loanSecondarySalesBidding = new LoanSecondarySalesBidding(); + loanSecondarySalesBidding.setCreateBySid(dto.getMainSid()); + loanSecondarySalesBidding.setMainSid(dto.getMainSid()); + loanSecondarySalesBidding.setOrgSidPath(dto.getOrgPath()); + String useOrgSid = sysStaffOrgFeign.getOrgSidByPath(dto.getOrgPath()).getData(); + if ("0".equals(useOrgSid)) { + return rb.setMsg("您所在机构没有分公司,不允许竞价"); + } + loanSecondarySalesBidding.setUseOrgSid(useOrgSid); + //创建组织使用组织 + ResultBean organizationResultBean = sysOrganizationFeign.fetchBySid(useOrgSid); + if (organizationResultBean.getData() != null) { + loanSecondarySalesBidding.setUseOrgName(organizationResultBean.getData().getName()); + } + //根据用户sid查询人员姓名 + ResultBean userVoResultBean = sysUserFeign.fetchBySid(dto.getUserSid()); + if (!userVoResultBean.getSuccess()) { + return rb.setMsg(userVoResultBean.getMsg()); + } + loanSecondarySalesBidding.setCreateByName(userVoResultBean.getData().getName()); + //查询最高竞价 + LoanSecondarySalesBidding loanSecondarySalesBidding1 = baseMapper.selectByMainSid(dto.getMainSid()); + if (StringUtils.isNotBlank(dto.getPrice())) { + if ((new BigDecimal(dto.getPrice()).subtract(loanSecondarySalesBidding1.getPrice()).compareTo(new BigDecimal("1000"))) < 0) { + return rb.setMsg("确认失败,每次竞价幅度需不低于1000元"); + } + loanSecondarySalesBidding.setPrice(new BigDecimal(dto.getPrice())); + } else { + return rb.setMsg("请输入您的报价"); + } + baseMapper.insert(loanSecondarySalesBidding); + return rb.success(); + } + + public ResultBean> getList(String sid) { + ResultBean> rb = ResultBean.fireFail(); + List list = baseMapper.getList(sid); + list.removeAll(Collections.singleton(null)); + return rb.success().setData(list); + } + + public ResultBean getPrice(String sid) { + ResultBean rb = ResultBean.fireFail(); + String price = baseMapper.getPrice(sid); + return rb.success().setData(price); + } +} diff --git a/doc/databases/risk_center.sql b/doc/databases/risk_center.sql index a5407bef1b..fa772d77a0 100644 --- a/doc/databases/risk_center.sql +++ b/doc/databases/risk_center.sql @@ -1698,6 +1698,33 @@ CREATE TABLE `loan_secondary_sales_customer` +DROP TABLE IF EXISTS `loan_secondary_sales_bidding`; +CREATE TABLE `loan_secondary_sales_bidding` +( + `id` int(32) NOT NULL AUTO_INCREMENT COMMENT 'id', + `sid` varchar(64) NOT NULL COMMENT 'sid', + `lockVersion` int(32) DEFAULT '0' COMMENT '版本锁', + `createTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `modifyTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间', + `isEnable` int(32) DEFAULT '1' COMMENT '是否可用:1可用,0不可用', + `state` int(32) DEFAULT '1' COMMENT '状态', + `isDelete` int(32) DEFAULT '0' COMMENT '是否删除:0未删除,1已删除', + `remarks` varchar(255) DEFAULT NULL COMMENT '备注', + `createBySid` varchar(64) DEFAULT NULL COMMENT '创建人sid', + `updateBySid` varchar(64) DEFAULT NULL COMMENT '修改人sid', + `createByName` varchar(64) DEFAULT NULL COMMENT '报价人', + `mainSid` varchar(64) DEFAULT NULL COMMENT '主表sid', + `price` decimal(10, 2) DEFAULT NULL COMMENT '报价', + `useOrgName` varchar(500) DEFAULT NULL COMMENT '分公司', + `useOrgSid` varchar(64) DEFAULT NULL COMMENT '分公司sid', + `orgSidPath` text DEFAULT NULL COMMENT '机构sid全路径', + PRIMARY KEY (`id`), + KEY `id` (`id`) +) ENGINE = INNODB + DEFAULT CHARSET = utf8 COMMENT ='二次销售公示竞价'; + + +