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-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/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}
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 @@
-
\ No newline at end of file
+
+ SELECT
+ IFNULL(SUM(dueMoney),0)
+ FROM loan_repayment_plan_details
+ WHERE
+ scheduleSid = #{mainSid} AND policyOrOther = #{mainOrOther} AND busVinSid =#{busVinSid}
+
+
+ SELECT
+ @row_number := @row_number + 1 AS rankNo,
+ p.loanContractSid,
+ p.createTime,
+ p.customer,
+ p.staffName,
+ p.borrowerName,
+ p.vinNo,
+ p.vehMark,
+ p.loanContractNo,
+ p.bankContractNo,
+ p.bankName,
+ p.policyName,
+ p.period,
+ p.dueMoney,
+ p.dueDate,
+ CASE
+ p.policyOrOther
+ WHEN '1' THEN
+ '是'
+ WHEN '0' THEN
+ '否'
+ END AS policyOrOther,
+ p.dept,
+ p.useOrgName
+ FROM
+ loan_repayment_plan_details AS p,(
+ SELECT
+ @row_number := 0
+ ) AS t
+ WHERE p.loanContractSid in
+
+ #{item}
+
+
+
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);
+ }
}
diff --git a/doc/databases/yxt-as.sql b/doc/databases/yxt-as.sql
index 1b5153b51e..7328d3d712 100644
--- a/doc/databases/yxt-as.sql
+++ b/doc/databases/yxt-as.sql
@@ -240,4 +240,70 @@ CREATE TABLE `as_busclaim_check`
PRIMARY KEY (`id`),
KEY `id` (`id`)
) ENGINE = INNODB
- DEFAULT CHARSET = utf8 COMMENT ='索赔单待核对';
\ No newline at end of file
+ DEFAULT CHARSET = utf8 COMMENT ='索赔单待核对';
+
+DROP TABLE IF EXISTS `as_busclaim_check_apply`;
+CREATE TABLE `as_busclaim_check_apply`
+(
+ `id` int(32) NOT NULL AUTO_INCREMENT COMMENT 'id',
+ `sid` varchar(64) NOT NULL COMMENT 'sid',
+ `lockVersion` int(32) DEFAULT '0' COMMENT '版本锁',
+ `createTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+ `modifyTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
+ `isEnable` int(32) DEFAULT '1' COMMENT '是否可用:1可用,0不可用',
+ `state` int(32) DEFAULT '1' COMMENT '1正常、0作废,申请-审批中-完成-作废',
+ `isDelete` int(32) DEFAULT '0' COMMENT '是否删除:0未删除,1已删除',
+ `remarks` varchar(255) DEFAULT NULL COMMENT '备注',
+ `createBySid` varchar(64) DEFAULT NULL COMMENT '创建人sid',
+ `updateBySid` varchar(64) DEFAULT NULL COMMENT '修改人sid',
+ `billNo` varchar(64) DEFAULT NULL COMMENT '单据编号',
+ `createByName` varchar(64) DEFAULT NULL COMMENT '申请人',
+ `createDeptSid` varchar(64) DEFAULT NULL COMMENT '申请部门sid',
+ `createDeptName` varchar(64) DEFAULT NULL COMMENT '申请部门',
+ `file` text DEFAULT NULL COMMENT '附件',
+ `createOrgSid` varchar(64) DEFAULT NULL COMMENT '创建组织sid',
+ `useOrgSid` varchar(64) DEFAULT NULL COMMENT '使用组织sid',
+ `useOrgName` varchar(64) DEFAULT NULL COMMENT '分公司',
+ `closeDate` varchar(64) DEFAULT NULL COMMENT '办结日期',
+ `procInstId` varchar(64) DEFAULT NULL COMMENT '实例id',
+ `procDefId` varchar(64) DEFAULT NULL COMMENT '流程定义id',
+ `taskId` varchar(64) DEFAULT NULL COMMENT '任务id',
+ `taskDefKey` varchar(64) DEFAULT NULL COMMENT '环节id',
+ `nodeState` varchar(64) DEFAULT NULL COMMENT '流程状态',
+ PRIMARY KEY (`id`),
+ KEY `id` (`id`)
+) ENGINE = INNODB
+ DEFAULT CHARSET = utf8 COMMENT ='索赔单调整申请';
+
+DROP TABLE IF EXISTS `as_busclaim_check_apply_detail`;
+CREATE TABLE `as_busclaim_check_apply_detail`
+(
+ `id` int(32) NOT NULL AUTO_INCREMENT COMMENT 'id',
+ `sid` varchar(64) NOT NULL COMMENT 'sid',
+ `lockVersion` int(32) DEFAULT '0' COMMENT '版本锁',
+ `createTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+ `modifyTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
+ `isEnable` int(32) DEFAULT '1' COMMENT '是否可用:1可用,0不可用',
+ `state` int(32) DEFAULT '1' COMMENT '1正常、0作废,申请-审批中-完成-作废',
+ `isDelete` int(32) DEFAULT '0' COMMENT '是否删除:0未删除,1已删除',
+ `remarks` varchar(255) DEFAULT NULL COMMENT '备注',
+ `createBySid` varchar(64) DEFAULT NULL COMMENT '创建人sid',
+ `updateBySid` varchar(64) DEFAULT NULL COMMENT '修改人sid',
+ `billSid` varchar(64) DEFAULT NULL COMMENT '单据sid',
+ `repairBillNo` varchar(64) DEFAULT NULL COMMENT '维修工单号',
+ `vehMark` varchar(64) DEFAULT NULL COMMENT '车牌号',
+ `vinNo` varchar(64) DEFAULT NULL COMMENT '车架号',
+ `claimBillNo` varchar(64) DEFAULT NULL COMMENT '索赔单编号',
+ `billInvoiceSid` varchar(64) DEFAULT NULL COMMENT '索赔单开票sid',
+ `billInvoiceDetailSid` varchar(64) DEFAULT NULL COMMENT '索赔单开票明细sid',
+ `claimHourAmount` decimal(10, 2) DEFAULT NULL COMMENT '差异调整工时费',
+ `claimGoodsAmount` decimal(10, 2) DEFAULT NULL COMMENT '差异调整材料费',
+ `claimOutAmount` decimal(10, 2) DEFAULT NULL COMMENT '差异调整外出费',
+ `claimSubsidyAmount` decimal(10, 2) DEFAULT NULL COMMENT '差异调整厂家补助',
+ `claimOtherAmount` decimal(10, 2) DEFAULT NULL COMMENT '差异调整其他费用',
+ `reserved` decimal(10,2) DEFAULT NULL COMMENT '预留',
+ `reason` varchar(64) DEFAULT NULL COMMENT '调整原因',
+ PRIMARY KEY (`id`),
+ KEY `id` (`id`)
+) ENGINE = INNODB
+ DEFAULT CHARSET = utf8 COMMENT ='索赔单调整申请明细';
\ No newline at end of file
diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapply/AsBusclaimCheckApply.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapply/AsBusclaimCheckApply.java
new file mode 100644
index 0000000000..74473e8150
--- /dev/null
+++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapply/AsBusclaimCheckApply.java
@@ -0,0 +1,45 @@
+package com.yxt.anrui.as.api.asbusclaimcheckapply;
+
+import com.yxt.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @description:
+ * @author: dimengzhe
+ * @date: 2024/5/11
+ **/
+@Data
+public class AsBusclaimCheckApply extends BaseEntity {
+ private static final long serialVersionUID = 4492743919444158176L;
+
+ private String billNo;
+ @ApiModelProperty("申请人")
+ private String createByName;
+ @ApiModelProperty("申请部门sid")
+ private String createDeptSid;
+ @ApiModelProperty("申请部门")
+ private String createDeptName;
+ @ApiModelProperty("附件")
+ private String file;
+ @ApiModelProperty("创建组织sid")
+ private String createOrgSid;
+ @ApiModelProperty("使用组织sid")
+ private String useOrgSid;
+ @ApiModelProperty("分公司")
+ private String useOrgName;
+ @ApiModelProperty("办结日期")
+ private String closeDate;
+ @ApiModelProperty("实例id")
+ private String procInstId;
+ @ApiModelProperty("流程定义id")
+ private String procDefId;
+ @ApiModelProperty("任务iD")
+ private String taskId;
+ @ApiModelProperty("环节iD")
+ private String taskDefKey;
+ @ApiModelProperty("流程状态")
+ private String nodeState;
+}
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
new file mode 100644
index 0000000000..9ef8314b0b
--- /dev/null
+++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapply/AsBusclaimCheckApplyDetailsVo.java
@@ -0,0 +1,35 @@
+package com.yxt.anrui.as.api.asbusclaimcheckapply;
+
+import com.yxt.anrui.as.api.asbusclaimcheckapplydetail.AsBusclaimCheckApplyDetailVo;
+import com.yxt.anrui.as.api.asbusclaiminvoicebilldetail.AsBusclaimInvoiceBillDetailVo;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @description:
+ * @author: dimengzhe
+ * @date: 2024/5/11
+ **/
+@Data
+public class AsBusclaimCheckApplyDetailsVo {
+
+ private String sid;
+ private String createBySid;
+ private String createByName;
+// private String orgPath;
+
+ private String createTime;
+
+ @ApiModelProperty("申请部门sid")
+ private String createDeptSid;
+ @ApiModelProperty("申请部门")
+ private String createDeptName;
+
+ private List fileList = new ArrayList<>();
+ private String remarks;
+
+ private List detailList = new ArrayList<>();
+}
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
new file mode 100644
index 0000000000..229f621aa9
--- /dev/null
+++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapply/AsBusclaimCheckApplyDto.java
@@ -0,0 +1,34 @@
+package com.yxt.anrui.as.api.asbusclaimcheckapply;
+
+import com.yxt.anrui.as.api.asbusclaimcheckapplydetail.AsBusclaimCheckApplyDetailDto;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @description:
+ * @author: dimengzhe
+ * @date: 2024/5/11
+ **/
+@Data
+public class AsBusclaimCheckApplyDto {
+
+ private String sid;
+ private String createBySid;
+ private String createByName;
+// private String orgPath;
+
+ private String createTime;
+
+ @ApiModelProperty("申请部门sid")
+ private String createDeptSid;
+ @ApiModelProperty("申请部门")
+ private String createDeptName;
+
+ private List fileList = new ArrayList<>();
+ private String remarks;
+
+ private List detailsList = new ArrayList<>();
+}
diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapply/AsBusclaimCheckApplyQuery.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapply/AsBusclaimCheckApplyQuery.java
new file mode 100644
index 0000000000..6ab36b426d
--- /dev/null
+++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapply/AsBusclaimCheckApplyQuery.java
@@ -0,0 +1,35 @@
+package com.yxt.anrui.as.api.asbusclaimcheckapply;
+
+import com.yxt.common.core.query.Query;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @description:
+ * @author: dimengzhe
+ * @date: 2024/5/11
+ **/
+@Data
+public class AsBusclaimCheckApplyQuery implements Query {
+ private static final long serialVersionUID = -4951117831018159357L;
+
+ @ApiModelProperty("分公司")
+ private String useOrgName;
+ @ApiModelProperty("申请部门")
+ private String createDeptName;
+ @ApiModelProperty("申请人")
+ private String createByName;
+ @ApiModelProperty("单据编号")
+ private String billNo;
+ @ApiModelProperty("申请日期开始时间")
+ private String createTimeStart;
+ @ApiModelProperty("申请日期结束时间")
+ private String createTimeEnd;
+ @ApiModelProperty("办结日期开始时间")
+ private String closeDateStart;
+ @ApiModelProperty("办结日期结束时间")
+ private String closeDateEnd;
+
+ private String createBySid;
+ private String orgPath;
+}
diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapply/AsBusclaimCheckApplyVo.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapply/AsBusclaimCheckApplyVo.java
new file mode 100644
index 0000000000..691127d699
--- /dev/null
+++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapply/AsBusclaimCheckApplyVo.java
@@ -0,0 +1,36 @@
+package com.yxt.anrui.as.api.asbusclaimcheckapply;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @description:
+ * @author: dimengzhe
+ * @date: 2024/5/11
+ **/
+@Data
+public class AsBusclaimCheckApplyVo {
+
+ //sid
+ private String sid;
+ @ApiModelProperty("流程状态")
+ private String nodeState;
+ @ApiModelProperty("单据编号")
+ private String billNo;
+ @ApiModelProperty("分公司")
+ private String useOrgName;
+ @ApiModelProperty("申请部门")
+ private String createDeptName;
+ @ApiModelProperty("申请人")
+ private String createByName;
+ @ApiModelProperty("申请日期")
+ private String createTime;
+ @ApiModelProperty("办结日期")
+ private String closeDate;
+ private String file;
+
+ private List fileList = new ArrayList<>();
+}
diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapply/flowable/BusclaimCheckApplyDelegateQuery.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapply/flowable/BusclaimCheckApplyDelegateQuery.java
new file mode 100644
index 0000000000..4e4ae254c5
--- /dev/null
+++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapply/flowable/BusclaimCheckApplyDelegateQuery.java
@@ -0,0 +1,23 @@
+package com.yxt.anrui.as.api.asbusclaimcheckapply.flowable;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @description:
+ * @author: dimengzhe
+ * @date: 2024/5/11
+ **/
+@Data
+public class BusclaimCheckApplyDelegateQuery {
+
+ private String userSid;
+ @ApiModelProperty("流程实例id")
+ private String instanceId;
+ @ApiModelProperty("任务Id")
+ private String taskId;
+ @ApiModelProperty("审批人sid")
+ private String assignee;
+ @ApiModelProperty("填写意见")
+ private String views;
+}
diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapply/flowable/BusclaimCheckApplyNodeQuery.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapply/flowable/BusclaimCheckApplyNodeQuery.java
new file mode 100644
index 0000000000..c9644c7736
--- /dev/null
+++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapply/flowable/BusclaimCheckApplyNodeQuery.java
@@ -0,0 +1,18 @@
+package com.yxt.anrui.as.api.asbusclaimcheckapply.flowable;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @description:
+ * @author: dimengzhe
+ * @date: 2024/5/11
+ **/
+@Data
+public class BusclaimCheckApplyNodeQuery {
+
+ @ApiModelProperty(value = "环节定义id")
+ private String taskDefKey;
+ @ApiModelProperty(value = "业务sid")
+ private String businessSid;
+}
diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapply/flowable/BusclaimCheckApplyNodeVo.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapply/flowable/BusclaimCheckApplyNodeVo.java
new file mode 100644
index 0000000000..3ebab35c0e
--- /dev/null
+++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapply/flowable/BusclaimCheckApplyNodeVo.java
@@ -0,0 +1,24 @@
+package com.yxt.anrui.as.api.asbusclaimcheckapply.flowable;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @description:
+ * @author: dimengzhe
+ * @date: 2024/5/11
+ **/
+@Data
+public class BusclaimCheckApplyNodeVo {
+
+ @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-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapply/flowable/BusclaimCheckApplyTaskQuery.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapply/flowable/BusclaimCheckApplyTaskQuery.java
new file mode 100644
index 0000000000..0ca50521a3
--- /dev/null
+++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapply/flowable/BusclaimCheckApplyTaskQuery.java
@@ -0,0 +1,43 @@
+package com.yxt.anrui.as.api.asbusclaimcheckapply.flowable;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * @description:
+ * @author: dimengzhe
+ * @date: 2024/5/11
+ **/
+@Data
+public class BusclaimCheckApplyTaskQuery {
+
+ /**
+ * 终止、驳回、撤回
+ */
+ @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")
+ private String instanceId;
+}
diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapply/flowable/CompleteBusclaimCheckApplyDto.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapply/flowable/CompleteBusclaimCheckApplyDto.java
new file mode 100644
index 0000000000..5ba410da34
--- /dev/null
+++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapply/flowable/CompleteBusclaimCheckApplyDto.java
@@ -0,0 +1,35 @@
+package com.yxt.anrui.as.api.asbusclaimcheckapply.flowable;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * @description:
+ * @author: dimengzhe
+ * @date: 2024/5/11
+ **/
+@Data
+public class CompleteBusclaimCheckApplyDto {
+
+ @ApiModelProperty(value = "用户sid")
+ @NotBlank(message = "参数错误:userSid")
+ private String userSid;
+ @ApiModelProperty(value = "用户全路径sid")
+ private String orgSidPath;
+ @ApiModelProperty(value = "节点id")
+ @NotBlank(message = "参数错误:taskDefKey")
+ private String taskDefKey;
+ @ApiModelProperty(value = "任务id")
+ @NotBlank(message = "参数错误:taskId")
+ private String taskId;
+ @ApiModelProperty(value = "流程id")
+ @NotBlank(message = "参数错误:instanceId")
+ private String instanceId;
+ @ApiModelProperty(value = "意见")
+ private String comment;
+ @ApiModelProperty(value = "业务sid")
+ @NotBlank(message = "参数错误:businessSid")
+ private String businessSid;
+}
diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapply/flowable/SubmitBusclaimCheckApplyDto.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapply/flowable/SubmitBusclaimCheckApplyDto.java
new file mode 100644
index 0000000000..9eed688379
--- /dev/null
+++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapply/flowable/SubmitBusclaimCheckApplyDto.java
@@ -0,0 +1,19 @@
+package com.yxt.anrui.as.api.asbusclaimcheckapply.flowable;
+
+import com.yxt.anrui.as.api.asbusclaimcheckapply.AsBusclaimCheckApplyDto;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @description:
+ * @author: dimengzhe
+ * @date: 2024/5/11
+ **/
+@Data
+public class SubmitBusclaimCheckApplyDto extends AsBusclaimCheckApplyDto {
+
+ @ApiModelProperty("流程实例id")
+ private String instanceId;
+ @ApiModelProperty("任务id")
+ private String taskId;
+}
diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapplydetail/AsBusclaimCheckApplyDetail.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapplydetail/AsBusclaimCheckApplyDetail.java
new file mode 100644
index 0000000000..3eab903743
--- /dev/null
+++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapplydetail/AsBusclaimCheckApplyDetail.java
@@ -0,0 +1,48 @@
+package com.yxt.anrui.as.api.asbusclaimcheckapplydetail;
+
+import com.yxt.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @description:
+ * @author: dimengzhe
+ * @date: 2024/5/11
+ **/
+@Data
+public class AsBusclaimCheckApplyDetail extends BaseEntity {
+ private static final long serialVersionUID = -2991848535556294459L;
+
+ @ApiModelProperty("单据sid")
+ private String billSid;
+ @ApiModelProperty("索赔单号")
+ private String claimBillNo;
+ @ApiModelProperty("维修工单号")
+ private String repairBillNo;
+ @ApiModelProperty("车牌号")
+ private String vehmark;
+ @ApiModelProperty("车架号")
+ private String vinNo;
+ @ApiModelProperty("开票申请sid")
+ private String billInvoiceSid;
+ @ApiModelProperty("开票明细sid")
+ private String billInvoiceDetailSid;
+ @ApiModelProperty("索赔工时费")
+ private BigDecimal claimHourAmount;
+ @ApiModelProperty("索赔材料费")
+ private BigDecimal claimGoodsAmount;
+ @ApiModelProperty("外出费")
+ private BigDecimal claimOutAmount;
+ @ApiModelProperty("厂家补助费")
+ private BigDecimal claimSubsidyAmount;
+ @ApiModelProperty("其他费用")
+ private BigDecimal claimOtherAmount;
+ @ApiModelProperty("预留")
+ private BigDecimal reserved;
+ @ApiModelProperty("原因")
+ private String reason;
+
+
+}
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
new file mode 100644
index 0000000000..34d107bdcf
--- /dev/null
+++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapplydetail/AsBusclaimCheckApplyDetailDto.java
@@ -0,0 +1,42 @@
+package com.yxt.anrui.as.api.asbusclaimcheckapplydetail;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @description:
+ * @author: dimengzhe
+ * @date: 2024/5/11
+ **/
+@Data
+public class AsBusclaimCheckApplyDetailDto {
+
+ @ApiModelProperty("索赔单号")
+ private String claimBillNo;
+ @ApiModelProperty("维修工单号")
+ private String repairBillNo;
+ @ApiModelProperty("车牌号")
+ private String vehMark;
+ @ApiModelProperty("车架号")
+ private String vinNo;
+ @ApiModelProperty("开票申请sid")
+ private String billInvoiceSid;
+ @ApiModelProperty("开票明细sid")
+ private String billInvoiceDetailSid;
+ @ApiModelProperty("索赔工时费")
+ private String claimHourAmount;
+ @ApiModelProperty("索赔材料费")
+ private String claimGoodsAmount;
+ @ApiModelProperty("外出费")
+ private String claimOutAmount;
+ @ApiModelProperty("厂家补助费")
+ private String claimSubsidyAmount;
+ @ApiModelProperty("其他费用")
+ private String claimOtherAmount;
+ @ApiModelProperty("预留")
+ private String reserved;
+ @ApiModelProperty("原因")
+ private String reason;
+}
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
new file mode 100644
index 0000000000..1474b707f7
--- /dev/null
+++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaimcheckapplydetail/AsBusclaimCheckApplyDetailVo.java
@@ -0,0 +1,78 @@
+package com.yxt.anrui.as.api.asbusclaimcheckapplydetail;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @description:
+ * @author: dimengzhe
+ * @date: 2024/5/11
+ **/
+@Data
+public class AsBusclaimCheckApplyDetailVo {
+
+ @ApiModelProperty("索赔单号")
+ private String claimBillNo;
+ @ApiModelProperty("维修工单号")
+ private String repairBillNo;
+ @ApiModelProperty("车牌号")
+ private String vehMark;
+ @ApiModelProperty("车架号")
+ private String vinNo;
+ @ApiModelProperty("开票申请sid")
+ private String billInvoiceSid;
+ @ApiModelProperty("开票明细sid")
+ private String billInvoiceDetailSid;
+ @ApiModelProperty("调整工时费")
+ private String claimHourAmount;
+ @ApiModelProperty("调整材料费")
+ private String claimGoodsAmount;
+ @ApiModelProperty("外出费")
+ private String claimOutAmount;
+ @ApiModelProperty("厂家补助费")
+ private String claimSubsidyAmount;
+ @ApiModelProperty("其他费用")
+ private String claimOtherAmount;
+ @ApiModelProperty("预留")
+ private String reserved;
+ @ApiModelProperty("原因")
+ private String reason;
+
+ //工单:工时费
+ private String hourAmount1;
+
+ //工单材料费
+ private String goodsAmount1;
+
+ //工单外出费
+ private String claimOutAmount1;
+
+ //工单厂家补助
+ private String claimSubsidyAmount1;
+
+ //工单其他费用
+ private String claimOtherAmount1;
+
+ //工单合计
+ private String all1;
+
+ //索赔开票工时费
+ private String claimHourAmount2;
+
+ //索赔开票材料费
+ private String claimGoodsAmount2;
+
+ //索赔开票外出费
+ private String claimOutAmount2;
+
+ //索赔开票厂家补助
+ private String claimSubsidyAmount2;
+
+ //索赔开票其他金额
+ private String claimOtherAmount2;
+
+ //合计
+ private String all2;
+}
diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaiminvoicebill/flowable/BusclaimInvoiceDelegateQuery.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaiminvoicebill/flowable/BusclaimInvoiceDelegateQuery.java
index 2e1fd498ba..135f3ee497 100644
--- a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaiminvoicebill/flowable/BusclaimInvoiceDelegateQuery.java
+++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusclaiminvoicebill/flowable/BusclaimInvoiceDelegateQuery.java
@@ -11,7 +11,6 @@ import lombok.Data;
@Data
public class BusclaimInvoiceDelegateQuery {
- @ApiModelProperty
private String userSid;
@ApiModelProperty("流程实例id")
private String instanceId;
diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimbill/AsBusclaimBillMapper.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimbill/AsBusclaimBillMapper.java
index 1d9e26ac75..60c622b28a 100644
--- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimbill/AsBusclaimBillMapper.java
+++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimbill/AsBusclaimBillMapper.java
@@ -21,4 +21,6 @@ public interface AsBusclaimBillMapper extends BaseMapper {
IPage listPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw);
int saveList(List resultList);
+
+ AsBusclaimBill selectByBillNo(String billNo);
}
diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimbill/AsBusclaimBillMapper.xml b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimbill/AsBusclaimBillMapper.xml
index 8509c1a65e..7307d38b9c 100644
--- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimbill/AsBusclaimBillMapper.xml
+++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimbill/AsBusclaimBillMapper.xml
@@ -33,4 +33,12 @@
#{item.claimOtherAmount,jdbcType=DECIMAL})
+
+
+ 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 @@
+
+
+
+
+ select a.sid,
+ a.nodeState,
+ a.billNo,
+ a.useOrgName,
+ a.createDeptName,
+ a.createByName,
+ DATE_FORMAT(a.createTime, '%Y-%m-%d') as createTime,
+ a.closeDate,
+ a.file
+ from as_busclaim_check_apply a
+
+ ${ew.sqlSegment}
+
+
+
+
+ select count(*)
+ from as_busclaim_check_apply
+ where length(nodeState) > 0
+ and find_in_set(sid, #{list})
+
+
+
+ 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..e20df96c36
--- /dev/null
+++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusclaimcheckapply/AsBusclaimCheckApplyRest.java
@@ -0,0 +1,110 @@
+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.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..9e7bbb6cbe
--- /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(ProcDefEnum.ASBUSCLAIMCHECKAPPLY.getProDefId());
+ 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}
+
+
+
+ select a.claimBillNo,
+ a.repairBillNo,
+ a.vehmark,
+ a.vinNo,
+ a.claimHourAmount,
+ a.claimGoodsAmount,
+ a.claimOutAmount,
+ a.claimSubsidyAmount,
+ a.claimOtherAmount,
+ a.repairBillNo,
+ a.reserved,
+ a.reason,
+ a.claimBillNo,
+ a.billInvoiceSid,
+ a.billInvoiceDetailSid
+ from as_busclaim_check_apply_detail a
+ 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);
+ }
+}
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"),
;
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..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,6 +77,11 @@ public class PmsPurchasebackBill extends BaseEntity {
@ApiModelProperty("单据状态")
private String documentState;
+ @ApiModelProperty("应付金额")
+ private BigDecimal paidAmount;
+ @ApiModelProperty("应收金额")
+ private BigDecimal receivableAmount;
+
@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..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,6 +81,11 @@ public class PmsPurchasebackBillDetailsVo implements Vo {
@ApiModelProperty("转入预付款")
private BigDecimal toPrepayment; // 转入预付款
+ @ApiModelProperty("应付金额")
+ private BigDecimal paidAmount;
+ @ApiModelProperty("应收金额")
+ private BigDecimal receivableAmount;
+
@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..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,6 +80,11 @@ public class PmsPurchasebackBillDto implements Dto {
@ApiModelProperty("转入预付款")
private BigDecimal toPrepayment; // 转入预付款
+ @ApiModelProperty("应付金额")
+ private BigDecimal paidAmount;
+ @ApiModelProperty("应收金额")
+ private BigDecimal receivableAmount;
+
@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..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
@@ -26,4 +27,30 @@
ON ppb.`sid` = ppbd.`billSid`
${ew.sqlSegment}
+
+
+ select RIGHT (billNo, 4)
+ from pms_purchaseback_bill
+ where billNo LIKE concat(#{billNo}, '%')
+ order by billNo desc
+ limit 1
+
+
+
+ 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/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 @@
SELECT * FROM pms_purchaseback_detail ${ew.sqlSegment}
-
-
- SELECT * FROM pms_purchaseback_detail ${ew.sqlSegment}
-
\ 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; // 退货金额
-
}
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
+ ppb.`sid`,
+ ppb.billNo,
+ ppb.`createTime`,
+ ppb.`purchaserName`,
+ ppb.`purchaseTypeValue`,
+ ppb.`purchaseReasonValue`,
+ ppb.`payTypeValue`,
+ ppb.`supplierName`,
+ IF(ppbi.`isInvoicing` = 1, '是','否') AS isInvoicing,
+ ppbi.billType,
+ ppbi.taxRate,
+ ppb.`remarks`,
+ SUM(ppbd.`amount`) AS amountCount,
+ ppb.freight,
+ ppb.discountAmount,
+ ppb.errorAmount,
+ ppb.`payableAmount`
+ FROM
+ pms_purchase_bill ppb
+ LEFT JOIN pms_purchase_bill_invoice ppbi
+ ON ppbi.`billSid` = ppb.`sid`
+ LEFT JOIN pms_purchase_bill_detail ppbd
+ ON ppbd.`billSid` = ppb.`sid`
+ ${ew.sqlSegment}
+
+
select RIGHT (billNo, 4)
from pms_purchase_bill
diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillService.java b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillService.java
index 5dd040573b..b6dfb04eb6 100644
--- a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillService.java
+++ b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillService.java
@@ -156,6 +156,56 @@ public class PmsPurchaseBillService extends MybatisBaseService choiceBillListPage(PagerQuery pq) {
+ PmsPurchaseBillQuery query = pq.getParams();
+ QueryWrapper qw = new QueryWrapper<>();
+ String orgPath = query.getOrgPath();
+ String createOrgSid = sysStaffOrgFeign.getOrgSidByPath(orgPath).getData();
+ qw.eq("ppb.createOrgSid", createOrgSid);
+ if (StringUtils.isNotBlank(query.getCreateOrgName())) {
+ qw.like("ppb.createOrgName", query.getCreateOrgName());
+ }
+ if (StringUtils.isNotBlank(query.getDeptName())) {
+ qw.like("ppb.deptName", query.getDeptName());
+ }
+ if (StringUtils.isNotBlank(query.getCreateByName())) {
+ qw.like("ppb.createByName", query.getCreateByName());
+ }
+ if (StringUtils.isNotBlank(query.getBillNo())) {
+ qw.like("ppb.billNo", query.getBillNo());
+ }
+ if (StringUtils.isNotBlank(query.getPurchaseTypeValue())) {
+ qw.like("ppb.purchaseTypeValue", query.getPurchaseTypeValue());
+ }
+ if (StringUtils.isNotBlank(query.getPurchaseReasonValue())) {
+ qw.like("ppb.purchaseReasonValue", query.getPurchaseReasonValue());
+ }
+ if (StringUtils.isNotBlank(query.getPayTypeValue())) {
+ qw.like("ppb.payTypeValue", query.getPayTypeValue());
+ }
+ if (StringUtils.isNotBlank(query.getSupplierName())) {
+ qw.like("ppb.supplierName", query.getSupplierName());
+ }
+ if (StringUtils.isNotBlank(query.getIsInvoicing())) {
+ qw.eq("ppbi.isInvoicing", query.getIsInvoicing());
+ }
+ String createStartTime = query.getCreateStartTime();
+ String createEndTime = query.getCreateEndTime();
+ qw.apply(StringUtils.isNotEmpty(createStartTime), "date_format (ppb.createTime,'%Y-%m-%d') >= date_format('" + createStartTime + "','%Y-%m-%d')").
+ apply(StringUtils.isNotEmpty(createEndTime), "date_format (ppb.createTime,'%Y-%m-%d') <= date_format('" + createEndTime + "','%Y-%m-%d')"
+ );
+ String finishStartTime = query.getFinishStartTime();
+ String finishEndTime = query.getFinishEndTime();
+ qw.apply(StringUtils.isNotEmpty(finishStartTime), "date_format (ppb.finishTime,'%Y-%m-%d') >= date_format('" + finishStartTime + "','%Y-%m-%d')").
+ apply(StringUtils.isNotEmpty(finishEndTime), "date_format (ppb.finishTime,'%Y-%m-%d') <= date_format('" + finishEndTime + "','%Y-%m-%d')"
+ );
+ qw.groupBy("ppb.sid");
+ IPage page = PagerUtil.queryToPage(pq);
+ IPage pagging = baseMapper.choiceBillListPage(page, qw);
+ PagerVo p = PagerUtil.pageToVo(pagging, null);
+ return p;
+ }
+
public String saveOrUpdateDto(PmsPurchaseBillDto dto) {
String dtoSid = dto.getSid();
PmsPurchasePayDto purchasePay = dto.getPurchasePay();
diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseChoiceBillVo.java b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseChoiceBillVo.java
index eddf679d9a..421d08a85c 100644
--- a/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseChoiceBillVo.java
+++ b/yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseChoiceBillVo.java
@@ -54,45 +54,38 @@ public class PmsPurchaseChoiceBillVo implements Vo {
private String sid; // sid
- @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
- @ApiModelProperty("创建时间")
- private Date createTime;
@ApiModelProperty("单据编号")
private String billNo;
- @ApiModelProperty("供应商名称")
- private String supplierName;
- @ApiModelProperty("供应商联系电话")
- private String supplierPhone;
+ @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+ @ApiModelProperty("单据日期")
+ private Date createTime;
@ApiModelProperty("采购员姓名")
private String purchaserName;
- @ApiModelProperty("库管员姓名")
- private String storekeeperName;
- @ApiModelProperty("结算标志")
- private String settleState;
- @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
- @ApiModelProperty("结算时间")
- private Date settleTime;
- @ApiModelProperty("票据类型value(不含税、增值税、普通税、已含增值税)")
- private String billTypeValue;
+ @ApiModelProperty("采购类型Value(厂家采购、外采、其他)")
+ private String purchaseTypeValue;
+ @ApiModelProperty("采购原因(储备/客户订单/在修车辆)")
+ private String purchaseReasonValue;
+ @ApiModelProperty("付款方式value(预付款/月结/单笔付款)")
+ private String payTypeValue;
+ @ApiModelProperty("供应商名称")
+ private String supplierName;
+ @ApiModelProperty("是否需要开发票(是1,否0)")
+ private String isInvoicing;
+ @ApiModelProperty("票据类型(不含税、增值税、普通税、已含增值税)")
+ private String billType;
+ @ApiModelProperty("税率")
+ private BigDecimal taxRate;
@ApiModelProperty("备注")
private String remarks;
- @ApiModelProperty("发票号码")
- private String invoiceCode;
- @ApiModelProperty("发票信息")
- private String invoiceInfo;
- @ApiModelProperty("采购数量")
- private BigDecimal count;
- @ApiModelProperty("单台进货价")
- private BigDecimal cost;
- @ApiModelProperty("总体进货价")
- private BigDecimal costCount;
- @ApiModelProperty("税额")
- private BigDecimal taxAmount;
- @ApiModelProperty("含税价")
- private BigDecimal taxPrice; // 含税价
- @ApiModelProperty("采购金额")
- private BigDecimal amount; // 采购金额
- @ApiModelProperty("销售单价")
- private BigDecimal salesPrice;
+ @ApiModelProperty("采购金额合计")
+ private BigDecimal amountCount;
+ @ApiModelProperty("运费")
+ private BigDecimal freight;
+ @ApiModelProperty("优惠金额")
+ private BigDecimal discountAmount;
+ @ApiModelProperty("误差调整金额")
+ private BigDecimal errorAmount;
+ @ApiModelProperty("应付金额(=采购金额+运费-优惠金额)")
+ private BigDecimal payableAmount;
}
diff --git a/yxt-pms-biz/src/main/java/com/yxt/pms/feign/flowable/flow/ProcDefEnum.java b/yxt-pms-biz/src/main/java/com/yxt/pms/feign/flowable/flow/ProcDefEnum.java
index 8807475733..a83aa586e9 100644
--- a/yxt-pms-biz/src/main/java/com/yxt/pms/feign/flowable/flow/ProcDefEnum.java
+++ b/yxt-pms-biz/src/main/java/com/yxt/pms/feign/flowable/flow/ProcDefEnum.java
@@ -8,6 +8,7 @@ public enum ProcDefEnum {
/***************************正式流程id***********************************/
PMSPURCHASEBILL("采购单申请", "process_cx2htjth:1:11280004"),
+ PMSPURCHASEBACKBILL("采购退货单申请", "process_cx2htjth:1:11280004"),
;