From 6061cc555b6f8e47edc05c7d26a1a4320d58c135 Mon Sep 17 00:00:00 2001 From: God <10745413@qq.com> Date: Fri, 21 Apr 2023 18:17:09 +0800 Subject: [PATCH] =?UTF-8?q?=E5=87=BA=E5=BA=93=E7=94=B3=E8=AF=B7=E6=8E=A8?= =?UTF-8?q?=E9=80=81=E9=94=80=E5=94=AE=E5=8F=B0=E8=B4=A6=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/basevehicleout/BaseVehicleOut.java | 11 + .../BaseVehicleOutDetailsVo.java | 11 + .../api/basevehicleout/BaseVehicleOutDto.java | 14 + .../basevehicleout/BaseVehicleOutFeign.java | 5 +- .../BaseVehicleZSOutApplyDto.java | 78 +++ .../basevehicleout/BaseVehicleZSOutDto.java | 62 +++ .../BaseVehicleOutApply.java | 11 + .../BaseVehicleOutApplyDetailsVo.java | 11 + .../BaseVehicleOutApplyDto.java | 11 + .../basevehicleout/BaseVehicleOutRest.java | 6 +- .../basevehicleout/BaseVehicleOutService.java | 507 +++++++++++++++++- .../ScmApplyInboundService.java | 8 +- .../ScmApplyInboundVehicleMapper.java | 2 +- .../ScmApplyInboundVehicleMapper.xml | 10 +- .../ScmApplyInboundVehicleService.java | 4 +- 15 files changed, 736 insertions(+), 15 deletions(-) create mode 100644 anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleout/BaseVehicleZSOutApplyDto.java create mode 100644 anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleout/BaseVehicleZSOutDto.java diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleout/BaseVehicleOut.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleout/BaseVehicleOut.java index e86cec4984..031ee4de95 100644 --- a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleout/BaseVehicleOut.java +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleout/BaseVehicleOut.java @@ -117,4 +117,15 @@ public class BaseVehicleOut extends BaseEntity { private String manPurOrderTypeKey; @ApiModelProperty("采购类型value") private String manPurOrderTypeValue; + + @ApiModelProperty("物料编码") + private String materialCode; + @ApiModelProperty("物料名称(主车/挂车/上装)") + private String materialName; + @ApiModelProperty("物料类型key(主车/挂车/上装)") + private String materialTypeKey; + @ApiModelProperty("物料类型value") + private String materialTypeValue; + @ApiModelProperty("物料sid") + private String materialSid; } diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleout/BaseVehicleOutDetailsVo.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleout/BaseVehicleOutDetailsVo.java index aab4af6c43..1c74b0fcf6 100644 --- a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleout/BaseVehicleOutDetailsVo.java +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleout/BaseVehicleOutDetailsVo.java @@ -89,4 +89,15 @@ public class BaseVehicleOutDetailsVo implements Vo { private String manPurOrderTypeKey; @ApiModelProperty("采购类型value") private String manPurOrderTypeValue; + + @ApiModelProperty("物料编码") + private String materialCode; + @ApiModelProperty("物料名称(主车/挂车/上装)") + private String materialName; + @ApiModelProperty("物料类型key(主车/挂车/上装)") + private String materialTypeKey; + @ApiModelProperty("物料类型value") + private String materialTypeValue; + @ApiModelProperty("物料sid") + private String materialSid; } diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleout/BaseVehicleOutDto.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleout/BaseVehicleOutDto.java index 8a723c8e03..3f4708b463 100644 --- a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleout/BaseVehicleOutDto.java +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleout/BaseVehicleOutDto.java @@ -111,4 +111,18 @@ public class BaseVehicleOutDto implements Dto { private String manPurOrderTypeKey; @ApiModelProperty("采购类型value") private String manPurOrderTypeValue; + + @ApiModelProperty("物料编码") + private String materialCode; + @ApiModelProperty("物料名称(主车/挂车/上装)") + private String materialName; + @ApiModelProperty("物料类型key(主车/挂车/上装)") + private String materialTypeKey; + @ApiModelProperty("物料类型value") + private String materialTypeValue; + @ApiModelProperty("物料sid") + private String materialSid; + + @ApiModelProperty("业务sid") + private String busSid; } diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleout/BaseVehicleOutFeign.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleout/BaseVehicleOutFeign.java index c4d1ff394d..1408d1e779 100644 --- a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleout/BaseVehicleOutFeign.java +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleout/BaseVehicleOutFeign.java @@ -1,6 +1,5 @@ package com.yxt.anrui.base.api.basevehicleout; -import com.yxt.anrui.base.api.basedistributor.BaseDistributorExportQuery; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; @@ -62,6 +61,10 @@ public interface BaseVehicleOutFeign { @ResponseBody public void exportExcel(@RequestBody BaseVehicleOutQuery baseVehicleOutQuery); + @ApiOperation("车辆正式出库") + @PostMapping("/vehicleZSOut") + @ResponseBody + public ResultBean vehicleZSOut(@RequestBody BaseVehicleZSOutApplyDto dto); } diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleout/BaseVehicleZSOutApplyDto.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleout/BaseVehicleZSOutApplyDto.java new file mode 100644 index 0000000000..8367a6bab8 --- /dev/null +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleout/BaseVehicleZSOutApplyDto.java @@ -0,0 +1,78 @@ +package com.yxt.anrui.base.api.basevehicleout; + +import com.yxt.common.core.dto.Dto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @Author dimengzhe + * @Date 2022/9/23 13:36 + * @Description + */ +@Data +public class BaseVehicleZSOutApplyDto implements Dto { + + //主表申请 + @ApiModelProperty("创建人sid") + private String createBySid; + @ApiModelProperty("创建人姓名") + private String createByName; + @ApiModelProperty("销售类型key") + private String saleTypeKey; // 销售类型key + @ApiModelProperty("销售类型value") + private String saleTypeValue; // 销售类型value + @ApiModelProperty("销售日期") + private String saleDate; // 销售日期 + @ApiModelProperty("单据编号") + private String billNo; // 单据编号 + @ApiModelProperty("销售部门sid") + private String orgSid; // 销售部门sid + @ApiModelProperty("销售部门名称") + private String orgName; // 销售部门名称 + @ApiModelProperty("销售专员sid") + private String staffSid; // 销售专员sid + @ApiModelProperty("销售专员") + private String staffName; // 销售专员 + @ApiModelProperty("客户名称") + private String customerName; // 客户名称 + @ApiModelProperty("客户手机号") + private String mobile; // 客户手机号 + @ApiModelProperty("客户sid") + private String customerSid; // 客户sid + @ApiModelProperty("总成交价") + private String totalDealPrice; // 总成交价 + @ApiModelProperty("制单人sid") + private String makeListSid; // 制单人sid + @ApiModelProperty("制单人姓名") + private String makeListName; // 制单人姓名 + @ApiModelProperty("制单日期") + private String makeListDate; // 制单日期 + @ApiModelProperty("审核人sid") + private String confirmSid; // 审核人sid + @ApiModelProperty("审核人姓名") + private String confirmName; // 审核人姓名 + @ApiModelProperty("审核日期") + private String confirmDate; // 审核日期 + @ApiModelProperty("创建组织sid") + private String createOrgSid; // 创建组织sid + @ApiModelProperty("创建组织名称") + private String createOrgName; // 创建组织名称 + @ApiModelProperty("内部引荐人姓名") + private String innerName; // 内部引荐人姓名 + @ApiModelProperty("内部引荐人用户sid") + private String innerUserSid; // 内部引荐人用户sid + @ApiModelProperty("合同编号") + private String contractNo; // 合同编号 + @ApiModelProperty("是否为终端客户") + private String isTerminal; // 是否为终端客户 + @ApiModelProperty("客户编码") + private String customerNo; // 客户编码 + @ApiModelProperty("财务中客户编码") + private String cwCustomerNo; // 财务中客户编码 + @ApiModelProperty("业务sid(出库申请sid、挂车/上装单独出库sid)") + private String busSid; // 业务sid(出库申请sid、挂车/上装单独出库sid) + @ApiModelProperty("子表车辆、挂车、上装信息") + private List baseVehicleZSOutDtos; // 子表车辆、挂车、上装信息 +} diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleout/BaseVehicleZSOutDto.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleout/BaseVehicleZSOutDto.java new file mode 100644 index 0000000000..a5ede5a8ed --- /dev/null +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleout/BaseVehicleZSOutDto.java @@ -0,0 +1,62 @@ +package com.yxt.anrui.base.api.basevehicleout; + +import com.yxt.common.core.dto.Dto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author dimengzhe + * @Date 2022/9/23 13:36 + * @Description + */ +@Data +public class BaseVehicleZSOutDto implements Dto { + + //字表车辆、挂车 、上装 + @ApiModelProperty("主车物料分组code") + private String zcMGroupCode; + @ApiModelProperty("主车物料分组名称") + private String zcMGroupName; + private String vinSid; + private String vinNo; + @ApiModelProperty("成交价") + private String price; + @ApiModelProperty("赠品价值") + private String giftsDescription; + @ApiModelProperty("销售折让") + private String salesAllowance; + @ApiModelProperty("中介人1") + private String middleOne; + @ApiModelProperty("中介人1sid") + private String middleOneSid; + @ApiModelProperty("返利金额1") + private String rebateMoneyOne; + @ApiModelProperty("中介人2") + private String middleTwo; + @ApiModelProperty("中介人2sid") + private String middleTwoSid; + @ApiModelProperty("返利金额2") + private String rebateMoneyTwo; + @ApiModelProperty("备注") + private String remarks; + @ApiModelProperty("中介人1编码") + private String middleCodeOne; + @ApiModelProperty("中介人2编码") + private String middleCodeTwo; + @ApiModelProperty("是否要修改客户") + private String isUpdateOrInsertCrm; // 是否要修改客户 + @ApiModelProperty("采购类型key") + private String manPurOrderTypeKey; + @ApiModelProperty("采购类型value") + private String manPurOrderTypeValue; + @ApiModelProperty("物料编码") + private String materialCode; + @ApiModelProperty("物料名称(主车/挂车/上装)") + private String materialName; + @ApiModelProperty("物料类型key(主车/挂车/上装)") + private String materialTypeKey; + @ApiModelProperty("物料类型value") + private String materialTypeValue; + @ApiModelProperty("物料sid") + private String materialSid; +} diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleoutapply/BaseVehicleOutApply.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleoutapply/BaseVehicleOutApply.java index ca1ab0f550..48879339d5 100644 --- a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleoutapply/BaseVehicleOutApply.java +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleoutapply/BaseVehicleOutApply.java @@ -95,4 +95,15 @@ public class BaseVehicleOutApply extends BaseEntity { private String innerName; // 内部引荐人姓名 @ApiModelProperty("内部引荐人用户sid") private String innerUserSid; // 内部引荐人用户sid + + @ApiModelProperty("合同编号") + private String contractNo; // 合同编号 + @ApiModelProperty("是否为终端客户") + private String isTerminal; // 是否为终端客户 + @ApiModelProperty("客户编码") + private String customerNo; // 客户编码 + @ApiModelProperty("财务中客户编码") + private String cwCustomerNo; // 财务中客户编码 + @ApiModelProperty("业务sid(出库申请sid、挂车/上装单独出库sid)") + private String busSid; // 业务sid(出库申请sid、挂车/上装单独出库sid) } diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleoutapply/BaseVehicleOutApplyDetailsVo.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleoutapply/BaseVehicleOutApplyDetailsVo.java index d8a006edfd..9a16d78f15 100644 --- a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleoutapply/BaseVehicleOutApplyDetailsVo.java +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleoutapply/BaseVehicleOutApplyDetailsVo.java @@ -95,4 +95,15 @@ public class BaseVehicleOutApplyDetailsVo implements Vo { private String innerName; // 内部引荐人姓名 @ApiModelProperty("内部引荐人用户sid") private String innerUserSid; // 内部引荐人用户sid + + @ApiModelProperty("合同编号") + private String contractNo; // 合同编号 + @ApiModelProperty("是否为终端客户") + private String isTerminal; // 是否为终端客户 + @ApiModelProperty("客户编码") + private String customerNo; // 客户编码 + @ApiModelProperty("财务中客户编码") + private String cwCustomerNo; // 财务中客户编码 + @ApiModelProperty("业务sid(出库申请sid、挂车/上装单独出库sid)") + private String busSid; // 业务sid(出库申请sid、挂车/上装单独出库sid) } \ No newline at end of file diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleoutapply/BaseVehicleOutApplyDto.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleoutapply/BaseVehicleOutApplyDto.java index 350a0469f1..6b77fb52c0 100644 --- a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleoutapply/BaseVehicleOutApplyDto.java +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleoutapply/BaseVehicleOutApplyDto.java @@ -96,4 +96,15 @@ public class BaseVehicleOutApplyDto implements Dto { private String innerName; // 内部引荐人姓名 @ApiModelProperty("内部引荐人用户sid") private String innerUserSid; // 内部引荐人用户sid + + @ApiModelProperty("合同编号") + private String contractNo; // 合同编号 + @ApiModelProperty("是否为终端客户") + private String isTerminal; // 是否为终端客户 + @ApiModelProperty("客户编码") + private String customerNo; // 客户编码 + @ApiModelProperty("财务中客户编码") + private String cwCustomerNo; // 财务中客户编码 + @ApiModelProperty("业务sid(出库申请sid、挂车/上装单独出库sid)") + private String busSid; // 业务sid(出库申请sid、挂车/上装单独出库sid) } \ No newline at end of file diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleout/BaseVehicleOutRest.java b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleout/BaseVehicleOutRest.java index 3d5273605c..04fbed02cf 100644 --- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleout/BaseVehicleOutRest.java +++ b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleout/BaseVehicleOutRest.java @@ -1,6 +1,5 @@ package com.yxt.anrui.base.biz.basevehicleout; -import com.yxt.anrui.base.api.basedistributor.BaseDistributorExportVo; import com.yxt.anrui.base.api.basevehicleout.*; import com.yxt.common.base.utils.ExportExcelUtils; import com.yxt.common.core.query.PagerQuery; @@ -86,4 +85,9 @@ public class BaseVehicleOutRest implements BaseVehicleOutFeign { //导出车辆销售台账列表 ExportExcelUtils.export(fileNameURL, baseVehicleOutVoExecls, BaseVehicleOutVoExecl.class, response); } + + @Override + public ResultBean vehicleZSOut(BaseVehicleZSOutApplyDto dto) { + return baseVehicleOutService.vehicleZSOut(dto); + } } diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleout/BaseVehicleOutService.java b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleout/BaseVehicleOutService.java index 2d73b51b31..0fca4e7e96 100644 --- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleout/BaseVehicleOutService.java +++ b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleout/BaseVehicleOutService.java @@ -140,7 +140,7 @@ public class BaseVehicleOutService extends MybatisBaseService commonContract = commonContractService.selectByNo(dto.getConcatNo()); if (commonContract.getSuccess()) { //查询合同编号和车辆sid客户的临时编码 - ResultBean stringResultBean = busSalesOrderFeign.selectTemporaryNo(dto.getVinSid(),dto.getConcatNo()); + ResultBean stringResultBean = busSalesOrderFeign.selectTemporaryNo(dto.getVinSid(), dto.getConcatNo()); if (!stringResultBean.getSuccess()) { return rb.setMsg("请检查合同是否存在"); } @@ -459,6 +459,90 @@ public class BaseVehicleOutService extends MybatisBaseService resultBean = sysOrganizationFeign.fetchBySid(orgDeptSid); + if (resultBean.getSuccess()) { + SysOrganizationVo vo = resultBean.getData(); + if (vo != null) { + salOutStock.setFSaleDeptID(vo.getOrgCode()); + } + } + //项目类别key和项目类别type + salOutStock.setF_PAEZ_AssistantType("payType"); + //销售类型-外采挂车映射 + salOutStock.setF_PAEZ_AssistantKey("009"); + //物料列表 + List fEntityList = new ArrayList<>(); + SalOutStock.FEntity fEntity = new SalOutStock.FEntity(); + //单价 + fEntity.setFPrice(dto.getPrice()); + //物料编码 + fEntity.setFMaterialID(dto.getMaterialCode()); + //仓库id + fEntity.setFStockID("ARZSCK"); + fEntityList.add(fEntity); + if (fEntityList.size() > 0) { + salOutStock.setFEntity(fEntityList); + return salOutStock; + } + return null; + } + + private SalOutStock createZSSZOutStock(BaseVehicle baseVehicle, BaseVehicleZSOutDto dto, BaseVehicleZSOutApplyDto appDto) { + SalOutStock salOutStock = new SalOutStock(); + //单据编号 + salOutStock.setFBillNo(appDto.getBillNo() + "-1"); + //日期 + salOutStock.setFDate(DateUtil.today()); + //分公司id + String purchaseSystemSid = baseVehicle.getPurchaseSystemSid(); + BasePurchaseSystemDetailsVo basePurchaseSystemDetailsVo = basePurchaseSystemService.fetchDetailsByDeptSid(purchaseSystemSid).getData(); + salOutStock.setFSaleOrgId(basePurchaseSystemDetailsVo.getOrgCode()); + //客户 + salOutStock.setFCustomerID(appDto.getCwCustomerNo()); + //销售部门id + String orgDeptSid = appDto.getOrgSid(); + ResultBean resultBean = sysOrganizationFeign.fetchBySid(orgDeptSid); + if (resultBean.getSuccess()) { + SysOrganizationVo vo = resultBean.getData(); + if (vo != null) { + salOutStock.setFSaleDeptID(vo.getOrgCode()); + } + } + //项目类别key和项目类别type + salOutStock.setF_PAEZ_AssistantType("payType"); + //销售类型-外采挂车映射 + salOutStock.setF_PAEZ_AssistantKey("009"); + //物料列表 + List fEntityList = new ArrayList<>(); + SalOutStock.FEntity fEntity = new SalOutStock.FEntity(); + //单价 + fEntity.setFPrice(dto.getPrice()); + //物料编码 + fEntity.setFMaterialID(dto.getMaterialCode()); + //仓库id + fEntity.setFStockID("ARZSCK"); + fEntityList.add(fEntity); + if (fEntityList.size() > 0) { + salOutStock.setFEntity(fEntityList); + return salOutStock; + } + return null; + } + public ResultBean isUpdateOrInsertCrm(BaseVehicleOutDto dto) { ResultBean rb = ResultBean.fireFail(); String isUpdateOrInsertCrm = dto.getIsUpdateOrInsertCrm(); @@ -702,6 +786,25 @@ public class BaseVehicleOutService extends MybatisBaseService resultBean = sysOrganizationFeign.fetchBySid(orgDeptSid); + if (resultBean.getSuccess()) { + SysOrganizationVo vo = resultBean.getData(); + if (vo != null) { + salOutStock.setFSaleDeptID(vo.getOrgCode()); + } + } + //项目类别key和项目类别type + salOutStock.setF_PAEZ_AssistantType("payType"); + //外采主车 + if (baseVehicle.getManPurOrderTypeKey().equals("002")) { + salOutStock.setF_PAEZ_AssistantKey("008"); + } else { + salOutStock.setF_PAEZ_AssistantKey(appDto.getSaleTypeKey()); + } + //中介单位 + salOutStock.setF_PAEZ_Base(dto.getMiddleCodeOne()); + //物料列表 + List fEntityList = new ArrayList<>(); + SalOutStock.FEntity fEntity = new SalOutStock.FEntity(); + //单价 + fEntity.setFPrice(dto.getPrice()); + //物料编码 + fEntity.setFMaterialID(dto.getVinNo().substring(dto.getVinNo().length() - 8)); + //仓库id + fEntity.setFStockID("ARZSCK"); + //销售折让 + if (StringUtils.isNotBlank(dto.getSalesAllowance())) { + fEntity.setF_PAEZ_Decimal3(dto.getSalesAllowance()); + } + if (StringUtils.isNotBlank(dto.getGiftsDescription())) { + fEntity.setF_PAEZ_Decimal4(dto.getGiftsDescription()); + } + //返利金额 + fEntity.setF_PAEZ_Decimal("0"); + String remarks = dto.getRemarks(); + String note = ""; + if (StringUtils.isNotBlank(remarks)) { + note = note + remarks; + } + //备注 + if (StringUtils.isNotBlank(dto.getMiddleOne())) { + if (StringUtils.isNotBlank(dto.getMiddleTwo())) { + if (StringUtils.isNotBlank(dto.getRebateMoneyOne())) { + if (StringUtils.isNotBlank(dto.getRebateMoneyTwo())) { + note = note + " 返利情况:" + dto.getMiddleOne() + dto.getRebateMoneyOne() + "," + dto.getMiddleTwo() + dto.getRebateMoneyTwo() + "。"; + //返利金额 + fEntity.setF_PAEZ_Decimal(new BigDecimal(dto.getRebateMoneyOne()).add(new BigDecimal(dto.getRebateMoneyTwo())).toString()); + } else { + note = note + " 返利情况:" + dto.getMiddleOne() + dto.getRebateMoneyOne() + "。"; + //返利金额 + fEntity.setF_PAEZ_Decimal(new BigDecimal(dto.getRebateMoneyOne()).toString()); + } + } else { + if (StringUtils.isNotBlank(dto.getRebateMoneyTwo())) { + note = note + " 返利情况:" + dto.getMiddleTwo() + dto.getRebateMoneyTwo() + "。"; + //返利金额 + fEntity.setF_PAEZ_Decimal(new BigDecimal(dto.getRebateMoneyTwo()).toString());//dto.getRebateMoneyOne() + } + } + } else { + if (StringUtils.isNotBlank(dto.getRebateMoneyOne())) { + note = note + " 返利情况:" + dto.getMiddleOne() + dto.getRebateMoneyOne() + "。"; + //返利金额 + fEntity.setF_PAEZ_Decimal(new BigDecimal(dto.getRebateMoneyOne()).toString()); + } + } + } else { + if (StringUtils.isNotBlank(dto.getMiddleTwo())) { + if (StringUtils.isNotBlank(dto.getRebateMoneyTwo())) { + note = note + " 返利情况:" + dto.getMiddleOne() + dto.getRebateMoneyOne() + "。"; + //返利金额 + fEntity.setF_PAEZ_Decimal(new BigDecimal(dto.getRebateMoneyOne()).toString()); + } + } + } + if (StringUtils.isNotBlank(note)) { + fEntity.setFEntrynote(note); + } + fEntityList.add(fEntity); + if (fEntityList.size() > 0) { + salOutStock.setFEntity(fEntityList); + return salOutStock; + } else { + return null; + } + + } + public PagerVo pagerList(PagerQuery query) { IPage page = PagerUtil.queryToPage(query); BaseVehicleOutQuery params = query.getParams(); @@ -997,10 +1202,10 @@ public class BaseVehicleOutService extends MybatisBaseService dtos = baseVehicleZSOutApplyDto.getBaseVehicleZSOutDtos(); + SysOrganizationVo sysOrganizationVo = sysOrganizationFeign.fetchBySid(baseVehicleZSOutApplyDto.getCreateOrgSid()).getData(); + for (BaseVehicleZSOutDto dto : dtos) { + Boolean b = false; + String vinSid = dto.getVinSid(); + BdCustomer bdCustomer = new BdCustomer(); + List bdCustomers = new ArrayList<>(); + BaseVehicle baseVehicle = null; + if (StringUtils.isNotBlank(vinSid)) { + String payTypeKey = baseVehicleZSOutApplyDto.getSaleTypeKey(); + baseVehicle = baseVehicleService.fetchBySid(vinSid); + BasePurchaseSystemDetailsVo data = basePurchaseSystemService.fetchDetailsByDeptSid(baseVehicle.getPurchaseSystemSid()).getData(); + bdCustomer.setTOrgIds(data.getOrgCode()); + //出库类型是否为全款车(001全款车) + if ("001".equals(payTypeKey)) { + Boolean aBoolean = finKingDeeFeign.customerExistState(baseVehicleZSOutApplyDto.getCustomerNo()).getData(); + bdCustomer.setFNumber(baseVehicleZSOutApplyDto.getCustomerNo()); + if (!aBoolean) { + bdCustomer.setFName(baseVehicleZSOutApplyDto.getCustomerName() + baseVehicleZSOutApplyDto.getMobile()); + } + } else { + String FNumber = HanZiConverterPinYin.getPinYinFirst(baseVehicleZSOutApplyDto.getCustomerName()) + dto.getVinNo().substring(dto.getVinNo().length() - 8); + Boolean aBoolean = finKingDeeFeign.customerExistState(FNumber).getData(); + if (!aBoolean) { + //查询合同是否存在 + ResultBean commonContract = commonContractService.selectByNo(baseVehicleZSOutApplyDto.getContractNo()); + if (commonContract.getSuccess()) { + //查询合同编号和车辆sid客户的临时编码 + ResultBean stringResultBean = busSalesOrderFeign.selectTemporaryNo(dto.getVinSid(), baseVehicleZSOutApplyDto.getContractNo()); + if (!stringResultBean.getSuccess()) { + return rb.setMsg("请检查合同是否存在"); + } + String temporaryNo = stringResultBean.getData(); + Boolean aBoolean1 = finKingDeeFeign.customerExistState(temporaryNo).getData(); + if (!aBoolean1) { + Boolean aBoolean2 = finKingDeeFeign.customerExistState(baseVehicleZSOutApplyDto.getCustomerNo()).getData(); + if (!aBoolean2) { + bdCustomer.setFName(baseVehicleZSOutApplyDto.getCustomerName() + dto.getVinNo().substring(dto.getVinNo().length() - 8)); + String FNumber1 = HanZiConverterPinYin.getPinYinFirst(baseVehicleZSOutApplyDto.getCustomerName()) + dto.getVinNo().substring(dto.getVinNo().length() - 8); + if (FNumber1.length() > 30) { + FNumber1 = FNumber1.substring(0, 30); + bdCustomer.setFNumber(FNumber1); + } else { + bdCustomer.setFNumber(FNumber1); + } + bdCustomer.setFShortName(baseVehicleZSOutApplyDto.getContractNo()); + } else { + b = true; + return rb.success().setData(b); + } + } else { + finCollectionConfirmationFeign.updateVin(dto.getVinNo(), baseVehicleZSOutApplyDto.getContractNo(), temporaryNo.substring(temporaryNo.length() - 2)); + } + } else { + Boolean aBoolean1 = finKingDeeFeign.customerExistState(baseVehicleZSOutApplyDto.getCustomerNo()).getData(); + if (!aBoolean1) { + bdCustomer.setFName(baseVehicleZSOutApplyDto.getCustomerName() + dto.getVinNo().substring(dto.getVinNo().length() - 8)); + String FNumber1 = HanZiConverterPinYin.getPinYinFirst(baseVehicleZSOutApplyDto.getCustomerName()) + dto.getVinNo().substring(dto.getVinNo().length() - 8); + if (FNumber1.length() > 30) { + FNumber1 = FNumber1.substring(0, 30); + bdCustomer.setFNumber(FNumber1); + } else { + bdCustomer.setFNumber(FNumber1); + } + bdCustomer.setFShortName(baseVehicleZSOutApplyDto.getContractNo()); + } else { + b = true; + return rb.success().setData(b); + } + } + } + //修改客户简称为合同编号 + bdCustomer.setFName(baseVehicleZSOutApplyDto.getCustomerName() + dto.getVinNo().substring(dto.getVinNo().length() - 8)); + bdCustomer.setFShortName(baseVehicleZSOutApplyDto.getContractNo()); + bdCustomer.setFNumber(FNumber); + bdCustomer.setOldFNumber(FNumber); + bdCustomers.add(bdCustomer); + finKingDeeFeign.saveBdCustomers(bdCustomers); + } + } + //查询出库的车辆是否满足出库条件 + int count = baseMapper.selectCountByVinSid(dto.getVinSid()); + if (count > 0) { + return rb.setMsg(dto.getVinNo() + "车辆不满足出库条件"); + } + //查询是否已出库 + int counts = baseMapper.selectCountBySidVin(dto.getVinSid()); + if (counts > 0) { + return rb.setMsg("该车辆已出库,不允许重复出库"); + } + //生成出库单据编号 + String billNo = ""; + String date = DateUtil.format(DateUtil.date(), "yyyyMM"); + billNo = "XSCKD" + sysOrganizationVo.getOrgCode() + date; + String i = baseMapper.selectNum(billNo); + if (StringUtils.isNotBlank(i)) { + billNo = Rule.getBillNo(billNo, Integer.valueOf(i).intValue()); + } else { + billNo = Rule.getBillNo(billNo, 0); + } + //出库主表信息录入 + BaseVehicleOutApply baseVehicleOutApply = new BaseVehicleOutApply(); + baseVehicleOutApply.setBillNo(billNo); + baseVehicleOutApply.setSaleDate(baseVehicleZSOutApplyDto.getSaleDate()); + baseVehicleOutApply.setCustomerSid(baseVehicleZSOutApplyDto.getCustomerSid()); + baseVehicleOutApply.setCustomerName(baseVehicleZSOutApplyDto.getCustomerName()); + baseVehicleOutApply.setMobile(baseVehicleZSOutApplyDto.getMobile()); + baseVehicleOutApply.setOrgSid(baseVehicleZSOutApplyDto.getOrgSid()); + baseVehicleOutApply.setOrgName(baseVehicleZSOutApplyDto.getOrgName()); + baseVehicleOutApply.setStaffSid(baseVehicleZSOutApplyDto.getStaffSid()); + baseVehicleOutApply.setStaffName(baseVehicleZSOutApplyDto.getStaffName()); + baseVehicleOutApply.setMakeListSid(baseVehicleZSOutApplyDto.getCreateBySid()); + baseVehicleOutApply.setMakeListName(baseVehicleZSOutApplyDto.getCreateByName()); + baseVehicleOutApply.setMakeListDate(DateUtil.format(new Date(), "yyyy-MM-dd")); + baseVehicleOutApply.setSaleTypeKey(baseVehicleZSOutApplyDto.getSaleTypeKey()); + baseVehicleOutApply.setSaleTypeValue(baseVehicleZSOutApplyDto.getSaleTypeValue()); + baseVehicleOutApply.setCreateOrgSid(baseVehicleZSOutApplyDto.getCreateOrgSid()); + baseVehicleOutApply.setCreateBySid(baseVehicleZSOutApplyDto.getCreateBySid()); + //内部引荐人、内部引荐人sid + baseVehicleOutApply.setInnerName(baseVehicleZSOutApplyDto.getInnerName()); + baseVehicleOutApply.setInnerUserSid(baseVehicleZSOutApplyDto.getInnerUserSid()); + baseVehicleOutApply.setContractNo(baseVehicleZSOutApplyDto.getContractNo()); + baseVehicleOutApply.setIsTerminal(baseVehicleZSOutApplyDto.getIsTerminal()); + baseVehicleOutApply.setCustomerNo(bdCustomer.getFNumber()); + baseVehicleOutApply.setCwCustomerNo(bdCustomer.getFNumber()); + baseVehicleOutApply.setBusSid(baseVehicleZSOutApplyDto.getBusSid()); + //保存车辆出库单主表 + baseVehicleOutApplyService.save(baseVehicleOutApply); + //构建子表数据 + BaseVehicleOut baseVehicleOut = new BaseVehicleOut(); + BeanUtil.copyProperties(dto, baseVehicleOut, "sid"); + //主车 + if (dto.getMaterialTypeKey().equals("001")) { + if ("002".equals(baseVehicle.getManPurOrderTypeKey())) { + baseVehicleOut.setZcMGroupCode("99.01"); + baseVehicleOut.setZcMGroupName("外采主车"); + } else { + BaseVehicleBrand baseVehicleBrand = baseVehicleBrandService.fetchBySid(baseVehicle.getCarBrandSid()); + baseVehicleOut.setZcMGroupCode(baseVehicleBrand.getBrandCode()); + baseVehicleOut.setZcMGroupName(baseVehicleBrand.getBrandName()); + } + } else if (dto.getMaterialTypeKey().equals("002")) {//挂车 + baseVehicleOut.setZcMGroupCode("99.02"); + baseVehicleOut.setZcMGroupName("挂车"); + //BaseTrailer baseTrailer = baseTrailerService.fetchBySid(dto.getMaterialSid()); + //baseVehicleOut.setMaterialCode(baseTrailer.getVinNo().substring(baseTrailer.getVinNo().length() - 8) + "G"); + baseVehicleOut.setMaterialCode(dto.getMaterialCode()); + } else if (dto.getMaterialTypeKey().equals("003")) {//上装 + baseVehicleOut.setZcMGroupCode("99.02"); + baseVehicleOut.setZcMGroupName("挂车"); + //baseVehicleOut.setMaterialCode(baseVehicleOut.getVinNo().substring(baseVehicleOut.getVinNo().length() - 8) + "SZ"); + baseVehicleOut.setMaterialCode(dto.getMaterialCode()); + } + if (StringUtils.isNotBlank(dto.getPrice())) { + baseVehicleOut.setPrice(new BigDecimal(dto.getPrice())); + } + if (StringUtils.isNotBlank(dto.getSalesAllowance())) { + baseVehicleOut.setSalesAllowance(new BigDecimal(dto.getSalesAllowance())); + } + if (StringUtils.isNotBlank(dto.getRebateMoneyOne())) { + baseVehicleOut.setRebateMoneyOne(new BigDecimal(dto.getRebateMoneyOne())); + } + if (StringUtils.isNotBlank(dto.getRebateMoneyTwo())) { + baseVehicleOut.setRebateMoneyTwo(new BigDecimal(dto.getRebateMoneyTwo())); + } + //备注 + String remarks1 = createZSRemarks(dto); + String remarks2 = dto.getRemarks(); + String remarks3 = remarks2 + remarks1; + if ("null".equals(remarks3)) { + remarks3 = ""; + } + baseVehicleOut.setRemarks(remarks3); + //出库单子表关联主表sid + baseVehicleOut.setMainSid(baseVehicleOutApply.getSid()); + baseVehicleOut.setCreateBySid(baseVehicleOutApply.getCreateBySid()); + baseVehicleOut.setCwCustomerNo(bdCustomer.getFNumber()); + baseVehicleOut.setManPurOrderTypeKey(baseVehicle.getManPurOrderTypeKey()); + baseVehicleOut.setManPurOrderTypeValue(baseVehicle.getManPurOrderTypeValue()); + baseVehicleOut.setBillNo(billNo); + //保存车辆出库单子表 + baseMapper.insert(baseVehicleOut); + if (baseVehicle != null) { + //更新车辆台账的出库状态等值,库存状态修改为出库,销售日期修改为当天,成交价,备注 + String remarks = baseVehicleZSOutApplyDto.getContractNo() + baseVehicleZSOutApplyDto.getSaleTypeValue(); + baseVehicle.setRemarks(remarks); + baseVehicle.setVehicleState(VehicleState.StockEnum.OUT_STOCK.getCode()); + baseVehicle.setVehicleStateValue(VehicleState.StockEnum.OUT_STOCK.getRemarks()); + baseVehicle.setSalesDate(new Date()); + if (StringUtils.isNotBlank(dto.getPrice())) { + baseVehicle.setSalePrice(Integer.valueOf(dto.getPrice())); + } + baseVehicleService.updateById(baseVehicle); + } + ////ToDo:推送财务中介单位、推送金蝶客户、推送金蝶出库单 + try { + if (baseVehicle != null) { + //推送财务中介人 + if (StringUtils.isNotBlank(dto.getMiddleOne())) { + BdCustomer bdMiddle = createZSBdMiddle(baseVehicle, dto); + finKingDeeFeign.draftBdCustomer(bdMiddle); + } + } + //创建出库单数据对象前 需要将客户的编码修改为新生成的客户的编码。 + if (StringUtils.isNotBlank(bdCustomer.getFNumber())) { + baseVehicleZSOutApplyDto.setCustomerNo(bdCustomer.getFNumber()); + } + bdCustomers.add(bdCustomer); + finKingDeeFeign.draftBdCustomers(bdCustomers); + baseVehicleZSOutApplyDto.setCwCustomerNo(bdCustomer.getFNumber()); + if (baseVehicle != null) { + //推送销售出库单 + SalOutStock salOutStock = createZSSalOutStock(baseVehicle, dto, baseVehicleZSOutApplyDto); + log.info("BaseVehicleOutService-vehicleOut-287:{}", JSONObject.toJSONString(salOutStock)); + finKingDeeFeign.draftSalOutStock(salOutStock); + log.info("BaseVehicleOutService-vehicleOut-289:{}", JSONObject.toJSONString(salOutStock)); + //推送销售专员信息 + BDEmpinfo bdEmpinfo = new BDEmpinfo(); + BasePurchaseSystemDetailsVo data = basePurchaseSystemService.fetchDetailsByDeptSid(baseVehicle.getPurchaseSystemSid()).getData(); + String staffSid = baseVehicleZSOutApplyDto.getStaffSid(); + SysStaffinfoDetailsVo sysStaffinfoDetailsVo = sysStaffinfoFeign.fetchBySid(staffSid).getData(); + bdEmpinfo.setFName(baseVehicleZSOutApplyDto.getStaffName()); + bdEmpinfo.setFNumber(sysStaffinfoDetailsVo.getJobNumber()); + bdEmpinfo.setFAddress(sysStaffinfoDetailsVo.getAddress()); + bdEmpinfo.setFCreateOrgId(data.getOrgCode()); + bdEmpinfo.setFUseOrgId(data.getOrgCode()); + bdEmpinfo.setFMobile(sysStaffinfoDetailsVo.getMobile()); + finKingDeeFeign.saveBDEmpinfo(bdEmpinfo); + } + } catch (Exception e) { + log.error(e.getMessage()); + e.printStackTrace(); + } + //推送金蝶上装/挂车销售出库单 + String materialTypeKey = dto.getMaterialTypeKey(); + BaseVehicle baseVehicle1 = baseVehicleService.fetchBySid(dto.getVinSid()); + if (materialTypeKey.equals("002")) { + SalOutStock salOutStock = createZSGCOutStock(baseVehicle1, dto, baseVehicleZSOutApplyDto); + finKingDeeFeign.draftSalOutStock(salOutStock); + String gcSid = dto.getMaterialSid(); + BaseTrailer baseTrailer = baseTrailerService.fetchBySid(gcSid); + baseTrailer.setStockStateKey(VehicleState.StockEnum.OUT_STOCK.getCode()); + baseTrailer.setStockStateValue(VehicleState.StockEnum.OUT_STOCK.getRemarks()); + BigDecimal dealPrice = new BigDecimal(dto.getPrice()); + baseTrailer.setDealPrice(dealPrice); + baseTrailer.setIssueDate(DateUtil.formatDate(new Date())); + baseTrailerService.saveOrUpdate(baseTrailer); + } + if (materialTypeKey.equals("003")) { + SalOutStock salOutStock = createZSSZOutStock(baseVehicle1, dto, baseVehicleZSOutApplyDto); + finKingDeeFeign.draftSalOutStock(salOutStock); + String szSid = dto.getMaterialSid(); + BaseVehinstall baseVehinstall = baseVehinstallService.fetchBySid(szSid); + baseVehinstall.setVehicleStateKey(VehicleState.StockEnum.OUT_STOCK.getCode()); + baseVehinstall.setVehicleStateValue(VehicleState.StockEnum.OUT_STOCK.getRemarks()); + baseVehinstall.setSalesDate(DateUtil.formatDate(new Date())); + baseVehinstallService.saveOrUpdate(baseVehinstall); + } + } + return rb.success(); + } } diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinbound/ScmApplyInboundService.java b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinbound/ScmApplyInboundService.java index b58aa348a0..1c4b46db34 100644 --- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinbound/ScmApplyInboundService.java +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinbound/ScmApplyInboundService.java @@ -284,13 +284,15 @@ public class ScmApplyInboundService extends MybatisBaseService 0) { return new ResultBean().setMsg(vinNoList.get(i) + "车架号已经存在"); } if (data != null) { - return new ResultBean().setMsg(vinNoList.get(i) + "车架号已经存在"); + if (StringUtils.isNotBlank(data.getVinNo())){ + return new ResultBean().setMsg(vinNoList.get(i) + "车架号已经存在"); + } } } ScmApplyInbound scmApplyInbound = fetchBySid(dto.getSid()); diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinboundvehicle/ScmApplyInboundVehicleMapper.java b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinboundvehicle/ScmApplyInboundVehicleMapper.java index 335ea82cb1..5063253aed 100644 --- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinboundvehicle/ScmApplyInboundVehicleMapper.java +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinboundvehicle/ScmApplyInboundVehicleMapper.java @@ -34,7 +34,7 @@ public interface ScmApplyInboundVehicleMapper extends BaseMapper selectPageVo(IPage page, @Param(Constants.WRAPPER) Wrapper qw); - int checkVinNo(@Param("vinNo") String vinNo, @Param("mainSid") String mainSid); + int checkVinNo(@Param("vinNo") String vinNo, @Param("useOrgSid") String useOrgSid); List selectListByAppSid(@Param("applySid") String applySid); diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinboundvehicle/ScmApplyInboundVehicleMapper.xml b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinboundvehicle/ScmApplyInboundVehicleMapper.xml index cc2c2de3a6..1eb87e09eb 100644 --- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinboundvehicle/ScmApplyInboundVehicleMapper.xml +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinboundvehicle/ScmApplyInboundVehicleMapper.xml @@ -11,10 +11,12 @@