diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleMapper.xml b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleMapper.xml index 2d308a2fc0..b4aa9f29f3 100644 --- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleMapper.xml +++ b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleMapper.xml @@ -1302,7 +1302,7 @@ + SELECT + sid + FROM + loan_be_collection_veh + WHERE saleVehSid = #{saleVehSid} + AND lockCarState = #{c} + ORDER BY createTime DESC + LIMIT 1 + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionapply/LoanRedemptionApplyMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionapply/LoanRedemptionApplyMapper.java index 24d6d91a96..4142e98a5e 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionapply/LoanRedemptionApplyMapper.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionapply/LoanRedemptionApplyMapper.java @@ -36,4 +36,6 @@ public interface LoanRedemptionApplyMapper extends BaseMapper + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionapply/LoanRedemptionApplyService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionapply/LoanRedemptionApplyService.java index e3a2502b26..f7e890712e 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionapply/LoanRedemptionApplyService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanredemptionapply/LoanRedemptionApplyService.java @@ -267,6 +267,10 @@ public class LoanRedemptionApplyService extends MybatisBaseService SELECT - ROUND( + IFNULL(ROUND( IFNULL(SUM(lrh.`actualMoney`), 0) / ( IFNULL(lrs.mainMidRepay, 0) + IFNULL(lrs.otherMidRepay, 0) ), 1 - ) + ),0) FROM (SELECT DISTINCT scheduleSid @@ -101,14 +101,14 @@ (IFNULL(SUM(ss.yq_total), 0) + IFNULL( (SELECT - SUM(lbpv.`bankBeInter`) + IFNULL(SUM(lbpv.`bankBeInter`),0) FROM loan_be_padsincere_veh lbpv WHERE lbpv.saleVehSid = ss.busVinSid), 0 ) + IFNULL( (SELECT - SUM(fund) + IFNULL(SUM(fund),0) FROM loan_fund_day WHERE busSid IN @@ -116,8 +116,7 @@ lrpd.sid FROM loan_repayment_plan_details lrpd - WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') < CURDATE() - AND lrpd.`busVinSid` = #{saleVehSid})), + WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') < CURDATE())), 0 ) ) AS beMoney @@ -147,8 +146,7 @@ lrpd.sid FROM loan_repayment_plan_details lrpd - WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') < CURDATE() - AND lrpd.`busVinSid` = #{saleVehSid}) + WHERE DATE_FORMAT(lrpd.dueDate, '%Y-%m-%d') < CURDATE()) + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrestorereportapply/LoanRestoreReportApplyService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrestorereportapply/LoanRestoreReportApplyService.java index 8a682b9f4d..6c42d508c5 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrestorereportapply/LoanRestoreReportApplyService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrestorereportapply/LoanRestoreReportApplyService.java @@ -338,19 +338,18 @@ public class LoanRestoreReportApplyService extends MybatisBaseService { + IPage selectPageVo(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); + + int updateFlowFiled(Map beanToMap); + + int selectBySid(String join); + + LoanSecondarySalesApplyDetailsVo selectDetails(String sid); } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyMapper.xml index b4adcb15e3..c19151b078 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyMapper.xml +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyMapper.xml @@ -1,4 +1,90 @@ + + + + UPDATE loan_secondary_sales_apply + SET nodeState=#{nodeState} + + , taskDefKey=#{taskDefKey} + + + , procDefId=#{procDefId} + + + , procInstId=#{procInsId} + + + , taskId=#{taskId} + + WHERE sid = #{sid} + + + + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyRest.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyRest.java index 99014ee0d9..afd9f06452 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyRest.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesapply/LoanSecondarySalesApplyRest.java @@ -1,11 +1,15 @@ package com.yxt.anrui.riskcenter.biz.loansecondarysalesapply; +import cn.hutool.core.bean.BeanUtil; +import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; +import com.yxt.anrui.riskcenter.api.loanreturninboundapply.LoanReturnInboundApplyVo; import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.*; import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.flowable.*; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; 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; @@ -20,63 +24,72 @@ import java.util.List; @RequestMapping("v1/LoanSecondarySalesApply") @Api(tags = "二次销售") public class LoanSecondarySalesApplyRest implements LoanSecondarySalesApplyFeign { + + @Autowired + private LoanSecondarySalesApplyService loanSecondarySalesApplyService; + @Override public ResultBean> listPage(PagerQuery pq) { - return null; + ResultBean> rb = ResultBean.fireFail(); + PagerVo pv = loanSecondarySalesApplyService.listPageVo(pq); + return rb.success().setData(pv); } @Override public ResultBean saveOrUpdate(LoanSecondarySalesApplyDto dto) { - return null; + return loanSecondarySalesApplyService.saveOrUpdateSecondarySales(dto); } @Override public ResultBean details(LoanSecondarySalesApplyDetailsQuery query) { - return null; + return loanSecondarySalesApplyService.details(query); } @Override public ResultBean delBySids(String[] sids) { - return null; + return loanSecondarySalesApplyService.delAllBySids(sids); } @Override public ResultBean submitApply(SubmitLoanSecondarySalesApplyDto dto) { - return null; + return loanSecondarySalesApplyService.submitApply(dto); } @Override public ResultBean complete(CompleteLoanSecondarySalesApplyDto query) { - return null; + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + bv.setModelId(""); + return loanSecondarySalesApplyService.complete(bv); } @Override public ResultBean> getPreviousNodesForReject(LoanSecondarySalesApplyNodeQuery query) { - return null; + return loanSecondarySalesApplyService.getPreviousNodesForReject(query); } @Override public ResultBean> getNextNodesForSubmit(LoanSecondarySalesApplyNodeQuery query) { - return null; + return loanSecondarySalesApplyService.getNextNodesForSubmit(query); } @Override public ResultBean taskReject(LoanSecondarySalesApplyTaskQuery query) { - return null; + return loanSecondarySalesApplyService.taskReject(query); } @Override public ResultBean revokeProcess(LoanSecondarySalesApplyTaskQuery query) { - return null; + return loanSecondarySalesApplyService.revokeProcess(query); } @Override public ResultBean breakProcess(LoanSecondarySalesApplyTaskQuery query) { - return null; + return loanSecondarySalesApplyService.breakProcess(query); } @Override public ResultBean delegate(LoanSecondarySalesApplyDelegateQuery query) { - return null; + return loanSecondarySalesApplyService.delegate(query); } } 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 e736c1cc34..d623d8d6a3 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 @@ -1,9 +1,64 @@ package com.yxt.anrui.riskcenter.biz.loansecondarysalesapply; -import com.yxt.anrui.riskcenter.api.loansecondarysalesapply.LoanSecondarySalesApply; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.google.common.util.concurrent.ThreadFactoryBuilder; +import com.yxt.anrui.base.api.basevehmodelconfig.BaseVehmodelVo; +import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder; +import com.yxt.anrui.flowable.api.flow.FlowableFeign; +import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo; +import com.yxt.anrui.flowable.api.flow2.FlowDelegateQuery; +import com.yxt.anrui.flowable.api.flow2.FlowFeign; +import com.yxt.anrui.flowable.api.flowtask.FlowTaskFeign; +import com.yxt.anrui.flowable.api.flowtask.FlowTaskVo; +import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo; +import com.yxt.anrui.flowable.api.utils.ProcDefEnum; +import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; +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.PrivilegeQuery; +import com.yxt.anrui.portal.api.sysuser.SysUserFeign; +import com.yxt.anrui.portal.api.sysuser.SysUserVo; +import com.yxt.anrui.riskcenter.api.loanoverduefin.UrlQuery; +import com.yxt.anrui.riskcenter.api.loanrestorereportapply.AlrepaidAndArrVo; +import com.yxt.anrui.riskcenter.api.loanreturninboundapply.LoanReturnInboundApply; +import com.yxt.anrui.riskcenter.api.loanreturninboundapply.LoanReturnInboundApplyDetailsVo; +import com.yxt.anrui.riskcenter.api.loanreturninboundapply.LoanReturnInboundApplyQuery; +import com.yxt.anrui.riskcenter.api.loanreturninboundapply.LoanReturnInboundApplyVo; +import com.yxt.anrui.riskcenter.api.loanreturninboundapply.flowable.ReturnInboundApplyNodeVo; +import com.yxt.anrui.riskcenter.api.loanreturninboundtrailer.LoanReturnInboundTrailer; +import com.yxt.anrui.riskcenter.api.loanreturninboundtrailer.LoanReturnInboundTrailerDto; +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.loansecondarysalescost.LoanSecondarySalesCostVo; +import com.yxt.anrui.riskcenter.api.loansecondarysalesveh.LoanSecondarySalesVeh; +import com.yxt.anrui.riskcenter.api.loansecondarysalesveh.LoanSecondarySalesVehVo; +import com.yxt.anrui.riskcenter.biz.loanreturnvehledger.LoanReturnVehLedgerService; +import com.yxt.anrui.riskcenter.biz.loansecondarysalescost.LoanSecondarySalesCostService; +import com.yxt.anrui.riskcenter.biz.loansecondarysalesveh.LoanSecondarySalesVehService; +import com.yxt.common.base.config.component.FileUploadComponent; import com.yxt.common.base.service.MybatisBaseService; +import com.yxt.common.base.utils.PagerUtil; +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; +import com.yxt.messagecenter.api.message.MessageFeign; +import com.yxt.messagecenter.api.message.MessageFlowVo; +import com.yxt.messagecenter.api.message.MessageFlowableQuery; +import org.apache.commons.lang3.StringUtils; +import org.apache.tomcat.util.threads.ThreadPoolExecutor; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.*; +import java.util.concurrent.*; +import java.util.stream.Collectors; + /** * @description: * @author: dimengzhe @@ -11,4 +66,555 @@ import org.springframework.stereotype.Service; **/ @Service public class LoanSecondarySalesApplyService extends MybatisBaseService { + + @Autowired + private SysUserFeign sysUserFeign; + @Autowired + private FlowFeign flowFeign; + @Autowired + private FlowableFeign flowableFeign; + @Autowired + private FlowTaskFeign flowTaskFeign; + @Autowired + private MessageFeign messageFeign; + @Autowired + private LoanSecondarySalesCostService loanSecondarySalesCostService; + @Autowired + private LoanSecondarySalesVehService loanSecondarySalesVehService; + @Autowired + private SysOrganizationFeign sysOrganizationFeign; + @Autowired + private SysStaffOrgFeign sysStaffOrgFeign; + @Autowired + private FileUploadComponent fileUploadComponent; + @Autowired + private LoanReturnVehLedgerService loanReturnVehLedgerService; + + public PagerVo listPageVo(PagerQuery pq) { + LoanSecondarySalesApplyQuery query = pq.getParams(); + QueryWrapper qw = new QueryWrapper<>(); + if (query != null) { + //分公司 + if (StringUtils.isNotBlank(query.getUseOrgName())) { + qw.like("la.useOrgName", query.getUseOrgName()); + } + //申请人 + if (StringUtils.isNotBlank(query.getCreateByName())) { + qw.like("la.createByName", query.getCreateByName()); + } + //申请部门 + if (StringUtils.isNotBlank(query.getCreateDept())) { + qw.like("la.createDept", query.getCreateDept()); + } + //贷款合同编号 + if (StringUtils.isNotBlank(query.getLoanContractNo())) { + qw.like("la.loanContractNo", query.getLoanContractNo()); + } + //ToDo:车架号 + if (StringUtils.isNotBlank(query.getVinNo())) { + + } + //车牌号 + if (StringUtils.isNotBlank(query.getVehMark())) { + } + //贷款人 + if (StringUtils.isNotBlank(query.getLoanName())) { + qw.like("la.loanName", query.getLoanName()); + } + //资方 + if (StringUtils.isNotBlank(query.getBankName())) { + qw.like("la.bankName", query.getBankName()); + } + //资方合同编号 + if (StringUtils.isNotBlank(query.getBankContractNo())) { + qw.like("la.bankContractNo", query.getBankContractNo()); + } + //客户名称 + if (StringUtils.isNotBlank(query.getCustomerName())) { + qw.like("la.customerName", query.getCustomerName()); + } + + //办结日期 + qw.apply(StringUtils.isNotBlank(query.getCloseDateStart()), "date_format (la.closeDate,'%Y-%m-%d') >= date_format('" + query.getCloseDateStart() + "','%Y-%m-%d')"). + apply(StringUtils.isNotBlank(query.getCloseDateEnd()), "date_format (la.closeDate,'%Y-%m-%d') <= date_format('" + query.getCloseDateEnd() + "','%Y-%m-%d')" + ); + //申请日期 + qw.apply(StringUtils.isNotBlank(query.getCreateTimeStart()), "date_format (la.createTime,'%Y-%m-%d') >= date_format('" + query.getCreateTimeStart() + "','%Y-%m-%d')"). + apply(StringUtils.isNotBlank(query.getCreateTimeEnd()), "date_format (la.createTime,'%Y-%m-%d') <= date_format('" + query.getCreateTimeEnd() + "','%Y-%m-%d')" + ); + //========================================数据授权开始 + if (StringUtils.isNotBlank(query.getMenuUrl())) { + //======================= + PrivilegeQuery privilegeQuery = new PrivilegeQuery(); + privilegeQuery.setOrgPath(query.getOrgPath()); + privilegeQuery.setMenuUrl(query.getMenuUrl()); + privilegeQuery.setUserSid(query.getUserSid()); + ResultBean defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery); + if (StringUtils.isNotBlank(defaultIdReltBean.getData())) { + //数据权限ID(1集团、2事业部、3分公司、4部门、5个人) + String orgSidPath = query.getOrgPath(); + orgSidPath = orgSidPath + "/"; + int i1 = orgSidPath.indexOf("/"); + int i2 = orgSidPath.indexOf("/", i1 + 1); + int i3 = orgSidPath.indexOf("/", i2 + 1); + int i4 = orgSidPath.indexOf("/", i3 + 1); + String orgLevelKey = defaultIdReltBean.getData(); + if ("1".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i1); + qw.like("la.orgSidPath", orgSidPath); + } else if ("2".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i2); + qw.like("la.orgSidPath", orgSidPath); + } else if ("3".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i3); + qw.like("la.orgSidPath", orgSidPath); + } else if ("4".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i4); + qw.like("la.orgSidPath", orgSidPath); + } else if ("5".equals(orgLevelKey)) { + qw.eq("la.createBySid", query.getUserSid()); + } else { + PagerVo p = new PagerVo<>(); + return p; + } + } else { + PagerVo p = new PagerVo<>(); + return p; + } + } + } + qw.orderByDesc("la.createTime"); + IPage page = PagerUtil.queryToPage(pq); + IPage pagging = baseMapper.selectPageVo(page, qw); + List paggingRecords = pagging.getRecords(); + paggingRecords.removeAll(Collections.singleton(null)); + if (!paggingRecords.isEmpty()) { + for (LoanSecondarySalesApplyVo record : pagging.getRecords()) { + if (query.getUserSid().equals(record.getCreateBySid())) { + record.setAllowModify(true); + } else { + record.setAllowModify(false); + } + } + } + PagerVo p = PagerUtil.pageToVo(pagging, null); + return p; + } + + public ResultBean> getPreviousNodesForReject(LoanSecondarySalesApplyNodeQuery query) { + ResultBean> rb = ResultBean.fireFail(); + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + LoanSecondarySalesApply loanSecondarySalesApply = fetchBySid(query.getBusinessSid()); + bv.setModelId(loanSecondarySalesApply.getProcDefId()); + ResultBean>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv); + //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给TemplateApplyNodeVo + List voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), LoanSecondarySalesApplyNodeVo.class)).collect(Collectors.toList()); + return rb.success().setData(voList); + } + + public ResultBean> getNextNodesForSubmit(LoanSecondarySalesApplyNodeQuery query) { + ResultBean> rb = ResultBean.fireFail(); + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + LoanSecondarySalesApply loanSecondarySalesApply = fetchBySid(query.getBusinessSid()); + bv.setModelId(loanSecondarySalesApply.getProcDefId()); + ResultBean>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv); + //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给TemplateApplyNodeVo + List voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), LoanSecondarySalesApplyNodeVo.class)).collect(Collectors.toList()); + return rb.success().setData(voList); + } + + public ResultBean taskReject(LoanSecondarySalesApplyTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + String businessSid = query.getBusinessSid(); + LoanSecondarySalesApply loanSecondarySalesApply = fetchBySid(businessSid); + if (loanSecondarySalesApply == null) { + return rb.setMsg("该申请不存在"); + } + String businessTaskId = loanSecondarySalesApply.getTaskId(); + if (StringUtils.isNotBlank(businessTaskId)) { + if (businessTaskId.equals(query.getTaskId())) { + if (StringUtils.isBlank(query.getComment())) { + return rb.setMsg("请填写意见"); + } + if (StringUtils.isBlank(query.getUserSid())) { + return rb.setMsg("参数错误:userSid"); + } + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + Map variables = new HashMap<>(); + Map appMap = new HashMap<>(); + appMap.put("sid", businessSid); + variables.put("app", appMap); + ResultBean resultBean = flowableFeign.taskReject(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + UpdateFlowFieldVo ufVo = resultBean.getData(); + Map map = BeanUtil.beanToMap(ufVo); + //更新业务中的流程相关的参数 + updateFlowFiled(map); + //极光推送 + loanSecondarySalesApply = fetchBySid(businessSid); + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + String procId = loanSecondarySalesApply.getProcInstId(); + messageFlowVo.setProcInsId(procId); + messageFlowVo.setProcDefId(loanSecondarySalesApply.getProcDefId()); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(businessSid); + messageFlowableQuery.setModuleName("交回车辆二次销售申请"); + ResultBean> listResultBean = flowTaskFeign.getLatestTasks(procId); + String nextName = listResultBean.getData().get(0).getName_(); + String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_(); + if ("发起申请".equals(nextName)) { + messageFlowableQuery.setMsgContent("您提交的" + messageFlowableQuery.getModuleName() + "已被驳回,请重新提交"); + } else { + messageFlowableQuery.setMsgContent(loanSecondarySalesApply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + } + + messageFlowableQuery.setMsgTitle("交回车辆二次销售申请"); + ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery); + return rb.success(); + } + } + return rb.setMsg("操作失败!提交的数据不一致!"); + } + + public ResultBean revokeProcess(LoanSecondarySalesApplyTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + if (StringUtils.isBlank(query.getUserSid())) { + return rb.setMsg("参数错误:userSid"); + } + LoanSecondarySalesApply loanSecondarySalesApply = fetchBySid(query.getBusinessSid()); + String businessTaskId = loanSecondarySalesApply.getTaskId(); + if (StringUtils.isNotBlank(businessTaskId)) { + if (businessTaskId.equals(query.getTaskId())) { + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + ResultBean resultBean = flowableFeign.revokeProcess(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); + return rb.success().setData(resultBean.getData()); + } + } + return rb.setMsg("操作失败,提交的数据不一致!"); + } + + + private int updateFlowFiled(Map beanToMap) { + return baseMapper.updateFlowFiled(beanToMap); + } + + public ResultBean breakProcess(LoanSecondarySalesApplyTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + if (StringUtils.isBlank(query.getInstanceId())) { + return rb.setMsg("参数错误:instanceId"); + } + if (StringUtils.isBlank(query.getUserSid())) { + return rb.setMsg("参数错误:userSid"); + } + if (StringUtils.isBlank(query.getComment())) { + return rb.setMsg("请填写意见"); + } + LoanSecondarySalesApply loanSecondarySalesApply = fetchBySid(query.getBusinessSid()); + String businessTaskId = loanSecondarySalesApply.getTaskId(); + if (query.getUserSid().equals(loanSecondarySalesApply.getCreateBySid())) { + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + ResultBean resultBean = flowableFeign.breakProcess(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + Map map = BeanUtil.beanToMap(resultBean.getData()); + updateFlowFiled(map); + return rb.success().setData(resultBean.getData()); + } else { + if (StringUtils.isNotBlank(businessTaskId)) { + if (businessTaskId.equals(query.getTaskId())) { + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + ResultBean resultBean = flowableFeign.breakProcess(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + Map map = BeanUtil.beanToMap(resultBean.getData()); + updateFlowFiled(map); + return rb.success().setData(resultBean.getData()); + } + } + } + + return rb.setMsg("操作失败!提交的数据不一致!"); + } + + public ResultBean delegate(LoanSecondarySalesApplyDelegateQuery query) { + ResultBean rb = ResultBean.fireFail(); + FlowDelegateQuery delegateQuery = new FlowDelegateQuery(); + BeanUtil.copyProperties(query, delegateQuery); + flowFeign.delegate(delegateQuery); + return rb.success(); + } + + public ResultBean complete(BusinessVariables bv) { + ResultBean rb = ResultBean.fireFail(); + String businessSid = bv.getBusinessSid(); + LoanSecondarySalesApply loanSecondarySalesApply = fetchBySid(businessSid); + Map variables = new HashMap<>(); + Map appMap = new HashMap<>(); + appMap.put("sid", businessSid); + variables.put("app", appMap); + bv.setFormVariables(variables); + bv.setOrgSidPath(loanSecondarySalesApply.getOrgSidPath()); + bv.setModelId(loanSecondarySalesApply.getProcDefId()); + if (bv.getTaskId().equals(loanSecondarySalesApply.getTaskId())) { + ResultBean resultBean = flowFeign.handleProsess(bv); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + UpdateFlowFieldVo ufVo = resultBean.getData(); + updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); + if ("Event_end".equals(resultBean.getData().getTaskDefKey())) { + loanSecondarySalesApply = fetchBySid(businessSid); + loanSecondarySalesApply.setCloseDate(DateUtil.today()); + baseMapper.updateById(loanSecondarySalesApply); + + } else { + //极光推送 + loanSecondarySalesApply = fetchBySid(businessSid); + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + messageFlowVo.setProcDefId(loanSecondarySalesApply.getProcDefId()); + messageFlowVo.setProcInsId(loanSecondarySalesApply.getProcInstId()); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(businessSid); + messageFlowableQuery.setModuleName("交回车辆二次销售申请"); + messageFlowableQuery.setMsgContent(loanSecondarySalesApply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + messageFlowableQuery.setMsgTitle("交回车辆二次销售申请"); + ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery); + } + return rb.success().setData(resultBean.getData()); + } else { + return rb.setMsg("操作失败!提交的数据不一致"); + } + } + + public ResultBean submitApply(SubmitLoanSecondarySalesApplyDto dto) { + ResultBean rb = ResultBean.fireFail(); + LoanSecondarySalesApply loanSecondarySalesApply = fetchBySid(dto.getSid()); + int r = submitBusinessData(dto, loanSecondarySalesApply); + if (r == 3) { + return rb.setMsg("该申请不存在"); + } + if (r == 0) { + return rb.setMsg("操作失败!提交的数据不一致"); + } + //ToDo:验证车辆是否已处置 + + ResultBean resultBean = saveOrUpdateSecondarySales(dto); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + String businessSid = resultBean.getData(); + loanSecondarySalesApply = fetchBySid(businessSid); + //创建BusinessVariables实体对象 + BusinessVariables bv = new BusinessVariables(); + //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 + Map variables = new HashMap<>(); + Map appMap = new HashMap<>(); + appMap.put("sid", businessSid); + variables.put("app", appMap); + //用户的部门全路径sid + bv.setOrgSidPath(loanSecondarySalesApply.getOrgSidPath()); + bv.setBusinessSid(businessSid); + bv.setUserSid(dto.getUserSid()); + bv.setFormVariables(variables); + if (r == 1) { + //ToDo:流程定义id + bv.setModelId(ProcDefEnum.LOANRETUENINBOUNDAPPLY.getProDefId()); + ResultBean voResultBean = flowFeign.startProcess(bv); + if (!voResultBean.getSuccess()) { + return rb.setMsg(voResultBean.getMsg()); + } + UpdateFlowFieldVo ufVo = voResultBean.getData(); + updateFlowFiled(BeanUtil.beanToMap(ufVo)); + loanSecondarySalesApply = fetchBySid(businessSid); + //==================================添加线程 + try { + ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() + .setNameFormat("demo-pool-%d").build(); + ExecutorService pool = new ThreadPoolExecutor(2, 100, + 0L, TimeUnit.MILLISECONDS, + new LinkedBlockingQueue(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); + LoanSecondarySalesApply finalLoanSecondarySalesApply = loanSecondarySalesApply; + Future future1 = pool.submit(() -> { + //极光推送 + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(businessSid); + messageFlowableQuery.setModuleName("交回车辆二次销售申请"); + messageFlowableQuery.setMsgContent(finalLoanSecondarySalesApply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + messageFlowableQuery.setMsgTitle("交回车辆二次销售申请"); + ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery); + }); + } catch (Exception e) { + e.printStackTrace(); + } + //==================================添加线程 + return voResultBean; + } + if (r == 2) { + // ToDo:驳回到发起人后再次提交 + if (StringUtils.isBlank(dto.getInstanceId())) { + return rb.setMsg("参数错误:instanceId"); + } + bv.setTaskId(loanSecondarySalesApply.getTaskId()); + bv.setTaskDefKey(loanSecondarySalesApply.getTaskDefKey()); + bv.setComment("重新提交"); + bv.setInstanceId(dto.getInstanceId()); + return complete(bv); + } + return rb; + } + + public ResultBean saveOrUpdateSecondarySales(LoanSecondarySalesApplyDto dto) { + return null; + } + + private int submitBusinessData(SubmitLoanSecondarySalesApplyDto dto, LoanSecondarySalesApply loanSecondarySalesApply) { + int r = 0; + if (StringUtils.isBlank(dto.getSid())) { + r = 1; + } else { + if (loanSecondarySalesApply != null) { + String businessTaskId = loanSecondarySalesApply.getTaskId(); + if (StringUtils.isBlank(businessTaskId) && StringUtils.isBlank(dto.getTaskId())) { + //新提交 + r = 1; + } else if (StringUtils.isNotBlank(businessTaskId) && businessTaskId.equals(dto.getTaskId())) { + //二次提交//只有数据一致的时候才能进行下一步 + r = 2; + } + } else { + r = 3; + } + } + return r; + } + + public ResultBean delAllBySids(String[] sids) { + ResultBean rb = ResultBean.fireFail(); + //查询该sid中是否有流程不是待提交的 + int count = baseMapper.selectBySid(StringUtils.join(sids, ",")); + if (count > 0) { + return rb.setMsg("删除的数据中包含已经提交审批的数据,删除失败"); + } + List sidss = Arrays.asList(sids); + for (int i = 0; i < sidss.size(); i++) { + loanSecondarySalesVehService.deleteByMainSid(sidss.get(i)); + loanSecondarySalesCostService.deleteByMainSid(sidss.get(i)); + } + delBySids(sids); + return rb.success().setMsg("删除成功"); + } + + public ResultBean details(LoanSecondarySalesApplyDetailsQuery query) { + ResultBean rb = ResultBean.fireFail(); + LoanSecondarySalesApplyDetailsVo loanSecondarySalesApplyDetailsVo = new LoanSecondarySalesApplyDetailsVo(); + String sid = query.getSid(); + String userSid = query.getUserSid(); + String orgPath = query.getOrgPath(); + List chooseSidList = query.getChooseSidList(); + chooseSidList.removeAll(Collections.singleton(null)); + if (StringUtils.isBlank(sid)) {//新增初始化 + if (chooseSidList.isEmpty()) { + return rb.setMsg("请选择车辆"); + } + String busVinSid = ""; + String vinNo = ""; + for (int i = 0; i < chooseSidList.size(); i++) { + String s = chooseSidList.get(i); + LoanReturnVehLedger loanReturnVehLedger = loanReturnVehLedgerService.fetchBySid(s); + if ("未处置".equals(loanReturnVehLedger.getDisposal())) { + + } + } + //根据用户查询发起人、发起部门、发起日期为当前日期 + String deptName = ""; + String deptSid = ""; + String useOrgSid = ""; + if (StringUtils.isNotBlank(orgPath)) { + List split = Arrays.asList(orgPath.split("/")); + if (split.size() > 1) { + //获取本级sid获取本级部门信息 + SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(split.get(split.size() - 2)).getData(); + SysOrganizationVo sysOrganization1 = sysOrganizationFeign.fetchBySid(split.get(split.size() - 1)).getData(); + deptName = sysOrganization.getName() + "/" + sysOrganization1.getName(); + deptName = sysOrganization1.getName(); + deptSid = sysOrganization1.getSid(); + } else { + SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(split.get(0)).getData(); + deptName = sysOrganization.getName(); + deptName = sysOrganization.getName(); + deptSid = sysOrganization.getSid(); + } + useOrgSid = sysStaffOrgFeign.getOrgSidByPath(orgPath).getData(); + } + //根据用户sid查询人员姓名 + ResultBean userVoResultBean = sysUserFeign.fetchBySid(userSid); + if (!userVoResultBean.getSuccess()) { + return rb.setMsg(userVoResultBean.getMsg()); + } + loanSecondarySalesApplyDetailsVo.setCreateDept(deptName); + loanSecondarySalesApplyDetailsVo.setCreateDeptSid(deptSid); + loanSecondarySalesApplyDetailsVo.setCreateByName(userVoResultBean.getData().getName()); + loanSecondarySalesApplyDetailsVo.setCreateDate(DateUtil.today()); + loanSecondarySalesApplyDetailsVo.setOrgPath(query.getOrgPath()); + loanSecondarySalesApplyDetailsVo.setUserSid(query.getUserSid()); + loanSecondarySalesApplyDetailsVo.setUseOrgSid(useOrgSid); + + + } else {//编辑初始化 + LoanSecondarySalesApply loanSecondarySalesApply = fetchBySid(sid); + if (loanSecondarySalesApply == null) { + return rb.setMsg("该申请不存在"); + } + loanSecondarySalesApplyDetailsVo = baseMapper.selectDetails(sid); + String files = loanSecondarySalesApplyDetailsVo.getFiles(); + List list = new ArrayList<>(); + if (StringUtils.isNotBlank(files)) { + List fileList = Arrays.asList(files.split(",")).stream().map(c -> fileUploadComponent.getUrlPrefix() + c).collect(Collectors.toList()); + for (int i = 0; i < fileList.size(); i++) { + UrlQuery urlQuery = new UrlQuery(); + urlQuery.setUrl(fileList.get(i)); + list.add(urlQuery); + } + loanSecondarySalesApplyDetailsVo.setFilesList(list); + } + + loanSecondarySalesApplyDetailsVo.setOrgPath(loanSecondarySalesApply.getOrgSidPath()); + loanSecondarySalesApplyDetailsVo.setUserSid(loanSecondarySalesApply.getCreateBySid()); + loanSecondarySalesApplyDetailsVo.setSid(sid); + loanSecondarySalesApplyDetailsVo.setProcInstId(loanSecondarySalesApply.getProcInstId()); + loanSecondarySalesApplyDetailsVo.setTaskId(loanSecondarySalesApply.getTaskId()); + List loanSecondarySalesVehVoList = loanSecondarySalesVehService.selectByMainSid(sid); + loanSecondarySalesVehVoList.removeAll(Collections.singleton(null)); + if (!loanSecondarySalesVehVoList.isEmpty()) { + loanSecondarySalesApplyDetailsVo.setLoanSecondarySalesVehVoList(loanSecondarySalesVehVoList); + } + LoanSecondarySalesCostVo loanSecondarySalesCost = loanSecondarySalesCostService.selectByMainSid(sid); + loanSecondarySalesApplyDetailsVo.setLoanSecondarySalesCost(loanSecondarySalesCost); + } + return rb.success().setData(loanSecondarySalesApplyDetailsVo); + } } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescost/LoanSecondarySalesCostMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescost/LoanSecondarySalesCostMapper.java index 3da150a1ec..e9f6828415 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescost/LoanSecondarySalesCostMapper.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescost/LoanSecondarySalesCostMapper.java @@ -2,6 +2,7 @@ package com.yxt.anrui.riskcenter.biz.loansecondarysalescost; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.yxt.anrui.riskcenter.api.loansecondarysalescost.LoanSecondarySalesCost; +import com.yxt.anrui.riskcenter.api.loansecondarysalescost.LoanSecondarySalesCostVo; import org.apache.ibatis.annotations.Mapper; /** @@ -11,4 +12,7 @@ import org.apache.ibatis.annotations.Mapper; **/ @Mapper public interface LoanSecondarySalesCostMapper extends BaseMapper { + int deleteByMainSid(String s); + + LoanSecondarySalesCostVo selectByMainSid(String sid); } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescost/LoanSecondarySalesCostMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescost/LoanSecondarySalesCostMapper.xml index 2174ff68d6..2962c0dc40 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescost/LoanSecondarySalesCostMapper.xml +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescost/LoanSecondarySalesCostMapper.xml @@ -1,4 +1,16 @@ + + delete + from loan_secondary_sales_veh + where mainSid = #{s} + + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescost/LoanSecondarySalesCostService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescost/LoanSecondarySalesCostService.java index b04c20ecbb..a2ee8f2bb7 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescost/LoanSecondarySalesCostService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalescost/LoanSecondarySalesCostService.java @@ -1,6 +1,7 @@ package com.yxt.anrui.riskcenter.biz.loansecondarysalescost; import com.yxt.anrui.riskcenter.api.loansecondarysalescost.LoanSecondarySalesCost; +import com.yxt.anrui.riskcenter.api.loansecondarysalescost.LoanSecondarySalesCostVo; import com.yxt.common.base.service.MybatisBaseService; import org.springframework.stereotype.Service; @@ -11,4 +12,11 @@ import org.springframework.stereotype.Service; **/ @Service public class LoanSecondarySalesCostService extends MybatisBaseService { + public int deleteByMainSid(String s) { + return baseMapper.deleteByMainSid(s); + } + + public LoanSecondarySalesCostVo selectByMainSid(String sid) { + return baseMapper.selectByMainSid(sid); + } } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesveh/LoanSecondarySalesVehMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesveh/LoanSecondarySalesVehMapper.java index d98b597d4f..37ece37cd3 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesveh/LoanSecondarySalesVehMapper.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesveh/LoanSecondarySalesVehMapper.java @@ -2,8 +2,11 @@ package com.yxt.anrui.riskcenter.biz.loansecondarysalesveh; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.yxt.anrui.riskcenter.api.loansecondarysalesveh.LoanSecondarySalesVeh; +import com.yxt.anrui.riskcenter.api.loansecondarysalesveh.LoanSecondarySalesVehVo; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * @description: * @author: dimengzhe @@ -11,4 +14,7 @@ import org.apache.ibatis.annotations.Mapper; **/ @Mapper public interface LoanSecondarySalesVehMapper extends BaseMapper { + int deleteByMainSid(String s); + + List selectByMainSid(String sid); } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesveh/LoanSecondarySalesVehMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesveh/LoanSecondarySalesVehMapper.xml index 08ff1ef504..c11df74405 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesveh/LoanSecondarySalesVehMapper.xml +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesveh/LoanSecondarySalesVehMapper.xml @@ -1,4 +1,22 @@ + + delete + from loan_secondary_sales_veh + where mainSid = #{s} + + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesveh/LoanSecondarySalesVehService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesveh/LoanSecondarySalesVehService.java index 629ad2c5ca..65af7c080b 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesveh/LoanSecondarySalesVehService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansecondarysalesveh/LoanSecondarySalesVehService.java @@ -1,9 +1,12 @@ package com.yxt.anrui.riskcenter.biz.loansecondarysalesveh; import com.yxt.anrui.riskcenter.api.loansecondarysalesveh.LoanSecondarySalesVeh; +import com.yxt.anrui.riskcenter.api.loansecondarysalesveh.LoanSecondarySalesVehVo; import com.yxt.common.base.service.MybatisBaseService; import org.springframework.stereotype.Service; +import java.util.List; + /** * @description: * @author: dimengzhe @@ -11,4 +14,11 @@ import org.springframework.stereotype.Service; **/ @Service public class LoanSecondarySalesVehService extends MybatisBaseService { + public int deleteByMainSid(String s) { + return baseMapper.deleteByMainSid(s); + } + + public List selectByMainSid(String sid) { + return baseMapper.selectByMainSid(sid); + } } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentapply/LoanTransferPaymentApplyRest.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentapply/LoanTransferPaymentApplyRest.java index 91fc8518bf..54778b99b9 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentapply/LoanTransferPaymentApplyRest.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentapply/LoanTransferPaymentApplyRest.java @@ -54,6 +54,16 @@ public class LoanTransferPaymentApplyRest implements LoanTransferPaymentApplyFei return loanTransferPaymentApplyService.deleteBySids(sids); } + @Override + public ResultBean pushPaymentRecord(String sid, String paySid) { + return loanTransferPaymentApplyService.pushPaymentRecord(sid,paySid); + } + + @Override + public ResultBean pushPaymentVoucher(String sid, String paySid) { + return loanTransferPaymentApplyService.pushPaymentVoucher(sid,paySid); + } + @Override public ResultBean submitRecordApplication(SubmitTransferDto dto) { return loanTransferPaymentApplyService.submitRecordApplication(dto); diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentapply/LoanTransferPaymentApplyService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentapply/LoanTransferPaymentApplyService.java index 4c19e7f6f7..39103693de 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentapply/LoanTransferPaymentApplyService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentapply/LoanTransferPaymentApplyService.java @@ -187,6 +187,9 @@ public class LoanTransferPaymentApplyService extends MybatisBaseService saveTransferPayment(LoanTransferPaymentApplyDto dto) { ResultBean rb = ResultBean.fireFail(); String sid = ""; + if (StringUtils.isBlank(dto.getPayFormKey())) { + return rb.setMsg("请选择财务付款形式"); + } if (StringUtils.isNotBlank(dto.getSid())) { sid = dto.getSid(); LoanTransferPaymentApply updateEntity = fetchBySid(sid); @@ -629,11 +632,11 @@ public class LoanTransferPaymentApplyService extends MybatisBaseService setConOrNumber = new HashSet<>(); for (LoanTransferPaymentRecord applyRecord : loanTransferPaymentRecords) { LoanRepaymentHistory repaymentHistory = loanRepaymentHistoryService.fetchBySid(applyRecord.getRepaymentHistorySid()); -// if (null != repaymentHistory) { -// repaymentHistory.setPaymentStateKey("003"); -// repaymentHistory.setPaymentState("已转付"); -// repaymentHistory.setTransferDate(new DateTime()); -// loanRepaymentHistoryService.updateById(repaymentHistory); + if (null != repaymentHistory) { + repaymentHistory.setPaymentStateKey("003"); + repaymentHistory.setPaymentState("已转付"); + repaymentHistory.setTransferDate(new DateTime()); + loanRepaymentHistoryService.updateById(repaymentHistory); // //推送转付还款记录 // LoanRepaymentHistory transfer = new LoanRepaymentHistory(); // transfer.setScheduleSid(repaymentHistory.getScheduleSid()); @@ -656,7 +659,7 @@ public class LoanTransferPaymentApplyService extends MybatisBaseService records = loanTransferPaymentRecordService.selByMainSid(businessSid); + public ResultBean pushPaymentRecord(String sid, String paySid) { + ResultBean rb = ResultBean.fireFail(); + List records = loanTransferPaymentRecordService.selByMainSidAndPaySid(sid, paySid); + if (!records.isEmpty()) { + for (LoanTransferPaymentRecord applyRecord : records) { + LoanRepaymentHistory repaymentHistory = loanRepaymentHistoryService.fetchBySid(applyRecord.getRepaymentHistorySid()); + if (null != repaymentHistory) { + //推送转付还款记录 + LoanRepaymentHistory transfer = new LoanRepaymentHistory(); + transfer.setScheduleSid(repaymentHistory.getScheduleSid()); + transfer.setPlanDetailSid(repaymentHistory.getPlanDetailSid()); + transfer.setReturnWay("转付"); + transfer.setReturnWayKey("03"); + transfer.setActualDate(new Date()); + transfer.setDataTime(new DateTime()); + transfer.setBuckleKey("001"); + transfer.setBuckle("未申请"); + transfer.setUpdateState("1"); + transfer.setUpdateTime(new DateTime()); + BigDecimal money = new BigDecimal(0); + if (null != applyRecord.getTransferPrincipal()) { + money = applyRecord.getTransferPrincipal(); + } + if (null != applyRecord.getDefaultInterest()) { + money = applyRecord.getDefaultInterest().add(money); + } + String amount = String.valueOf(money); + transfer.setActualMoney(new BigDecimal("-" + amount)); + loanRepaymentHistoryService.insert(transfer); + } + } + } + return rb.success(); + } + + public ResultBean pushPaymentVoucher(String sid, String paySid) { + ResultBean rb = ResultBean.fireFail(); + List records = loanTransferPaymentRecordService.selByMainSidAndPaySid(sid, paySid); if (!records.isEmpty()) { PaymentVoucher paymentVoucher = new PaymentVoucher(); List voucherDetails = new ArrayList<>(); @@ -889,6 +928,7 @@ public class LoanTransferPaymentApplyService extends MybatisBaseService selByMainSid(String mainSid); LoanTransferPaymentRecord selByBankContractNo(String bankContractNo); + + List selByMainSidAndPaySid(@Param("sid") String sid, @Param("paySid") String paySid); } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentrecord/LoanTransferPaymentRecordMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentrecord/LoanTransferPaymentRecordMapper.xml index 0cd9056059..c310d43514 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentrecord/LoanTransferPaymentRecordMapper.xml +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentrecord/LoanTransferPaymentRecordMapper.xml @@ -21,7 +21,14 @@ LEFT JOIN loan_repayment_plan_details AS p ON h.planDetailSid = p.sid LEFT JOIN loan_transfer_payment_record AS r ON h.sid = r.repaymentHistorySid WHERE p.bankContractNo = #{bankContractNo} - and r.state = 1 + and r.state = 1 ORDER BY r.createTime DESC LIMIT 1 + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentrecord/LoanTransferPaymentRecordService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentrecord/LoanTransferPaymentRecordService.java index d272380066..e2ec9cc311 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentrecord/LoanTransferPaymentRecordService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantransferpaymentrecord/LoanTransferPaymentRecordService.java @@ -27,4 +27,8 @@ public class LoanTransferPaymentRecordService extends MybatisBaseService selByMainSidAndPaySid(String sid, String paySid) { + return baseMapper.selByMainSidAndPaySid(sid,paySid); + } } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanvehclearanceapply/LoanVehClearanceApplyMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanvehclearanceapply/LoanVehClearanceApplyMapper.java index 91365f6d02..10152a5acf 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanvehclearanceapply/LoanVehClearanceApplyMapper.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanvehclearanceapply/LoanVehClearanceApplyMapper.java @@ -71,9 +71,9 @@ public interface LoanVehClearanceApplyMapper extends BaseMapper lockCarList(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); - LoanVehClearanceVehInit initVehListBySaleVehSid(String saleVehSid); - int updateFlowFiled(Map map); int selectBySid(String join); + + LoanVehClearanceVehInit initVehListBySaleVehSidYCJK(String saleVehSid); } \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanvehclearanceapply/LoanVehClearanceApplyMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanvehclearanceapply/LoanVehClearanceApplyMapper.xml index e3e1b5072c..655f7d37d0 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanvehclearanceapply/LoanVehClearanceApplyMapper.xml +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanvehclearanceapply/LoanVehClearanceApplyMapper.xml @@ -43,123 +43,6 @@ - - UPDATE loan_veh_clearance_apply SET nodeState=#{nodeState}, nodeSid=#{taskDefKey}, modifyTime = NOW() @@ -181,4 +64,127 @@ WHERE nodeState != '待提交' and find_in_set(sid, #{list}) + + \ No newline at end of file diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanvehclearanceapply/LoanVehClearanceApplyService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanvehclearanceapply/LoanVehClearanceApplyService.java index f8270c111f..c6d01933a6 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanvehclearanceapply/LoanVehClearanceApplyService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanvehclearanceapply/LoanVehClearanceApplyService.java @@ -388,11 +388,6 @@ public class LoanVehClearanceApplyService extends MybatisBaseService saleVehSids = query.getSaleVehSids(); LoanVehClearanceApplyDetailsVo loanVehClearanceApplyDetailsVo = new LoanVehClearanceApplyDetailsVo(); @@ -410,7 +405,7 @@ public class LoanVehClearanceApplyService extends MybatisBaseService loanVehClearanceVehDetailsVoList = new ArrayList<>(); for (String saleVehSid : saleVehSids) { - LoanVehClearanceVehInit loanVehClearanceVehInit = baseMapper.initVehListBySaleVehSid(saleVehSid); + LoanVehClearanceVehInit loanVehClearanceVehInit = baseMapper.initVehListBySaleVehSidYCJK(saleVehSid); LoanVehClearanceVehDetailsVo loanVehClearanceVehDetailsVo = new LoanVehClearanceVehDetailsVo(); BeanUtil.copyProperties(loanVehClearanceVehInit, loanVehClearanceVehDetailsVo); loanVehClearanceVehDetailsVo.setCustomerName(loanVehClearanceVehInit.getCustName()); diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinboundvehquery/ScmApplyInboundVehQueryMapper.java b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinboundvehquery/ScmApplyInboundVehQueryMapper.java index 7455ba5971..9fb5fc19d4 100644 --- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinboundvehquery/ScmApplyInboundVehQueryMapper.java +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinboundvehquery/ScmApplyInboundVehQueryMapper.java @@ -67,6 +67,6 @@ public interface ScmApplyInboundVehQueryMapper extends BaseMapper fetchByMainSid(String cgrkdSid); - @Select("SELECT * FROM scm_apply_inbound_veh_query WHERE vinNo LIKE #{vinNo}") - ScmApplyInboundVehQueryDetailsVo fetchDetailsByVinNo(String vinNo); + @Select("SELECT * FROM scm_apply_inbound_veh_query WHERE vinNo LIKE CONCAT('%',#{vinNo},'%')") + ScmApplyInboundVehQueryDetailsVo fetchDetailsByVinNo(@Param("vinNo") String vinNo); } \ No newline at end of file