From 6e86bc70fbd7789f98863d87b098f31cdc2f4394 Mon Sep 17 00:00:00 2001 From: God <10745413@qq.com> Date: Sat, 11 May 2024 14:45:39 +0800 Subject: [PATCH 1/9] =?UTF-8?q?=E9=87=87=E8=B4=AD=E9=80=80=E8=B4=A7?= =?UTF-8?q?=E5=8D=95=E7=94=B3=E8=AF=B7=E6=B5=81=E7=A8=8B=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E3=80=81=E9=80=89=E6=8B=A9=E5=8E=9F=E5=8D=95=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pms/apiadmin/pms/PmsPurchaseBillRest.java | 10 +- .../apiadmin/pms/PmsPurchasebackBillRest.java | 58 ++++ .../PmsPurchasebackBill.java | 3 + .../PmsPurchasebackBillDetailsVo.java | 3 + .../PmsPurchasebackBillDto.java | 3 + .../PmsPurchasebackBillMapper.java | 4 + .../PmsPurchasebackBillMapper.xml | 26 ++ .../PmsPurchasebackBillService.java | 311 +++++++++++++++++- .../PmsPurchasebackBillCompleteDto.java | 37 +++ .../PmsPurchasebackBillDelegateQuery.java | 26 ++ .../PmsPurchasebackBillNodeQuery.java | 25 ++ .../flowable/PmsPurchasebackBillNodeVo.java | 26 ++ .../PmsPurchasebackBillTaskQuery.java | 48 +++ .../SubmitPmsPurchasebackBillDto.java | 25 ++ .../PmsPurchaseBillMapper.java | 2 + .../pmspurchasebill/PmsPurchaseBillMapper.xml | 28 ++ .../PmsPurchaseBillService.java | 50 +++ .../PmsPurchaseChoiceBillVo.java | 61 ++-- .../pms/feign/flowable/flow/ProcDefEnum.java | 1 + 19 files changed, 708 insertions(+), 39 deletions(-) create mode 100644 yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/flowable/PmsPurchasebackBillCompleteDto.java create mode 100644 yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/flowable/PmsPurchasebackBillDelegateQuery.java create mode 100644 yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/flowable/PmsPurchasebackBillNodeQuery.java create mode 100644 yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/flowable/PmsPurchasebackBillNodeVo.java create mode 100644 yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/flowable/PmsPurchasebackBillTaskQuery.java create mode 100644 yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/flowable/SubmitPmsPurchasebackBillDto.java diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/apiadmin/pms/PmsPurchaseBillRest.java b/yxt-pms-biz/src/main/java/com/yxt/pms/apiadmin/pms/PmsPurchaseBillRest.java index 8e6b2ee4df..45084820cc 100644 --- a/yxt-pms-biz/src/main/java/com/yxt/pms/apiadmin/pms/PmsPurchaseBillRest.java +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/apiadmin/pms/PmsPurchaseBillRest.java @@ -66,8 +66,6 @@ public class PmsPurchaseBillRest { @Autowired private PmsPurchaseBillService pmsPurchaseBillService; - @Autowired - private HttpServletResponse response; @ApiOperation("根据条件分页查询数据的列表") @PostMapping("/listPage") @@ -77,6 +75,14 @@ public class PmsPurchaseBillRest { return rb.success().setData(pv); } + @ApiOperation("选择原单") + @PostMapping("/choiceBillListPage") + public ResultBean> choiceBillListPage(@RequestBody PagerQuery pq){ + ResultBean rb = ResultBean.fireFail(); + PagerVo pv = pmsPurchaseBillService.choiceBillListPage(pq); + return rb.success().setData(pv); + } + @ApiOperation("新增或修改") @PostMapping("/save") public ResultBean save(@RequestBody PmsPurchaseBillDto dto){ diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/apiadmin/pms/PmsPurchasebackBillRest.java b/yxt-pms-biz/src/main/java/com/yxt/pms/apiadmin/pms/PmsPurchasebackBillRest.java index 718c1b4056..4ab95aa53e 100644 --- a/yxt-pms-biz/src/main/java/com/yxt/pms/apiadmin/pms/PmsPurchasebackBillRest.java +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/apiadmin/pms/PmsPurchasebackBillRest.java @@ -25,17 +25,24 @@ *********************************************************/ package com.yxt.pms.apiadmin.pms; +import cn.hutool.core.bean.BeanUtil; import com.yxt.common.base.utils.ExportExcelUtils; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; import com.yxt.pms.biz.pms.pmspurchasebackbill.*; +import com.yxt.pms.biz.pms.pmspurchasebackbill.flowable.*; +import com.yxt.pms.biz.pms.pmspurchasebill.flowable.*; +import com.yxt.pms.feign.flowable.flow.BusinessVariables; +import com.yxt.pms.feign.flowable.flow.ProcDefEnum; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cloud.openfeign.SpringQueryMap; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.util.List; @@ -94,4 +101,55 @@ public class PmsPurchasebackBillRest { PmsPurchasebackBillDetailsVo vo = pmsPurchasebackBillService.fetchDetailsVoBySid(sid); return rb.success().setData(vo); } + + @ApiOperation("提交审批流程") + @PostMapping("/submit") + public ResultBean submit(@RequestBody @Valid SubmitPmsPurchasebackBillDto dto) { + return pmsPurchasebackBillService.submit(dto); + } + + @ApiOperation(value = "办理(同意)") + @PostMapping("/complete") + public ResultBean complete(@Valid @RequestBody PmsPurchasebackBillCompleteDto query) { + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + bv.setModelId(ProcDefEnum.PMSPURCHASEBACKBILL.getProDefId()); + return pmsPurchasebackBillService.complete(bv); + } + + @ApiOperation(value = "获取上一个环节") + @GetMapping(value = "/getPreviousNodesForReject") + public ResultBean> getPreviousNodesForReject(@Valid @SpringQueryMap PmsPurchasebackBillNodeQuery query) { + return pmsPurchasebackBillService.getPreviousNodesForReject(query); + } + + @ApiOperation(value = "获取下一个环节") + @GetMapping(value = "/getNextNodesForSubmit") + public ResultBean> getNextNodesForSubmit(@Valid @SpringQueryMap PmsPurchasebackBillNodeQuery query) { + return pmsPurchasebackBillService.getNextNodesForSubmit(query); + } + + @ApiOperation(value = "驳回任务") + @PostMapping(value = "/reject") + public ResultBean reject(@Valid @RequestBody PmsPurchasebackBillTaskQuery query) { + return pmsPurchasebackBillService.reject(query); + } + + @ApiOperation(value = "撤回流程") + @PostMapping(value = "/revokeProcess") + public ResultBean revokeProcess(@Valid @RequestBody PmsPurchasebackBillTaskQuery query) { + return pmsPurchasebackBillService.revokeProcess(query); + } + + @ApiOperation(value = "终止任务") + @PostMapping(value = "/breakProcess") + public ResultBean breakProcess(@Valid @RequestBody PmsPurchasebackBillTaskQuery query) { + return pmsPurchasebackBillService.breakProcess(query); + } + + @ApiOperation(value = "加签") + @PostMapping(value = "/delegate") + public ResultBean delegate(@RequestBody PmsPurchasebackBillDelegateQuery query) { + return pmsPurchasebackBillService.delegate(query); + } } diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/PmsPurchasebackBill.java b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/PmsPurchasebackBill.java index 5ecc2ffba7..7b53d96fd8 100644 --- a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/PmsPurchasebackBill.java +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/PmsPurchasebackBill.java @@ -77,6 +77,9 @@ public class PmsPurchasebackBill extends BaseEntity { @ApiModelProperty("单据状态") private String documentState; + @ApiModelProperty("已付金额") + private BigDecimal paidAmount; + @ApiModelProperty("申请部门sid") private String deptSid; @ApiModelProperty("申请部门名称") diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/PmsPurchasebackBillDetailsVo.java b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/PmsPurchasebackBillDetailsVo.java index 8ebc1aa5d0..a610a0a513 100644 --- a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/PmsPurchasebackBillDetailsVo.java +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/PmsPurchasebackBillDetailsVo.java @@ -81,6 +81,9 @@ public class PmsPurchasebackBillDetailsVo implements Vo { @ApiModelProperty("转入预付款") private BigDecimal toPrepayment; // 转入预付款 + @ApiModelProperty("已付金额") + private BigDecimal paidAmount; + @ApiModelProperty("申请部门sid") private String deptSid; @ApiModelProperty("申请部门名称") diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/PmsPurchasebackBillDto.java b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/PmsPurchasebackBillDto.java index c682afcda0..c51163afbd 100644 --- a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/PmsPurchasebackBillDto.java +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/PmsPurchasebackBillDto.java @@ -80,6 +80,9 @@ public class PmsPurchasebackBillDto implements Dto { @ApiModelProperty("转入预付款") private BigDecimal toPrepayment; // 转入预付款 + @ApiModelProperty("已付金额") + private BigDecimal paidAmount; + @ApiModelProperty("申请部门sid") private String deptSid; @ApiModelProperty("申请部门名称") diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/PmsPurchasebackBillMapper.java b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/PmsPurchasebackBillMapper.java index 307c4f7959..75c4fa6f45 100644 --- a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/PmsPurchasebackBillMapper.java +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/PmsPurchasebackBillMapper.java @@ -35,6 +35,7 @@ import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import java.util.List; +import java.util.Map; /** * Project: yxt-pms(采购)
@@ -54,4 +55,7 @@ public interface PmsPurchasebackBillMapper extends BaseMapper selectPageVo(IPage page, @Param(Constants.WRAPPER) Wrapper qw); + String selectNum(String billNo); + + int updateFlowFiled(Map map); } \ No newline at end of file diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/PmsPurchasebackBillMapper.xml b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/PmsPurchasebackBillMapper.xml index 25c87d5437..f2375b8b3c 100644 --- a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/PmsPurchasebackBillMapper.xml +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/PmsPurchasebackBillMapper.xml @@ -26,4 +26,30 @@ ON ppb.`sid` = ppbd.`billSid` ${ew.sqlSegment} + + + + + UPDATE pms_purchaseback_bill + SET nodeState=#{nodeState}, nodeId=#{taskDefKey} + + , finishTime = NOW() + + + , procDefId=#{procDefId} + + + , procInstId=#{procInsId} + + + , taskId=#{taskId} + + WHERE sid=#{sid} + \ No newline at end of file diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/PmsPurchasebackBillService.java b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/PmsPurchasebackBillService.java index 3510eef54a..f768b4296b 100644 --- a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/PmsPurchasebackBillService.java +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/PmsPurchasebackBillService.java @@ -26,19 +26,30 @@ package com.yxt.pms.biz.pms.pmspurchasebackbill; import cn.hutool.core.bean.BeanUtil; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.yxt.common.core.result.ResultBean; +import com.yxt.pms.biz.pms.pmspurchasebackbill.flowable.*; import com.yxt.pms.biz.pms.pmspurchasebackdetail.PmsPurchasebackDetailDetailsVo; import com.yxt.pms.biz.pms.pmspurchasebackdetail.PmsPurchasebackDetailDto; import com.yxt.pms.biz.pms.pmspurchasebackdetail.PmsPurchasebackDetailService; +import com.yxt.pms.biz.pms.pmspurchasebill.PmsPurchaseBill; +import com.yxt.pms.biz.pms.pmspurchasebill.flowable.*; import com.yxt.pms.biz.pms.pmspurchasebilldetail.PmsPurchaseBillDetailService; import com.yxt.pms.biz.pms.pmspurchasebillinvoice.PmsPurchaseBillInvoiceService; import com.yxt.pms.biz.pms.pmspurchasepay.PmsPurchasePayService; -import com.yxt.pms.feign.flowable.flow.FlowableFeign; +import com.yxt.pms.feign.flowable.flow.*; +import com.yxt.pms.feign.flowable.flow2.FlowDelegateQuery; import com.yxt.pms.feign.flowable.flow2.FlowFeign; import com.yxt.pms.feign.flowable.flowtask.FlowTaskFeign; +import com.yxt.pms.feign.flowable.flowtask.FlowTaskVo; +import com.yxt.pms.feign.flowable.flowtask.LatestTaskVo; import com.yxt.pms.feign.message.MessageFeign; +import com.yxt.pms.feign.message.MessageFlowVo; +import com.yxt.pms.feign.message.MessageFlowableQuery; import com.yxt.pms.feign.portal.sysorganization.SysOrganizationFeign; +import com.yxt.pms.feign.portal.sysorganization.SysOrganizationVo; import com.yxt.pms.feign.portal.sysstafforg.SysStaffOrgFeign; import org.apache.commons.lang3.StringUtils; import com.yxt.common.base.service.MybatisBaseService; @@ -49,8 +60,8 @@ import com.yxt.common.core.vo.PagerVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.Collections; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; /** * Project: yxt-pms(采购)
@@ -185,4 +196,298 @@ public class PmsPurchasebackBillService extends MybatisBaseService variables = new HashMap<>(); + //用户的部门全路径sid + SysOrganizationVo deptVo = sysOrganizationFeign.fetchBySid(pmsPurchasebackBill.getDeptSid()).getData(); + bv.setOrgSidPath(deptVo.getOrgSidPath()); + //业务sid + bv.setBusinessSid(businessSid); + //用户sid + bv.setUserSid(pmsPurchasebackBill.getCreateBySid()); + //若app移动端有此功能,则传递appMap参数 + Map appMap = new HashMap<>(); + appMap.put("sid", businessSid); + //需和移动端沟通业务sid保存的属性具体值:appMap中sid不是固定的。移动端提供具体字段。 + variables.put("app", appMap); + //流程定义id + bv.setModelId(ProcDefEnum.PMSPURCHASEBACKBILL.getProDefId()); + bv.setFormVariables(variables); + if (r == 1) { + ResultBean voResultBean = flowFeign.startProcess(bv); + UpdateFlowFieldVo ufVo = voResultBean.getData(); + updateFlowFiled(BeanUtil.beanToMap(ufVo)); + //极光推送 + pmsPurchasebackBill = fetchBySid(businessSid); + 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(pmsPurchasebackBill.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + messageFlowableQuery.setMsgTitle("采购退货单申请"); + messageFeign.pushMessage(messageFlowableQuery); + return voResultBean; + } + if (r == 2) { + // ToDo:驳回到发起人后再次提交 + if (StringUtils.isBlank(dto.getInstanceId())) { + return rb.setMsg("参数错误:instanceId"); + } + bv.setTaskId(pmsPurchasebackBill.getTaskId()); + bv.setTaskDefKey(pmsPurchasebackBill.getNodeId()); + bv.setComment(StringUtils.isNotBlank(dto.getComment()) ? dto.getComment() : "重新提交"); + bv.setInstanceId(dto.getInstanceId()); + return complete(bv); + } + return rb; + } + + private synchronized int submitBusinessData(SubmitPmsPurchasebackBillDto dto, PmsPurchasebackBill pmsPurchasebackBill) { + int r = 0; + if (StringUtils.isBlank(dto.getSid())) { + r = 1; + } else { + if (pmsPurchasebackBill != null) { + String businessTaskId = pmsPurchasebackBill.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; + } + + private int updateFlowFiled(Map map) { + return baseMapper.updateFlowFiled(map); + } + + public ResultBean complete(BusinessVariables bv) { + ResultBean rb = ResultBean.fireFail(); + String businessSid = bv.getBusinessSid(); + PmsPurchasebackBill pmsPurchasebackBill = fetchBySid(businessSid); + Map variables = new HashMap<>(); + Map appMap = new HashMap<>(); + appMap.put("sid", businessSid); + variables.put("app", appMap); + FlowProcessMapQuery flowProcessMapQuery = new FlowProcessMapQuery(); + if (StringUtils.isBlank(pmsPurchasebackBill.getProcDefId())) { + flowProcessMapQuery.setProDefKey(bv.getModelId()); + } else { + flowProcessMapQuery.setProDefKey(pmsPurchasebackBill.getProcDefId()); + } + flowProcessMapQuery.setVariables(variables); + variables = flowableFeign.getMap(flowProcessMapQuery).getData(); + //======================================= + bv.setFormVariables(variables); + SysOrganizationVo deptVo = sysOrganizationFeign.fetchBySid(pmsPurchasebackBill.getDeptSid()).getData(); + bv.setOrgSidPath(deptVo.getOrgSidPath()); + if (bv.getTaskId().equals(pmsPurchasebackBill.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())) { + + } else { + //极光推送 + pmsPurchasebackBill = fetchBySid(businessSid); + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + ufVo.setProcDefId(pmsPurchasebackBill.getProcDefId()); + ufVo.setProcInsId(pmsPurchasebackBill.getProcInstId()); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(businessSid); + messageFlowableQuery.setModuleName("采购退货单申请"); + messageFlowableQuery.setMsgContent(pmsPurchasebackBill.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + messageFlowableQuery.setMsgTitle("采购退货单申请"); + messageFeign.pushMessage(messageFlowableQuery); + } + return rb.success().setData(resultBean.getData()); + } else { + return rb.setMsg("操作失败!提交的数据不一致"); + } + } + + public ResultBean> getPreviousNodesForReject(PmsPurchasebackBillNodeQuery query) { + ResultBean> rb = ResultBean.fireFail(); + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + bv.setModelId(ProcDefEnum.PMSPURCHASEBACKBILL.getProDefId()); + ResultBean>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv); + //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo + List voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), PmsPurchasebackBillNodeVo.class)).collect(Collectors.toList()); + return rb.success().setData(voList); + } + + public ResultBean> getNextNodesForSubmit(PmsPurchasebackBillNodeQuery query) { + ResultBean> rb = ResultBean.fireFail(); + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + bv.setModelId(ProcDefEnum.PMSPURCHASEBACKBILL.getProDefId()); + ResultBean>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv); + //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo + List voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), PmsPurchasebackBillNodeVo.class)).collect(Collectors.toList()); + return rb.success().setData(voList); + } + + public ResultBean reject(PmsPurchasebackBillTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + String businessSid = query.getBusinessSid(); + PmsPurchasebackBill pmsPurchasebackBill = fetchBySid(businessSid); + if (pmsPurchasebackBill == null) { + return rb.setMsg("该申请不存在"); + } + String businessTaskId = pmsPurchasebackBill.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); + flowTaskVo.setValues(variables); + ResultBean resultBean = flowableFeign.taskReject(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + UpdateFlowFieldVo ufVo = resultBean.getData(); + Map map = BeanUtil.beanToMap(ufVo); + //更新业务中的流程相关的参数 + updateFlowFiled(map); + //极光推送 + pmsPurchasebackBill = fetchBySid(businessSid); + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + String procId = pmsPurchasebackBill.getProcInstId(); + ufVo.setProcInsId(procId); + ufVo.setProcDefId(pmsPurchasebackBill.getProcDefId()); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(businessSid); + messageFlowableQuery.setModuleName("采购退货单申请"); + ResultBean> listResultBean = flowTaskFeign.getLatestTasks(procId); + String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_(); + List receiveSidList = Arrays.asList(nextNodeUserSids.split(",")); + if (receiveSidList.size() == 1 && receiveSidList.get(0).equals(pmsPurchasebackBill.getCreateBySid())) { + messageFlowableQuery.setMsgContent("您提交的" + messageFlowableQuery.getModuleName() + "已被驳回,请重新提交"); + } else { + messageFlowableQuery.setMsgContent(pmsPurchasebackBill.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + } + messageFlowableQuery.setMsgTitle("采购退货单申请"); + messageFeign.pushMessage(messageFlowableQuery); + return rb.success(); + } + } + return rb.setMsg("操作失败!提交的数据不一致!"); + } + + public ResultBean revokeProcess(PmsPurchasebackBillTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + if (StringUtils.isBlank(query.getUserSid())) { + return rb.setMsg("参数错误:userSid"); + } + PmsPurchasebackBill pmsPurchasebackBill = fetchBySid(query.getBusinessSid()); + String businessTaskId = pmsPurchasebackBill.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("操作失败,提交的数据不一致!"); + } + + public ResultBean breakProcess(PmsPurchasebackBillTaskQuery 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("请填写意见"); + } + PmsPurchasebackBill pmsPurchasebackBill = fetchBySid(query.getBusinessSid()); + String businessTaskId = pmsPurchasebackBill.getTaskId(); + if (StringUtils.isNotBlank(businessTaskId)) { + if (query.getUserSid().equals(pmsPurchasebackBill.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 (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(PmsPurchasebackBillDelegateQuery query) { + ResultBean rb = ResultBean.fireFail(); + FlowDelegateQuery delegateQuery = new FlowDelegateQuery(); + BeanUtil.copyProperties(query, delegateQuery); + flowFeign.delegate(delegateQuery); + return rb.success(); + } } \ No newline at end of file diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/flowable/PmsPurchasebackBillCompleteDto.java b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/flowable/PmsPurchasebackBillCompleteDto.java new file mode 100644 index 0000000000..bdb9178343 --- /dev/null +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/flowable/PmsPurchasebackBillCompleteDto.java @@ -0,0 +1,37 @@ +package com.yxt.pms.biz.pms.pmspurchasebackbill.flowable; + +import com.yxt.common.core.dto.Dto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Author dimengzhe + * @Date 2022/9/6 14:57 + * @Description + */ +@Data +public class PmsPurchasebackBillCompleteDto implements Dto { + private static final long serialVersionUID = 6378752532534735663L; + + @ApiModelProperty(value = "用户sid") + private String userSid; + @ApiModelProperty(value = "节点id") + @NotBlank(message = "参数错误:taskDefKey") + private String taskDefKey; + @ApiModelProperty(value = "任务id") + @NotBlank(message = "参数错误:taskId") + private String taskId; + @ApiModelProperty(value = "流程id(PC)") + private String instanceId; + @ApiModelProperty(value = "流程id(移动)") + private String procInsId; + @ApiModelProperty(value = "意见") + private String comment; + @ApiModelProperty(value = "业务sid") + @NotBlank(message = "参数错误:businessSid") + private String businessSid; + + private String orgPath; +} diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/flowable/PmsPurchasebackBillDelegateQuery.java b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/flowable/PmsPurchasebackBillDelegateQuery.java new file mode 100644 index 0000000000..c4f8c2c735 --- /dev/null +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/flowable/PmsPurchasebackBillDelegateQuery.java @@ -0,0 +1,26 @@ +package com.yxt.pms.biz.pms.pmspurchasebackbill.flowable; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author Administrator + * @description + * @date 2023/9/28 9:28 + */ +@Data +public class PmsPurchasebackBillDelegateQuery { + @ApiModelProperty + private String userSid; + @ApiModelProperty("流程实例id") +// @JsonProperty("procInsId") + private String instanceId; + @ApiModelProperty("任务Id") + private String taskId; + @ApiModelProperty("审批人sid") + private String assignee; + @ApiModelProperty("填写意见") + private String views; + + +} diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/flowable/PmsPurchasebackBillNodeQuery.java b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/flowable/PmsPurchasebackBillNodeQuery.java new file mode 100644 index 0000000000..5abcaafeab --- /dev/null +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/flowable/PmsPurchasebackBillNodeQuery.java @@ -0,0 +1,25 @@ +package com.yxt.pms.biz.pms.pmspurchasebackbill.flowable; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Author dimengzhe + * @Date 2022/9/6 15:04 + * @Description + */ +@Data +public class PmsPurchasebackBillNodeQuery implements Query { + private static final long serialVersionUID = 9117613683840483366L; + + @ApiModelProperty(value = "环节定义id") + @NotBlank(message = "参数错误:taskDefKey") + private String taskDefKey; + @ApiModelProperty(value = "业务sid") + private String businessSid; + @ApiModelProperty(value = "0 上一环节 1下一环节") + private Integer next; +} diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/flowable/PmsPurchasebackBillNodeVo.java b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/flowable/PmsPurchasebackBillNodeVo.java new file mode 100644 index 0000000000..1f7deabc90 --- /dev/null +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/flowable/PmsPurchasebackBillNodeVo.java @@ -0,0 +1,26 @@ +package com.yxt.pms.biz.pms.pmspurchasebackbill.flowable; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @Author dimengzhe + * @Date 2022/9/6 15:03 + * @Description + */ +@Data +public class PmsPurchasebackBillNodeVo implements Vo { + private static final long serialVersionUID = -833419512294877848L; + + @ApiModelProperty(value = "节点名称") + private String name; + @ApiModelProperty(value = "节点id") + private String id; + @ApiModelProperty(value = "审批组") + private List candidateGroups; + @ApiModelProperty(value = "是否是最后环节") + private String endTask; +} diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/flowable/PmsPurchasebackBillTaskQuery.java b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/flowable/PmsPurchasebackBillTaskQuery.java new file mode 100644 index 0000000000..ade131c86e --- /dev/null +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/flowable/PmsPurchasebackBillTaskQuery.java @@ -0,0 +1,48 @@ +package com.yxt.pms.biz.pms.pmspurchasebackbill.flowable; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Author dimengzhe + * @Date 2022/9/6 15:06 + * @Description + */ +@Data +public class PmsPurchasebackBillTaskQuery implements Query { + private static final long serialVersionUID = 1288615499873178778L; + + /** + * 终止、驳回、撤回 + */ + @ApiModelProperty("任务Id") + @NotBlank(message = "参数错误:taskId") + private String taskId; + /** + * 终止、驳回、撤回 + */ + @ApiModelProperty("业务sid") + @NotBlank(message = "参数错误:businessSid") + private String businessSid; + /** + * 终止、驳回 + */ + @ApiModelProperty("任务意见") + private String comment; + /** + * 终止、撤回、驳回 + */ + @ApiModelProperty("用户Sid") + private String userSid; + /** + * 终止 + */ + @ApiModelProperty("流程实例Id(PC)") + private String instanceId; + + @ApiModelProperty("流程实例Id(移动)") + private String procInsId; +} diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/flowable/SubmitPmsPurchasebackBillDto.java b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/flowable/SubmitPmsPurchasebackBillDto.java new file mode 100644 index 0000000000..2230182aa3 --- /dev/null +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/flowable/SubmitPmsPurchasebackBillDto.java @@ -0,0 +1,25 @@ +package com.yxt.pms.biz.pms.pmspurchasebackbill.flowable; + +import com.yxt.pms.biz.pms.pmspurchasebackbill.PmsPurchasebackBillDto; +import com.yxt.pms.biz.pms.pmspurchasebill.PmsPurchaseBillDto; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author liuguohui + * @version 1.0 + * @description + * @date 2022/04/13 + */ +@ApiModel("提交") +@Data +public class SubmitPmsPurchasebackBillDto extends PmsPurchasebackBillDto { + + @ApiModelProperty("意见") + private String comment; + @ApiModelProperty("流程实例id") + private String instanceId; + @ApiModelProperty("任务id") + private String taskId; +} diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillMapper.java b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillMapper.java index 3db68a919f..0a6cfc8441 100644 --- a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillMapper.java +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillMapper.java @@ -56,6 +56,8 @@ public interface PmsPurchaseBillMapper extends BaseMapper { IPage selectPageVo(IPage page, @Param(Constants.WRAPPER) Wrapper qw); + IPage choiceBillListPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); + String selectNum(String billNo); int updateFlowFiled(Map map); diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillMapper.xml b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillMapper.xml index a21b7bf3ad..041818aacc 100644 --- a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillMapper.xml +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillMapper.xml @@ -30,6 +30,34 @@ ${ew.sqlSegment} + + + select * + from as_busclaim_bill + where billNo = #{billNo} + order by id desc + limit 1 + \ No newline at end of file diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimbill/AsBusclaimBillService.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimbill/AsBusclaimBillService.java index 3373e6245f..f77fec0ea2 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimbill/AsBusclaimBillService.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimbill/AsBusclaimBillService.java @@ -70,4 +70,8 @@ public class AsBusclaimBillService extends MybatisBaseService resultList) { return baseMapper.saveList(resultList); } + + public AsBusclaimBill selectByBillNo(String billNo) { + return baseMapper.selectByBillNo(billNo); + } } diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimcheck/AsBusclaimCheckService.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimcheck/AsBusclaimCheckService.java index 4f3ab93011..27c8ef1bb9 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimcheck/AsBusclaimCheckService.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimcheck/AsBusclaimCheckService.java @@ -3,6 +3,7 @@ package com.yxt.anrui.as.biz.asbusclaimcheck; import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.yxt.anrui.as.api.asbusclaimbill.AsBusclaimBill; import com.yxt.anrui.as.api.asbusclaimcheck.AsBusclaimCheck; import com.yxt.anrui.as.api.asbusclaimcheck.AsBusclaimCheckDto; import com.yxt.anrui.as.api.asbusclaimcheck.AsBusclaimCheckQuery; @@ -10,12 +11,16 @@ import com.yxt.anrui.as.api.asbusclaimcheck.AsBusclaimCheckVo; import com.yxt.anrui.as.api.asbusclaiminvoicebill.AsBusclaimInvoiceBill; import com.yxt.anrui.as.api.asbusclaiminvoicebill.AsBusclaimInvoiceBillQuery; import com.yxt.anrui.as.api.asbusclaiminvoicebill.AsBusclaimInvoiceBillVo; +import com.yxt.anrui.as.api.asbusclaiminvoicebilldetail.AsBusclaimInvoiceBillDetail; +import com.yxt.anrui.as.biz.asbusclaimbill.AsBusclaimBillService; +import com.yxt.anrui.as.biz.asbusclaiminvoicebilldetail.AsBusclaimInvoiceBillDetailService; 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 org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Collections; @@ -28,6 +33,12 @@ import java.util.List; **/ @Service public class AsBusclaimCheckService extends MybatisBaseService { + + @Autowired + private AsBusclaimBillService asBusclaimBillService; + @Autowired + private AsBusclaimInvoiceBillDetailService asBusclaimInvoiceBillDetailService; + public ResultBean saveCheck(List list) { ResultBean rb = ResultBean.fireFail(); list.removeAll(Collections.singleton(null)); @@ -46,9 +57,36 @@ public class AsBusclaimCheckService extends MybatisBaseService qw = new QueryWrapper<>(); //ToDo:添加查询条件 + if (StringUtils.isNotBlank(query.getRepairBillNo())) { + qw.like("ac.repairBillNo", query.getRepairBillNo()); + } IPage page = PagerUtil.queryToPage(pagerQuery); IPage pagging = baseMapper.listPage(page, qw); + List records = pagging.getRecords(); + records.removeAll(Collections.singleton(null)); + if (!records.isEmpty()) { + for (int i = 0; i < records.size(); i++) { + AsBusclaimCheckVo asBusclaimCheckVo = records.get(i); + String billNo = asBusclaimCheckVo.getBillNo(); + AsBusclaimBill asBusclaimBill = asBusclaimBillService.selectByBillNo(billNo); + if (asBusclaimBill != null) { + asBusclaimCheckVo.setHourAmount1(asBusclaimBill.getHourAmount().toString()); + asBusclaimCheckVo.setGoodsAmount1(asBusclaimBill.getGoodsAmount().toString()); + asBusclaimCheckVo.setClaimOutAmount1(asBusclaimBill.getClaimOutAmount().toString()); + asBusclaimCheckVo.setClaimSubsidyAmount1(asBusclaimBill.getClaimSubsidyAmount().toString()); + asBusclaimCheckVo.setClaimOtherAmount1(asBusclaimBill.getClaimOtherAmount().toString()); + } + AsBusclaimInvoiceBillDetail asBusclaimInvoiceBillDetail = asBusclaimInvoiceBillDetailService.fetchBySid(asBusclaimCheckVo.getBillInvoiceDetailSid()); + if (asBusclaimInvoiceBillDetail != null) { + asBusclaimCheckVo.setClaimHourAmount2(asBusclaimInvoiceBillDetail.getClaimHourAmount().toString()); + asBusclaimCheckVo.setClaimGoodsAmount2(asBusclaimInvoiceBillDetail.getClaimGoodsAmount().toString()); + asBusclaimCheckVo.setClaimOutAmount2(asBusclaimInvoiceBillDetail.getClaimOutAmount().toString()); + asBusclaimCheckVo.setClaimSubsidyAmount2(asBusclaimInvoiceBillDetail.getClaimSubsidyAmount().toString()); + asBusclaimCheckVo.setClaimOtherAmount2(asBusclaimInvoiceBillDetail.getClaimOtherAmount().toString()); + } + } + } PagerVo p = PagerUtil.pageToVo(pagging, null); return p; } diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimcheckapply/AsBusclaimCheckApplyMapper.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimcheckapply/AsBusclaimCheckApplyMapper.java new file mode 100644 index 0000000000..19d283be34 --- /dev/null +++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimcheckapply/AsBusclaimCheckApplyMapper.java @@ -0,0 +1,26 @@ +package com.yxt.anrui.as.biz.asbusclaimcheckapply; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.yxt.anrui.as.api.asbusclaimcheckapply.AsBusclaimCheckApply; +import com.yxt.anrui.as.api.asbusclaimcheckapply.AsBusclaimCheckApplyVo; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.Map; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/5/11 + **/ +@Mapper +public interface AsBusclaimCheckApplyMapper extends BaseMapper { + IPage listPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); + + int selectBySid(String join); + + int updateFlowFiled(Map beanToMap); +} diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimcheckapply/AsBusclaimCheckApplyMapper.xml b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimcheckapply/AsBusclaimCheckApplyMapper.xml new file mode 100644 index 0000000000..b2e66f4685 --- /dev/null +++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimcheckapply/AsBusclaimCheckApplyMapper.xml @@ -0,0 +1,44 @@ + + + + + + + + + UPDATE as_busclaim_check_apply + SET nodeState=#{nodeState} + + , taskDefKey=#{taskDefKey} + + + , procDefId=#{procDefId} + + + , procInstId=#{procInsId} + + + , taskId=#{taskId} + + WHERE sid = #{sid} + + \ No newline at end of file diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimcheckapply/AsBusclaimCheckApplyRest.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimcheckapply/AsBusclaimCheckApplyRest.java new file mode 100644 index 0000000000..888a636c6a --- /dev/null +++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimcheckapply/AsBusclaimCheckApplyRest.java @@ -0,0 +1,115 @@ +package com.yxt.anrui.as.biz.asbusclaimcheckapply; + +import cn.hutool.core.bean.BeanUtil; +import com.yxt.anrui.as.api.asbusclaimcheckapply.AsBusclaimCheckApplyDetailsVo; +import com.yxt.anrui.as.api.asbusclaimcheckapply.AsBusclaimCheckApplyDto; +import com.yxt.anrui.as.api.asbusclaimcheckapply.AsBusclaimCheckApplyQuery; +import com.yxt.anrui.as.api.asbusclaimcheckapply.AsBusclaimCheckApplyVo; +import com.yxt.anrui.as.api.asbusclaimcheckapply.flowable.*; +import com.yxt.anrui.as.api.asbusclaiminvoicebill.AsBusclaimInvoiceBillDetailsVo; +import com.yxt.anrui.as.api.asbusclaiminvoicebill.AsBusclaimInvoiceBillDto; +import com.yxt.anrui.as.api.asbusclaiminvoicebill.AsBusclaimInvoiceBillQuery; +import com.yxt.anrui.as.api.asbusclaiminvoicebill.AsBusclaimInvoiceBillVo; +import com.yxt.anrui.as.api.asbusclaiminvoicebill.flowable.*; +import com.yxt.anrui.as.feign.flowable.flow.BusinessVariables; +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.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cloud.openfeign.SpringQueryMap; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; + +/** + * @description: 索赔调整申请 + * @author: dimengzhe + * @date: 2024/5/11 + **/ +@RestController +@RequestMapping("v1/AsBusclaimCheckApply") +public class AsBusclaimCheckApplyRest { + + @Autowired + private AsBusclaimCheckApplyService asBusclaimCheckApplyService; + + @PostMapping("/listPage") + @ApiOperation("索赔单调整分页") + ResultBean> listPage(@RequestBody PagerQuery pagerQuery) { + ResultBean> rb = ResultBean.fireFail(); + PagerVo pv = asBusclaimCheckApplyService.listPage(pagerQuery); + return rb.success().setData(pv); + } + + @PostMapping("/saveOrUpdateBill") + @ApiOperation("新增修改保存") + ResultBean saveOrUpdateBill(@RequestBody AsBusclaimCheckApplyDto dto) { + return asBusclaimCheckApplyService.saveOrUpdateBill(dto); + } + + @ApiOperation("删除/批量删除") + @DeleteMapping("/delBySids") + ResultBean delBySids(@RequestBody String[] sids) { + return asBusclaimCheckApplyService.delAllBySids(sids); + } + + @GetMapping("/details") + @ApiOperation("详情") + ResultBean details(@RequestParam("sid") String sid) { + return asBusclaimCheckApplyService.details(sid); + } + + @ApiOperation("提交") + @PostMapping("/submitApply") + public ResultBean submitApply(@Valid @RequestBody SubmitBusclaimCheckApplyDto dto) { + return asBusclaimCheckApplyService.submitApply(dto); + } + + @ApiOperation(value = "办理(同意)") + @PostMapping("/complete") + public ResultBean complete(@Valid @RequestBody CompleteBusclaimCheckApplyDto query) { + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + bv.setModelId(""); + return asBusclaimCheckApplyService.complete(bv); + } + + @ApiOperation(value = "获取上一个环节") + @GetMapping(value = "/getPreviousNodesForReject") + ResultBean> getPreviousNodesForReject(@Valid @SpringQueryMap BusclaimCheckApplyNodeQuery query) { + return asBusclaimCheckApplyService.getPreviousNodesForReject(query); + } + + @ApiOperation(value = "获取下一个环节") + @GetMapping(value = "/getNextNodesForSubmit") + ResultBean> getNextNodesForSubmit(@Valid @SpringQueryMap BusclaimCheckApplyNodeQuery query) { + return asBusclaimCheckApplyService.getNextNodesForSubmit(query); + } + + @ApiOperation(value = "驳回任务") + @PostMapping(value = "/reject") + public ResultBean taskReject(@Valid @RequestBody BusclaimCheckApplyTaskQuery query) { + return asBusclaimCheckApplyService.taskReject(query); + } + + @ApiOperation(value = "撤回流程") + @PostMapping(value = "/revokeProcess") + public ResultBean revokeProcess(@Valid @RequestBody BusclaimCheckApplyTaskQuery query) { + return asBusclaimCheckApplyService.revokeProcess(query); + } + + @ApiOperation(value = "终止任务") + @PostMapping(value = "/breakProcess") + public ResultBean breakProcess(@Valid @RequestBody BusclaimCheckApplyTaskQuery query) { + return asBusclaimCheckApplyService.breakProcess(query); + } + + @ApiOperation(value = "加签") + @PostMapping(value = "/delegate") + @ResponseBody + public ResultBean delegate(@RequestBody BusclaimCheckApplyDelegateQuery query) { + return asBusclaimCheckApplyService.delegate(query); + } +} diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimcheckapply/AsBusclaimCheckApplyService.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimcheckapply/AsBusclaimCheckApplyService.java new file mode 100644 index 0000000000..7013268e0c --- /dev/null +++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimcheckapply/AsBusclaimCheckApplyService.java @@ -0,0 +1,530 @@ +package com.yxt.anrui.as.biz.asbusclaimcheckapply; + +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.as.api.asbusclaimbill.AsBusclaimBill; +import com.yxt.anrui.as.api.asbusclaimcheckapply.*; +import com.yxt.anrui.as.api.asbusclaimcheckapply.flowable.*; +import com.yxt.anrui.as.api.asbusclaimcheckapplydetail.AsBusclaimCheckApplyDetailDto; +import com.yxt.anrui.as.api.asbusclaimcheckapplydetail.AsBusclaimCheckApplyDetailVo; +import com.yxt.anrui.as.api.asbusclaiminvoicebilldetail.AsBusclaimInvoiceBillDetail; +import com.yxt.anrui.as.biz.asbusclaimbill.AsBusclaimBillService; +import com.yxt.anrui.as.biz.asbusclaimcheckapplydetail.AsBusclaimCheckApplyDetailMapper; +import com.yxt.anrui.as.biz.asbusclaimcheckapplydetail.AsBusclaimCheckApplyDetailService; +import com.yxt.anrui.as.biz.asbusclaiminvoicebilldetail.AsBusclaimInvoiceBillDetailService; +import com.yxt.anrui.as.feign.flowable.flow.BusinessVariables; +import com.yxt.anrui.as.feign.flowable.flow.FlowableFeign; +import com.yxt.anrui.as.feign.flowable.flow.ProcDefEnum; +import com.yxt.anrui.as.feign.flowable.flow.UpdateFlowFieldVo; +import com.yxt.anrui.as.feign.flowable.flow2.FlowDelegateQuery; +import com.yxt.anrui.as.feign.flowable.flow2.FlowFeign; +import com.yxt.anrui.as.feign.flowable.flowtask.FlowTaskFeign; +import com.yxt.anrui.as.feign.flowable.flowtask.FlowTaskVo; +import com.yxt.anrui.as.feign.flowable.flowtask.LatestTaskVo; +import com.yxt.anrui.as.feign.message.MessageFeign; +import com.yxt.anrui.as.feign.message.MessageFlowVo; +import com.yxt.anrui.as.feign.message.MessageFlowableQuery; +import com.yxt.anrui.as.feign.portal.sysorganization.SysOrganizationFeign; +import com.yxt.anrui.as.feign.portal.sysorganization.SysOrganizationVo; +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 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 + * @date: 2024/5/11 + **/ +@Service +public class AsBusclaimCheckApplyService extends MybatisBaseService { + + @Autowired + private FileUploadComponent fileUploadComponent; + @Autowired + private AsBusclaimCheckApplyDetailService asBusclaimCheckApplyDetailService; + @Autowired + private AsBusclaimCheckApplyDetailMapper asBusclaimCheckApplyDetailMapper; + @Autowired + private AsBusclaimBillService asBusclaimBillService; + @Autowired + private AsBusclaimInvoiceBillDetailService asBusclaimInvoiceBillDetailService; + @Autowired + private SysOrganizationFeign sysOrganizationFeign; + @Autowired + private FlowFeign flowFeign; + @Autowired + private MessageFeign messageFeign; + @Autowired + private FlowTaskFeign flowTaskFeign; + @Autowired + private FlowableFeign flowableFeign; + + + public PagerVo listPage(PagerQuery pagerQuery) { + AsBusclaimCheckApplyQuery query = pagerQuery.getParams(); + QueryWrapper qw = new QueryWrapper<>(); + //ToDo:添加查询条件 + //分公司 + if (StringUtils.isNotBlank(query.getUseOrgName())) { + qw.like("a.useOrgName", query.getUseOrgName()); + } + //申请部门 + if (StringUtils.isNotBlank(query.getCreateDeptName())) { + qw.like("a.createDeptName", query.getCreateDeptName()); + } + //申请人 + if (StringUtils.isNotBlank(query.getCreateByName())) { + qw.like("a.createByName", query.getCreateByName()); + } + //单据编号 + if (StringUtils.isNotBlank(query.getBillNo())) { + qw.like("a.billNo", query.getBillNo()); + } + //申请日期开始时间-申请日期结束时间 + qw.apply(StringUtils.isNotBlank(query.getCreateTimeStart()), "date_format (a.createTime,'%Y-%m-%d') >= date_format('" + query.getCreateTimeStart() + "','%Y-%m-%d')"). + apply(StringUtils.isNotBlank(query.getCreateTimeEnd()), "date_format (a.createTime,'%Y-%m-%d') <= date_format('" + query.getCreateTimeEnd() + "','%Y-%m-%d')" + ); + //办结日期开始时间-办结日期结束时间 + qw.apply(StringUtils.isNotBlank(query.getCloseDateStart()), "date_format (a.closeDate,'%Y-%m-%d') >= date_format('" + query.getCloseDateStart() + "','%Y-%m-%d')"). + apply(StringUtils.isNotBlank(query.getCloseDateEnd()), "date_format (a.closeDate,'%Y-%m-%d') <= date_format('" + query.getCloseDateEnd() + "','%Y-%m-%d')" + ); + IPage page = PagerUtil.queryToPage(pagerQuery); + IPage pagging = baseMapper.listPage(page, qw); + List records = pagging.getRecords(); + records.removeAll(Collections.singleton(null)); + if (!records.isEmpty()) { + for (int i = 0; i < records.size(); i++) { + AsBusclaimCheckApplyVo asBusclaimCheckApplyVo = records.get(i); + String file = asBusclaimCheckApplyVo.getFile(); + if (StringUtils.isNotBlank(file)) { + List processFile = Arrays.asList(file.split(",")).stream().map(c -> fileUploadComponent.getUrlPrefix() + c).collect(Collectors.toList()); + asBusclaimCheckApplyVo.setFileList(processFile); + } + } + } + PagerVo p = PagerUtil.pageToVo(pagging, null); + return p; + } + + public ResultBean saveOrUpdateBill(AsBusclaimCheckApplyDto dto) { + ResultBean rb = ResultBean.fireFail(); + String sid = dto.getSid(); + if (StringUtils.isBlank(sid)) { + AsBusclaimCheckApply asBusclaimCheckApply = new AsBusclaimCheckApply(); + BeanUtil.copyProperties(dto, asBusclaimCheckApply, "sid"); + asBusclaimCheckApply.setCreateBySid(dto.getCreateBySid()); + sid = asBusclaimCheckApply.getSid(); + List fileList = dto.getFileList(); + fileList.removeAll(Collections.singleton(null)); + if (!fileList.isEmpty()) { + String files = String.join(",", fileList).replaceAll(fileUploadComponent.getUrlPrefix(), ""); + asBusclaimCheckApply.setFile(files); + } + List detailList = dto.getDetailsList(); + detailList.removeAll(Collections.singleton(null)); + if (!detailList.isEmpty()) { + asBusclaimCheckApplyDetailService.saveOrUpdateDetails(sid, detailList); + } + baseMapper.insert(asBusclaimCheckApply); + + } else { + AsBusclaimCheckApply asBusclaimCheckApply = fetchBySid(sid); + if (asBusclaimCheckApply == null) { + return rb.setMsg("该单据不存在"); + } + BeanUtil.copyProperties(dto, asBusclaimCheckApply, "sid"); + List fileList = dto.getFileList(); + fileList.removeAll(Collections.singleton(null)); + if (!fileList.isEmpty()) { + String files = String.join(",", fileList).replaceAll(fileUploadComponent.getUrlPrefix(), ""); + asBusclaimCheckApply.setFile(files); + } + List detailList = dto.getDetailsList(); + detailList.removeAll(Collections.singleton(null)); + if (!detailList.isEmpty()) { + asBusclaimCheckApplyDetailService.saveOrUpdateDetails(sid, detailList); + } + baseMapper.updateById(asBusclaimCheckApply); + } + return rb.success().setData(sid); + } + + 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++) { + asBusclaimCheckApplyDetailMapper.deleteByMainSid(sidss.get(i)); + } + delBySids(sids); + return rb.success().setMsg("删除成功"); + } + + public ResultBean details(String sid) { + ResultBean rb = ResultBean.fireFail(); + AsBusclaimCheckApplyDetailsVo asBusclaimCheckApplyDetailsVo = new AsBusclaimCheckApplyDetailsVo(); + AsBusclaimCheckApply asBusclaimCheckApply = fetchBySid(sid); + if (asBusclaimCheckApply == null) { + return rb.setMsg("该单据不存在"); + } + BeanUtil.copyProperties(asBusclaimCheckApply, asBusclaimCheckApplyDetailsVo); + if (StringUtils.isNotBlank(asBusclaimCheckApply.getFile())) { + List fileList = Arrays.asList(asBusclaimCheckApply.getFile().split(",")).stream().map(c -> fileUploadComponent.getUrlPrefix() + c).collect(Collectors.toList()); + asBusclaimCheckApplyDetailsVo.setFileList(fileList); + } + List detailList = asBusclaimCheckApplyDetailService.selectDetails(sid); + detailList.removeAll(Collections.singleton(null)); + if (!detailList.isEmpty()) { + for (int i = 0; i < detailList.size(); i++) { + AsBusclaimCheckApplyDetailVo asBusclaimCheckApplyDetailVo = detailList.get(i); + String billNo = asBusclaimCheckApplyDetailVo.getClaimBillNo(); + AsBusclaimBill asBusclaimBill = asBusclaimBillService.selectByBillNo(billNo); + if (asBusclaimBill != null) { + asBusclaimCheckApplyDetailVo.setHourAmount1(asBusclaimBill.getHourAmount().toString()); + asBusclaimCheckApplyDetailVo.setGoodsAmount1(asBusclaimBill.getGoodsAmount().toString()); + asBusclaimCheckApplyDetailVo.setClaimOutAmount1(asBusclaimBill.getClaimOutAmount().toString()); + asBusclaimCheckApplyDetailVo.setClaimSubsidyAmount1(asBusclaimBill.getClaimSubsidyAmount().toString()); + asBusclaimCheckApplyDetailVo.setClaimOtherAmount1(asBusclaimBill.getClaimOtherAmount().toString()); + } + AsBusclaimInvoiceBillDetail asBusclaimInvoiceBillDetail = asBusclaimInvoiceBillDetailService.fetchBySid(asBusclaimCheckApplyDetailVo.getBillInvoiceDetailSid()); + if (asBusclaimInvoiceBillDetail != null) { + asBusclaimCheckApplyDetailVo.setClaimHourAmount2(asBusclaimInvoiceBillDetail.getClaimHourAmount().toString()); + asBusclaimCheckApplyDetailVo.setClaimGoodsAmount2(asBusclaimInvoiceBillDetail.getClaimGoodsAmount().toString()); + asBusclaimCheckApplyDetailVo.setClaimOutAmount2(asBusclaimInvoiceBillDetail.getClaimOutAmount().toString()); + asBusclaimCheckApplyDetailVo.setClaimSubsidyAmount2(asBusclaimInvoiceBillDetail.getClaimSubsidyAmount().toString()); + asBusclaimCheckApplyDetailVo.setClaimOtherAmount2(asBusclaimInvoiceBillDetail.getClaimOtherAmount().toString()); + } + } + asBusclaimCheckApplyDetailsVo.setDetailList(detailList); + } + return rb.success().setData(asBusclaimCheckApplyDetailsVo); + } + + public ResultBean submitApply(SubmitBusclaimCheckApplyDto dto) { + ResultBean rb = ResultBean.fireFail(); + AsBusclaimCheckApply asBusclaimCheckApply = fetchBySid(dto.getSid()); + int r = submitBusinessData(dto, asBusclaimCheckApply); + if (r == 3) { + return rb.setMsg("该申请不存在"); + } + if (r == 0) { + return rb.setMsg("操作失败!提交的数据不一致"); + } + ResultBean resultBean = saveOrUpdateBill(dto); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + String businessSid = resultBean.getData(); + asBusclaimCheckApply = fetchBySid(businessSid); + //创建BusinessVariables实体对象 + BusinessVariables bv = new BusinessVariables(); + //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 + Map variables = new HashMap<>(); + Map appMap = new HashMap<>(); + appMap.put("sid", businessSid); + variables.put("app", appMap); + //用户的部门全路径sid + SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(asBusclaimCheckApply.getCreateDeptSid()).getData(); + if (sysOrganization != null) { + bv.setOrgSidPath(sysOrganization.getOrgSidPath()); + } + bv.setBusinessSid(businessSid); + bv.setUserSid(dto.getCreateBySid()); + bv.setFormVariables(variables); + if (r == 1) { + //ToDo:流程定义id + bv.setModelId(""); + ResultBean voResultBean = flowFeign.startProcess(bv); + if (!voResultBean.getSuccess()) { + return rb.setMsg(voResultBean.getMsg()); + } + UpdateFlowFieldVo ufVo = voResultBean.getData(); + updateFlowFiled(BeanUtil.beanToMap(ufVo)); + asBusclaimCheckApply = 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()); + AsBusclaimCheckApply finalAsBusclaimCheckApply = asBusclaimCheckApply; + 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(finalAsBusclaimCheckApply.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(asBusclaimCheckApply.getTaskId()); + bv.setTaskDefKey(asBusclaimCheckApply.getTaskDefKey()); + bv.setComment("重新提交"); + bv.setInstanceId(dto.getInstanceId()); + return complete(bv); + } + return rb; + } + + private int updateFlowFiled(Map beanToMap) { + return baseMapper.updateFlowFiled(beanToMap); + } + + + private int submitBusinessData(SubmitBusclaimCheckApplyDto dto, AsBusclaimCheckApply asBusclaimCheckApply) { + int r = 0; + if (StringUtils.isBlank(dto.getSid())) { + r = 1; + } else { + if (asBusclaimCheckApply != null) { + String businessTaskId = asBusclaimCheckApply.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 complete(BusinessVariables bv) { + ResultBean rb = ResultBean.fireFail(); + String businessSid = bv.getBusinessSid(); + AsBusclaimCheckApply asBusclaimCheckApply = fetchBySid(businessSid); + Map variables = new HashMap<>(); + Map appMap = new HashMap<>(); + appMap.put("sid", businessSid); + variables.put("app", appMap); + bv.setFormVariables(variables); + SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(asBusclaimCheckApply.getCreateDeptSid()).getData(); + if (sysOrganization != null) { + bv.setOrgSidPath(sysOrganization.getOrgSidPath()); + } + bv.setModelId(asBusclaimCheckApply.getProcDefId()); + if (bv.getTaskId().equals(asBusclaimCheckApply.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())) { + asBusclaimCheckApply = fetchBySid(businessSid); + asBusclaimCheckApply.setCloseDate(DateUtil.today()); + baseMapper.updateById(asBusclaimCheckApply); + } else { + //极光推送 + asBusclaimCheckApply = fetchBySid(businessSid); + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + messageFlowVo.setProcDefId(asBusclaimCheckApply.getProcDefId()); + messageFlowVo.setProcInsId(asBusclaimCheckApply.getProcInstId()); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(businessSid); + messageFlowableQuery.setModuleName("索赔单调整申请"); + messageFlowableQuery.setMsgContent(asBusclaimCheckApply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + messageFlowableQuery.setMsgTitle("索赔单调整申请"); + ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery); + } + return rb.success().setData(resultBean.getData()); + } else { + return rb.setMsg("操作失败!提交的数据不一致"); + } + } + + public ResultBean> getPreviousNodesForReject(BusclaimCheckApplyNodeQuery query) { + ResultBean> rb = ResultBean.fireFail(); + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + AsBusclaimCheckApply asBusclaimCheckApply = fetchBySid(query.getBusinessSid()); + bv.setModelId(asBusclaimCheckApply.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), BusclaimCheckApplyNodeVo.class)).collect(Collectors.toList()); + return rb.success().setData(voList); + } + + public ResultBean> getNextNodesForSubmit(BusclaimCheckApplyNodeQuery query) { + ResultBean> rb = ResultBean.fireFail(); + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + AsBusclaimCheckApply asBusclaimCheckApply = fetchBySid(query.getBusinessSid()); + bv.setModelId(asBusclaimCheckApply.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), BusclaimCheckApplyNodeVo.class)).collect(Collectors.toList()); + return rb.success().setData(voList); + } + + public ResultBean taskReject(BusclaimCheckApplyTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + String businessSid = query.getBusinessSid(); + AsBusclaimCheckApply asBusclaimCheckApply = fetchBySid(businessSid); + if (asBusclaimCheckApply == null) { + return rb.setMsg("该申请不存在"); + } + String businessTaskId = asBusclaimCheckApply.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); + //极光推送 + asBusclaimCheckApply = fetchBySid(businessSid); + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + String procId = asBusclaimCheckApply.getProcInstId(); + messageFlowVo.setProcInsId(procId); + messageFlowVo.setProcDefId(asBusclaimCheckApply.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(asBusclaimCheckApply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + } + + messageFlowableQuery.setMsgTitle("索赔单调整申请"); + ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery); + return rb.success(); + } + } + return rb.setMsg("操作失败!提交的数据不一致!"); + } + + public ResultBean revokeProcess(BusclaimCheckApplyTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + if (StringUtils.isBlank(query.getUserSid())) { + return rb.setMsg("参数错误:userSid"); + } + AsBusclaimCheckApply asBusclaimCheckApply = fetchBySid(query.getBusinessSid()); + String businessTaskId = asBusclaimCheckApply.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("操作失败,提交的数据不一致!"); + } + + public ResultBean breakProcess(BusclaimCheckApplyTaskQuery 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("请填写意见"); + } + AsBusclaimCheckApply asBusclaimCheckApply = fetchBySid(query.getBusinessSid()); + String businessTaskId = asBusclaimCheckApply.getTaskId(); + if (StringUtils.isNotBlank(businessTaskId)) { + if (query.getUserSid().equals(asBusclaimCheckApply.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 (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(BusclaimCheckApplyDelegateQuery query) { + ResultBean rb = ResultBean.fireFail(); + FlowDelegateQuery delegateQuery = new FlowDelegateQuery(); + BeanUtil.copyProperties(query, delegateQuery); + flowFeign.delegate(delegateQuery); + return rb.success(); + } +} diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimcheckapplydetail/AsBusclaimCheckApplyDetailMapper.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimcheckapplydetail/AsBusclaimCheckApplyDetailMapper.java new file mode 100644 index 0000000000..f267cc6259 --- /dev/null +++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimcheckapplydetail/AsBusclaimCheckApplyDetailMapper.java @@ -0,0 +1,20 @@ +package com.yxt.anrui.as.biz.asbusclaimcheckapplydetail; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yxt.anrui.as.api.asbusclaimcheckapplydetail.AsBusclaimCheckApplyDetail; +import com.yxt.anrui.as.api.asbusclaimcheckapplydetail.AsBusclaimCheckApplyDetailVo; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/5/11 + **/ +@Mapper +public interface AsBusclaimCheckApplyDetailMapper extends BaseMapper { + int deleteByMainSid(String sid); + + List selectDetails(String sid); +} diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimcheckapplydetail/AsBusclaimCheckApplyDetailMapper.xml b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimcheckapplydetail/AsBusclaimCheckApplyDetailMapper.xml new file mode 100644 index 0000000000..b4d028405a --- /dev/null +++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimcheckapplydetail/AsBusclaimCheckApplyDetailMapper.xml @@ -0,0 +1,30 @@ + + + + + delete + from as_busclaim_check_apply_detail + where billSid = #{sid} + + + + \ No newline at end of file diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimcheckapplydetail/AsBusclaimCheckApplyDetailRest.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimcheckapplydetail/AsBusclaimCheckApplyDetailRest.java new file mode 100644 index 0000000000..3bb4370240 --- /dev/null +++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimcheckapplydetail/AsBusclaimCheckApplyDetailRest.java @@ -0,0 +1,14 @@ +package com.yxt.anrui.as.biz.asbusclaimcheckapplydetail; + +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/5/11 + **/ +@RestController +@RequestMapping("v1/AsBusclaimCheckApplyDetail") +public class AsBusclaimCheckApplyDetailRest { +} diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimcheckapplydetail/AsBusclaimCheckApplyDetailService.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimcheckapplydetail/AsBusclaimCheckApplyDetailService.java new file mode 100644 index 0000000000..19d0036917 --- /dev/null +++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimcheckapplydetail/AsBusclaimCheckApplyDetailService.java @@ -0,0 +1,35 @@ +package com.yxt.anrui.as.biz.asbusclaimcheckapplydetail; + +import cn.hutool.core.bean.BeanUtil; +import com.yxt.anrui.as.api.asbusclaimcheckapplydetail.AsBusclaimCheckApplyDetail; +import com.yxt.anrui.as.api.asbusclaimcheckapplydetail.AsBusclaimCheckApplyDetailDto; +import com.yxt.anrui.as.api.asbusclaimcheckapplydetail.AsBusclaimCheckApplyDetailVo; +import com.yxt.anrui.as.api.asbusclaiminvoicebilldetail.AsBusclaimInvoiceBillDetail; +import com.yxt.anrui.as.api.asbusclaiminvoicebilldetail.AsBusclaimInvoiceBillDetailDto; +import com.yxt.common.base.service.MybatisBaseService; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/5/11 + **/ +@Service +public class AsBusclaimCheckApplyDetailService extends MybatisBaseService { + public void saveOrUpdateDetails(String sid, List detailList) { + baseMapper.deleteByMainSid(sid); + for (int i = 0; i < detailList.size(); i++) { + AsBusclaimCheckApplyDetailDto dto = detailList.get(i); + AsBusclaimCheckApplyDetail asBusclaimCheckApplyDetail = new AsBusclaimCheckApplyDetail(); + BeanUtil.copyProperties(dto, asBusclaimCheckApplyDetail, "sid"); + asBusclaimCheckApplyDetail.setBillSid(sid); + baseMapper.insert(asBusclaimCheckApplyDetail); + } + } + + public List selectDetails(String sid) { + return baseMapper.selectDetails(sid); + } +} From c66ebf5e7aeb68ef034f180d560e1540ea4bb4ad Mon Sep 17 00:00:00 2001 From: God <10745413@qq.com> Date: Sat, 11 May 2024 15:11:11 +0800 Subject: [PATCH 3/9] =?UTF-8?q?=E8=BD=A6=E8=BE=86=E5=8F=B0=E8=B4=A6?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=E5=A2=9E=E5=8A=A0=E5=AD=98=E6=94=BE=E5=9C=B0?= =?UTF-8?q?=E7=82=B9=E8=AF=A6=E7=BB=86=E5=9C=B0=E5=9D=80=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/yxt/anrui/base/api/basevehicle/BaseVehicleExportVo.java | 2 ++ .../com/yxt/anrui/base/biz/basevehicle/BaseVehicleMapper.xml | 2 ++ 2 files changed, 4 insertions(+) diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleExportVo.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleExportVo.java index e71e6d4d1e..740bdd2f35 100644 --- a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleExportVo.java +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleExportVo.java @@ -126,6 +126,8 @@ public class BaseVehicleExportVo implements Vo { private String returnDate; @ExportEntityMap(CnName = "存放地点", EnName = "locationName") private String locationName; + @ExportEntityMap(CnName = "存放地点详细地址", EnName = "warehouseAttribute") + private String warehouseAttribute; @ExportEntityMap(CnName = "厂家销售通路", EnName = "manufSaleAccessName") private String manufSaleAccessName; @ExportEntityMap(CnName = "厂家合同价(含运费)", EnName = "contractPrice") 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 d35a357148..17b8d87e15 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 @@ -1673,6 +1673,7 @@ bv.vinNo, bv.vehicleStateValue, bv.locationName, + sw.warehouseAttribute, bv.orderingNo, bv.costPrice, bv.freight, @@ -1761,6 +1762,7 @@ LEFT JOIN base_vehicle_certificate bvcf ON bv.`sid` = bvcf.`vehicleSid` LEFT JOIN base_vehmodel_config bvc ON bvm.`sid` = bvc.`modelSid` LEFT JOIN anrui_portal.sys_organization so ON bv.createOrgSid = so.sid + LEFT JOIN anrui_scm.scm_warehouse sw ON bv.location = sw.sid ${ew.sqlSegment} From 16df6d38cda76078360efea3aa0878bac921e60f Mon Sep 17 00:00:00 2001 From: dimengzhe Date: Sat, 11 May 2024 15:34:30 +0800 Subject: [PATCH 4/9] =?UTF-8?q?=E7=B4=A2=E8=B5=94=E5=8D=95=E8=B0=83?= =?UTF-8?q?=E6=95=B4=E7=94=B3=E8=AF=B7=E7=9B=B8=E5=85=B3=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../asbusclaimcheckapply/AsBusclaimCheckApplyDetailsVo.java | 2 +- .../api/asbusclaimcheckapply/AsBusclaimCheckApplyDto.java | 2 +- .../AsBusclaimCheckApplyDetailDto.java | 2 +- .../AsBusclaimCheckApplyDetailVo.java | 6 +++--- .../biz/asbusclaimcheckapply/AsBusclaimCheckApplyRest.java | 5 ----- 5 files changed, 6 insertions(+), 11 deletions(-) diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapply/AsBusclaimCheckApplyDetailsVo.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapply/AsBusclaimCheckApplyDetailsVo.java index b0d67fcffc..9ef8314b0b 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapply/AsBusclaimCheckApplyDetailsVo.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapply/AsBusclaimCheckApplyDetailsVo.java @@ -19,7 +19,7 @@ public class AsBusclaimCheckApplyDetailsVo { private String sid; private String createBySid; private String createByName; - private String orgPath; +// private String orgPath; private String createTime; diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapply/AsBusclaimCheckApplyDto.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapply/AsBusclaimCheckApplyDto.java index 59f8951205..229f621aa9 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapply/AsBusclaimCheckApplyDto.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapply/AsBusclaimCheckApplyDto.java @@ -18,7 +18,7 @@ public class AsBusclaimCheckApplyDto { private String sid; private String createBySid; private String createByName; - private String orgPath; +// private String orgPath; private String createTime; diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapplydetail/AsBusclaimCheckApplyDetailDto.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapplydetail/AsBusclaimCheckApplyDetailDto.java index e0a988a6e1..34d107bdcf 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapplydetail/AsBusclaimCheckApplyDetailDto.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapplydetail/AsBusclaimCheckApplyDetailDto.java @@ -18,7 +18,7 @@ public class AsBusclaimCheckApplyDetailDto { @ApiModelProperty("维修工单号") private String repairBillNo; @ApiModelProperty("车牌号") - private String vehmark; + private String vehMark; @ApiModelProperty("车架号") private String vinNo; @ApiModelProperty("开票申请sid") diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapplydetail/AsBusclaimCheckApplyDetailVo.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapplydetail/AsBusclaimCheckApplyDetailVo.java index 591539707f..1474b707f7 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapplydetail/AsBusclaimCheckApplyDetailVo.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapplydetail/AsBusclaimCheckApplyDetailVo.java @@ -18,16 +18,16 @@ public class AsBusclaimCheckApplyDetailVo { @ApiModelProperty("维修工单号") private String repairBillNo; @ApiModelProperty("车牌号") - private String vehmark; + private String vehMark; @ApiModelProperty("车架号") private String vinNo; @ApiModelProperty("开票申请sid") private String billInvoiceSid; @ApiModelProperty("开票明细sid") private String billInvoiceDetailSid; - @ApiModelProperty("索赔工时费") + @ApiModelProperty("调整工时费") private String claimHourAmount; - @ApiModelProperty("索赔材料费") + @ApiModelProperty("调整材料费") private String claimGoodsAmount; @ApiModelProperty("外出费") private String claimOutAmount; diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimcheckapply/AsBusclaimCheckApplyRest.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimcheckapply/AsBusclaimCheckApplyRest.java index 888a636c6a..e20df96c36 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimcheckapply/AsBusclaimCheckApplyRest.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimcheckapply/AsBusclaimCheckApplyRest.java @@ -6,11 +6,6 @@ import com.yxt.anrui.as.api.asbusclaimcheckapply.AsBusclaimCheckApplyDto; import com.yxt.anrui.as.api.asbusclaimcheckapply.AsBusclaimCheckApplyQuery; import com.yxt.anrui.as.api.asbusclaimcheckapply.AsBusclaimCheckApplyVo; import com.yxt.anrui.as.api.asbusclaimcheckapply.flowable.*; -import com.yxt.anrui.as.api.asbusclaiminvoicebill.AsBusclaimInvoiceBillDetailsVo; -import com.yxt.anrui.as.api.asbusclaiminvoicebill.AsBusclaimInvoiceBillDto; -import com.yxt.anrui.as.api.asbusclaiminvoicebill.AsBusclaimInvoiceBillQuery; -import com.yxt.anrui.as.api.asbusclaiminvoicebill.AsBusclaimInvoiceBillVo; -import com.yxt.anrui.as.api.asbusclaiminvoicebill.flowable.*; import com.yxt.anrui.as.feign.flowable.flow.BusinessVariables; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; From a99612c1332c7504a887ea458298a77e9ca59a80 Mon Sep 17 00:00:00 2001 From: dimengzhe Date: Sat, 11 May 2024 15:48:29 +0800 Subject: [PATCH 5/9] =?UTF-8?q?=E7=B4=A2=E8=B5=94=E5=8D=95=E8=B0=83?= =?UTF-8?q?=E6=95=B4=E7=94=B3=E8=AF=B7=E7=9B=B8=E5=85=B3=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/yxt/anrui/as/feign/flowable/flow/ProcDefEnum.java | 1 + 1 file changed, 1 insertion(+) diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/feign/flowable/flow/ProcDefEnum.java b/yxt-as/src/main/java/com/yxt/anrui/as/feign/flowable/flow/ProcDefEnum.java index 27b63126ab..7ec5e912cf 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/feign/flowable/flow/ProcDefEnum.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/feign/flowable/flow/ProcDefEnum.java @@ -12,6 +12,7 @@ public enum ProcDefEnum { ASOLDPARTHANDLEAPPLY("旧件处理申请", "process_sshks74p:1:10887504"), REVERSESETTLEAPPLY("工单反结算申请", "process_g3r02po8:1:10975004"), ASBUSCLAIMINVOICEBILL("索赔单开票申请", "process_33p7rz6h:1:11297504"), + ASBUSCLAIMCHECKAPPLY("索赔单调整申请", "process_7icw4lhq:1:11310004"), ; From 91204cc86da4b45de992ba69445ca255bf191fa6 Mon Sep 17 00:00:00 2001 From: dimengzhe Date: Sat, 11 May 2024 15:49:38 +0800 Subject: [PATCH 6/9] =?UTF-8?q?=E7=B4=A2=E8=B5=94=E5=8D=95=E8=B0=83?= =?UTF-8?q?=E6=95=B4=E7=94=B3=E8=AF=B7=E7=9B=B8=E5=85=B3=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../biz/asbusclaimcheckapply/AsBusclaimCheckApplyService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimcheckapply/AsBusclaimCheckApplyService.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimcheckapply/AsBusclaimCheckApplyService.java index 7013268e0c..9e7bbb6cbe 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimcheckapply/AsBusclaimCheckApplyService.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimcheckapply/AsBusclaimCheckApplyService.java @@ -252,7 +252,7 @@ public class AsBusclaimCheckApplyService extends MybatisBaseService voResultBean = flowFeign.startProcess(bv); if (!voResultBean.getSuccess()) { return rb.setMsg(voResultBean.getMsg()); From b5aeaa9dd3970bc6b90911f92bb8db4984a68fa5 Mon Sep 17 00:00:00 2001 From: God <10745413@qq.com> Date: Sat, 11 May 2024 15:56:14 +0800 Subject: [PATCH 7/9] =?UTF-8?q?=E9=87=87=E8=B4=AD=E9=80=80=E8=B4=A7?= =?UTF-8?q?=E5=8D=95=E7=94=B3=E8=AF=B7=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PmsPurchasebackBill.java | 4 +- .../PmsPurchasebackBillDetailsVo.java | 4 +- .../PmsPurchasebackBillDto.java | 4 +- .../PmsPurchasebackBillMapper.xml | 3 +- .../PmsPurchasebackDetail.java | 12 ----- .../PmsPurchasebackDetailDetailsVo.java | 12 ----- .../PmsPurchasebackDetailDto.java | 12 ----- .../PmsPurchasebackDetailMapper.java | 5 -- .../PmsPurchasebackDetailMapper.xml | 4 -- .../PmsPurchasebackDetailQuery.java | 45 ------------------ .../PmsPurchasebackDetailVo.java | 47 ------------------- 11 files changed, 11 insertions(+), 141 deletions(-) diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/PmsPurchasebackBill.java b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/PmsPurchasebackBill.java index 7b53d96fd8..ec390ca84c 100644 --- a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/PmsPurchasebackBill.java +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/PmsPurchasebackBill.java @@ -77,8 +77,10 @@ public class PmsPurchasebackBill extends BaseEntity { @ApiModelProperty("单据状态") private String documentState; - @ApiModelProperty("已付金额") + @ApiModelProperty("应付金额") private BigDecimal paidAmount; + @ApiModelProperty("应收金额") + private BigDecimal receivableAmount; @ApiModelProperty("申请部门sid") private String deptSid; diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/PmsPurchasebackBillDetailsVo.java b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/PmsPurchasebackBillDetailsVo.java index a610a0a513..01c77d3b1c 100644 --- a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/PmsPurchasebackBillDetailsVo.java +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/PmsPurchasebackBillDetailsVo.java @@ -81,8 +81,10 @@ public class PmsPurchasebackBillDetailsVo implements Vo { @ApiModelProperty("转入预付款") private BigDecimal toPrepayment; // 转入预付款 - @ApiModelProperty("已付金额") + @ApiModelProperty("应付金额") private BigDecimal paidAmount; + @ApiModelProperty("应收金额") + private BigDecimal receivableAmount; @ApiModelProperty("申请部门sid") private String deptSid; diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/PmsPurchasebackBillDto.java b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/PmsPurchasebackBillDto.java index c51163afbd..486bb05477 100644 --- a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/PmsPurchasebackBillDto.java +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/PmsPurchasebackBillDto.java @@ -80,8 +80,10 @@ public class PmsPurchasebackBillDto implements Dto { @ApiModelProperty("转入预付款") private BigDecimal toPrepayment; // 转入预付款 - @ApiModelProperty("已付金额") + @ApiModelProperty("应付金额") private BigDecimal paidAmount; + @ApiModelProperty("应收金额") + private BigDecimal receivableAmount; @ApiModelProperty("申请部门sid") private String deptSid; diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/PmsPurchasebackBillMapper.xml b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/PmsPurchasebackBillMapper.xml index f2375b8b3c..4b4b2c71a6 100644 --- a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/PmsPurchasebackBillMapper.xml +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackbill/PmsPurchasebackBillMapper.xml @@ -17,7 +17,8 @@ pb.`purchaseReasonValue`, pb.`purchaseTypeValue`, pb.supplierName, - SUM(ppbd.backAmount) AS backAmountCount + SUM(ppbd.backAmount) AS backAmountCount, + ppb.receivableAmount FROM pms_purchaseback_bill ppb LEFT JOIN pms_purchase_bill pb diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackdetail/PmsPurchasebackDetail.java b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackdetail/PmsPurchasebackDetail.java index 48ac61fc04..b757e2995c 100644 --- a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackdetail/PmsPurchasebackDetail.java +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackdetail/PmsPurchasebackDetail.java @@ -56,8 +56,6 @@ public class PmsPurchasebackDetail extends BaseEntity { private String createByName; // 制单人姓名 @ApiModelProperty("单据sid") private String billSid; // 单据sid - @ApiModelProperty("商品库存sid") - private String inventorySid; // 商品库存sid @ApiModelProperty("商品基础信息Sid") private String goodsSpuSid; // 商品基础信息Sid @ApiModelProperty("商品名称") @@ -70,22 +68,12 @@ public class PmsPurchasebackDetail extends BaseEntity { private String goodsSkuCode; // 商品编码(图号) @ApiModelProperty("规格") private String goodsSkuOwnSpec; // 规格 - @ApiModelProperty("退货前的库存数量") - private BigDecimal currentCount; // 退货前的库存数量 @ApiModelProperty("计量单位") private String unit; // 计量单位 @ApiModelProperty("仓库sid") private String warehouseSid; // 仓库sid @ApiModelProperty("仓库名称") private String warehouseName; // 仓库名称 - @ApiModelProperty("库区/货位sid") - private String areaSid; // 库区/货位sid - @ApiModelProperty("库区名称") - private String warehouseAreaName; // 库区名称 - @ApiModelProperty("货架sid") - private String rackSid; // 货架sid - @ApiModelProperty("货架名称") - private String warehouseRackName; // 货架名称 @ApiModelProperty("已退数量") private BigDecimal returnedCount; // 已退数量 @ApiModelProperty("退货数量") diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackdetail/PmsPurchasebackDetailDetailsVo.java b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackdetail/PmsPurchasebackDetailDetailsVo.java index 12b3a34616..680c18a0eb 100644 --- a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackdetail/PmsPurchasebackDetailDetailsVo.java +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackdetail/PmsPurchasebackDetailDetailsVo.java @@ -57,8 +57,6 @@ public class PmsPurchasebackDetailDetailsVo implements Vo { private String createByName; // 制单人姓名 @ApiModelProperty("单据sid") private String billSid; // 单据sid - @ApiModelProperty("商品库存sid") - private String inventorySid; // 商品库存sid @ApiModelProperty("商品基础信息Sid") private String goodsSpuSid; // 商品基础信息Sid @ApiModelProperty("商品名称") @@ -71,22 +69,12 @@ public class PmsPurchasebackDetailDetailsVo implements Vo { private String goodsSkuCode; // 商品编码(图号) @ApiModelProperty("规格") private String goodsSkuOwnSpec; // 规格 - @ApiModelProperty("退货前的库存数量") - private BigDecimal currentCount; // 退货前的库存数量 @ApiModelProperty("计量单位") private String unit; // 计量单位 @ApiModelProperty("仓库sid") private String warehouseSid; // 仓库sid @ApiModelProperty("仓库名称") private String warehouseName; // 仓库名称 - @ApiModelProperty("库区/货位sid") - private String areaSid; // 库区/货位sid - @ApiModelProperty("库区名称") - private String warehouseAreaName; // 库区名称 - @ApiModelProperty("货架sid") - private String rackSid; // 货架sid - @ApiModelProperty("货架名称") - private String warehouseRackName; // 货架名称 @ApiModelProperty("已退数量") private BigDecimal returnedCount; // 已退数量 @ApiModelProperty("退货数量") diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackdetail/PmsPurchasebackDetailDto.java b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackdetail/PmsPurchasebackDetailDto.java index 1a3dfce4f2..0ac12eeedc 100644 --- a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackdetail/PmsPurchasebackDetailDto.java +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackdetail/PmsPurchasebackDetailDto.java @@ -57,8 +57,6 @@ public class PmsPurchasebackDetailDto implements Dto { private String createByName; // 制单人姓名 @ApiModelProperty("单据sid") private String billSid; // 单据sid - @ApiModelProperty("商品库存sid") - private String inventorySid; // 商品库存sid @ApiModelProperty("商品基础信息Sid") private String goodsSpuSid; // 商品基础信息Sid @ApiModelProperty("商品名称") @@ -71,22 +69,12 @@ public class PmsPurchasebackDetailDto implements Dto { private String goodsSkuCode; // 商品编码(图号) @ApiModelProperty("规格") private String goodsSkuOwnSpec; // 规格 - @ApiModelProperty("退货前的库存数量") - private BigDecimal currentCount; // 退货前的库存数量 @ApiModelProperty("计量单位") private String unit; // 计量单位 @ApiModelProperty("仓库sid") private String warehouseSid; // 仓库sid @ApiModelProperty("仓库名称") private String warehouseName; // 仓库名称 - @ApiModelProperty("库区/货位sid") - private String areaSid; // 库区/货位sid - @ApiModelProperty("库区名称") - private String warehouseAreaName; // 库区名称 - @ApiModelProperty("货架sid") - private String rackSid; // 货架sid - @ApiModelProperty("货架名称") - private String warehouseRackName; // 货架名称 @ApiModelProperty("已退数量") private BigDecimal returnedCount; // 已退数量 @ApiModelProperty("退货数量") diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackdetail/PmsPurchasebackDetailMapper.java b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackdetail/PmsPurchasebackDetailMapper.java index 7d248f9411..fad5f2bec5 100644 --- a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackdetail/PmsPurchasebackDetailMapper.java +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackdetail/PmsPurchasebackDetailMapper.java @@ -54,11 +54,6 @@ public interface PmsPurchasebackDetailMapper extends BaseMapper selectPageVo(IPage page, @Param(Constants.WRAPPER) Wrapper qw); - List selectListAllVo(@Param(Constants.WRAPPER) Wrapper qw); - - @Select("select * from pms_purchaseback_detail") - List selectListVo(); - @Delete("delete from pms_purchaseback_detail where billSid = #{dtoSid}") void delByMainSid(String dtoSid); diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackdetail/PmsPurchasebackDetailMapper.xml b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackdetail/PmsPurchasebackDetailMapper.xml index 6c6a1a31b2..c53939af7f 100644 --- a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackdetail/PmsPurchasebackDetailMapper.xml +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackdetail/PmsPurchasebackDetailMapper.xml @@ -6,8 +6,4 @@ - - \ No newline at end of file diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackdetail/PmsPurchasebackDetailQuery.java b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackdetail/PmsPurchasebackDetailQuery.java index 3eb8a39182..027b5e6e5b 100644 --- a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackdetail/PmsPurchasebackDetailQuery.java +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackdetail/PmsPurchasebackDetailQuery.java @@ -51,49 +51,4 @@ import java.math.BigDecimal; @ApiModel(value = "采购退货单据明细 查询条件", description = "采购退货单据明细 查询条件") public class PmsPurchasebackDetailQuery implements Query { - @ApiModelProperty("制单人姓名") - private String createByName; // 制单人姓名 - @ApiModelProperty("单据sid") - private String billSid; // 单据sid - @ApiModelProperty("商品库存sid") - private String inventorySid; // 商品库存sid - @ApiModelProperty("商品基础信息Sid") - private String goodsSpuSid; // 商品基础信息Sid - @ApiModelProperty("商品名称") - private String goodsSpuName; // 商品名称 - @ApiModelProperty("商品Skusid") - private String goodsSkuSid; // 商品Skusid - @ApiModelProperty("商品Sku名称") - private String goodsSkuTitle; // 商品Sku名称 - @ApiModelProperty("商品编码(图号)") - private String goodsSkuCode; // 商品编码(图号) - @ApiModelProperty("规格") - private String goodsSkuOwnSpec; // 规格 - @ApiModelProperty("退货前的库存数量") - private BigDecimal currentCount; // 退货前的库存数量 - @ApiModelProperty("计量单位") - private String unit; // 计量单位 - @ApiModelProperty("仓库sid") - private String warehouseSid; // 仓库sid - @ApiModelProperty("仓库名称") - private String warehouseName; // 仓库名称 - @ApiModelProperty("库区/货位sid") - private String areaSid; // 库区/货位sid - @ApiModelProperty("库区名称") - private String warehouseAreaName; // 库区名称 - @ApiModelProperty("货架sid") - private String rackSid; // 货架sid - @ApiModelProperty("货架名称") - private String warehouseRackName; // 货架名称 - @ApiModelProperty("已退数量") - private BigDecimal returnedCount; // 已退数量 - @ApiModelProperty("退货数量") - private BigDecimal backCount; // 退货数量 - @ApiModelProperty("税额") - private BigDecimal maxAmount; // 税额 - @ApiModelProperty("含税价") - private BigDecimal maxPrice; // 含税价 - @ApiModelProperty("退货金额") - private BigDecimal backAmount; // 退货金额 - } diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackdetail/PmsPurchasebackDetailVo.java b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackdetail/PmsPurchasebackDetailVo.java index 87a8cb89f6..2c1ecf4750 100644 --- a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackdetail/PmsPurchasebackDetailVo.java +++ b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebackdetail/PmsPurchasebackDetailVo.java @@ -51,51 +51,4 @@ import java.math.BigDecimal; @ApiModel(value = "采购退货单据明细 视图数据对象", description = "采购退货单据明细 视图数据对象") public class PmsPurchasebackDetailVo implements Vo { - private String sid; // sid - - @ApiModelProperty("制单人姓名") - private String createByName; // 制单人姓名 - @ApiModelProperty("单据sid") - private String billSid; // 单据sid - @ApiModelProperty("商品库存sid") - private String inventorySid; // 商品库存sid - @ApiModelProperty("商品基础信息Sid") - private String goodsSpuSid; // 商品基础信息Sid - @ApiModelProperty("商品名称") - private String goodsSpuName; // 商品名称 - @ApiModelProperty("商品Skusid") - private String goodsSkuSid; // 商品Skusid - @ApiModelProperty("商品Sku名称") - private String goodsSkuTitle; // 商品Sku名称 - @ApiModelProperty("商品编码(图号)") - private String goodsSkuCode; // 商品编码(图号) - @ApiModelProperty("规格") - private String goodsSkuOwnSpec; // 规格 - @ApiModelProperty("退货前的库存数量") - private BigDecimal currentCount; // 退货前的库存数量 - @ApiModelProperty("计量单位") - private String unit; // 计量单位 - @ApiModelProperty("仓库sid") - private String warehouseSid; // 仓库sid - @ApiModelProperty("仓库名称") - private String warehouseName; // 仓库名称 - @ApiModelProperty("库区/货位sid") - private String areaSid; // 库区/货位sid - @ApiModelProperty("库区名称") - private String warehouseAreaName; // 库区名称 - @ApiModelProperty("货架sid") - private String rackSid; // 货架sid - @ApiModelProperty("货架名称") - private String warehouseRackName; // 货架名称 - @ApiModelProperty("已退数量") - private BigDecimal returnedCount; // 已退数量 - @ApiModelProperty("退货数量") - private BigDecimal backCount; // 退货数量 - @ApiModelProperty("税额") - private BigDecimal maxAmount; // 税额 - @ApiModelProperty("含税价") - private BigDecimal maxPrice; // 含税价 - @ApiModelProperty("退货金额") - private BigDecimal backAmount; // 退货金额 - } From 76379bc95397a1b0d8ac66c4f3fae8d79bc212c4 Mon Sep 17 00:00:00 2001 From: God <10745413@qq.com> Date: Sat, 11 May 2024 16:09:13 +0800 Subject: [PATCH 8/9] =?UTF-8?q?=E9=94=80=E5=94=AE=E5=8F=B0=E8=B4=A6?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=B8=9A=E5=8A=A1=E7=8A=B6=E6=80=81=E5=B1=95?= =?UTF-8?q?=E7=A4=BA=E5=92=8C=E6=9F=A5=E8=AF=A2=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/basevehicleoutapply/BaseVehicleOutApplyQueryNew.java | 2 ++ .../api/basevehicleoutapply/BaseVehicleOutApplyVoNew.java | 2 ++ .../biz/basevehicleoutapply/BaseVehicleOutApplyMapper.xml | 1 + .../biz/basevehicleoutapply/BaseVehicleOutApplyService.java | 4 ++++ 4 files changed, 9 insertions(+) diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleoutapply/BaseVehicleOutApplyQueryNew.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleoutapply/BaseVehicleOutApplyQueryNew.java index 1eccc6362c..7af5bf6f9f 100644 --- a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleoutapply/BaseVehicleOutApplyQueryNew.java +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleoutapply/BaseVehicleOutApplyQueryNew.java @@ -48,6 +48,8 @@ import lombok.Data; @ApiModel(value = "车辆出库单 查询条件", description = "车辆出库单 查询条件") public class BaseVehicleOutApplyQueryNew implements Query { + @ApiModelProperty("业务状态") + private String isDelete; @ApiModelProperty("物料编码") private String materialCode; @ApiModelProperty("车架号") diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleoutapply/BaseVehicleOutApplyVoNew.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleoutapply/BaseVehicleOutApplyVoNew.java index 245b7b2f3e..aabbffdd47 100644 --- a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleoutapply/BaseVehicleOutApplyVoNew.java +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleoutapply/BaseVehicleOutApplyVoNew.java @@ -50,6 +50,8 @@ public class BaseVehicleOutApplyVoNew implements Vo { @ApiModelProperty("sid") private String sid; + @ApiModelProperty("业务状态") + private String isDelete; @ApiModelProperty("车辆sid") private String vinSid; @ApiModelProperty("车架号") diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleoutapply/BaseVehicleOutApplyMapper.xml b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleoutapply/BaseVehicleOutApplyMapper.xml index 98313417ec..4e997d0b97 100644 --- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleoutapply/BaseVehicleOutApplyMapper.xml +++ b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleoutapply/BaseVehicleOutApplyMapper.xml @@ -6,6 +6,7 @@ SELECT - bs.sid as orderSid, - bs.orgName as orgName, - bs.staffName as staffName, - bs.useOrgName as useOrgName, - co.loanContractNo as loanContractNo, - co.borrowerName as borrowerName, - co.bankName as bankName, - co.bankContractNo as bankContractNo, - co.policyName as policyName, - co.sid as salesOrderSid, + bs.sid AS orderSid, + bs.orgName AS orgName, + bs.staffName AS staffName, + bs.useOrgName AS useOrgName, + co.loanContractNo AS loanContractNo, + co.borrowerName AS borrowerName, + co.bankName AS bankName, + co.bankContractNo AS bankContractNo, + co.policyName AS policyName, + co.sid AS salesOrderSid, CASE co.repaymentState WHEN '1' THEN '是' WHEN '0' THEN '否' - END AS builded + END AS builded, + DATE_FORMAT( co.repaymentCreateTime, '%Y-%m-%d' ) AS repaymentCreateTime FROM bus_sales_order_loancontract AS co LEFT JOIN bus_sales_order AS bs ON co.salesOrderSid = bs.sid @@ -53,4 +54,30 @@ resultType="com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailed"> select * from anrui_fin.fin_uncollected_receivables_detailed where busVinSid = #{sid} and receivablesName = #{name} + diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderloancontract/BusSalesOrderLoancontractRest.java b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderloancontract/BusSalesOrderLoancontractRest.java index 6f645a8457..c4b8446973 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderloancontract/BusSalesOrderLoancontractRest.java +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderloancontract/BusSalesOrderLoancontractRest.java @@ -27,6 +27,7 @@ package com.yxt.anrui.buscenter.biz.bussalesorderloancontract; import com.yxt.anrui.buscenter.api.busdeliveredapply.PushOtherDocument; import com.yxt.anrui.buscenter.api.bussalesorderloancontract.*; +import com.yxt.common.base.utils.ExportExcelUtils; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; @@ -35,6 +36,9 @@ import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletResponse; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; import java.util.Date; import java.util.List; @@ -58,7 +62,8 @@ public class BusSalesOrderLoancontractRest implements BusSalesOrderLoancontractF @Autowired private BusSalesOrderLoancontractService busSalesOrderLoancontractService; - + @Autowired + private HttpServletResponse response; @Override @ApiOperation("根据条件分页查询数据的列表") @PostMapping("/listPage") @@ -121,6 +126,23 @@ public class BusSalesOrderLoancontractRest implements BusSalesOrderLoancontractF return rb.success().setData(pv); } + @Override + public void exportExcel(BusLoancontractForRepayQuery query) { + //得到所有要导出的数据 + List list = busSalesOrderLoancontractService.exportExcel(query); + //定义导出的excel名字 + String excelName = "还款计划表列表"; + String fileNameURL = ""; + try { + fileNameURL = URLEncoder.encode(excelName, "UTF-8"); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + //导出车辆管理列表 + ExportExcelUtils.export(fileNameURL, list, LoanRepaymentPlanDetailsExportVo.class, response); + } + + @Override public ResultBean setRepaymentState(String sid, String createTime) { ResultBean rb = ResultBean.fireFail(); diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderloancontract/BusSalesOrderLoancontractService.java b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderloancontract/BusSalesOrderLoancontractService.java index b836206a31..63f89ab7d9 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderloancontract/BusSalesOrderLoancontractService.java +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderloancontract/BusSalesOrderLoancontractService.java @@ -198,6 +198,97 @@ public class BusSalesOrderLoancontractService extends MybatisBaseService exportExcel(BusLoancontractForRepayQuery pagerQuery) { + QueryWrapper qw = new QueryWrapper<>(); + //======================= + PrivilegeQuery privilegeQuery = new PrivilegeQuery(); + privilegeQuery.setOrgPath(pagerQuery.getOrgPath()); + privilegeQuery.setMenuSid(pagerQuery.getMenuSid()); + privilegeQuery.setMenuUrl(pagerQuery.getMenuUrl()); + privilegeQuery.setUserSid(pagerQuery.getUserSid()); + ResultBean defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery); + if (StringUtils.isNotBlank(defaultIdReltBean.getData())) { + //数据权限ID(1集团、2事业部、3分公司、4部门、5个人) + String orgSidPath = pagerQuery.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("bs.orgSidPath", orgSidPath); + } else if ("2".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i2); + qw.like("bs.orgSidPath", orgSidPath); + } else if ("3".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i3); + qw.like("bs.orgSidPath", orgSidPath); + } else if ("4".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i4); + qw.like("bs.orgSidPath", orgSidPath); + } else if ("5".equals(orgLevelKey)) { + qw.eq("bs.createBySid", pagerQuery.getUserSid()); + } else { + return new ArrayList<>(); + } + } else { + return new ArrayList<>(); + } + //======================= + //分公司 + if (StringUtils.isNotBlank(pagerQuery.getUseOrgName())) { + qw.like("bs.useOrgName", pagerQuery.getUseOrgName()); + } + //销售部门 + if (StringUtils.isNotBlank(pagerQuery.getOrgName())) { + qw.like("bs.orgName", pagerQuery.getOrgName()); + } + //销售专员 + if (StringUtils.isNotBlank(pagerQuery.getStaffName())) { + qw.like("bs.staffName", pagerQuery.getStaffName()); + } + //消贷合同编号 + if (StringUtils.isNotBlank(pagerQuery.getLoanContractNo())) { + qw.like("co.loanContractNo", pagerQuery.getLoanContractNo()); + } + //贷款人 + if (StringUtils.isNotBlank(pagerQuery.getBorrowerName())) { + qw.like("co.borrowerName", pagerQuery.getBorrowerName()); + } + //资方 + if (StringUtils.isNotBlank(pagerQuery.getBankName())) { + qw.like("co.bankName", pagerQuery.getBankName()); + } + //金融产品 + if (StringUtils.isNotBlank(pagerQuery.getPolicyName())) { + qw.like("co.policyName", pagerQuery.getPolicyName()); + } + //金融产品 + if (StringUtils.isNotBlank(pagerQuery.getBuilded())) { + qw.like("co.repaymentState", pagerQuery.getBuilded()); + } + String createStartTime = pagerQuery.getCreateStartDate(); + String createEndTime = pagerQuery.getCreateEndDate(); + qw.apply(StringUtils.isNotEmpty(createStartTime), "date_format (co.repaymentCreateTime,'%Y-%m-%d') >= date_format('" + createStartTime + "','%Y-%m-%d')"). + apply(StringUtils.isNotEmpty(createEndTime), "date_format (co.repaymentCreateTime,'%Y-%m-%d') <= date_format('" + createEndTime + "','%Y-%m-%d')" + ); + qw.ne("co.state", 0); + qw.eq("co.isDelete", 0); + qw.eq("co.busNo", "305"); + qw.orderByDesc("co.createTime"); + List loancontracts = baseMapper.selLoancontractsForExport(qw); + if (!loancontracts.isEmpty()) { + List sids = loancontracts.stream().map(BusLoancontractForRepayVo::getSalesOrderSid).collect(Collectors.toList()); + List exportVos = repaymentScheduleFeign.exportExcel(sids).getData(); + if (!exportVos.isEmpty()) { + return exportVos; + } + } + return new ArrayList<>(); + } + /** * 消贷合同生成还款计划表列表 * @@ -256,8 +347,8 @@ public class BusSalesOrderLoancontractService extends MybatisBaseService= date_format('" + createStartTime + "','%Y-%m-%d')"). + apply(StringUtils.isNotEmpty(createEndTime), "date_format (co.repaymentCreateTime,'%Y-%m-%d') <= date_format('" + createEndTime + "','%Y-%m-%d')" + ); + qw.ne("co.state", 0); qw.eq("co.isDelete", 0); + qw.eq("co.busNo", "305"); qw.orderByDesc("co.createTime"); IPage pagging = baseMapper.listPageForRepay(page, qw); List records = pagging.getRecords(); @@ -293,14 +394,88 @@ public class BusSalesOrderLoancontractService extends MybatisBaseService repaymentSchedule = repaymentScheduleFeign.selByLoanContractSid(record.getSalesOrderSid()); -// if (repaymentSchedule.getData() != null) { + ResultBean repaymentSchedule = repaymentScheduleFeign.selByLoanContractSid(record.getSalesOrderSid()); + if (repaymentSchedule.getData() != null) { + LoanRepaymentSchedule schedule = repaymentSchedule.getData(); + if (StringUtils.isNotBlank(schedule.getCwDeptNo())) { + record.setCwDeptNo(schedule.getCwDeptNo()); + } + BigDecimal mainAmount; //主产品还款总金额 + BigDecimal otherAmount; //其他融还款总金额 + BigDecimal amountAll; // 总金额 + //车辆数 + BigDecimal vehCount = new BigDecimal(schedule.getVehCount()); + if (StringUtils.isNotBlank(schedule.getIsDifferent())) { + if (schedule.getIsDifferent().equals("是")) { + //判断是否有一台车不同月还金额 + //主产品期数 + BigDecimal mainPeriod = new BigDecimal(schedule.getMainPeriod()); + //主产品首期月还 + BigDecimal mainFirstRepay = schedule.getMainFirstRepay().multiply(vehCount.subtract(new BigDecimal("1"))).add(schedule.getSingleMainFirstRepay()); + //主产品期间月还 + BigDecimal mainMidRepay = schedule.getMainMidRepay().multiply(vehCount.subtract(new BigDecimal("1"))).add(schedule.getSingleMainMidRepay()).multiply(mainPeriod.subtract(new BigDecimal("2"))); + //主产品末期月还 + BigDecimal mainLastRepay = schedule.getMainLastRepay().multiply(vehCount.subtract(new BigDecimal("1"))).add(schedule.getSingleMainLastRepay()); + mainAmount = mainFirstRepay.add(mainMidRepay).add(mainLastRepay); + if (schedule.getIsOtherPolicy().equals("1")) { + //有其他融 + //其他融期数 + BigDecimal otherPeriod = new BigDecimal(schedule.getOtherPeriod()); + //其他融首期月还 + BigDecimal otherFirstRepay = schedule.getOtherFirstRepay().multiply(vehCount.subtract(new BigDecimal("1"))).add(schedule.getSingleOtherFirstRepay()); + //其他融期间月还 + BigDecimal otherMidRepay = schedule.getOtherMidRepay().multiply(vehCount.subtract(new BigDecimal("1"))).add(schedule.getSingleOtherMidRepay()).multiply(mainPeriod.subtract(new BigDecimal("2"))); + //其他融末期月还 + BigDecimal otherLastRepay = schedule.getOtherLastRepay().multiply(vehCount.subtract(new BigDecimal("1"))).add(schedule.getSingleOtherLastRepay()); + otherAmount = otherFirstRepay.add(otherMidRepay).add(otherLastRepay); + amountAll = mainAmount.add(otherAmount); + record.setMainAmount(mainAmount.toString()); + record.setOtherAmount(otherAmount.toString()); + record.setAmountAll(amountAll.toString()); + } else if (schedule.getIsOtherPolicy().equals("0")) { + //没有其他融 + record.setMainAmount(mainAmount.toString()); + record.setAmountAll(mainAmount.toString()); + } + } + } else { + //主产品期数 + BigDecimal mainPeriod = new BigDecimal(schedule.getMainPeriod()); + //主产品首期月还 + BigDecimal mainFirstRepay = schedule.getMainFirstRepay().multiply(vehCount); + //主产品期间月还 + BigDecimal mainMidRepay = mainPeriod.subtract(new BigDecimal("2")).multiply(schedule.getMainMidRepay()).multiply(vehCount); + //主产品末期月还 + BigDecimal mainLastRepay = schedule.getMainLastRepay().multiply(vehCount); + mainAmount = mainFirstRepay.add(mainMidRepay).add(mainLastRepay); + if (schedule.getIsOtherPolicy().equals("1")) { + //有其他融 + //其他融期数 + BigDecimal otherPeriod = new BigDecimal(schedule.getOtherPeriod()); + //其他融首期月还 + BigDecimal otherFirstRepay = schedule.getOtherFirstRepay().multiply(vehCount); + //其他融期间月还 + BigDecimal otherMidRepay = otherPeriod.subtract(new BigDecimal("2")).multiply(schedule.getOtherMidRepay()).multiply(vehCount); + //其他融末期月还 + BigDecimal otherLastRepay = schedule.getOtherLastRepay().multiply(vehCount); + otherAmount = otherFirstRepay.add(otherMidRepay).add(otherLastRepay); + amountAll = mainAmount.add(otherAmount); + record.setMainAmount(mainAmount.toString()); + record.setOtherAmount(otherAmount.toString()); + record.setAmountAll(amountAll.toString()); + } else if (schedule.getIsOtherPolicy().equals("0")) { + //没有其他融 + record.setMainAmount(mainAmount.toString()); + record.setAmountAll(mainAmount.toString()); + } + } // record.setBuilded("是"); // List histories = repaymentScheduleFeign.selHistoryBySid(repaymentSchedule.getData().getSid()).getData(); // if (histories.isEmpty() || histories == null) { // record.setHandleBtn(true); // } -// } else { + } +// else { // record.setBuilded("否"); // if (StringUtils.isNotBlank(record.getBankContractNo())) { // record.setHandleBtn(true); @@ -1095,7 +1270,7 @@ public class BusSalesOrderLoancontractService extends MybatisBaseService fetchBySid(@RequestParam("sid") String sid); + @PostMapping("/exportExcel") + @ApiOperation(value = "还款计划表导出") + public ResultBean> exportExcel(@RequestBody List sids); + + @ApiOperation("生成还款计划表") @PostMapping("/loanCreateSchedulePdf") @ResponseBody diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/LoanRepaymentScheduleFeignFallback.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/LoanRepaymentScheduleFeignFallback.java index 2b4aa92a42..33f3d71490 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/LoanRepaymentScheduleFeignFallback.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/LoanRepaymentScheduleFeignFallback.java @@ -1,5 +1,7 @@ package com.yxt.anrui.riskcenter.api.loanrepaymentschedule; +import com.yxt.anrui.buscenter.api.bussalesorderloancontract.BusLoancontractForRepayQuery; +import com.yxt.anrui.buscenter.api.bussalesorderloancontract.LoanRepaymentPlanDetailsExportVo; import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistory; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; @@ -26,6 +28,12 @@ public class LoanRepaymentScheduleFeignFallback implements LoanRepaymentSchedule return null; } + @Override + public ResultBean exportExcel(List sids) { + return null; + } + + @Override public ResultBean loanCreateSchedulePdf(LoanCreateSchedulePdfVo dto) { return null; diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleMapper.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleMapper.java index 7f9838ad4b..b299075f45 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleMapper.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleMapper.java @@ -4,12 +4,12 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.yxt.anrui.buscenter.api.bussalesorderloancontract.LoanRepaymentPlanDetailsExportVo; import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistory; import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.*; import com.yxt.anrui.riskcenter.api.loanwarrantinformation.LoanWarrantInformation; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; -import org.apache.ibatis.annotations.Select; import java.util.List; @@ -40,4 +40,8 @@ public interface LoanRepaymentScheduleMapper extends BaseMapper selPlansInfoByMainSidAndVinNo(@Param("mainSid") String mainSid, @Param("vinNo") String vinNo,@Param("mainOrOther") String mainOrOther); String selSumAmountDueMoney(@Param("mainSid") String mainSid, @Param("vinNo") String vinNo,@Param("mainOrOther") String mainOrOther); + + String selSumAmountDueMoneyByBusVinSid(@Param("mainSid") String mainSid,@Param("busVinSid") String busVinSid,@Param("mainOrOther") String mainOrOther); + + List selPlansExcel(@Param("sids") List sids); } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleMapper.xml index a2dbe453d2..7bc0b8f38a 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleMapper.xml +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleMapper.xml @@ -94,4 +94,48 @@ WHERE scheduleSid = #{mainSid} AND policyOrOther = #{mainOrOther} AND vinNo LIKE CONCAT( '%', #{vinNo}, '%' ) - \ No newline at end of file + + + diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleRest.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleRest.java index dcc3e95ee1..549fbe283c 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleRest.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleRest.java @@ -1,9 +1,11 @@ package com.yxt.anrui.riskcenter.biz.loanrepaymentschedule; +import com.yxt.anrui.buscenter.api.bussalesorderloancontract.BusLoancontractForRepayQuery; +import com.yxt.anrui.buscenter.api.bussalesorderloancontract.LoanRepaymentPlanDetailsExportVo; import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistory; import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.*; -import com.yxt.anrui.riskcenter.api.loanwarrantinformation.LoanWarrantInformationVo; +import com.yxt.common.base.utils.ExportExcelUtils; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; @@ -12,6 +14,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.http.HttpServletResponse; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; import java.util.List; /** @@ -39,6 +44,12 @@ public class LoanRepaymentScheduleRest implements LoanRepaymentScheduleFeign { return rb.success().setData(repaymentSchedule); } + @Override + public ResultBean> exportExcel(List sids) { + return loanRepaymentScheduleService.exportExcel(sids); + } + + @Override public ResultBean loanCreateSchedulePdf(LoanCreateSchedulePdfVo dto) { return loanRepaymentScheduleService.loanCreateSchedulePdf(dto); diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleService.java index 8f9813e38a..d43364dc38 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleService.java @@ -1,29 +1,19 @@ package com.yxt.anrui.riskcenter.biz.loanrepaymentschedule; import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.api.R; import com.google.common.util.concurrent.ThreadFactoryBuilder; import com.yxt.anrui.base.api.basepurchasesystem.BasePurchaseSystemDetailsVo; import com.yxt.anrui.base.api.basepurchasesystem.BasePurchaseSystemFeign; -import com.yxt.anrui.buscenter.api.bushandover.BusHandover; -import com.yxt.anrui.buscenter.api.bushandoveritems.BusHandoverItems; import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder; import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderFeign; -import com.yxt.anrui.buscenter.api.bussalesorder.SolutionsDetailsssVo; import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerDetailsVo; import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerFeign; -import com.yxt.anrui.buscenter.api.bussalesorderloancontract.BusSalesOrderLoancontract; -import com.yxt.anrui.buscenter.api.bussalesorderloancontract.BusSalesOrderLoancontractDetailsVo; -import com.yxt.anrui.buscenter.api.bussalesorderloancontract.BusSalesOrderLoancontractFeign; -import com.yxt.anrui.buscenter.api.bussalesorderloancontract.BusSalesOrderLoancontractVo; +import com.yxt.anrui.buscenter.api.bussalesorderloancontract.*; import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle; import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign; -import com.yxt.anrui.buscenter.api.busvehicledatahandover.BusDataListPdfVo; -import com.yxt.anrui.buscenter.api.busvehicledatahandover.BusVehicleDataHandoverPdfVo; import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempFeign; import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempVo; import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign; @@ -32,15 +22,11 @@ import com.yxt.anrui.fin.api.kingdee.voucher.GeneralVoucher; 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.SysUserInfoVo; import com.yxt.anrui.portal.api.sysuser.SysUserVo; import com.yxt.anrui.riskcenter.api.loanfinbank.LoanFinBank; import com.yxt.anrui.riskcenter.api.loanfinotherPolicy.LoanFinOtherPolicy; import com.yxt.anrui.riskcenter.api.loanfinpolicy.LoanFinPolicy; -import com.yxt.anrui.riskcenter.api.loanfinpolicy.LoanFinPolicyVo; -import com.yxt.anrui.riskcenter.api.loanmortgageinformationtransact.LoanMortgageInformationTransactDto; import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistory; import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetailsDto; import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.*; @@ -48,19 +34,15 @@ import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutions; import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionsDetailsVo; import com.yxt.anrui.riskcenter.api.loansolutionsotherpolicy.LoanSolutionsOtherpolicy; import com.yxt.anrui.riskcenter.api.loanwarrantinformation.LoanWarrantInformation; -import com.yxt.anrui.riskcenter.api.loanwarrantinformation.LoanWarrantInformationQuery; -import com.yxt.anrui.riskcenter.api.loanwarrantinformation.LoanWarrantInformationVo; import com.yxt.anrui.riskcenter.biz.loanfinbank.LoanFinBankService; import com.yxt.anrui.riskcenter.biz.loanfinotherPolicy.LoanFinOtherPolicyService; import com.yxt.anrui.riskcenter.biz.loanfinpolicy.LoanFinPolicyService; -import com.yxt.anrui.riskcenter.biz.loanrepaymenthistory.LoanRepaymentHistoryService; import com.yxt.anrui.riskcenter.biz.loanrepaymentplandetails.LoanRepaymentPlanDetailsService; import com.yxt.anrui.riskcenter.biz.loansolutions.LoanSolutionsService; import com.yxt.anrui.riskcenter.biz.loansolutionsotherpolicy.LoanSolutionsOtherpolicyService; import com.yxt.anrui.riskcenter.biz.loanwarrantinformation.LoanWarrantInformationService; import com.yxt.common.base.config.component.DocPdfComponent; import com.yxt.common.base.service.MybatisBaseService; -import com.yxt.common.base.utils.MsgWs; import com.yxt.common.base.utils.PagerUtil; import com.yxt.common.base.utils.StringUtils; import com.yxt.common.base.utils.WordConvertUtils; @@ -68,14 +50,10 @@ 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.MessagePushTransferDto; import com.yxt.messagecenter.api.message.PushMessageQuery; import com.yxt.messagecenter.api.message.PushSmsDto; -import com.yxt.messagecenter.api.messagelist.MessageListDto; -import org.apache.poi.hpsf.Decimal; import org.apache.tomcat.util.threads.ThreadPoolExecutor; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -200,6 +178,13 @@ public class LoanRepaymentScheduleService extends MybatisBaseService mainDays = returnRepayDate(mainDate, scheduleDetails.getMainPeriod()); - List otherDays = new ArrayList<>(); - String mainFirstRepay = String.valueOf(scheduleDetails.getMainFirstRepay()); - String mainMidRepay = String.valueOf(scheduleDetails.getMainMidRepay()); - String mainLastRepay = String.valueOf(scheduleDetails.getMainLastRepay()); - String otherPeriod = ""; - String otherDate = ""; - String otherFirstPay = ""; - String otherMidPay = ""; - String otherLastPay = ""; - String deptSid = ""; - String dept = ""; - String useOrgName = ""; - String useOrgSid = ""; - String orgSidPath = ""; - String bankContractNo = ""; - String customer = ""; - String customerSid = ""; - if (scheduleDetails.getIsOtherPolicy().equals("1")) { - otherPeriod = scheduleDetails.getOtherPeriod(); - otherDate = sdf.format(scheduleDetails.getOtherRepayDate()); - otherFirstPay = String.valueOf(scheduleDetails.getOtherFirstRepay()); - otherMidPay = String.valueOf(scheduleDetails.getOtherMidRepay()); - otherLastPay = String.valueOf(scheduleDetails.getOtherLastRepay()); - otherDays = returnRepayDate(otherDate, otherPeriod); - } - if (null != busSalesOrder) { - if (StringUtils.isNotBlank(busSalesOrder.getCustomerName())) { - customer = busSalesOrder.getCustomerName(); - } - if (StringUtils.isNotBlank(busSalesOrder.getCustomerSid())) { - customerSid = busSalesOrder.getCustomerSid(); - } - if (StringUtils.isNotBlank(busSalesOrder.getOrgSid())) { - deptSid = busSalesOrder.getOrgSid(); - } - if (StringUtils.isNotBlank(busSalesOrder.getOrgName())) { - dept = busSalesOrder.getOrgName(); - } - if (StringUtils.isNotBlank(busSalesOrder.getOrgSidPath())) { - orgSidPath = busSalesOrder.getOrgSidPath(); - } - if (StringUtils.isNotBlank(busSalesOrder.getUseOrgName())) { - useOrgName = busSalesOrder.getUseOrgName(); - } - if (StringUtils.isNotBlank(busSalesOrder.getUseOrgSid())) { - useOrgSid = busSalesOrder.getUseOrgSid(); - } - } - BusSalesOrderLoancontractDetailsVo loancontractVo = busSalesOrderLoancontractFeign.fetchDetailsBySid(dto.getSalesOrderSid()).getData(); - if (null != loancontractVo) { - if (StringUtils.isNotBlank(loancontractVo.getBankContractNo())) { - bankContractNo = loancontractVo.getBankContractNo(); - } - } - String otherBankNo = ""; - if (StringUtils.isNotBlank(scheduleDetails.getOtherBankNo())) { - otherBankNo = scheduleDetails.getOtherBankNo(); - } - List vehicles = busSalesOrderVehicleFeign.selectListByOrderSidAndDkrSid(salesOrderSid, borrowerSid).getData(); - if (!vehicles.isEmpty()) { - for (BusSalesOrderVehicle vehicle : vehicles) { - String linkNo = vehicle.getLinkNo(); - String vinNo = ""; - if (linkNo.length() > 8) { - vinNo = linkNo.substring(linkNo.length() - 8); - } else { - vinNo = linkNo; - } - String busVinSid = vehicle.getSid(); - String vehMark = ""; - LoanWarrantInformation loanWarrantInformation = loanWarrantInformationService.fetchByBusVinSid(busVinSid); - if (null != loanWarrantInformation) { - if (StringUtils.isNotBlank(loanWarrantInformation.getVehicleMark())) { - vehMark = loanWarrantInformation.getVehicleMark(); - } - } - //主方案 - for (int i = 0; i < mainPeriod; i++) { - LoanRepaymentPlanDetailsDto mainDto = new LoanRepaymentPlanDetailsDto(); - mainDto.setSalesOrderSid(salesOrderSid); - mainDto.setLoanContractNo(loanContractNo); - mainDto.setLoanContractSid(loanContractSid); - mainDto.setPolicyName(policyName); - mainDto.setBankContractNo(bankContractNo); - mainDto.setCreateBySid(createBySid); - mainDto.setCustomer(customer); - mainDto.setCustomerSid(customerSid); - mainDto.setBorrowerSid(borrowerSid); - mainDto.setBorrowerName(borrowerName); - mainDto.setPeriod(String.valueOf(i + 1)); - mainDto.setScheduleSid(scheduleDetails.getSid()); - mainDto.setBankName(bankName); - mainDto.setDept(dept); - mainDto.setDeptSid(deptSid); - mainDto.setUseOrgSid(useOrgSid); - mainDto.setUseOrgName(useOrgName); - mainDto.setOrgSidPath(orgSidPath); - mainDto.setBusVinSid(busVinSid); - mainDto.setVinNo(vinNo); - mainDto.setVehMark(vehMark); - mainDto.setSalesUserSid(staffSid); - mainDto.setStaffName(staffName); - mainDto.setPolicyOrOther("0"); - if (i == 0) { - mainDto.setDueMoney(mainFirstRepay); - } else if (i == mainPeriod - 1) { - mainDto.setDueMoney(mainLastRepay); + if (scheduleDetails.getIsDifferent().equals("1")) { + if (scheduleDetails.getSameBank().equals("0")) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + String createBySid = scheduleDetails.getCreateBySid(); + String staffSid = scheduleDetails.getStaffSid(); + String bankName = scheduleDetails.getBankName(); + String borrowerSid = scheduleDetails.getBorrowerSid(); + String borrowerName = scheduleDetails.getBorrowerName(); + String staffName = scheduleDetails.getStaffName(); + String salesOrderSid = scheduleDetails.getSalesOrderSid(); + String policyName = scheduleDetails.getPolicyName(); + String loanContractSid = scheduleDetails.getLoanContractSid(); + String loanContractNo = scheduleDetails.getLoanContractNo(); + int mainPeriod = Integer.parseInt(scheduleDetails.getMainPeriod()); + String mainDate = sdf.format(scheduleDetails.getMainRepayDate()); + List mainDays = returnRepayDate(mainDate, scheduleDetails.getMainPeriod()); + List otherDays = new ArrayList<>(); + String mainFirstRepay = String.valueOf(scheduleDetails.getMainFirstRepay()); + String mainMidRepay = String.valueOf(scheduleDetails.getMainMidRepay()); + String mainLastRepay = String.valueOf(scheduleDetails.getMainLastRepay()); + String singleMainFirstRepay = String.valueOf(scheduleDetails.getSingleMainFirstRepay()); + String singleMainMidRepay = String.valueOf(scheduleDetails.getSingleMainMidRepay()); + String singleMainLastRepay = String.valueOf(scheduleDetails.getSingleMainLastRepay()); + String otherPeriod = ""; + String otherDate = ""; + String otherFirstPay = ""; + String otherMidPay = ""; + String otherLastPay = ""; + String singleOtherFirstPay = ""; + String singleOtherMidPay = ""; + String singleOtherLastPay = ""; + String deptSid = ""; + String dept = ""; + String useOrgName = ""; + String useOrgSid = ""; + String orgSidPath = ""; + String bankContractNo = ""; + String customer = ""; + String customerSid = ""; + if (scheduleDetails.getIsOtherPolicy().equals("1")) { + otherPeriod = scheduleDetails.getOtherPeriod(); + otherDate = sdf.format(scheduleDetails.getOtherRepayDate()); + otherFirstPay = String.valueOf(scheduleDetails.getOtherFirstRepay()); + otherMidPay = String.valueOf(scheduleDetails.getOtherMidRepay()); + otherLastPay = String.valueOf(scheduleDetails.getOtherLastRepay()); + singleOtherFirstPay = String.valueOf(scheduleDetails.getSingleOtherFirstRepay()); + singleOtherMidPay = String.valueOf(scheduleDetails.getSingleOtherMidRepay()); + singleOtherLastPay = String.valueOf(scheduleDetails.getSingleOtherLastRepay()); + otherDays = returnRepayDate(otherDate, otherPeriod); + } + if (null != busSalesOrder) { + if (StringUtils.isNotBlank(busSalesOrder.getCustomerName())) { + customer = busSalesOrder.getCustomerName(); + } + if (StringUtils.isNotBlank(busSalesOrder.getCustomerSid())) { + customerSid = busSalesOrder.getCustomerSid(); + } + if (StringUtils.isNotBlank(busSalesOrder.getOrgSid())) { + deptSid = busSalesOrder.getOrgSid(); + } + if (StringUtils.isNotBlank(busSalesOrder.getOrgName())) { + dept = busSalesOrder.getOrgName(); + } + if (StringUtils.isNotBlank(busSalesOrder.getOrgSidPath())) { + orgSidPath = busSalesOrder.getOrgSidPath(); + } + if (StringUtils.isNotBlank(busSalesOrder.getUseOrgName())) { + useOrgName = busSalesOrder.getUseOrgName(); + } + if (StringUtils.isNotBlank(busSalesOrder.getUseOrgSid())) { + useOrgSid = busSalesOrder.getUseOrgSid(); + } + } + BusSalesOrderLoancontractDetailsVo loancontractVo = busSalesOrderLoancontractFeign.fetchDetailsBySid(dto.getSalesOrderSid()).getData(); + if (null != loancontractVo) { + if (StringUtils.isNotBlank(loancontractVo.getBankContractNo())) { + bankContractNo = loancontractVo.getBankContractNo(); + } + } + String otherBankNo = ""; + if (StringUtils.isNotBlank(scheduleDetails.getOtherBankNo())) { + otherBankNo = scheduleDetails.getOtherBankNo(); + } + List vehicles = busSalesOrderVehicleFeign.selectListByOrderSidAndDkrSid(salesOrderSid, borrowerSid).getData(); + if (!vehicles.isEmpty()) { + for (int j = 0; j < vehicles.size(); j++) { + BusSalesOrderVehicle vehicle = vehicles.get(j); + String linkNo = vehicle.getLinkNo(); + String vinNo = ""; + if (linkNo.length() > 8) { + vinNo = linkNo.substring(linkNo.length() - 8); } else { - mainDto.setDueMoney(mainMidRepay); - } - if (!mainDays.isEmpty()) { - mainDto.setDueDate(mainDays.get(i)); - } - loanRepaymentPlanDetailsService.savePlanDetails(mainDto); - } - //其他融 - if (scheduleDetails.getIsOtherPolicy().equals("1")) { - OtherPolicyVo otherPolicyVo = baseMapper.selOtherPolicyByOrderSid(scheduleDetails.getSalesOrderSid()); - for (int i = 0; i < Integer.parseInt(otherPeriod); i++) { - LoanRepaymentPlanDetailsDto otherDto = new LoanRepaymentPlanDetailsDto(); - otherDto.setSalesOrderSid(salesOrderSid); - otherDto.setLoanContractNo(loanContractNo); - otherDto.setLoanContractSid(loanContractSid); - if (null != otherPolicyVo) { - if (StringUtils.isNotBlank(otherPolicyVo.getOtherPolicyName())) { - otherDto.setPolicyName(otherPolicyVo.getOtherPolicyName()); + vinNo = linkNo; + } + String busVinSid = vehicle.getSid(); + String vehMark = ""; + LoanWarrantInformation loanWarrantInformation = loanWarrantInformationService.fetchByBusVinSid(busVinSid); + if (null != loanWarrantInformation) { + if (StringUtils.isNotBlank(loanWarrantInformation.getVehicleMark())) { + vehMark = loanWarrantInformation.getVehicleMark(); + } + } + //主方案 + for (int i = 0; i < mainPeriod; i++) { + LoanRepaymentPlanDetailsDto mainDto = new LoanRepaymentPlanDetailsDto(); + mainDto.setSalesOrderSid(salesOrderSid); + mainDto.setLoanContractNo(loanContractNo); + mainDto.setLoanContractSid(loanContractSid); + mainDto.setPolicyName(policyName); + mainDto.setBankContractNo(bankContractNo); + mainDto.setCreateBySid(createBySid); + mainDto.setCustomer(customer); + mainDto.setCustomerSid(customerSid); + mainDto.setBorrowerSid(borrowerSid); + mainDto.setBorrowerName(borrowerName); + mainDto.setPeriod(String.valueOf(i + 1)); + mainDto.setScheduleSid(scheduleDetails.getSid()); + mainDto.setBankName(bankName); + mainDto.setDept(dept); + mainDto.setDeptSid(deptSid); + mainDto.setUseOrgSid(useOrgSid); + mainDto.setUseOrgName(useOrgName); + mainDto.setOrgSidPath(orgSidPath); + mainDto.setBusVinSid(busVinSid); + mainDto.setVinNo(vinNo); + mainDto.setVehMark(vehMark); + mainDto.setSalesUserSid(staffSid); + mainDto.setStaffName(staffName); + mainDto.setPolicyOrOther("0"); + if (i == 0) { + if (j == vehicles.size() - 1) { + mainDto.setDueMoney(singleMainFirstRepay); + } else { + mainDto.setDueMoney(mainFirstRepay); + } + } else if (i == mainPeriod - 1) { + if (j == vehicles.size() - 1) { + mainDto.setDueMoney(singleMainLastRepay); + } else { + mainDto.setDueMoney(mainLastRepay); } - if (StringUtils.isNotBlank(otherPolicyVo.getOtherBankName())) { - otherDto.setBankName(otherPolicyVo.getOtherBankName()); + } else { + if (j == vehicles.size() - 1) { + mainDto.setDueMoney(singleMainMidRepay); + } else { + mainDto.setDueMoney(mainMidRepay); } } - otherDto.setBankContractNo(otherBankNo); - otherDto.setCreateBySid(createBySid); - otherDto.setCustomer(customer); - otherDto.setCustomerSid(customerSid); - otherDto.setBorrowerSid(borrowerSid); - otherDto.setBorrowerName(borrowerName); - otherDto.setPeriod(String.valueOf(i + 1)); - otherDto.setScheduleSid(scheduleDetails.getSid()); - otherDto.setDept(dept); - otherDto.setDeptSid(deptSid); - otherDto.setUseOrgSid(useOrgSid); - otherDto.setUseOrgName(useOrgName); - otherDto.setOrgSidPath(orgSidPath); - otherDto.setBusVinSid(busVinSid); - otherDto.setVinNo(vinNo); - otherDto.setVehMark(vehMark); - otherDto.setSalesUserSid(staffSid); - otherDto.setStaffName(staffName); - otherDto.setPolicyOrOther("1"); + if (!mainDays.isEmpty()) { + mainDto.setDueDate(mainDays.get(i)); + } + loanRepaymentPlanDetailsService.savePlanDetails(mainDto); + } + //其他融 + if (scheduleDetails.getIsOtherPolicy().equals("1")) { + OtherPolicyVo otherPolicyVo = baseMapper.selOtherPolicyByOrderSid(scheduleDetails.getSalesOrderSid()); + for (int i = 0; i < Integer.parseInt(otherPeriod); i++) { + LoanRepaymentPlanDetailsDto otherDto = new LoanRepaymentPlanDetailsDto(); + otherDto.setSalesOrderSid(salesOrderSid); + otherDto.setLoanContractNo(loanContractNo); + otherDto.setLoanContractSid(loanContractSid); + if (null != otherPolicyVo) { + if (StringUtils.isNotBlank(otherPolicyVo.getOtherPolicyName())) { + otherDto.setPolicyName(otherPolicyVo.getOtherPolicyName()); + } + if (StringUtils.isNotBlank(otherPolicyVo.getOtherBankName())) { + otherDto.setBankName(otherPolicyVo.getOtherBankName()); + } + } + otherDto.setBankContractNo(otherBankNo); + otherDto.setCreateBySid(createBySid); + otherDto.setCustomer(customer); + otherDto.setCustomerSid(customerSid); + otherDto.setBorrowerSid(borrowerSid); + otherDto.setBorrowerName(borrowerName); + otherDto.setPeriod(String.valueOf(i + 1)); + otherDto.setScheduleSid(scheduleDetails.getSid()); + otherDto.setDept(dept); + otherDto.setDeptSid(deptSid); + otherDto.setUseOrgSid(useOrgSid); + otherDto.setUseOrgName(useOrgName); + otherDto.setOrgSidPath(orgSidPath); + otherDto.setBusVinSid(busVinSid); + otherDto.setVinNo(vinNo); + otherDto.setVehMark(vehMark); + otherDto.setSalesUserSid(staffSid); + otherDto.setStaffName(staffName); + otherDto.setPolicyOrOther("1"); + if (i == 0) { + if (j == vehicles.size() - 1) { + otherDto.setDueMoney(singleOtherFirstPay); + } else { + otherDto.setDueMoney(otherFirstPay); + } + } else if (i == Integer.parseInt(otherPeriod) - 1) { + if (j == vehicles.size() - 1) { + otherDto.setDueMoney(singleOtherLastPay); + } else { + otherDto.setDueMoney(otherLastPay); + } + } else { + if (j == vehicles.size() - 1) { + otherDto.setDueMoney(singleOtherMidPay); + } else { + otherDto.setDueMoney(otherMidPay); + } + } + if (!otherDays.isEmpty()) { + otherDto.setDueDate(otherDays.get(i)); + } + loanRepaymentPlanDetailsService.savePlanDetails(otherDto); + } + } + } + } + } + if (scheduleDetails.getSameBank().equals("1")) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + String createBySid = scheduleDetails.getCreateBySid(); + String staffSid = scheduleDetails.getStaffSid(); + String bankName = scheduleDetails.getBankName(); + String borrowerSid = scheduleDetails.getBorrowerSid(); + String borrowerName = scheduleDetails.getBorrowerName(); + String staffName = scheduleDetails.getStaffName(); + String salesOrderSid = scheduleDetails.getSalesOrderSid(); + String policyName = scheduleDetails.getPolicyName(); + String loanContractSid = scheduleDetails.getLoanContractSid(); + String loanContractNo = scheduleDetails.getLoanContractNo(); + int mainPeriod = Integer.parseInt(scheduleDetails.getMainPeriod()); + String mainDate = sdf.format(scheduleDetails.getMainRepayDate()); + List mainDays = returnRepayDate(mainDate, scheduleDetails.getMainPeriod()); + String mainFirstRepay = String.valueOf(scheduleDetails.getMainFirstRepay()); + String mainMidRepay = String.valueOf(scheduleDetails.getMainMidRepay()); + String mainLastRepay = String.valueOf(scheduleDetails.getMainLastRepay()); + String singleMainFirstRepay = String.valueOf(scheduleDetails.getSingleMainFirstRepay()); + String singleMainMidRepay = String.valueOf(scheduleDetails.getSingleMainMidRepay()); + String singleMainLastRepay = String.valueOf(scheduleDetails.getSingleMainLastRepay()); + String otherPeriod = ""; + String otherDate = ""; + String otherFirstPay = ""; + String otherMidPay = ""; + String otherLastPay = ""; + String singleOtherFirstPay = ""; + String singleOtherMidPay = ""; + String singleOtherLastPay = ""; + String deptSid = ""; + String dept = ""; + String useOrgName = ""; + String useOrgSid = ""; + String orgSidPath = ""; + String bankContractNo = ""; + String customer = ""; + String customerSid = ""; + if (scheduleDetails.getIsOtherPolicy().equals("1")) { + otherPeriod = scheduleDetails.getOtherPeriod(); + otherDate = sdf.format(scheduleDetails.getOtherRepayDate()); + otherFirstPay = String.valueOf(scheduleDetails.getOtherFirstRepay()); + otherMidPay = String.valueOf(scheduleDetails.getOtherMidRepay()); + singleOtherFirstPay = String.valueOf(scheduleDetails.getSingleOtherFirstRepay()); + singleOtherMidPay = String.valueOf(scheduleDetails.getSingleOtherMidRepay()); + singleOtherLastPay = String.valueOf(scheduleDetails.getSingleOtherLastRepay()); + otherLastPay = String.valueOf(scheduleDetails.getOtherLastRepay()); + } + if (null != busSalesOrder) { + if (StringUtils.isNotBlank(busSalesOrder.getCustomerName())) { + customer = busSalesOrder.getCustomerName(); + } + if (StringUtils.isNotBlank(busSalesOrder.getCustomerSid())) { + customerSid = busSalesOrder.getCustomerSid(); + } + if (StringUtils.isNotBlank(busSalesOrder.getOrgSid())) { + deptSid = busSalesOrder.getOrgSid(); + } + if (StringUtils.isNotBlank(busSalesOrder.getOrgName())) { + dept = busSalesOrder.getOrgName(); + } + if (StringUtils.isNotBlank(busSalesOrder.getOrgSidPath())) { + orgSidPath = busSalesOrder.getOrgSidPath(); + } + if (StringUtils.isNotBlank(busSalesOrder.getUseOrgName())) { + useOrgName = busSalesOrder.getUseOrgName(); + } + if (StringUtils.isNotBlank(busSalesOrder.getUseOrgSid())) { + useOrgSid = busSalesOrder.getUseOrgSid(); + } + } + BusSalesOrderLoancontractDetailsVo loancontractVo = busSalesOrderLoancontractFeign.fetchDetailsBySid(dto.getSalesOrderSid()).getData(); + if (null != loancontractVo) { + if (StringUtils.isNotBlank(loancontractVo.getBankContractNo())) { + bankContractNo = loancontractVo.getBankContractNo(); + } + } + List vehicles = busSalesOrderVehicleFeign.selectListByOrderSidAndDkrSid(salesOrderSid, borrowerSid).getData(); + if (!vehicles.isEmpty()) { + for (int j = 0; j < vehicles.size(); j++) { + BusSalesOrderVehicle vehicle = vehicles.get(j); + String linkNo = vehicle.getLinkNo(); + String vinNo = ""; + if (linkNo.length() > 8) { + vinNo = linkNo.substring(linkNo.length() - 8); + } else { + vinNo = linkNo; + } + String busVinSid = vehicle.getSid(); + String vehMark = ""; + LoanWarrantInformation loanWarrantInformation = loanWarrantInformationService.fetchByBusVinSid(busVinSid); + if (null != loanWarrantInformation) { + if (StringUtils.isNotBlank(loanWarrantInformation.getVehicleMark())) { + vehMark = loanWarrantInformation.getVehicleMark(); + } + } + //主方案 + for (int i = 0; i < mainPeriod; i++) { + LoanRepaymentPlanDetailsDto mainDto = new LoanRepaymentPlanDetailsDto(); + mainDto.setSalesOrderSid(salesOrderSid); + mainDto.setLoanContractNo(loanContractNo); + mainDto.setLoanContractSid(loanContractSid); + mainDto.setPolicyName(policyName); + mainDto.setBankContractNo(bankContractNo); + mainDto.setCreateBySid(createBySid); + mainDto.setCustomer(customer); + mainDto.setCustomerSid(customerSid); + mainDto.setBorrowerSid(borrowerSid); + mainDto.setBorrowerName(borrowerName); + mainDto.setPeriod(String.valueOf(i + 1)); + mainDto.setScheduleSid(scheduleDetails.getSid()); + mainDto.setBankName(bankName); + mainDto.setDept(dept); + mainDto.setDeptSid(deptSid); + mainDto.setUseOrgSid(useOrgSid); + mainDto.setUseOrgName(useOrgName); + mainDto.setOrgSidPath(orgSidPath); + mainDto.setBusVinSid(busVinSid); + mainDto.setVinNo(vinNo); + mainDto.setVehMark(vehMark); + mainDto.setSalesUserSid(staffSid); + mainDto.setStaffName(staffName); + mainDto.setPolicyOrOther("1"); + BigDecimal otherRepay = new BigDecimal(0); if (i == 0) { - otherDto.setDueMoney(otherFirstPay); + if (j == vehicles.size() - 1) { + otherRepay = new BigDecimal(singleOtherFirstPay); + } else { + otherRepay = new BigDecimal(otherFirstPay); + } } else if (i == Integer.parseInt(otherPeriod) - 1) { - otherDto.setDueMoney(otherLastPay); + if (j == vehicles.size() - 1) { + otherRepay = new BigDecimal(singleOtherLastPay); + } else { + otherRepay = new BigDecimal(otherLastPay); + } + } else if (i > 0 && i < Integer.parseInt(otherPeriod) - 1) { + if (j == vehicles.size() - 1) { + otherRepay = new BigDecimal(singleOtherMidPay); + } else { + otherRepay = new BigDecimal(otherMidPay); + } + } + if (i == 0) { + if (j == vehicles.size() - 1) { + BigDecimal mainF = new BigDecimal(singleMainFirstRepay); + BigDecimal add = mainF.add(otherRepay); + mainDto.setDueMoney(String.valueOf(add)); + } else { + BigDecimal mainF = new BigDecimal(mainFirstRepay); + BigDecimal add = mainF.add(otherRepay); + mainDto.setDueMoney(String.valueOf(add)); + } + } else if (i == mainPeriod - 1) { + if (j == vehicles.size() - 1) { + BigDecimal mainL = new BigDecimal(singleMainLastRepay); + BigDecimal add = mainL.add(otherRepay); + mainDto.setDueMoney(String.valueOf(add)); + } else { + BigDecimal mainL = new BigDecimal(mainLastRepay); + BigDecimal add = mainL.add(otherRepay); + mainDto.setDueMoney(String.valueOf(add)); + } } else { - otherDto.setDueMoney(otherMidPay); + if (j == vehicles.size() - 1) { + BigDecimal mainM = new BigDecimal(singleMainMidRepay); + BigDecimal add = mainM.add(otherRepay); + mainDto.setDueMoney(String.valueOf(add)); + } else { + BigDecimal mainM = new BigDecimal(mainMidRepay); + BigDecimal add = mainM.add(otherRepay); + mainDto.setDueMoney(String.valueOf(add)); + } } - if (!otherDays.isEmpty()) { - otherDto.setDueDate(otherDays.get(i)); + if (!mainDays.isEmpty()) { + mainDto.setDueDate(mainDays.get(i)); } - loanRepaymentPlanDetailsService.savePlanDetails(otherDto); + loanRepaymentPlanDetailsService.savePlanDetails(mainDto); } } - } } - } - if (scheduleDetails.getSameBank().equals("1")) { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - String createBySid = scheduleDetails.getCreateBySid(); - String staffSid = scheduleDetails.getStaffSid(); - String bankName = scheduleDetails.getBankName(); - String borrowerSid = scheduleDetails.getBorrowerSid(); - String borrowerName = scheduleDetails.getBorrowerName(); - String staffName = scheduleDetails.getStaffName(); - String salesOrderSid = scheduleDetails.getSalesOrderSid(); - String policyName = scheduleDetails.getPolicyName(); - String loanContractSid = scheduleDetails.getLoanContractSid(); - String loanContractNo = scheduleDetails.getLoanContractNo(); - int mainPeriod = Integer.parseInt(scheduleDetails.getMainPeriod()); - String mainDate = sdf.format(scheduleDetails.getMainRepayDate()); - List mainDays = returnRepayDate(mainDate, scheduleDetails.getMainPeriod()); - String mainFirstRepay = String.valueOf(scheduleDetails.getMainFirstRepay()); - String mainMidRepay = String.valueOf(scheduleDetails.getMainMidRepay()); - String mainLastRepay = String.valueOf(scheduleDetails.getMainLastRepay()); - String otherPeriod = ""; - String otherDate = ""; - String otherFirstPay = ""; - String otherMidPay = ""; - String otherLastPay = ""; - String deptSid = ""; - String dept = ""; - String useOrgName = ""; - String useOrgSid = ""; - String orgSidPath = ""; - String bankContractNo = ""; - String customer = ""; - String customerSid = ""; - if (scheduleDetails.getIsOtherPolicy().equals("1")) { - otherPeriod = scheduleDetails.getOtherPeriod(); - otherDate = sdf.format(scheduleDetails.getOtherRepayDate()); - otherFirstPay = String.valueOf(scheduleDetails.getOtherFirstRepay()); - otherMidPay = String.valueOf(scheduleDetails.getOtherMidRepay()); - otherLastPay = String.valueOf(scheduleDetails.getOtherLastRepay()); - } - if (null != busSalesOrder) { - if (StringUtils.isNotBlank(busSalesOrder.getCustomerName())) { - customer = busSalesOrder.getCustomerName(); - } - if (StringUtils.isNotBlank(busSalesOrder.getCustomerSid())) { - customerSid = busSalesOrder.getCustomerSid(); - } - if (StringUtils.isNotBlank(busSalesOrder.getOrgSid())) { - deptSid = busSalesOrder.getOrgSid(); - } - if (StringUtils.isNotBlank(busSalesOrder.getOrgName())) { - dept = busSalesOrder.getOrgName(); - } - if (StringUtils.isNotBlank(busSalesOrder.getOrgSidPath())) { - orgSidPath = busSalesOrder.getOrgSidPath(); - } - if (StringUtils.isNotBlank(busSalesOrder.getUseOrgName())) { - useOrgName = busSalesOrder.getUseOrgName(); - } - if (StringUtils.isNotBlank(busSalesOrder.getUseOrgSid())) { - useOrgSid = busSalesOrder.getUseOrgSid(); - } - } - BusSalesOrderLoancontractDetailsVo loancontractVo = busSalesOrderLoancontractFeign.fetchDetailsBySid(dto.getSalesOrderSid()).getData(); - if (null != loancontractVo) { - if (StringUtils.isNotBlank(loancontractVo.getBankContractNo())) { - bankContractNo = loancontractVo.getBankContractNo(); - } - } - List vehicles = busSalesOrderVehicleFeign.selectListByOrderSidAndDkrSid(salesOrderSid, borrowerSid).getData(); - if (!vehicles.isEmpty()) { - for (BusSalesOrderVehicle vehicle : vehicles) { - String linkNo = vehicle.getLinkNo(); - String vinNo = ""; - if (linkNo.length() > 8) { - vinNo = linkNo.substring(linkNo.length() - 8); - } else { - vinNo = linkNo; - } - String busVinSid = vehicle.getSid(); - String vehMark = ""; - LoanWarrantInformation loanWarrantInformation = loanWarrantInformationService.fetchByBusVinSid(busVinSid); - if (null != loanWarrantInformation) { - if (StringUtils.isNotBlank(loanWarrantInformation.getVehicleMark())) { - vehMark = loanWarrantInformation.getVehicleMark(); - } - } - //主方案 - for (int i = 0; i < mainPeriod; i++) { - LoanRepaymentPlanDetailsDto mainDto = new LoanRepaymentPlanDetailsDto(); - mainDto.setSalesOrderSid(salesOrderSid); - mainDto.setLoanContractNo(loanContractNo); - mainDto.setLoanContractSid(loanContractSid); - mainDto.setPolicyName(policyName); - mainDto.setBankContractNo(bankContractNo); - mainDto.setCreateBySid(createBySid); - mainDto.setCustomer(customer); - mainDto.setCustomerSid(customerSid); - mainDto.setBorrowerSid(borrowerSid); - mainDto.setBorrowerName(borrowerName); - mainDto.setPeriod(String.valueOf(i + 1)); - mainDto.setScheduleSid(scheduleDetails.getSid()); - mainDto.setBankName(bankName); - mainDto.setDept(dept); - mainDto.setDeptSid(deptSid); - mainDto.setUseOrgSid(useOrgSid); - mainDto.setUseOrgName(useOrgName); - mainDto.setOrgSidPath(orgSidPath); - mainDto.setBusVinSid(busVinSid); - mainDto.setVinNo(vinNo); - mainDto.setVehMark(vehMark); - mainDto.setSalesUserSid(staffSid); - mainDto.setStaffName(staffName); - mainDto.setPolicyOrOther("1"); - BigDecimal otherRepay = new BigDecimal(0); - if (i == 0) { - otherRepay = new BigDecimal(otherFirstPay); - } else if (i == Integer.parseInt(otherPeriod) - 1) { - otherRepay = new BigDecimal(otherLastPay); - } else if (i < Integer.parseInt(otherPeriod) - 1) { - otherRepay = new BigDecimal(otherMidPay); + } else if (scheduleDetails.getIsDifferent().equals("0")) { + if (scheduleDetails.getSameBank().equals("0")) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + String createBySid = scheduleDetails.getCreateBySid(); + String staffSid = scheduleDetails.getStaffSid(); + String bankName = scheduleDetails.getBankName(); + String borrowerSid = scheduleDetails.getBorrowerSid(); + String borrowerName = scheduleDetails.getBorrowerName(); + String staffName = scheduleDetails.getStaffName(); + String salesOrderSid = scheduleDetails.getSalesOrderSid(); + String policyName = scheduleDetails.getPolicyName(); + String loanContractSid = scheduleDetails.getLoanContractSid(); + String loanContractNo = scheduleDetails.getLoanContractNo(); + int mainPeriod = Integer.parseInt(scheduleDetails.getMainPeriod()); + String mainDate = sdf.format(scheduleDetails.getMainRepayDate()); + List mainDays = returnRepayDate(mainDate, scheduleDetails.getMainPeriod()); + List otherDays = new ArrayList<>(); + String mainFirstRepay = String.valueOf(scheduleDetails.getMainFirstRepay()); + String mainMidRepay = String.valueOf(scheduleDetails.getMainMidRepay()); + String mainLastRepay = String.valueOf(scheduleDetails.getMainLastRepay()); + String otherPeriod = ""; + String otherDate = ""; + String otherFirstPay = ""; + String otherMidPay = ""; + String otherLastPay = ""; + String deptSid = ""; + String dept = ""; + String useOrgName = ""; + String useOrgSid = ""; + String orgSidPath = ""; + String bankContractNo = ""; + String customer = ""; + String customerSid = ""; + if (scheduleDetails.getIsOtherPolicy().equals("1")) { + otherPeriod = scheduleDetails.getOtherPeriod(); + otherDate = sdf.format(scheduleDetails.getOtherRepayDate()); + otherFirstPay = String.valueOf(scheduleDetails.getOtherFirstRepay()); + otherMidPay = String.valueOf(scheduleDetails.getOtherMidRepay()); + otherLastPay = String.valueOf(scheduleDetails.getOtherLastRepay()); + otherDays = returnRepayDate(otherDate, otherPeriod); + } + if (null != busSalesOrder) { + if (StringUtils.isNotBlank(busSalesOrder.getCustomerName())) { + customer = busSalesOrder.getCustomerName(); + } + if (StringUtils.isNotBlank(busSalesOrder.getCustomerSid())) { + customerSid = busSalesOrder.getCustomerSid(); + } + if (StringUtils.isNotBlank(busSalesOrder.getOrgSid())) { + deptSid = busSalesOrder.getOrgSid(); + } + if (StringUtils.isNotBlank(busSalesOrder.getOrgName())) { + dept = busSalesOrder.getOrgName(); + } + if (StringUtils.isNotBlank(busSalesOrder.getOrgSidPath())) { + orgSidPath = busSalesOrder.getOrgSidPath(); + } + if (StringUtils.isNotBlank(busSalesOrder.getUseOrgName())) { + useOrgName = busSalesOrder.getUseOrgName(); + } + if (StringUtils.isNotBlank(busSalesOrder.getUseOrgSid())) { + useOrgSid = busSalesOrder.getUseOrgSid(); + } + } + BusSalesOrderLoancontractDetailsVo loancontractVo = busSalesOrderLoancontractFeign.fetchDetailsBySid(dto.getSalesOrderSid()).getData(); + if (null != loancontractVo) { + if (StringUtils.isNotBlank(loancontractVo.getBankContractNo())) { + bankContractNo = loancontractVo.getBankContractNo(); + } + } + String otherBankNo = ""; + if (StringUtils.isNotBlank(scheduleDetails.getOtherBankNo())) { + otherBankNo = scheduleDetails.getOtherBankNo(); + } + List vehicles = busSalesOrderVehicleFeign.selectListByOrderSidAndDkrSid(salesOrderSid, borrowerSid).getData(); + if (!vehicles.isEmpty()) { + for (BusSalesOrderVehicle vehicle : vehicles) { + String linkNo = vehicle.getLinkNo(); + String vinNo = ""; + if (linkNo.length() > 8) { + vinNo = linkNo.substring(linkNo.length() - 8); + } else { + vinNo = linkNo; } - if (i == 0) { - BigDecimal mainF = new BigDecimal(mainFirstRepay); - BigDecimal add = mainF.add(otherRepay); - mainDto.setDueMoney(String.valueOf(add)); - } else if (i == mainPeriod - 1) { - BigDecimal mainL = new BigDecimal(mainLastRepay); - BigDecimal add = mainL.add(otherRepay); - mainDto.setDueMoney(String.valueOf(add)); + String busVinSid = vehicle.getSid(); + String vehMark = ""; + LoanWarrantInformation loanWarrantInformation = loanWarrantInformationService.fetchByBusVinSid(busVinSid); + if (null != loanWarrantInformation) { + if (StringUtils.isNotBlank(loanWarrantInformation.getVehicleMark())) { + vehMark = loanWarrantInformation.getVehicleMark(); + } + } + //主方案 + for (int i = 0; i < mainPeriod; i++) { + LoanRepaymentPlanDetailsDto mainDto = new LoanRepaymentPlanDetailsDto(); + mainDto.setSalesOrderSid(salesOrderSid); + mainDto.setLoanContractNo(loanContractNo); + mainDto.setLoanContractSid(loanContractSid); + mainDto.setPolicyName(policyName); + mainDto.setBankContractNo(bankContractNo); + mainDto.setCreateBySid(createBySid); + mainDto.setCustomer(customer); + mainDto.setCustomerSid(customerSid); + mainDto.setBorrowerSid(borrowerSid); + mainDto.setBorrowerName(borrowerName); + mainDto.setPeriod(String.valueOf(i + 1)); + mainDto.setScheduleSid(scheduleDetails.getSid()); + mainDto.setBankName(bankName); + mainDto.setDept(dept); + mainDto.setDeptSid(deptSid); + mainDto.setUseOrgSid(useOrgSid); + mainDto.setUseOrgName(useOrgName); + mainDto.setOrgSidPath(orgSidPath); + mainDto.setBusVinSid(busVinSid); + mainDto.setVinNo(vinNo); + mainDto.setVehMark(vehMark); + mainDto.setSalesUserSid(staffSid); + mainDto.setStaffName(staffName); + mainDto.setPolicyOrOther("0"); + if (i == 0) { + mainDto.setDueMoney(mainFirstRepay); + } else if (i == mainPeriod - 1) { + mainDto.setDueMoney(mainLastRepay); + } else { + mainDto.setDueMoney(mainMidRepay); + } + if (!mainDays.isEmpty()) { + mainDto.setDueDate(mainDays.get(i)); + } + loanRepaymentPlanDetailsService.savePlanDetails(mainDto); + } + //其他融 + if (scheduleDetails.getIsOtherPolicy().equals("1")) { + OtherPolicyVo otherPolicyVo = baseMapper.selOtherPolicyByOrderSid(scheduleDetails.getSalesOrderSid()); + for (int i = 0; i < Integer.parseInt(otherPeriod); i++) { + LoanRepaymentPlanDetailsDto otherDto = new LoanRepaymentPlanDetailsDto(); + otherDto.setSalesOrderSid(salesOrderSid); + otherDto.setLoanContractNo(loanContractNo); + otherDto.setLoanContractSid(loanContractSid); + if (null != otherPolicyVo) { + if (StringUtils.isNotBlank(otherPolicyVo.getOtherPolicyName())) { + otherDto.setPolicyName(otherPolicyVo.getOtherPolicyName()); + } + if (StringUtils.isNotBlank(otherPolicyVo.getOtherBankName())) { + otherDto.setBankName(otherPolicyVo.getOtherBankName()); + } + } + otherDto.setBankContractNo(otherBankNo); + otherDto.setCreateBySid(createBySid); + otherDto.setCustomer(customer); + otherDto.setCustomerSid(customerSid); + otherDto.setBorrowerSid(borrowerSid); + otherDto.setBorrowerName(borrowerName); + otherDto.setPeriod(String.valueOf(i + 1)); + otherDto.setScheduleSid(scheduleDetails.getSid()); + otherDto.setDept(dept); + otherDto.setDeptSid(deptSid); + otherDto.setUseOrgSid(useOrgSid); + otherDto.setUseOrgName(useOrgName); + otherDto.setOrgSidPath(orgSidPath); + otherDto.setBusVinSid(busVinSid); + otherDto.setVinNo(vinNo); + otherDto.setVehMark(vehMark); + otherDto.setSalesUserSid(staffSid); + otherDto.setStaffName(staffName); + otherDto.setPolicyOrOther("1"); + if (i == 0) { + otherDto.setDueMoney(otherFirstPay); + } else if (i == Integer.parseInt(otherPeriod) - 1) { + otherDto.setDueMoney(otherLastPay); + } else { + otherDto.setDueMoney(otherMidPay); + } + if (!otherDays.isEmpty()) { + otherDto.setDueDate(otherDays.get(i)); + } + loanRepaymentPlanDetailsService.savePlanDetails(otherDto); + } + } + + } + } + } + if (scheduleDetails.getSameBank().equals("1")) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + String createBySid = scheduleDetails.getCreateBySid(); + String staffSid = scheduleDetails.getStaffSid(); + String bankName = scheduleDetails.getBankName(); + String borrowerSid = scheduleDetails.getBorrowerSid(); + String borrowerName = scheduleDetails.getBorrowerName(); + String staffName = scheduleDetails.getStaffName(); + String salesOrderSid = scheduleDetails.getSalesOrderSid(); + String policyName = scheduleDetails.getPolicyName(); + String loanContractSid = scheduleDetails.getLoanContractSid(); + String loanContractNo = scheduleDetails.getLoanContractNo(); + int mainPeriod = Integer.parseInt(scheduleDetails.getMainPeriod()); + String mainDate = sdf.format(scheduleDetails.getMainRepayDate()); + List mainDays = returnRepayDate(mainDate, scheduleDetails.getMainPeriod()); + String mainFirstRepay = String.valueOf(scheduleDetails.getMainFirstRepay()); + String mainMidRepay = String.valueOf(scheduleDetails.getMainMidRepay()); + String mainLastRepay = String.valueOf(scheduleDetails.getMainLastRepay()); + String otherPeriod = ""; + String otherDate = ""; + String otherFirstPay = ""; + String otherMidPay = ""; + String otherLastPay = ""; + String deptSid = ""; + String dept = ""; + String useOrgName = ""; + String useOrgSid = ""; + String orgSidPath = ""; + String bankContractNo = ""; + String customer = ""; + String customerSid = ""; + if (scheduleDetails.getIsOtherPolicy().equals("1")) { + otherPeriod = scheduleDetails.getOtherPeriod(); + otherDate = sdf.format(scheduleDetails.getOtherRepayDate()); + otherFirstPay = String.valueOf(scheduleDetails.getOtherFirstRepay()); + otherMidPay = String.valueOf(scheduleDetails.getOtherMidRepay()); + otherLastPay = String.valueOf(scheduleDetails.getOtherLastRepay()); + } + if (null != busSalesOrder) { + if (StringUtils.isNotBlank(busSalesOrder.getCustomerName())) { + customer = busSalesOrder.getCustomerName(); + } + if (StringUtils.isNotBlank(busSalesOrder.getCustomerSid())) { + customerSid = busSalesOrder.getCustomerSid(); + } + if (StringUtils.isNotBlank(busSalesOrder.getOrgSid())) { + deptSid = busSalesOrder.getOrgSid(); + } + if (StringUtils.isNotBlank(busSalesOrder.getOrgName())) { + dept = busSalesOrder.getOrgName(); + } + if (StringUtils.isNotBlank(busSalesOrder.getOrgSidPath())) { + orgSidPath = busSalesOrder.getOrgSidPath(); + } + if (StringUtils.isNotBlank(busSalesOrder.getUseOrgName())) { + useOrgName = busSalesOrder.getUseOrgName(); + } + if (StringUtils.isNotBlank(busSalesOrder.getUseOrgSid())) { + useOrgSid = busSalesOrder.getUseOrgSid(); + } + } + BusSalesOrderLoancontractDetailsVo loancontractVo = busSalesOrderLoancontractFeign.fetchDetailsBySid(dto.getSalesOrderSid()).getData(); + if (null != loancontractVo) { + if (StringUtils.isNotBlank(loancontractVo.getBankContractNo())) { + bankContractNo = loancontractVo.getBankContractNo(); + } + } + List vehicles = busSalesOrderVehicleFeign.selectListByOrderSidAndDkrSid(salesOrderSid, borrowerSid).getData(); + if (!vehicles.isEmpty()) { + for (BusSalesOrderVehicle vehicle : vehicles) { + String linkNo = vehicle.getLinkNo(); + String vinNo = ""; + if (linkNo.length() > 8) { + vinNo = linkNo.substring(linkNo.length() - 8); } else { - BigDecimal mainM = new BigDecimal(mainMidRepay); - BigDecimal add = mainM.add(otherRepay); - mainDto.setDueMoney(String.valueOf(add)); + vinNo = linkNo; } - if (!mainDays.isEmpty()) { - mainDto.setDueDate(mainDays.get(i)); + String busVinSid = vehicle.getSid(); + String vehMark = ""; + LoanWarrantInformation loanWarrantInformation = loanWarrantInformationService.fetchByBusVinSid(busVinSid); + if (null != loanWarrantInformation) { + if (StringUtils.isNotBlank(loanWarrantInformation.getVehicleMark())) { + vehMark = loanWarrantInformation.getVehicleMark(); + } + } + //主方案 + for (int i = 0; i < mainPeriod; i++) { + LoanRepaymentPlanDetailsDto mainDto = new LoanRepaymentPlanDetailsDto(); + mainDto.setSalesOrderSid(salesOrderSid); + mainDto.setLoanContractNo(loanContractNo); + mainDto.setLoanContractSid(loanContractSid); + mainDto.setPolicyName(policyName); + mainDto.setBankContractNo(bankContractNo); + mainDto.setCreateBySid(createBySid); + mainDto.setCustomer(customer); + mainDto.setCustomerSid(customerSid); + mainDto.setBorrowerSid(borrowerSid); + mainDto.setBorrowerName(borrowerName); + mainDto.setPeriod(String.valueOf(i + 1)); + mainDto.setScheduleSid(scheduleDetails.getSid()); + mainDto.setBankName(bankName); + mainDto.setDept(dept); + mainDto.setDeptSid(deptSid); + mainDto.setUseOrgSid(useOrgSid); + mainDto.setUseOrgName(useOrgName); + mainDto.setOrgSidPath(orgSidPath); + mainDto.setBusVinSid(busVinSid); + mainDto.setVinNo(vinNo); + mainDto.setVehMark(vehMark); + mainDto.setSalesUserSid(staffSid); + mainDto.setStaffName(staffName); + mainDto.setPolicyOrOther("1"); + BigDecimal otherRepay = new BigDecimal(0); + if (i == 0) { + otherRepay = new BigDecimal(otherFirstPay); + } else if (i == Integer.parseInt(otherPeriod) - 1) { + otherRepay = new BigDecimal(otherLastPay); + } else if (i < Integer.parseInt(otherPeriod) - 1) { + otherRepay = new BigDecimal(otherMidPay); + } + if (i == 0) { + BigDecimal mainF = new BigDecimal(mainFirstRepay); + BigDecimal add = mainF.add(otherRepay); + mainDto.setDueMoney(String.valueOf(add)); + } else if (i == mainPeriod - 1) { + BigDecimal mainL = new BigDecimal(mainLastRepay); + BigDecimal add = mainL.add(otherRepay); + mainDto.setDueMoney(String.valueOf(add)); + } else { + BigDecimal mainM = new BigDecimal(mainMidRepay); + BigDecimal add = mainM.add(otherRepay); + mainDto.setDueMoney(String.valueOf(add)); + } + if (!mainDays.isEmpty()) { + mainDto.setDueDate(mainDays.get(i)); + } + loanRepaymentPlanDetailsService.savePlanDetails(mainDto); } - loanRepaymentPlanDetailsService.savePlanDetails(mainDto); } } } @@ -794,327 +1229,729 @@ public class LoanRepaymentScheduleService extends MybatisBaseService mainDays = returnRepayDate(mainDate, scheduleDetails.getMainPeriod()); - List otherDays = new ArrayList<>(); - String mainFirstRepay = String.valueOf(scheduleDetails.getMainFirstRepay()); - String mainMidRepay = String.valueOf(scheduleDetails.getMainMidRepay()); - String mainLastRepay = String.valueOf(scheduleDetails.getMainLastRepay()); - String otherPeriod = ""; - String otherDate = ""; - String otherFirstPay = ""; - String otherMidPay = ""; - String otherLastPay = ""; - String deptSid = ""; - String dept = ""; - String useOrgName = ""; - String useOrgSid = ""; - String orgSidPath = ""; - String bankContractNo = ""; - String customer = ""; - String customerSid = ""; - if (scheduleDetails.getIsOtherPolicy().equals("1")) { - otherPeriod = scheduleDetails.getOtherPeriod(); - otherDate = sdf.format(scheduleDetails.getOtherRepayDate()); - otherFirstPay = String.valueOf(scheduleDetails.getOtherFirstRepay()); - otherMidPay = String.valueOf(scheduleDetails.getOtherMidRepay()); - otherLastPay = String.valueOf(scheduleDetails.getOtherLastRepay()); - otherDays = returnRepayDate(otherDate, otherPeriod); - } - if (null != busSalesOrder) { - if (StringUtils.isNotBlank(busSalesOrder.getCustomerName())) { - customer = busSalesOrder.getCustomerName(); - } - if (StringUtils.isNotBlank(busSalesOrder.getCustomerSid())) { - customerSid = busSalesOrder.getCustomerSid(); - } - if (StringUtils.isNotBlank(busSalesOrder.getOrgSid())) { - deptSid = busSalesOrder.getOrgSid(); - } - if (StringUtils.isNotBlank(busSalesOrder.getOrgName())) { - dept = busSalesOrder.getOrgName(); - } - if (StringUtils.isNotBlank(busSalesOrder.getOrgSidPath())) { - orgSidPath = busSalesOrder.getOrgSidPath(); - } - if (StringUtils.isNotBlank(busSalesOrder.getUseOrgName())) { - useOrgName = busSalesOrder.getUseOrgName(); - } - if (StringUtils.isNotBlank(busSalesOrder.getUseOrgSid())) { - useOrgSid = busSalesOrder.getUseOrgSid(); - } - } - if (null != loancontractVo) { - if (StringUtils.isNotBlank(loancontractVo.getBankContractNo())) { - bankContractNo = loancontractVo.getBankContractNo(); - } - } - String otherBankNo = ""; - if (StringUtils.isNotBlank(scheduleDetails.getOtherBankNo())) { - otherBankNo = scheduleDetails.getOtherBankNo(); - } - List vehicles = busSalesOrderVehicleFeign.selectListByOrderSidAndDkrSid(salesOrderSid, borrowerSid).getData(); - if (!vehicles.isEmpty()) { - for (BusSalesOrderVehicle vehicle : vehicles) { - String linkNo = vehicle.getLinkNo(); - String vinNo = ""; - if (linkNo.length() > 8) { - vinNo = linkNo.substring(linkNo.length() - 8); - } else { - vinNo = linkNo; - } - String busVinSid = vehicle.getSid(); - String vehMark = ""; - LoanWarrantInformation loanWarrantInformation = loanWarrantInformationService.fetchByBusVinSid(busVinSid); - if (null != loanWarrantInformation) { - if (StringUtils.isNotBlank(loanWarrantInformation.getVehicleMark())) { - vehMark = loanWarrantInformation.getVehicleMark(); - } - } - //主方案 - for (int i = 0; i < mainPeriod; i++) { - LoanRepaymentPlanDetailsDto mainDto = new LoanRepaymentPlanDetailsDto(); - mainDto.setSalesOrderSid(salesOrderSid); - mainDto.setLoanContractNo(loanContractNo); - mainDto.setLoanContractSid(loanContractSid); - mainDto.setPolicyName(policyName); - mainDto.setBankContractNo(bankContractNo); - mainDto.setCreateBySid(createBySid); - mainDto.setCustomer(customer); - mainDto.setCustomerSid(customerSid); - mainDto.setBorrowerSid(borrowerSid); - mainDto.setBorrowerName(borrowerName); - mainDto.setPeriod(String.valueOf(i + 1)); - mainDto.setScheduleSid(entity.getSid()); - mainDto.setBankName(bankName); - mainDto.setDept(dept); - mainDto.setDeptSid(deptSid); - mainDto.setUseOrgSid(useOrgSid); - mainDto.setUseOrgName(useOrgName); - mainDto.setOrgSidPath(orgSidPath); - mainDto.setBusVinSid(busVinSid); - mainDto.setVinNo(vinNo); - mainDto.setVehMark(vehMark); - mainDto.setSalesUserSid(staffSid); - mainDto.setStaffName(staffName); - mainDto.setPolicyOrOther("0"); - if (i == 0) { - mainDto.setDueMoney(mainFirstRepay); - } else if (i == mainPeriod - 1) { - mainDto.setDueMoney(mainLastRepay); + if (scheduleDetails.getIsDifferent().equals("1")) { + if (scheduleDetails.getSameBank().equals("0")) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + String createBySid = scheduleDetails.getCreateBySid(); + String staffSid = scheduleDetails.getStaffSid(); + String bankName = scheduleDetails.getBankName(); + String borrowerSid = scheduleDetails.getBorrowerSid(); + String borrowerName = scheduleDetails.getBorrowerName(); + String staffName = scheduleDetails.getStaffName(); + String salesOrderSid = scheduleDetails.getSalesOrderSid(); + String policyName = scheduleDetails.getPolicyName(); + String loanContractSid = scheduleDetails.getLoanContractSid(); + String loanContractNo = scheduleDetails.getLoanContractNo(); + int mainPeriod = Integer.parseInt(scheduleDetails.getMainPeriod()); + String mainDate = sdf.format(scheduleDetails.getMainRepayDate()); + List mainDays = returnRepayDate(mainDate, scheduleDetails.getMainPeriod()); + List otherDays = new ArrayList<>(); + String mainFirstRepay = String.valueOf(scheduleDetails.getMainFirstRepay()); + String mainMidRepay = String.valueOf(scheduleDetails.getMainMidRepay()); + String mainLastRepay = String.valueOf(scheduleDetails.getMainLastRepay()); + String singleMainFirstRepay = String.valueOf(scheduleDetails.getSingleMainFirstRepay()); + String singleMainMidRepay = String.valueOf(scheduleDetails.getSingleMainMidRepay()); + String singleMainLastRepay = String.valueOf(scheduleDetails.getSingleMainLastRepay()); + String otherPeriod = ""; + String otherDate = ""; + String otherFirstPay = ""; + String otherMidPay = ""; + String otherLastPay = ""; + String singleOtherFirstPay = ""; + String singleOtherMidPay = ""; + String singleOtherLastPay = ""; + String deptSid = ""; + String dept = ""; + String useOrgName = ""; + String useOrgSid = ""; + String orgSidPath = ""; + String bankContractNo = ""; + String customer = ""; + String customerSid = ""; + if (scheduleDetails.getIsOtherPolicy().equals("1")) { + otherPeriod = scheduleDetails.getOtherPeriod(); + otherDate = sdf.format(scheduleDetails.getOtherRepayDate()); + otherFirstPay = String.valueOf(scheduleDetails.getOtherFirstRepay()); + otherMidPay = String.valueOf(scheduleDetails.getOtherMidRepay()); + otherLastPay = String.valueOf(scheduleDetails.getOtherLastRepay()); + singleOtherFirstPay = String.valueOf(scheduleDetails.getSingleOtherFirstRepay()); + singleOtherMidPay = String.valueOf(scheduleDetails.getSingleOtherMidRepay()); + singleOtherLastPay = String.valueOf(scheduleDetails.getSingleOtherLastRepay()); + otherDays = returnRepayDate(otherDate, otherPeriod); + } + if (null != busSalesOrder) { + if (StringUtils.isNotBlank(busSalesOrder.getCustomerName())) { + customer = busSalesOrder.getCustomerName(); + } + if (StringUtils.isNotBlank(busSalesOrder.getCustomerSid())) { + customerSid = busSalesOrder.getCustomerSid(); + } + if (StringUtils.isNotBlank(busSalesOrder.getOrgSid())) { + deptSid = busSalesOrder.getOrgSid(); + } + if (StringUtils.isNotBlank(busSalesOrder.getOrgName())) { + dept = busSalesOrder.getOrgName(); + } + if (StringUtils.isNotBlank(busSalesOrder.getOrgSidPath())) { + orgSidPath = busSalesOrder.getOrgSidPath(); + } + if (StringUtils.isNotBlank(busSalesOrder.getUseOrgName())) { + useOrgName = busSalesOrder.getUseOrgName(); + } + if (StringUtils.isNotBlank(busSalesOrder.getUseOrgSid())) { + useOrgSid = busSalesOrder.getUseOrgSid(); + } + } + if (null != loancontractVo) { + if (StringUtils.isNotBlank(loancontractVo.getBankContractNo())) { + bankContractNo = loancontractVo.getBankContractNo(); + } + } + String otherBankNo = ""; + if (StringUtils.isNotBlank(scheduleDetails.getOtherBankNo())) { + otherBankNo = scheduleDetails.getOtherBankNo(); + } + List vehicles = busSalesOrderVehicleFeign.selectListByOrderSidAndDkrSid(salesOrderSid, borrowerSid).getData(); + if (!vehicles.isEmpty()) { + for (int j = 0; j < vehicles.size(); j++) { + BusSalesOrderVehicle vehicle = vehicles.get(j); + String linkNo = vehicle.getLinkNo(); + String vinNo = ""; + if (linkNo.length() > 8) { + vinNo = linkNo.substring(linkNo.length() - 8); + } else { + vinNo = linkNo; + } + String busVinSid = vehicle.getSid(); + String vehMark = ""; + LoanWarrantInformation loanWarrantInformation = loanWarrantInformationService.fetchByBusVinSid(busVinSid); + if (null != loanWarrantInformation) { + if (StringUtils.isNotBlank(loanWarrantInformation.getVehicleMark())) { + vehMark = loanWarrantInformation.getVehicleMark(); + } + } + //主方案 + for (int i = 0; i < mainPeriod; i++) { + LoanRepaymentPlanDetailsDto mainDto = new LoanRepaymentPlanDetailsDto(); + mainDto.setSalesOrderSid(salesOrderSid); + mainDto.setLoanContractNo(loanContractNo); + mainDto.setLoanContractSid(loanContractSid); + mainDto.setPolicyName(policyName); + mainDto.setBankContractNo(bankContractNo); + mainDto.setCreateBySid(createBySid); + mainDto.setCustomer(customer); + mainDto.setCustomerSid(customerSid); + mainDto.setBorrowerSid(borrowerSid); + mainDto.setBorrowerName(borrowerName); + mainDto.setPeriod(String.valueOf(i + 1)); + mainDto.setScheduleSid(entity.getSid()); + mainDto.setBankName(bankName); + mainDto.setDept(dept); + mainDto.setDeptSid(deptSid); + mainDto.setUseOrgSid(useOrgSid); + mainDto.setUseOrgName(useOrgName); + mainDto.setOrgSidPath(orgSidPath); + mainDto.setBusVinSid(busVinSid); + mainDto.setVinNo(vinNo); + mainDto.setVehMark(vehMark); + mainDto.setSalesUserSid(staffSid); + mainDto.setStaffName(staffName); + mainDto.setPolicyOrOther("0"); + if (i == 0) { + if (j == vehicles.size() - 1) { + mainDto.setDueMoney(singleMainFirstRepay); + } else { + mainDto.setDueMoney(mainFirstRepay); + } + } else if (i == mainPeriod - 1) { + if (j == vehicles.size() - 1) { + mainDto.setDueMoney(singleMainLastRepay); + } else { + mainDto.setDueMoney(mainLastRepay); + } + } else { + if (j == vehicles.size() - 1) { + mainDto.setDueMoney(singleMainMidRepay); + } else { + mainDto.setDueMoney(mainMidRepay); + } + } + if (!mainDays.isEmpty()) { + mainDto.setDueDate(mainDays.get(i)); + } + loanRepaymentPlanDetailsService.savePlanDetails(mainDto); + } + //其他融 + if (scheduleDetails.getIsOtherPolicy().equals("1")) { + OtherPolicyVo otherPolicyVo = baseMapper.selOtherPolicyByOrderSid(scheduleDetails.getSalesOrderSid()); + for (int i = 0; i < Integer.parseInt(otherPeriod); i++) { + LoanRepaymentPlanDetailsDto otherDto = new LoanRepaymentPlanDetailsDto(); + otherDto.setSalesOrderSid(salesOrderSid); + otherDto.setLoanContractNo(loanContractNo); + otherDto.setLoanContractSid(loanContractSid); + if (null != otherPolicyVo) { + if (StringUtils.isNotBlank(otherPolicyVo.getOtherPolicyName())) { + otherDto.setPolicyName(otherPolicyVo.getOtherPolicyName()); + } + if (StringUtils.isNotBlank(otherPolicyVo.getOtherBankName())) { + otherDto.setBankName(otherPolicyVo.getOtherBankName()); + } + } + otherDto.setBankContractNo(otherBankNo); + otherDto.setCreateBySid(createBySid); + otherDto.setCustomer(customer); + otherDto.setCustomerSid(customerSid); + otherDto.setBorrowerSid(borrowerSid); + otherDto.setBorrowerName(borrowerName); + otherDto.setPeriod(String.valueOf(i + 1)); + otherDto.setScheduleSid(entity.getSid()); + otherDto.setDept(dept); + otherDto.setDeptSid(deptSid); + otherDto.setUseOrgSid(useOrgSid); + otherDto.setUseOrgName(useOrgName); + otherDto.setOrgSidPath(orgSidPath); + otherDto.setBusVinSid(busVinSid); + otherDto.setVinNo(vinNo); + otherDto.setVehMark(vehMark); + otherDto.setSalesUserSid(staffSid); + otherDto.setStaffName(staffName); + otherDto.setPolicyOrOther("1"); + if (i == 0) { + if (j == vehicles.size() - 1) { + otherDto.setDueMoney(singleOtherFirstPay); + } else { + otherDto.setDueMoney(otherFirstPay); + } + } else if (i == Integer.parseInt(otherPeriod) - 1) { + if (j == vehicles.size() - 1) { + otherDto.setDueMoney(singleOtherLastPay); + } else { + otherDto.setDueMoney(otherLastPay); + } + } else { + if (j == vehicles.size() - 1) { + otherDto.setDueMoney(singleOtherMidPay); + } else { + otherDto.setDueMoney(otherMidPay); + } + } + if (!otherDays.isEmpty()) { + otherDto.setDueDate(otherDays.get(i)); + } + loanRepaymentPlanDetailsService.savePlanDetails(otherDto); + } + } + } + } + } + if (scheduleDetails.getSameBank().equals("1")) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + String createBySid = scheduleDetails.getCreateBySid(); + String staffSid = scheduleDetails.getStaffSid(); + String bankName = scheduleDetails.getBankName(); + String borrowerSid = scheduleDetails.getBorrowerSid(); + String borrowerName = scheduleDetails.getBorrowerName(); + String staffName = scheduleDetails.getStaffName(); + String salesOrderSid = scheduleDetails.getSalesOrderSid(); + String policyName = scheduleDetails.getPolicyName(); + String loanContractSid = scheduleDetails.getLoanContractSid(); + String loanContractNo = scheduleDetails.getLoanContractNo(); + int mainPeriod = Integer.parseInt(scheduleDetails.getMainPeriod()); + String mainDate = sdf.format(scheduleDetails.getMainRepayDate()); + List mainDays = returnRepayDate(mainDate, scheduleDetails.getMainPeriod()); + String mainFirstRepay = String.valueOf(scheduleDetails.getMainFirstRepay()); + String mainMidRepay = String.valueOf(scheduleDetails.getMainMidRepay()); + String mainLastRepay = String.valueOf(scheduleDetails.getMainLastRepay()); + String singleMainFirstRepay = String.valueOf(scheduleDetails.getSingleMainFirstRepay()); + String singleMainMidRepay = String.valueOf(scheduleDetails.getSingleMainMidRepay()); + String singleMainLastRepay = String.valueOf(scheduleDetails.getSingleMainLastRepay()); + String otherPeriod = ""; + String otherDate = ""; + String otherFirstPay = ""; + String otherMidPay = ""; + String otherLastPay = ""; + String singleOtherFirstPay = ""; + String singleOtherMidPay = ""; + String singleOtherLastPay = ""; + String deptSid = ""; + String dept = ""; + String useOrgName = ""; + String useOrgSid = ""; + String orgSidPath = ""; + String bankContractNo = ""; + String customer = ""; + String customerSid = ""; + if (scheduleDetails.getIsOtherPolicy().equals("1")) { + otherPeriod = scheduleDetails.getOtherPeriod(); + otherDate = sdf.format(scheduleDetails.getOtherRepayDate()); + otherFirstPay = String.valueOf(scheduleDetails.getOtherFirstRepay()); + otherMidPay = String.valueOf(scheduleDetails.getOtherMidRepay()); + singleOtherFirstPay = String.valueOf(scheduleDetails.getSingleOtherFirstRepay()); + singleOtherMidPay = String.valueOf(scheduleDetails.getSingleOtherMidRepay()); + singleOtherLastPay = String.valueOf(scheduleDetails.getSingleOtherLastRepay()); + otherLastPay = String.valueOf(scheduleDetails.getOtherLastRepay()); + } + if (null != busSalesOrder) { + if (StringUtils.isNotBlank(busSalesOrder.getCustomerName())) { + customer = busSalesOrder.getCustomerName(); + } + if (StringUtils.isNotBlank(busSalesOrder.getCustomerSid())) { + customerSid = busSalesOrder.getCustomerSid(); + } + if (StringUtils.isNotBlank(busSalesOrder.getOrgSid())) { + deptSid = busSalesOrder.getOrgSid(); + } + if (StringUtils.isNotBlank(busSalesOrder.getOrgName())) { + dept = busSalesOrder.getOrgName(); + } + if (StringUtils.isNotBlank(busSalesOrder.getOrgSidPath())) { + orgSidPath = busSalesOrder.getOrgSidPath(); + } + if (StringUtils.isNotBlank(busSalesOrder.getUseOrgName())) { + useOrgName = busSalesOrder.getUseOrgName(); + } + if (StringUtils.isNotBlank(busSalesOrder.getUseOrgSid())) { + useOrgSid = busSalesOrder.getUseOrgSid(); + } + } + if (null != loancontractVo) { + if (StringUtils.isNotBlank(loancontractVo.getBankContractNo())) { + bankContractNo = loancontractVo.getBankContractNo(); + } + } + List vehicles = busSalesOrderVehicleFeign.selectListByOrderSidAndDkrSid(salesOrderSid, borrowerSid).getData(); + if (!vehicles.isEmpty()) { + for (int j = 0; j < vehicles.size(); j++) { + BusSalesOrderVehicle vehicle = vehicles.get(j); + String linkNo = vehicle.getLinkNo(); + String vinNo = ""; + if (linkNo.length() > 8) { + vinNo = linkNo.substring(linkNo.length() - 8); + } else { + vinNo = linkNo; + } + String busVinSid = vehicle.getSid(); + String vehMark = ""; + LoanWarrantInformation loanWarrantInformation = loanWarrantInformationService.fetchByBusVinSid(busVinSid); + if (null != loanWarrantInformation) { + if (StringUtils.isNotBlank(loanWarrantInformation.getVehicleMark())) { + vehMark = loanWarrantInformation.getVehicleMark(); + } + } + //主方案 + for (int i = 0; i < mainPeriod; i++) { + LoanRepaymentPlanDetailsDto mainDto = new LoanRepaymentPlanDetailsDto(); + mainDto.setSalesOrderSid(salesOrderSid); + mainDto.setLoanContractNo(loanContractNo); + mainDto.setLoanContractSid(loanContractSid); + mainDto.setPolicyName(policyName); + mainDto.setBankContractNo(bankContractNo); + mainDto.setCreateBySid(createBySid); + mainDto.setCustomer(customer); + mainDto.setCustomerSid(customerSid); + mainDto.setBorrowerSid(borrowerSid); + mainDto.setBorrowerName(borrowerName); + mainDto.setPeriod(String.valueOf(i + 1)); + mainDto.setScheduleSid(entity.getSid()); + mainDto.setBankName(bankName); + mainDto.setDept(dept); + mainDto.setDeptSid(deptSid); + mainDto.setUseOrgSid(useOrgSid); + mainDto.setUseOrgName(useOrgName); + mainDto.setOrgSidPath(orgSidPath); + mainDto.setBusVinSid(busVinSid); + mainDto.setVinNo(vinNo); + mainDto.setVehMark(vehMark); + mainDto.setSalesUserSid(staffSid); + mainDto.setStaffName(staffName); + mainDto.setPolicyOrOther("1"); + BigDecimal otherRepay = new BigDecimal(0); + if (i == 0) { + if (j == vehicles.size() - 1) { + otherRepay = new BigDecimal(singleOtherFirstPay); + } else { + otherRepay = new BigDecimal(otherFirstPay); + } + } else if (i == Integer.parseInt(otherPeriod) - 1) { + if (j == vehicles.size() - 1) { + otherRepay = new BigDecimal(singleOtherLastPay); + } else { + otherRepay = new BigDecimal(otherLastPay); + } + } else if (i > 0 && i < Integer.parseInt(otherPeriod) - 1) { + if (j == vehicles.size() - 1) { + otherRepay = new BigDecimal(singleOtherMidPay); + } else { + otherRepay = new BigDecimal(otherMidPay); + } + } + if (i == 0) { + if (j == vehicles.size() - 1) { + BigDecimal mainF = new BigDecimal(singleMainFirstRepay); + BigDecimal add = mainF.add(otherRepay); + mainDto.setDueMoney(String.valueOf(add)); + } else { + BigDecimal mainF = new BigDecimal(mainFirstRepay); + BigDecimal add = mainF.add(otherRepay); + mainDto.setDueMoney(String.valueOf(add)); + } + } else if (i == mainPeriod - 1) { + if (j == vehicles.size() - 1) { + BigDecimal mainL = new BigDecimal(singleMainLastRepay); + BigDecimal add = mainL.add(otherRepay); + mainDto.setDueMoney(String.valueOf(add)); + } else { + BigDecimal mainL = new BigDecimal(mainLastRepay); + BigDecimal add = mainL.add(otherRepay); + mainDto.setDueMoney(String.valueOf(add)); + } + } else { + if (j == vehicles.size() - 1) { + BigDecimal mainM = new BigDecimal(singleMainMidRepay); + BigDecimal add = mainM.add(otherRepay); + mainDto.setDueMoney(String.valueOf(add)); + } else { + BigDecimal mainM = new BigDecimal(mainMidRepay); + BigDecimal add = mainM.add(otherRepay); + mainDto.setDueMoney(String.valueOf(add)); + } + } + if (!mainDays.isEmpty()) { + mainDto.setDueDate(mainDays.get(i)); + } + loanRepaymentPlanDetailsService.savePlanDetails(mainDto); + } + } + } + } + } else if (scheduleDetails.getIsDifferent().equals("0")) { + if (scheduleDetails.getSameBank().equals("0")) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + String createBySid = scheduleDetails.getCreateBySid(); + String staffSid = scheduleDetails.getStaffSid(); + String bankName = scheduleDetails.getBankName(); + String borrowerSid = scheduleDetails.getBorrowerSid(); + String borrowerName = scheduleDetails.getBorrowerName(); + String staffName = scheduleDetails.getStaffName(); + String salesOrderSid = scheduleDetails.getSalesOrderSid(); + String policyName = scheduleDetails.getPolicyName(); + String loanContractSid = scheduleDetails.getLoanContractSid(); + String loanContractNo = scheduleDetails.getLoanContractNo(); + int mainPeriod = Integer.parseInt(scheduleDetails.getMainPeriod()); + String mainDate = sdf.format(scheduleDetails.getMainRepayDate()); + List mainDays = returnRepayDate(mainDate, scheduleDetails.getMainPeriod()); + List otherDays = new ArrayList<>(); + String mainFirstRepay = String.valueOf(scheduleDetails.getMainFirstRepay()); + String mainMidRepay = String.valueOf(scheduleDetails.getMainMidRepay()); + String mainLastRepay = String.valueOf(scheduleDetails.getMainLastRepay()); + String otherPeriod = ""; + String otherDate = ""; + String otherFirstPay = ""; + String otherMidPay = ""; + String otherLastPay = ""; + String deptSid = ""; + String dept = ""; + String useOrgName = ""; + String useOrgSid = ""; + String orgSidPath = ""; + String bankContractNo = ""; + String customer = ""; + String customerSid = ""; + if (scheduleDetails.getIsOtherPolicy().equals("1")) { + otherPeriod = scheduleDetails.getOtherPeriod(); + otherDate = sdf.format(scheduleDetails.getOtherRepayDate()); + otherFirstPay = String.valueOf(scheduleDetails.getOtherFirstRepay()); + otherMidPay = String.valueOf(scheduleDetails.getOtherMidRepay()); + otherLastPay = String.valueOf(scheduleDetails.getOtherLastRepay()); + otherDays = returnRepayDate(otherDate, otherPeriod); + } + if (null != busSalesOrder) { + if (StringUtils.isNotBlank(busSalesOrder.getCustomerName())) { + customer = busSalesOrder.getCustomerName(); + } + if (StringUtils.isNotBlank(busSalesOrder.getCustomerSid())) { + customerSid = busSalesOrder.getCustomerSid(); + } + if (StringUtils.isNotBlank(busSalesOrder.getOrgSid())) { + deptSid = busSalesOrder.getOrgSid(); + } + if (StringUtils.isNotBlank(busSalesOrder.getOrgName())) { + dept = busSalesOrder.getOrgName(); + } + if (StringUtils.isNotBlank(busSalesOrder.getOrgSidPath())) { + orgSidPath = busSalesOrder.getOrgSidPath(); + } + if (StringUtils.isNotBlank(busSalesOrder.getUseOrgName())) { + useOrgName = busSalesOrder.getUseOrgName(); + } + if (StringUtils.isNotBlank(busSalesOrder.getUseOrgSid())) { + useOrgSid = busSalesOrder.getUseOrgSid(); + } + } + if (null != loancontractVo) { + if (StringUtils.isNotBlank(loancontractVo.getBankContractNo())) { + bankContractNo = loancontractVo.getBankContractNo(); + } + } + String otherBankNo = ""; + if (StringUtils.isNotBlank(scheduleDetails.getOtherBankNo())) { + otherBankNo = scheduleDetails.getOtherBankNo(); + } + List vehicles = busSalesOrderVehicleFeign.selectListByOrderSidAndDkrSid(salesOrderSid, borrowerSid).getData(); + if (!vehicles.isEmpty()) { + for (BusSalesOrderVehicle vehicle : vehicles) { + String linkNo = vehicle.getLinkNo(); + String vinNo = ""; + if (linkNo.length() > 8) { + vinNo = linkNo.substring(linkNo.length() - 8); + } else { + vinNo = linkNo; + } + String busVinSid = vehicle.getSid(); + String vehMark = ""; + LoanWarrantInformation loanWarrantInformation = loanWarrantInformationService.fetchByBusVinSid(busVinSid); + if (null != loanWarrantInformation) { + if (StringUtils.isNotBlank(loanWarrantInformation.getVehicleMark())) { + vehMark = loanWarrantInformation.getVehicleMark(); + } + } + //主方案 + for (int i = 0; i < mainPeriod; i++) { + LoanRepaymentPlanDetailsDto mainDto = new LoanRepaymentPlanDetailsDto(); + mainDto.setSalesOrderSid(salesOrderSid); + mainDto.setLoanContractNo(loanContractNo); + mainDto.setLoanContractSid(loanContractSid); + mainDto.setPolicyName(policyName); + mainDto.setBankContractNo(bankContractNo); + mainDto.setCreateBySid(createBySid); + mainDto.setCustomer(customer); + mainDto.setCustomerSid(customerSid); + mainDto.setBorrowerSid(borrowerSid); + mainDto.setBorrowerName(borrowerName); + mainDto.setPeriod(String.valueOf(i + 1)); + mainDto.setScheduleSid(entity.getSid()); + mainDto.setBankName(bankName); + mainDto.setDept(dept); + mainDto.setDeptSid(deptSid); + mainDto.setUseOrgSid(useOrgSid); + mainDto.setUseOrgName(useOrgName); + mainDto.setOrgSidPath(orgSidPath); + mainDto.setBusVinSid(busVinSid); + mainDto.setVinNo(vinNo); + mainDto.setVehMark(vehMark); + mainDto.setSalesUserSid(staffSid); + mainDto.setStaffName(staffName); + mainDto.setPolicyOrOther("0"); + if (i == 0) { + mainDto.setDueMoney(mainFirstRepay); + } else if (i == mainPeriod - 1) { + mainDto.setDueMoney(mainLastRepay); + } else { + mainDto.setDueMoney(mainMidRepay); + } + if (!mainDays.isEmpty()) { + mainDto.setDueDate(mainDays.get(i)); + } + loanRepaymentPlanDetailsService.savePlanDetails(mainDto); + } + //其他融 + if (scheduleDetails.getIsOtherPolicy().equals("1")) { + OtherPolicyVo otherPolicyVo = baseMapper.selOtherPolicyByOrderSid(scheduleDetails.getSalesOrderSid()); + for (int i = 0; i < Integer.parseInt(otherPeriod); i++) { + LoanRepaymentPlanDetailsDto otherDto = new LoanRepaymentPlanDetailsDto(); + otherDto.setSalesOrderSid(salesOrderSid); + otherDto.setLoanContractNo(loanContractNo); + otherDto.setLoanContractSid(loanContractSid); + if (null != otherPolicyVo) { + if (StringUtils.isNotBlank(otherPolicyVo.getOtherPolicyName())) { + otherDto.setPolicyName(otherPolicyVo.getOtherPolicyName()); + } + if (StringUtils.isNotBlank(otherPolicyVo.getOtherBankName())) { + otherDto.setBankName(otherPolicyVo.getOtherBankName()); + } + } + otherDto.setBankContractNo(otherBankNo); + otherDto.setCreateBySid(createBySid); + otherDto.setCustomer(customer); + otherDto.setCustomerSid(customerSid); + otherDto.setBorrowerSid(borrowerSid); + otherDto.setBorrowerName(borrowerName); + otherDto.setPeriod(String.valueOf(i + 1)); + otherDto.setScheduleSid(entity.getSid()); + otherDto.setDept(dept); + otherDto.setDeptSid(deptSid); + otherDto.setUseOrgSid(useOrgSid); + otherDto.setUseOrgName(useOrgName); + otherDto.setOrgSidPath(orgSidPath); + otherDto.setBusVinSid(busVinSid); + otherDto.setVinNo(vinNo); + otherDto.setVehMark(vehMark); + otherDto.setSalesUserSid(staffSid); + otherDto.setStaffName(staffName); + otherDto.setPolicyOrOther("1"); + if (i == 0) { + otherDto.setDueMoney(otherFirstPay); + } else if (i == Integer.parseInt(otherPeriod) - 1) { + otherDto.setDueMoney(otherLastPay); + } else { + otherDto.setDueMoney(otherMidPay); + } + if (!otherDays.isEmpty()) { + otherDto.setDueDate(otherDays.get(i)); + } + loanRepaymentPlanDetailsService.savePlanDetails(otherDto); + } + } + + } + } + } + if (scheduleDetails.getSameBank().equals("1")) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + String createBySid = scheduleDetails.getCreateBySid(); + String staffSid = scheduleDetails.getStaffSid(); + String bankName = scheduleDetails.getBankName(); + String borrowerSid = scheduleDetails.getBorrowerSid(); + String borrowerName = scheduleDetails.getBorrowerName(); + String staffName = scheduleDetails.getStaffName(); + String salesOrderSid = scheduleDetails.getSalesOrderSid(); + String policyName = scheduleDetails.getPolicyName(); + String loanContractSid = scheduleDetails.getLoanContractSid(); + String loanContractNo = scheduleDetails.getLoanContractNo(); + int mainPeriod = Integer.parseInt(scheduleDetails.getMainPeriod()); + String mainDate = sdf.format(scheduleDetails.getMainRepayDate()); + List mainDays = returnRepayDate(mainDate, scheduleDetails.getMainPeriod()); + String mainFirstRepay = String.valueOf(scheduleDetails.getMainFirstRepay()); + String mainMidRepay = String.valueOf(scheduleDetails.getMainMidRepay()); + String mainLastRepay = String.valueOf(scheduleDetails.getMainLastRepay()); + String otherPeriod = ""; + String otherDate = ""; + String otherFirstPay = ""; + String otherMidPay = ""; + String otherLastPay = ""; + String deptSid = ""; + String dept = ""; + String useOrgName = ""; + String useOrgSid = ""; + String orgSidPath = ""; + String bankContractNo = ""; + String customer = ""; + String customerSid = ""; + if (scheduleDetails.getIsOtherPolicy().equals("1")) { + otherPeriod = scheduleDetails.getOtherPeriod(); + otherDate = sdf.format(scheduleDetails.getOtherRepayDate()); + otherFirstPay = String.valueOf(scheduleDetails.getOtherFirstRepay()); + otherMidPay = String.valueOf(scheduleDetails.getOtherMidRepay()); + otherLastPay = String.valueOf(scheduleDetails.getOtherLastRepay()); + } + if (null != busSalesOrder) { + if (StringUtils.isNotBlank(busSalesOrder.getCustomerName())) { + customer = busSalesOrder.getCustomerName(); + } + if (StringUtils.isNotBlank(busSalesOrder.getCustomerSid())) { + customerSid = busSalesOrder.getCustomerSid(); + } + if (StringUtils.isNotBlank(busSalesOrder.getOrgSid())) { + deptSid = busSalesOrder.getOrgSid(); + } + if (StringUtils.isNotBlank(busSalesOrder.getOrgName())) { + dept = busSalesOrder.getOrgName(); + } + if (StringUtils.isNotBlank(busSalesOrder.getOrgSidPath())) { + orgSidPath = busSalesOrder.getOrgSidPath(); + } + if (StringUtils.isNotBlank(busSalesOrder.getUseOrgName())) { + useOrgName = busSalesOrder.getUseOrgName(); + } + if (StringUtils.isNotBlank(busSalesOrder.getUseOrgSid())) { + useOrgSid = busSalesOrder.getUseOrgSid(); + } + } + if (null != loancontractVo) { + if (StringUtils.isNotBlank(loancontractVo.getBankContractNo())) { + bankContractNo = loancontractVo.getBankContractNo(); + } + } + List vehicles = busSalesOrderVehicleFeign.selectListByOrderSidAndDkrSid(salesOrderSid, borrowerSid).getData(); + if (!vehicles.isEmpty()) { + for (BusSalesOrderVehicle vehicle : vehicles) { + String linkNo = vehicle.getLinkNo(); + String vinNo = ""; + if (linkNo.length() > 8) { + vinNo = linkNo.substring(linkNo.length() - 8); } else { - mainDto.setDueMoney(mainMidRepay); - } - if (!mainDays.isEmpty()) { - mainDto.setDueDate(mainDays.get(i)); - } - loanRepaymentPlanDetailsService.savePlanDetails(mainDto); - } - //其他融 - if (scheduleDetails.getIsOtherPolicy().equals("1")) { - OtherPolicyVo otherPolicyVo = baseMapper.selOtherPolicyByOrderSid(scheduleDetails.getSalesOrderSid()); - for (int i = 0; i < Integer.parseInt(otherPeriod); i++) { - LoanRepaymentPlanDetailsDto otherDto = new LoanRepaymentPlanDetailsDto(); - otherDto.setSalesOrderSid(salesOrderSid); - otherDto.setLoanContractNo(loanContractNo); - otherDto.setLoanContractSid(loanContractSid); - if (null != otherPolicyVo) { - if (StringUtils.isNotBlank(otherPolicyVo.getOtherPolicyName())) { - otherDto.setPolicyName(otherPolicyVo.getOtherPolicyName()); - } - if (StringUtils.isNotBlank(otherPolicyVo.getOtherBankName())) { - otherDto.setBankName(otherPolicyVo.getOtherBankName()); - } + vinNo = linkNo; + } + String busVinSid = vehicle.getSid(); + String vehMark = ""; + LoanWarrantInformation loanWarrantInformation = loanWarrantInformationService.fetchByBusVinSid(busVinSid); + if (null != loanWarrantInformation) { + if (StringUtils.isNotBlank(loanWarrantInformation.getVehicleMark())) { + vehMark = loanWarrantInformation.getVehicleMark(); } - otherDto.setBankContractNo(otherBankNo); - otherDto.setCreateBySid(createBySid); - otherDto.setCustomer(customer); - otherDto.setCustomerSid(customerSid); - otherDto.setBorrowerSid(borrowerSid); - otherDto.setBorrowerName(borrowerName); - otherDto.setPeriod(String.valueOf(i + 1)); - otherDto.setScheduleSid(entity.getSid()); - otherDto.setDept(dept); - otherDto.setDeptSid(deptSid); - otherDto.setUseOrgSid(useOrgSid); - otherDto.setUseOrgName(useOrgName); - otherDto.setOrgSidPath(orgSidPath); - otherDto.setBusVinSid(busVinSid); - otherDto.setVinNo(vinNo); - otherDto.setVehMark(vehMark); - otherDto.setSalesUserSid(staffSid); - otherDto.setStaffName(staffName); - otherDto.setPolicyOrOther("1"); + } + //主方案 + for (int i = 0; i < mainPeriod; i++) { + LoanRepaymentPlanDetailsDto mainDto = new LoanRepaymentPlanDetailsDto(); + mainDto.setSalesOrderSid(salesOrderSid); + mainDto.setLoanContractNo(loanContractNo); + mainDto.setLoanContractSid(loanContractSid); + mainDto.setPolicyName(policyName); + mainDto.setBankContractNo(bankContractNo); + mainDto.setCreateBySid(createBySid); + mainDto.setCustomer(customer); + mainDto.setCustomerSid(customerSid); + mainDto.setBorrowerSid(borrowerSid); + mainDto.setBorrowerName(borrowerName); + mainDto.setPeriod(String.valueOf(i + 1)); + mainDto.setScheduleSid(entity.getSid()); + mainDto.setBankName(bankName); + mainDto.setDept(dept); + mainDto.setDeptSid(deptSid); + mainDto.setUseOrgSid(useOrgSid); + mainDto.setUseOrgName(useOrgName); + mainDto.setOrgSidPath(orgSidPath); + mainDto.setBusVinSid(busVinSid); + mainDto.setVinNo(vinNo); + mainDto.setVehMark(vehMark); + mainDto.setSalesUserSid(staffSid); + mainDto.setStaffName(staffName); + mainDto.setPolicyOrOther("1"); + BigDecimal otherRepay = new BigDecimal(0); if (i == 0) { - otherDto.setDueMoney(otherFirstPay); + otherRepay = new BigDecimal(otherFirstPay); } else if (i == Integer.parseInt(otherPeriod) - 1) { - otherDto.setDueMoney(otherLastPay); + otherRepay = new BigDecimal(otherLastPay); + } else if (i > 0 && i < Integer.parseInt(otherPeriod) - 1) { + otherRepay = new BigDecimal(otherMidPay); + } + if (i == 0) { + BigDecimal mainF = new BigDecimal(mainFirstRepay); + BigDecimal add = mainF.add(otherRepay); + mainDto.setDueMoney(String.valueOf(add)); + } else if (i == mainPeriod - 1) { + BigDecimal mainL = new BigDecimal(mainLastRepay); + BigDecimal add = mainL.add(otherRepay); + mainDto.setDueMoney(String.valueOf(add)); } else { - otherDto.setDueMoney(otherMidPay); + BigDecimal mainM = new BigDecimal(mainMidRepay); + BigDecimal add = mainM.add(otherRepay); + mainDto.setDueMoney(String.valueOf(add)); } - if (!otherDays.isEmpty()) { - otherDto.setDueDate(otherDays.get(i)); + if (!mainDays.isEmpty()) { + mainDto.setDueDate(mainDays.get(i)); } - loanRepaymentPlanDetailsService.savePlanDetails(otherDto); - } - } - - } - } - } - if (scheduleDetails.getSameBank().equals("1")) { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - String createBySid = scheduleDetails.getCreateBySid(); - String staffSid = scheduleDetails.getStaffSid(); - String bankName = scheduleDetails.getBankName(); - String borrowerSid = scheduleDetails.getBorrowerSid(); - String borrowerName = scheduleDetails.getBorrowerName(); - String staffName = scheduleDetails.getStaffName(); - String salesOrderSid = scheduleDetails.getSalesOrderSid(); - String policyName = scheduleDetails.getPolicyName(); - String loanContractSid = scheduleDetails.getLoanContractSid(); - String loanContractNo = scheduleDetails.getLoanContractNo(); - int mainPeriod = Integer.parseInt(scheduleDetails.getMainPeriod()); - String mainDate = sdf.format(scheduleDetails.getMainRepayDate()); - List mainDays = returnRepayDate(mainDate, scheduleDetails.getMainPeriod()); - String mainFirstRepay = String.valueOf(scheduleDetails.getMainFirstRepay()); - String mainMidRepay = String.valueOf(scheduleDetails.getMainMidRepay()); - String mainLastRepay = String.valueOf(scheduleDetails.getMainLastRepay()); - String otherPeriod = ""; - String otherDate = ""; - String otherFirstPay = ""; - String otherMidPay = ""; - String otherLastPay = ""; - String deptSid = ""; - String dept = ""; - String useOrgName = ""; - String useOrgSid = ""; - String orgSidPath = ""; - String bankContractNo = ""; - String customer = ""; - String customerSid = ""; - if (scheduleDetails.getIsOtherPolicy().equals("1")) { - otherPeriod = scheduleDetails.getOtherPeriod(); - otherDate = sdf.format(scheduleDetails.getOtherRepayDate()); - otherFirstPay = String.valueOf(scheduleDetails.getOtherFirstRepay()); - otherMidPay = String.valueOf(scheduleDetails.getOtherMidRepay()); - otherLastPay = String.valueOf(scheduleDetails.getOtherLastRepay()); - } - if (null != busSalesOrder) { - if (StringUtils.isNotBlank(busSalesOrder.getCustomerName())) { - customer = busSalesOrder.getCustomerName(); - } - if (StringUtils.isNotBlank(busSalesOrder.getCustomerSid())) { - customerSid = busSalesOrder.getCustomerSid(); - } - if (StringUtils.isNotBlank(busSalesOrder.getOrgSid())) { - deptSid = busSalesOrder.getOrgSid(); - } - if (StringUtils.isNotBlank(busSalesOrder.getOrgName())) { - dept = busSalesOrder.getOrgName(); - } - if (StringUtils.isNotBlank(busSalesOrder.getOrgSidPath())) { - orgSidPath = busSalesOrder.getOrgSidPath(); - } - if (StringUtils.isNotBlank(busSalesOrder.getUseOrgName())) { - useOrgName = busSalesOrder.getUseOrgName(); - } - if (StringUtils.isNotBlank(busSalesOrder.getUseOrgSid())) { - useOrgSid = busSalesOrder.getUseOrgSid(); - } - } - if (null != loancontractVo) { - if (StringUtils.isNotBlank(loancontractVo.getBankContractNo())) { - bankContractNo = loancontractVo.getBankContractNo(); - } - } - List vehicles = busSalesOrderVehicleFeign.selectListByOrderSidAndDkrSid(salesOrderSid, borrowerSid).getData(); - if (!vehicles.isEmpty()) { - for (BusSalesOrderVehicle vehicle : vehicles) { - String linkNo = vehicle.getLinkNo(); - String vinNo = ""; - if (linkNo.length() > 8) { - vinNo = linkNo.substring(linkNo.length() - 8); - } else { - vinNo = linkNo; - } - String busVinSid = vehicle.getSid(); - String vehMark = ""; - LoanWarrantInformation loanWarrantInformation = loanWarrantInformationService.fetchByBusVinSid(busVinSid); - if (null != loanWarrantInformation) { - if (StringUtils.isNotBlank(loanWarrantInformation.getVehicleMark())) { - vehMark = loanWarrantInformation.getVehicleMark(); - } - } - //主方案 - for (int i = 0; i < mainPeriod; i++) { - LoanRepaymentPlanDetailsDto mainDto = new LoanRepaymentPlanDetailsDto(); - mainDto.setSalesOrderSid(salesOrderSid); - mainDto.setLoanContractNo(loanContractNo); - mainDto.setLoanContractSid(loanContractSid); - mainDto.setPolicyName(policyName); - mainDto.setBankContractNo(bankContractNo); - mainDto.setCreateBySid(createBySid); - mainDto.setCustomer(customer); - mainDto.setCustomerSid(customerSid); - mainDto.setBorrowerSid(borrowerSid); - mainDto.setBorrowerName(borrowerName); - mainDto.setPeriod(String.valueOf(i + 1)); - mainDto.setScheduleSid(entity.getSid()); - mainDto.setBankName(bankName); - mainDto.setDept(dept); - mainDto.setDeptSid(deptSid); - mainDto.setUseOrgSid(useOrgSid); - mainDto.setUseOrgName(useOrgName); - mainDto.setOrgSidPath(orgSidPath); - mainDto.setBusVinSid(busVinSid); - mainDto.setVinNo(vinNo); - mainDto.setVehMark(vehMark); - mainDto.setSalesUserSid(staffSid); - mainDto.setStaffName(staffName); - mainDto.setPolicyOrOther("1"); - BigDecimal otherRepay = new BigDecimal(0); - if (i == 0) { - otherRepay = new BigDecimal(otherFirstPay); - } else if (i == Integer.parseInt(otherPeriod) - 1) { - otherRepay = new BigDecimal(otherLastPay); - } else if (i > 0 && i < Integer.parseInt(otherPeriod) - 1) { - otherRepay = new BigDecimal(otherMidPay); + loanRepaymentPlanDetailsService.savePlanDetails(mainDto); } - if (i == 0) { - BigDecimal mainF = new BigDecimal(mainFirstRepay); - BigDecimal add = mainF.add(otherRepay); - mainDto.setDueMoney(String.valueOf(add)); - } else if (i == mainPeriod - 1) { - BigDecimal mainL = new BigDecimal(mainLastRepay); - BigDecimal add = mainL.add(otherRepay); - mainDto.setDueMoney(String.valueOf(add)); - } else { - BigDecimal mainM = new BigDecimal(mainMidRepay); - BigDecimal add = mainM.add(otherRepay); - mainDto.setDueMoney(String.valueOf(add)); - } - if (!mainDays.isEmpty()) { - mainDto.setDueDate(mainDays.get(i)); - } - loanRepaymentPlanDetailsService.savePlanDetails(mainDto); } } } @@ -1234,12 +2071,12 @@ public class LoanRepaymentScheduleService extends MybatisBaseService { - pushScheduleVoucher(schedule); + pushScheduleVoucher3(schedule); }); //设置消贷合同是否生成还款计划状态 Future future3 = pool.submit(() -> { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - busSalesOrderLoancontractFeign.setRepaymentState(dto.getSalesOrderSid(),sdf.format(new Date())); + busSalesOrderLoancontractFeign.setRepaymentState(dto.getSalesOrderSid(), sdf.format(new Date())); }); } catch (Exception e) { e.printStackTrace(); @@ -1539,6 +2376,248 @@ public class LoanRepaymentScheduleService extends MybatisBaseService vehicles = busSalesOrderVehicleFeign.selectListByOrderSidAndXdConSid(salesOrderSid, loanContractSid).getData(); + String bankName = ""; + String otherBankName = ""; + String isOtherPolicy = schedule.getIsOtherPolicy(); + String sameBank = schedule.getSameBank(); + if (isOtherPolicy.equals("1")) { + if (sameBank.equals("0")) { + LoanSolutions loanSolutions = loanSolutionsService.selectBySaleOrderSid(salesOrderSid); + //查看是否有其他融 + LoanSolutionsOtherpolicy otherpolicy = loanSolutionsOtherpolicyService.selectByLoanSid(loanSolutions.getSid()); + if (null != otherpolicy) { + if (StringUtils.isNotBlank(otherpolicy.getOtherPolicyPeriod())) { + String otherPolicySid = otherpolicy.getOtherPolicySid(); + LoanFinOtherPolicy loanFinOtherPolicy = loanFinOtherPolicyService.fetchBySid(otherPolicySid); + if (loanFinOtherPolicy != null) { + if (StringUtils.isNotBlank(loanFinOtherPolicy.getBankSid())) { + String otherBankSid = loanFinOtherPolicy.getBankSid(); + LoanFinBank loanFinBank = loanFinBankService.fetchBySid(otherBankSid); + if (null != loanFinBank) { + otherBankName = loanFinBank.getBankShortName(); + } + } + } + } + } + } + } + LoanFinBank loanFinBank = loanFinBankService.selBankByOrderSid(salesOrderSid); + if (null != loanFinBank) { + bankName = loanFinBank.getBankShortName(); + } + if (null != salesOrder) { + if (!vehicles.isEmpty()) { + for (BusSalesOrderVehicle busSalesOrderVehicle : vehicles) { + if (isOtherPolicy.equals("0")) { + GeneralVoucher generalVoucher = new GeneralVoucher(); + List voucherDetails = new ArrayList<>(); + String useOrgSid = salesOrder.getUseOrgSid(); + SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData(); + if (null != organizationVo) { + generalVoucher.setUseOrgCode(organizationVo.getOrgCode()); + } + GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail(); + if (StringUtils.isNotBlank(bankName)) { + voucherDetail.setBankName(bankName); + } + if (StringUtils.isNotBlank(schedule.getCwDeptNo())) { + voucherDetail.setDeptCode(schedule.getCwDeptNo()); + } + // String busVinSid = vehicle.getSid(); + // BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.details(busVinSid).getData(); + if (null != busSalesOrderVehicle) { + String customerNumber = ""; + //判断财务系统是否有客户 + Boolean aBoolean = finKingDeeFeign.customerExistState(busSalesOrderVehicle.getTemporaryNo()).getData(); + String linkNo = ""; + BusSalesOrderBorrowerDetailsVo borrowerDetailsVo = busSalesOrderBorrowerFeign.fetchDetailsBySid(busSalesOrderVehicle.getBorrowerSid()).getData(); + if (!aBoolean) { + // List bdCustomers = new ArrayList<>(); + BdCustomer bdCustomer = new BdCustomer(); + bdCustomer.setFNumber(busSalesOrderVehicle.getTemporaryNo()); + bdCustomer.setFShortName(salesOrder.getContractNo()); + BasePurchaseSystemDetailsVo data = basePurchaseSystemFeign.fetchDetailsByDeptSid(salesOrder.getPurchaseSystemSid()).getData(); + bdCustomer.setTOrgIds(data.getOrgCode()); + if (org.apache.commons.lang3.StringUtils.isNotBlank(busSalesOrderVehicle.getLinkNo())) { + String vinNo = busSalesOrderVehicle.getLinkNo(); + if (vinNo.length() > 8) { + linkNo = vinNo.substring(vinNo.length() - 8); + } else { + linkNo = busSalesOrderVehicle.getLinkNo(); + } + if (null != borrowerDetailsVo) { + bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + linkNo); + } + } else { + if (null != borrowerDetailsVo) { + bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + busSalesOrderVehicle.getTemporaryNo()); + } + } + // bdCustomers.add(bdCustomer); + ResultBean resultBean = finKingDeeFeign.draftBdCustomer(bdCustomer); + if (resultBean.getSuccess()) { + customerNumber = bdCustomer.getFNumber(); + } + } else { + customerNumber = busSalesOrderVehicle.getTemporaryNo(); + } + voucherDetail.setCustomerCode(customerNumber); + } + String amount = baseMapper.selSumAmountDueMoneyByBusVinSid(schedule.getSid(), busSalesOrderVehicle.getSid(), "0"); + voucherDetail.setAmount(new BigDecimal(amount)); + voucherDetails.add(voucherDetail); + generalVoucher.setVoucherDetails(voucherDetails); + finKingDeeFeign.saveScheduleVoucher(generalVoucher); + } + if (isOtherPolicy.equals("1")) { + if (sameBank.equals("0")) { + for (int i = 0; i <= 1; i++) { + GeneralVoucher generalVoucher = new GeneralVoucher(); + List voucherDetails = new ArrayList<>(); + String useOrgSid = salesOrder.getUseOrgSid(); + SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData(); + if (null != organizationVo) { + generalVoucher.setUseOrgCode(organizationVo.getOrgCode()); + } + GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail(); + if (i == 0) { + if (StringUtils.isNotBlank(bankName)) { + voucherDetail.setBankName(bankName); + } + } else if (i == 1) { + if (StringUtils.isNotBlank(otherBankName)) { + voucherDetail.setBankName(otherBankName); + } + } + if (StringUtils.isNotBlank(schedule.getCwDeptNo())) { + voucherDetail.setDeptCode(schedule.getCwDeptNo()); + } + // String busVinSid = vehicle.getSid(); + // BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.details(busVinSid).getData(); + if (null != busSalesOrderVehicle) { + String customerNumber = ""; + //判断财务系统是否有客户 + Boolean aBoolean = finKingDeeFeign.customerExistState(busSalesOrderVehicle.getTemporaryNo()).getData(); + String linkNo = ""; + BusSalesOrderBorrowerDetailsVo borrowerDetailsVo = busSalesOrderBorrowerFeign.fetchDetailsBySid(busSalesOrderVehicle.getBorrowerSid()).getData(); + if (!aBoolean) { + // List bdCustomers = new ArrayList<>(); + BdCustomer bdCustomer = new BdCustomer(); + bdCustomer.setFNumber(busSalesOrderVehicle.getTemporaryNo()); + bdCustomer.setFShortName(salesOrder.getContractNo()); + BasePurchaseSystemDetailsVo data = basePurchaseSystemFeign.fetchDetailsByDeptSid(salesOrder.getPurchaseSystemSid()).getData(); + bdCustomer.setTOrgIds(data.getOrgCode()); + if (org.apache.commons.lang3.StringUtils.isNotBlank(busSalesOrderVehicle.getLinkNo())) { + String vinNo = busSalesOrderVehicle.getLinkNo(); + if (vinNo.length() > 8) { + linkNo = vinNo.substring(vinNo.length() - 8); + } else { + linkNo = busSalesOrderVehicle.getLinkNo(); + } + if (null != borrowerDetailsVo) { + bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + linkNo); + } + } else { + if (null != borrowerDetailsVo) { + bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + busSalesOrderVehicle.getTemporaryNo()); + } + } + // bdCustomers.add(bdCustomer); + ResultBean resultBean = finKingDeeFeign.draftBdCustomer(bdCustomer); + if (resultBean.getSuccess()) { + customerNumber = bdCustomer.getFNumber(); + } + } else { + customerNumber = busSalesOrderVehicle.getTemporaryNo(); + } + voucherDetail.setCustomerCode(customerNumber); + } + if (i == 0) { + String amount = baseMapper.selSumAmountDueMoneyByBusVinSid(schedule.getSid(), busSalesOrderVehicle.getSid(), "0"); + voucherDetail.setAmount(new BigDecimal(amount)); + } else if (i == 1) { + String amount = baseMapper.selSumAmountDueMoneyByBusVinSid(schedule.getSid(), busSalesOrderVehicle.getSid(), "1"); + voucherDetail.setAmount(new BigDecimal(amount)); + } + voucherDetails.add(voucherDetail); + generalVoucher.setVoucherDetails(voucherDetails); + finKingDeeFeign.saveScheduleVoucher(generalVoucher); + } + } + if (sameBank.equals("1")) { + GeneralVoucher generalVoucher = new GeneralVoucher(); + List voucherDetails = new ArrayList<>(); + String useOrgSid = salesOrder.getUseOrgSid(); + SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData(); + if (null != organizationVo) { + generalVoucher.setUseOrgCode(organizationVo.getOrgCode()); + } + GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail(); + if (StringUtils.isNotBlank(bankName)) { + voucherDetail.setBankName(bankName); + } + if (StringUtils.isNotBlank(schedule.getCwDeptNo())) { + voucherDetail.setDeptCode(schedule.getCwDeptNo()); + } + // String busVinSid = vehicle.getSid(); + // BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.details(busVinSid).getData(); + if (null != busSalesOrderVehicle) { + String customerNumber = ""; + //判断财务系统是否有客户 + Boolean aBoolean = finKingDeeFeign.customerExistState(busSalesOrderVehicle.getTemporaryNo()).getData(); + String linkNo = ""; + BusSalesOrderBorrowerDetailsVo borrowerDetailsVo = busSalesOrderBorrowerFeign.fetchDetailsBySid(busSalesOrderVehicle.getBorrowerSid()).getData(); + if (!aBoolean) { + // List bdCustomers = new ArrayList<>(); + BdCustomer bdCustomer = new BdCustomer(); + bdCustomer.setFNumber(busSalesOrderVehicle.getTemporaryNo()); + bdCustomer.setFShortName(salesOrder.getContractNo()); + BasePurchaseSystemDetailsVo data = basePurchaseSystemFeign.fetchDetailsByDeptSid(salesOrder.getPurchaseSystemSid()).getData(); + bdCustomer.setTOrgIds(data.getOrgCode()); + if (org.apache.commons.lang3.StringUtils.isNotBlank(busSalesOrderVehicle.getLinkNo())) { + String vinNo = busSalesOrderVehicle.getLinkNo(); + if (vinNo.length() > 8) { + linkNo = vinNo.substring(vinNo.length() - 8); + } else { + linkNo = busSalesOrderVehicle.getLinkNo(); + } + if (null != borrowerDetailsVo) { + bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + linkNo); + } + } else { + if (null != borrowerDetailsVo) { + bdCustomer.setFName(borrowerDetailsVo.getBorrowerName() + busSalesOrderVehicle.getTemporaryNo()); + } + } + // bdCustomers.add(bdCustomer); + ResultBean resultBean = finKingDeeFeign.draftBdCustomer(bdCustomer); + if (resultBean.getSuccess()) { + customerNumber = bdCustomer.getFNumber(); + } + } else { + customerNumber = busSalesOrderVehicle.getTemporaryNo(); + } + voucherDetail.setCustomerCode(customerNumber); + } + String amount = baseMapper.selSumAmountDueMoneyByBusVinSid(schedule.getSid(), busSalesOrderVehicle.getSid(), "1"); + voucherDetail.setAmount(new BigDecimal(amount)); + voucherDetails.add(voucherDetail); + generalVoucher.setVoucherDetails(voucherDetails); + finKingDeeFeign.saveScheduleVoucher(generalVoucher); + } + } + } + } + + } + } + public List returnVoucherPdf2(LoanRepaymentSchedule schedule) { List pdfs = new ArrayList<>(); String salesOrderSid = schedule.getSalesOrderSid(); @@ -1560,7 +2639,7 @@ public class LoanRepaymentScheduleService extends MybatisBaseService moneyAndPeriodVos = baseMapper.selPlansInfoByMainSidAndVinNo(schedule.getSid(),vinNo,mainOrOther); + List moneyAndPeriodVos = baseMapper.selPlansInfoByMainSidAndVinNo(schedule.getSid(), vinNo, mainOrOther); if (!moneyAndPeriodVos.isEmpty()) { MoneyAndPeriodVo f = moneyAndPeriodVos.get(0); MoneyAndPeriodVo m = moneyAndPeriodVos.get(1); @@ -1602,7 +2681,7 @@ public class LoanRepaymentScheduleService extends MybatisBaseService moneyAndPeriodVos = baseMapper.selPlansInfoByMainSidAndVinNo(schedule.getSid(),vinNo,mainOrOther); + List moneyAndPeriodVos = baseMapper.selPlansInfoByMainSidAndVinNo(schedule.getSid(), vinNo, mainOrOther); if (!moneyAndPeriodVos.isEmpty()) { MoneyAndPeriodVo f = moneyAndPeriodVos.get(0); MoneyAndPeriodVo m = moneyAndPeriodVos.get(1); @@ -1656,14 +2735,14 @@ public class LoanRepaymentScheduleService extends MybatisBaseService moneyAndPeriodVos = baseMapper.selPlansInfoByMainSidAndVinNo(schedule.getSid(),vinNo,mainOrOther); + List moneyAndPeriodVos = baseMapper.selPlansInfoByMainSidAndVinNo(schedule.getSid(), vinNo, mainOrOther); if (!moneyAndPeriodVos.isEmpty()) { MoneyAndPeriodVo f = moneyAndPeriodVos.get(0); MoneyAndPeriodVo m = moneyAndPeriodVos.get(1); @@ -1686,7 +2765,7 @@ public class LoanRepaymentScheduleService extends MybatisBaseService moneyAndPeriodVos = baseMapper.selPlansInfoByMainSidAndVinNo(schedule.getSid(),vinNo,mainOrOther); + List moneyAndPeriodVos = baseMapper.selPlansInfoByMainSidAndVinNo(schedule.getSid(), vinNo, mainOrOther); if (!moneyAndPeriodVos.isEmpty()) { MoneyAndPeriodVo f = moneyAndPeriodVos.get(0); if (StringUtils.isNotBlank(f.getBankName())) { @@ -1739,7 +2818,7 @@ public class LoanRepaymentScheduleService extends MybatisBaseService moneyAndPeriodVos = baseMapper.selPlansInfoByMainSidAndVinNo(schedule.getSid(),vinNo,mainOrOther); + List moneyAndPeriodVos = baseMapper.selPlansInfoByMainSidAndVinNo(schedule.getSid(), vinNo, mainOrOther); if (!moneyAndPeriodVos.isEmpty()) { MoneyAndPeriodVo f = moneyAndPeriodVos.get(0); MoneyAndPeriodVo m = moneyAndPeriodVos.get(1); @@ -1789,7 +2868,7 @@ public class LoanRepaymentScheduleService extends MybatisBaseService> exportExcel(List sids) { + ResultBean rb = ResultBean.fireFail(); + List vos = baseMapper.selPlansExcel(sids); + return rb.success().setData(vos); + } }