From 570b1eb2d9c3c9b2bcd1eea4a72ae2928a7d6b5d Mon Sep 17 00:00:00 2001 From: dimengzhe <251008545@qq.com> Date: Wed, 18 May 2022 10:55:09 +0800 Subject: [PATCH] =?UTF-8?q?=E9=94=80=E5=94=AE=E8=AE=A2=E5=8D=95-=E5=AE=8C?= =?UTF-8?q?=E5=96=84=E6=96=B0=E5=A2=9E=E6=97=B6=E5=88=B6=E5=8D=95=E6=97=A5?= =?UTF-8?q?=E6=9C=9F=E3=80=81=E9=94=80=E5=94=AE=E8=AE=A2=E5=8D=95=E7=BC=96?= =?UTF-8?q?=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../commoncontract/CommonContractService.java | 153 ++++++++++++++++-- .../api/bussalesorder/BusSalesOrderFeign.java | 1 - .../bussalesorder/BusSalesOrderMapper.java | 2 + .../biz/bussalesorder/BusSalesOrderMapper.xml | 8 + .../bussalesorder/BusSalesOrderService.java | 49 ++++++ 5 files changed, 201 insertions(+), 12 deletions(-) diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractService.java b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractService.java index 28ea520b5c..5b141eb4de 100644 --- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractService.java +++ b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractService.java @@ -3,9 +3,9 @@ package com.yxt.anrui.base.biz.commoncontract; import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.google.common.util.concurrent.ThreadFactoryBuilder; +import com.yxt.anrui.base.api.basemodelszconfig.AppBaseModelSzconfigDetailsVo; import com.yxt.anrui.base.api.commonappendix.CommonAppendix; -import com.yxt.anrui.base.api.commonappendix.CommonAttachTypeEnum; -import com.yxt.anrui.base.api.commonappendix.PcCommonAppendixDto; import com.yxt.anrui.base.api.commoncontract.*; import com.yxt.anrui.base.biz.basemodelszconfig.BaseModelSzconfigService; import com.yxt.anrui.base.biz.basetrailer.BaseTrailerService; @@ -16,11 +16,12 @@ import com.yxt.anrui.base.biz.flow.FlowableService; import com.yxt.anrui.buscenter.api.busdeposit.BusDepositFeign; import com.yxt.anrui.buscenter.api.busdepositvehicle.BusDepositVehicleFeign; import com.yxt.anrui.buscenter.api.busorder.BusOrderVo; -import com.yxt.anrui.buscenter.api.bussalesorder.AppBusSalesOrderVo; +import com.yxt.anrui.buscenter.api.busorderdiscount.AppBusOrderDiscountListVo; +import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderDetailsVo; +import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderFeign; +import com.yxt.anrui.buscenter.api.bussalesordermodel.BusSalesOrderModelDetailsVo; import com.yxt.anrui.crm.api.crmcustomer.CrmCustomerFeign; -import com.yxt.anrui.crm.api.crmcustomerfile.CrmCustomerFile; import com.yxt.anrui.crm.api.crmcustomerfile.CrmCustomerFileFeign; -import com.yxt.anrui.crm.api.crmcustomerfile.CrmCustomerFileListVo; import com.yxt.anrui.flowable.api.sysformlink.SysFormLinkFeign; import com.yxt.anrui.flowable.api.sysformlink.SysFormStateVo; import com.yxt.anrui.flowable.api.utils.ProcDefEnum; @@ -47,11 +48,12 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import javax.xml.crypto.Data; import java.io.File; import java.math.BigDecimal; +import java.text.MessageFormat; import java.text.SimpleDateFormat; import java.util.*; +import java.util.concurrent.*; import java.util.stream.Collectors; /** @@ -119,6 +121,8 @@ public class CommonContractService extends MybatisBaseService createQueryWrapper(CommonContractQuery query) { // todo: 这里根据具体业务调整查询条件 @@ -577,7 +581,7 @@ public class CommonContractService extends MybatisBaseService> printConfirm(PrintConfirmDto dto) { + /*public ResultBean> printConfirm(PrintConfirmDto dto) { Map map = new HashMap(); // 合同信息 CommonContract contract = fetchBySid(dto.getSid()); @@ -587,6 +591,7 @@ public class CommonContractService extends MybatisBaseService> printConfirm1(PrintConfirmDto dto) { Map map = new HashMap<>();*/ + /** * 车辆登记合同参数: * 甲方:${partyA} @@ -1179,10 +1185,10 @@ public class CommonContractService extends MybatisBaseService> printConfirm2(PrintConfirmDto dto) { + ResultBean> rb = ResultBean.fireFail(); + Map map = new HashMap(); + // 合同信息 + CommonContract contract = fetchBySid(dto.getSid()); + // 甲方 + map.put("partyA", contract.getPartyA()); + // 乙方 + map.put("partyB", contract.getPartyB()); + // 合同编号 + map.put("contractNo", contract.getContractNo()); + // 客户信息 + ResultBean busSalesOrderDetailsVoResultBean = busSalesOrderFeign.fetchDetailsBySid(dto.getBusSid()); + BusSalesOrderDetailsVo order = busSalesOrderDetailsVoResultBean.getData(); + if (!busSalesOrderDetailsVoResultBean.getSuccess()) { + return rb.setMsg("该业务数据不存在"); + } + map.put("customerName", busSalesOrderDetailsVoResultBean.getData().getCustomerName()); + map.put("mobile", busSalesOrderDetailsVoResultBean.getData().getMobile()); + BusSalesOrderModelDetailsVo busSalesOrderModel = busSalesOrderDetailsVoResultBean.getData().getBusSalesOrderModel(); + // 车型、主车信息 + map.put("modelName", busSalesOrderModel.getModelName()); + map.put("modelConfig", busSalesOrderModel.getConfig()); + map.put("mainVehicleNum", busSalesOrderDetailsVoResultBean.getData().getBusSalesOrderPrice().getQuantity()); + map.put("mainVehicleSinglePrice", busSalesOrderDetailsVoResultBean.getData().getBusSalesOrderPrice().getSingleFinalPrice()); + ResultBean vinNo = busOrderVehicleFeign.getVehicleVINNoByOrderSid(dto.getBusSid()); + map.put("VINNo", vinNo.getData()); // 车架号 + // 上装信息 + AppBaseModelSzconfigDetailsVo szconfig = baseModelSzconfigService.getAppBaseModelSzconfigDetailsVo(model.getData().getSid()); + map.put("topName", szconfig.getTopName()); // 上装 + // 优惠说明信息 + ResultBean> discountList = busOrderDiscountFeign.getAppDiscountListVoByOrderSid(order.getOrderSid()); + map.put("discountDetail", ""); // 优惠说明 ?待确认 + if (discountList.getSuccess()) { + map.put("discountDetail", discountList.getData().get(0).getDetail()); // 优惠说明 ?待确认 + } + // 保险说明信息 + map.put("insuranceDetail", "首次在本店投保,第二、三年继续在本店续保。(不在公司投保的,不显示)"); // 保险说明 ?待确认 + // 车辆交付地点 +// map.put("deliveryPlace", model.getData().getExpected_takecar_location()); + + List list = new ArrayList<>(); + try { + ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() + .setNameFormat("demo-pool-%d").build(); + ExecutorService pool = new ThreadPoolExecutor(5, 100, + 0L, TimeUnit.MILLISECONDS, + new LinkedBlockingQueue(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); + Future future1 = pool.submit(() -> { + return genCarSaleContract(dto, map, order); + }); + Future future2 = pool.submit(() -> { + return genVehicleRegistration(dto, map); + }); + Future future3 = pool.submit(() -> { + // 客户开票申请书(暂时先不考虑) + if (dto.getIsAdvanceInvoice() == 1) { + return genAdvanceInvoice(dto, map); + } else { + return ""; + } + }); + Future future4 = pool.submit(() -> { + // 委托提车授权书 + if (dto.getIsEntrustVehicle() == 1) { + return genEntrustVehicle(dto, map); + } else { + return ""; + } + }); + Future future5 = pool.submit(() -> { + return genCarSaleContractBlank(dto, map, order); + }); + + future1.get(); + future2.get(); + future3.get(); + future4.get(); + future5.get(); + PrintConfirmVo printConfirmVo = null; + if (StringUtils.isNotBlank(future1.get())) { + printConfirmVo = new PrintConfirmVo(); + // 待确认:现车或订车 + // 现车 +// printConfirmVo.setName(MessageFormat.format("《{0}》", ContractTemplateEnum.CARSALECONTRACTNEW.getName())); + // 订车 + printConfirmVo.setName(MessageFormat.format("《{0}》", ContractTemplateEnum.CARSALECONTRACTBOOK.getName())); + printConfirmVo.setDownloadUrl(future1.get()); + list.add(printConfirmVo); + } + if (StringUtils.isNotBlank(future2.get())) { + printConfirmVo = new PrintConfirmVo(); + printConfirmVo.setName(MessageFormat.format("《{0}》", ContractTemplateEnum.VEHICLEREGISTRATION.getName())); + printConfirmVo.setDownloadUrl(future2.get()); + list.add(printConfirmVo); + } + if (StringUtils.isNotBlank(future3.get())) { + printConfirmVo = new PrintConfirmVo(); + printConfirmVo.setName(MessageFormat.format("《{0}》", ContractTemplateEnum.CUSTOMERINVOICINGAPPLICATION.getName())); + printConfirmVo.setDownloadUrl(future3.get()); + list.add(printConfirmVo); + } + if (StringUtils.isNotBlank(future4.get())) { + printConfirmVo = new PrintConfirmVo(); + printConfirmVo.setName(MessageFormat.format("《{0}》", ContractTemplateEnum.ENTRUSTPICKUPAUTHORIZATION.getName())); + printConfirmVo.setDownloadUrl(future4.get()); + list.add(printConfirmVo); + } + if (StringUtils.isNotBlank(future5.get())) { + printConfirmVo = new PrintConfirmVo(); + // 待确认:现车或订车 + // 现车 +// printConfirmVo.setName(MessageFormat.format("《{0}》", ContractTemplateEnum.CARSALECONTRACTNEWBLANK.getName())); + // 订车 + printConfirmVo.setName(MessageFormat.format("《{0}》", ContractTemplateEnum.CARSALECONTRACTBOOKBLANK.getName())); + printConfirmVo.setDownloadUrl(future5.get()); + list.add(printConfirmVo); + } + } catch (Exception e) { + e.printStackTrace(); + return new ResultBean().fail().setMsg("生成文件失败"); + } + return new ResultBean().success().setData(list); + }*/ + } \ No newline at end of file diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/BusSalesOrderFeign.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/BusSalesOrderFeign.java index e7c95c2ca9..797f0be218 100644 --- a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/BusSalesOrderFeign.java +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/BusSalesOrderFeign.java @@ -144,5 +144,4 @@ public interface BusSalesOrderFeign { @ResponseBody public ResultBean getInitModelInfo2(@RequestParam("special") String special, @RequestParam("customerSid") String customerSid, @RequestParam("userSid") String userSid, @RequestParam("modelSid") String modelSid, @RequestParam("configSid") String configSid); - } \ No newline at end of file diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderMapper.java b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderMapper.java index 6efc846707..e98c61a657 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderMapper.java +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderMapper.java @@ -92,4 +92,6 @@ public interface BusSalesOrderMapper extends BaseMapper { * @param businessSid 销售订单sid */ void updateStateByBusinessSid(@Param("state") int state, @Param("businessSid") String businessSid); + + int selectCountByOrgSid(@Param("billsType") String billsType, @Param("date") String date, @Param("orgSid") String orgSid); } \ No newline at end of file diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderMapper.xml b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderMapper.xml index 555a79f4ed..bef37b6b46 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderMapper.xml +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderMapper.xml @@ -87,4 +87,12 @@ set state = #{state} where sid = #{businessSid} + + \ No newline at end of file diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderService.java b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderService.java index 8f2701830d..9983afd1c6 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderService.java +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderService.java @@ -80,10 +80,14 @@ import com.yxt.anrui.flowable.api.sysformlink.SysFormStateVo; import com.yxt.anrui.flowable.api.utils.ProcDefEnum; import com.yxt.anrui.flowable.api.utils.ProcessStateEnum; import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; +import com.yxt.anrui.portal.api.dictcommon.DictCommonFeign; +import com.yxt.anrui.portal.api.dictcommon.DictCommonVo; import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign; import com.yxt.anrui.portal.api.sysuser.SysUserFeign; import com.yxt.anrui.portal.api.sysuser.app.AppUserOrgInfoVo; +import com.yxt.anrui.portal.config.DictCommonType; import com.yxt.common.base.service.MybatisBaseService; +import com.yxt.common.base.utils.DateUtils; import com.yxt.common.base.utils.PagerUtil; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; @@ -150,6 +154,8 @@ public class BusSalesOrderService extends MybatisBaseService busDepositFictitiousDtoList = dto.getBusDepositFictitiousList(); BusSalesOrder busSalesOrder = new BusSalesOrder(); BeanUtil.copyProperties(dto, busSalesOrder, "sid"); + busSalesOrder.setCreateDate(new Date()); + busSalesOrder.setBillNo(generateBillNo(dto.getUserSid()).get("billNo_Num")); baseMapper.insert(busSalesOrder); String sid = busSalesOrder.getSid(); //主车车型信息保存 @@ -740,6 +748,8 @@ public class BusSalesOrderService extends MybatisBaseService generateBillNo(String userSid){ + List commonVoList = dictCommonFeign.getTypeValues(DictCommonType.BILLSTYPE, "0").getData(); + String billsType = ""; + if (commonVoList.size() > 0) { + for (int i = 0; i < commonVoList.size(); i++) { + if (commonVoList.get(i).getDictValue().contains("销售订单")) { + billsType = commonVoList.get(i).getDictKey(); + } + } + } + AppUserOrgInfoVo userOrgInfo = null; + String orgCode = ""; + String orgSid = ""; + String orgName = ""; + ResultBean resultBean = sysUserFeign.getUserOrgInfoByUserSid(userSid); + if (resultBean.getSuccess() && resultBean.getData() != null) { + userOrgInfo = resultBean.getData(); + orgSid = userOrgInfo.getOrgSid(); + orgName = userOrgInfo.getOrgName(); + orgCode = userOrgInfo.getOrgCode(); + } + String date = DateUtils.dateConvertStr(new Date(), "yyyy-MM-dd"); + // 流水号 + int i = selectCountByOrgSid(billsType, date, orgSid); + String num = String.format("%04d", i + 1); // 不足4位补0 + Map map = new HashMap<>(); + map.put("billNo_Num", billsType + orgCode + date.replaceAll("-","") + num); + map.put("billNo", billsType + orgCode + date.replaceAll("-","")); + map.put("staffSid", userOrgInfo.getStaffSid()); + map.put("staffName", userOrgInfo.getStaffName()); + map.put("orgSid", orgSid); + map.put("orgName", orgName); + return map; + } + + public int selectCountByOrgSid(String billsType, String date, String orgSid) { + return baseMapper.selectCountByOrgSid(billsType, date, orgSid); + } } \ No newline at end of file